Page MenuHomePhabricator

D17868.id42989.diff
No OneTemporary

D17868.id42989.diff

diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -4360,6 +4360,7 @@
'PholioDefaultEditCapability' => 'applications/pholio/capability/PholioDefaultEditCapability.php',
'PholioDefaultViewCapability' => 'applications/pholio/capability/PholioDefaultViewCapability.php',
'PholioImage' => 'applications/pholio/storage/PholioImage.php',
+ 'PholioImageDescriptionTransaction' => 'applications/pholio/xaction/PholioImageDescriptionTransaction.php',
'PholioImageNameTransaction' => 'applications/pholio/xaction/PholioImageNameTransaction.php',
'PholioImagePHIDType' => 'applications/pholio/phid/PholioImagePHIDType.php',
'PholioImageQuery' => 'applications/pholio/query/PholioImageQuery.php',
@@ -4391,6 +4392,7 @@
'PholioMockRelationship' => 'applications/pholio/relationships/PholioMockRelationship.php',
'PholioMockRelationshipSource' => 'applications/search/relationship/PholioMockRelationshipSource.php',
'PholioMockSearchEngine' => 'applications/pholio/query/PholioMockSearchEngine.php',
+ 'PholioMockStatusTransaction' => 'applications/pholio/xaction/PholioMockStatusTransaction.php',
'PholioMockThumbGridView' => 'applications/pholio/view/PholioMockThumbGridView.php',
'PholioMockTransactionType' => 'applications/pholio/xaction/PholioMockTransactionType.php',
'PholioMockViewController' => 'applications/pholio/controller/PholioMockViewController.php',
@@ -9905,6 +9907,7 @@
'PhabricatorMarkupInterface',
'PhabricatorPolicyInterface',
),
+ 'PholioImageDescriptionTransaction' => 'PholioImageTransactionType',
'PholioImageNameTransaction' => 'PholioImageTransactionType',
'PholioImagePHIDType' => 'PhabricatorPHIDType',
'PholioImageQuery' => 'PhabricatorCursorPagedPolicyAwareQuery',
@@ -9949,6 +9952,7 @@
'PholioMockRelationship' => 'PhabricatorObjectRelationship',
'PholioMockRelationshipSource' => 'PhabricatorObjectRelationshipSource',
'PholioMockSearchEngine' => 'PhabricatorApplicationSearchEngine',
+ 'PholioMockStatusTransaction' => 'PholioMockTransactionType',
'PholioMockThumbGridView' => 'AphrontView',
'PholioMockTransactionType' => 'PholioTransactionType',
'PholioMockViewController' => 'PholioController',
diff --git a/src/applications/pholio/controller/PholioMockArchiveController.php b/src/applications/pholio/controller/PholioMockArchiveController.php
--- a/src/applications/pholio/controller/PholioMockArchiveController.php
+++ b/src/applications/pholio/controller/PholioMockArchiveController.php
@@ -32,7 +32,7 @@
$xactions = array();
$xactions[] = id(new PholioTransaction())
- ->setTransactionType(PholioTransaction::TYPE_STATUS)
+ ->setTransactionType(PholioMockStatusTransaction::TRANSACTIONTYPE)
->setNewValue($new_status);
id(new PholioMockEditor())
diff --git a/src/applications/pholio/controller/PholioMockEditController.php b/src/applications/pholio/controller/PholioMockEditController.php
--- a/src/applications/pholio/controller/PholioMockEditController.php
+++ b/src/applications/pholio/controller/PholioMockEditController.php
@@ -173,7 +173,7 @@
array($existing_image->getPHID() => $title));
$xactions[] = id(new PholioTransaction())
->setTransactionType(
- PholioTransaction::TYPE_IMAGE_DESCRIPTION)
+ PholioImageDescriptionTransaction::TRANSACTIONTYPE)
->setNewValue(
array($existing_image->getPHID() => $description));
$xactions[] = id(new PholioTransaction())
diff --git a/src/applications/pholio/editor/PholioMockEditor.php b/src/applications/pholio/editor/PholioMockEditor.php
--- a/src/applications/pholio/editor/PholioMockEditor.php
+++ b/src/applications/pholio/editor/PholioMockEditor.php
@@ -29,11 +29,9 @@
$types[] = PhabricatorTransactions::TYPE_VIEW_POLICY;
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
- $types[] = PholioTransaction::TYPE_STATUS;
$types[] = PholioTransaction::TYPE_INLINE;
$types[] = PholioTransaction::TYPE_IMAGE_FILE;
- $types[] = PholioTransaction::TYPE_IMAGE_DESCRIPTION;
$types[] = PholioTransaction::TYPE_IMAGE_REPLACE;
$types[] = PholioTransaction::TYPE_IMAGE_SEQUENCE;
@@ -45,20 +43,9 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PholioTransaction::TYPE_STATUS:
- return $object->getStatus();
case PholioTransaction::TYPE_IMAGE_FILE:
$images = $object->getImages();
return mpull($images, 'getPHID');
- case PholioTransaction::TYPE_IMAGE_DESCRIPTION:
- $description = null;
- $phid = null;
- $image = $this->getImageForXaction($object, $xaction);
- if ($image) {
- $description = $image->getDescription();
- $phid = $image->getPHID();
- }
- return array($phid => $description);
case PholioTransaction::TYPE_IMAGE_REPLACE:
$raw = $xaction->getNewValue();
return $raw->getReplacesImagePHID();
@@ -79,8 +66,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PholioTransaction::TYPE_STATUS:
- case PholioTransaction::TYPE_IMAGE_DESCRIPTION:
case PholioTransaction::TYPE_IMAGE_SEQUENCE:
return $xaction->getNewValue();
case PholioTransaction::TYPE_IMAGE_REPLACE:
@@ -185,17 +170,6 @@
$this->setNewImages($new_images);
}
- protected function applyCustomInternalTransaction(
- PhabricatorLiskDAO $object,
- PhabricatorApplicationTransaction $xaction) {
-
- switch ($xaction->getTransactionType()) {
- case PholioTransaction::TYPE_STATUS:
- $object->setStatus($xaction->getNewValue());
- break;
- }
- }
-
private function getImageForXaction(
PholioMock $mock,
PhabricatorApplicationTransaction $xaction) {
@@ -242,12 +216,6 @@
}
$object->attachImages($images);
break;
- case PholioTransaction::TYPE_IMAGE_DESCRIPTION:
- $image = $this->getImageForXaction($object, $xaction);
- $value = (string)head($xaction->getNewValue());
- $image->setDescription($value);
- $image->save();
- break;
case PholioTransaction::TYPE_IMAGE_SEQUENCE:
$image = $this->getImageForXaction($object, $xaction);
$value = (int)head($xaction->getNewValue());
@@ -276,8 +244,6 @@
$type = $u->getTransactionType();
switch ($type) {
- case PholioTransaction::TYPE_STATUS:
- return $v;
case PholioTransaction::TYPE_IMAGE_REPLACE:
$u_img = $u->getNewValue();
$v_img = $v->getNewValue();
@@ -287,7 +253,6 @@
break;
case PholioTransaction::TYPE_IMAGE_FILE:
return $this->mergePHIDOrEdgeTransactions($u, $v);
- case PholioTransaction::TYPE_IMAGE_DESCRIPTION:
case PholioTransaction::TYPE_IMAGE_SEQUENCE:
$raw_new_value_u = $u->getNewValue();
$raw_new_value_v = $v->getNewValue();
diff --git a/src/applications/pholio/storage/PholioTransaction.php b/src/applications/pholio/storage/PholioTransaction.php
--- a/src/applications/pholio/storage/PholioTransaction.php
+++ b/src/applications/pholio/storage/PholioTransaction.php
@@ -2,12 +2,8 @@
final class PholioTransaction extends PhabricatorModularTransaction {
- // Edits to the high level mock
- const TYPE_STATUS = 'status';
-
// Edits to images within the mock
const TYPE_IMAGE_FILE = 'image-file';
- const TYPE_IMAGE_DESCRIPTION = 'image-description';
const TYPE_IMAGE_REPLACE = 'image-replace';
const TYPE_IMAGE_SEQUENCE = 'image-sequence';
@@ -54,7 +50,7 @@
$phids[] = $new;
$phids[] = $old;
break;
- case self::TYPE_IMAGE_DESCRIPTION:
+ case PholioImageDescriptionTransaction::TRANSACTIONTYPE:
case PholioImageNameTransaction::TRANSACTIONTYPE:
case self::TYPE_IMAGE_SEQUENCE:
$phids[] = key($new);
@@ -68,8 +64,6 @@
$old = $this->getOldValue();
switch ($this->getTransactionType()) {
- case self::TYPE_IMAGE_DESCRIPTION:
- return ($old === array(null => null));
// this is boring / silly to surface; changing sequence is NBD
case self::TYPE_IMAGE_SEQUENCE:
return true;
@@ -86,13 +80,6 @@
switch ($this->getTransactionType()) {
case self::TYPE_INLINE:
return 'fa-comment';
- case self::TYPE_STATUS:
- if ($new == PholioMock::STATUS_CLOSED) {
- return 'fa-ban';
- } else {
- return 'fa-check';
- }
- case self::TYPE_IMAGE_DESCRIPTION:
case self::TYPE_IMAGE_SEQUENCE:
return 'fa-pencil';
case self::TYPE_IMAGE_FILE:
@@ -110,13 +97,13 @@
case PhabricatorTransactions::TYPE_COMMENT:
$tags[] = self::MAILTAG_COMMENT;
break;
- case self::TYPE_STATUS:
+ case PholioMockStatusTransaction::TRANSACTIONTYPE:
$tags[] = self::MAILTAG_STATUS;
break;
case PholioMockNameTransaction::TRANSACTIONTYPE:
case PholioMockDescriptionTransaction::TRANSACTIONTYPE:
case PholioImageNameTransaction::TRANSACTIONTYPE:
- case self::TYPE_IMAGE_DESCRIPTION:
+ case PholioImageDescriptionTransaction::TRANSACTIONTYPE:
case self::TYPE_IMAGE_SEQUENCE:
case self::TYPE_IMAGE_FILE:
case self::TYPE_IMAGE_REPLACE:
@@ -137,17 +124,6 @@
$type = $this->getTransactionType();
switch ($type) {
- case self::TYPE_STATUS:
- if ($new == PholioMock::STATUS_CLOSED) {
- return pht(
- '%s closed this mock.',
- $this->renderHandleLink($author_phid));
- } else {
- return pht(
- '%s opened this mock.',
- $this->renderHandleLink($author_phid));
- }
- break;
case self::TYPE_INLINE:
$count = 1;
foreach ($this->getTransactionGroup() as $xaction) {
@@ -194,12 +170,6 @@
$this->renderHandleList($rem));
}
break;
- case self::TYPE_IMAGE_DESCRIPTION:
- return pht(
- '%s updated an image\'s (%s) description.',
- $this->renderHandleLink($author_phid),
- $this->renderHandleLink(key($new)));
- break;
case self::TYPE_IMAGE_SEQUENCE:
return pht(
'%s updated an image\'s (%s) sequence.',
@@ -220,19 +190,6 @@
$type = $this->getTransactionType();
switch ($type) {
- case self::TYPE_STATUS:
- if ($new == PholioMock::STATUS_CLOSED) {
- return pht(
- '%s closed a mock %s.',
- $this->renderHandleLink($author_phid),
- $this->renderHandleLink($object_phid));
- } else {
- return pht(
- '%s opened a mock %s.',
- $this->renderHandleLink($author_phid),
- $this->renderHandleLink($object_phid));
- }
- break;
case self::TYPE_INLINE:
return pht(
'%s added an inline comment to %s.',
@@ -246,12 +203,6 @@
$this->renderHandleLink($author_phid),
$this->renderHandleLink($object_phid));
break;
- case self::TYPE_IMAGE_DESCRIPTION:
- return pht(
- '%s updated image descriptions of %s.',
- $this->renderHandleLink($author_phid),
- $this->renderHandleLink($object_phid));
- break;
case self::TYPE_IMAGE_SEQUENCE:
return pht(
'%s updated image sequence of %s.',
@@ -268,12 +219,6 @@
$new = $this->getNewValue();
switch ($this->getTransactionType()) {
- case self::TYPE_STATUS:
- if ($new == PholioMock::STATUS_CLOSED) {
- return PhabricatorTransactions::COLOR_INDIGO;
- } else {
- return PhabricatorTransactions::COLOR_GREEN;
- }
case self::TYPE_IMAGE_REPLACE:
return PhabricatorTransactions::COLOR_YELLOW;
case self::TYPE_IMAGE_FILE:
@@ -291,16 +236,4 @@
return parent::getColor();
}
- public function getNoEffectDescription() {
- switch ($this->getTransactionType()) {
- case self::TYPE_IMAGE_NAME:
- return pht('The image title was not updated.');
- case self::TYPE_IMAGE_DESCRIPTION:
- return pht('The image description was not updated.');
- case self::TYPE_IMAGE_SEQUENCE:
- return pht('The image sequence was not updated.');
- }
-
- return parent::getNoEffectDescription();
- }
}
diff --git a/src/applications/pholio/xaction/PholioImageNameTransaction.php b/src/applications/pholio/xaction/PholioImageDescriptionTransaction.php
copy from src/applications/pholio/xaction/PholioImageNameTransaction.php
copy to src/applications/pholio/xaction/PholioImageDescriptionTransaction.php
--- a/src/applications/pholio/xaction/PholioImageNameTransaction.php
+++ b/src/applications/pholio/xaction/PholioImageDescriptionTransaction.php
@@ -1,57 +1,44 @@
<?php
-final class PholioImageNameTransaction
+final class PholioImageDescriptionTransaction
extends PholioImageTransactionType {
- const TRANSACTIONTYPE = 'image-name';
+ const TRANSACTIONTYPE = 'image-description';
public function generateOldValue($object) {
- $name = null;
+ $description = null;
$phid = null;
$image = $this->getImageForXaction($object);
if ($image) {
- $name = $image->getName();
+ $description = $image->getDescription();
$phid = $image->getPHID();
}
- return array($phid => $name);
+ return array($phid => $description);
}
public function applyInternalEffects($object, $value) {
$image = $this->getImageForXaction($object);
$value = (string)head($this->getNewValue());
- $image->setName($value);
+ $image->setDescription($value);
$image->save();
}
public function getTitle() {
- $old = $this->getOldValue();
$new = $this->getNewValue();
return pht(
- '%s renamed an image (%s) from %s to %s.',
+ '%s updated an image\'s (%s) description.',
$this->renderAuthor(),
- $this->renderHandle(key($new)),
- $this->renderValue($old),
- $this->renderValue($new));
+ $this->renderHandle(head_key($new)));
}
public function getTitleForFeed() {
return pht(
- '%s updated the image names of %s.',
+ '%s updated image descriptions of %s.',
$this->renderAuthor(),
$this->renderObject());
}
- public function getIcon() {
- $new = $this->getNewValue();
-
- if ($new == PholioMock::STATUS_CLOSED) {
- return 'fa-ban';
- } else {
- return 'fa-check';
- }
- }
-
public function mergeTransactions(
$object,
PhabricatorApplicationTransaction $u,
@@ -73,23 +60,17 @@
return ($old === array(null => null));
}
- public function validateTransactions($object, array $xactions) {
- $errors = array();
+ public function hasChangeDetailView() {
+ return true;
+ }
- $max_length = $object->getColumnMaximumByteLength('name');
- foreach ($xactions as $xaction) {
- $new_value = head(array_values($xaction->getNewValue()));
- $new_length = strlen($new_value);
- if ($new_length > $max_length) {
- $errors[] = $this->newInvalidError(
- pht(
- 'Mock image names must not be longer than %s character(s).',
- new PhutilNumber($max_length)));
- }
- }
+ public function newChangeDetailView() {
+ $viewer = $this->getViewer();
- return $errors;
+ return id(new PhabricatorApplicationTransactionTextDiffDetailView())
+ ->setViewer($viewer)
+ ->setOldText(head($this->getOldValue()))
+ ->setNewText(head($this->getNewValue()));
}
-
}
diff --git a/src/applications/pholio/xaction/PholioImageNameTransaction.php b/src/applications/pholio/xaction/PholioImageNameTransaction.php
--- a/src/applications/pholio/xaction/PholioImageNameTransaction.php
+++ b/src/applications/pholio/xaction/PholioImageNameTransaction.php
@@ -42,16 +42,6 @@
$this->renderObject());
}
- public function getIcon() {
- $new = $this->getNewValue();
-
- if ($new == PholioMock::STATUS_CLOSED) {
- return 'fa-ban';
- } else {
- return 'fa-check';
- }
- }
-
public function mergeTransactions(
$object,
PhabricatorApplicationTransaction $u,
diff --git a/src/applications/pholio/xaction/PholioMockStatusTransaction.php b/src/applications/pholio/xaction/PholioMockStatusTransaction.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/xaction/PholioMockStatusTransaction.php
@@ -0,0 +1,66 @@
+<?php
+
+final class PholioMockStatusTransaction
+ extends PholioMockTransactionType {
+
+ const TRANSACTIONTYPE = 'status';
+
+ public function generateOldValue($object) {
+ return $object->getStatus();
+ }
+
+ public function applyInternalEffects($object, $value) {
+ $object->setStatus($value);
+ }
+
+ public function getTitle() {
+ $new = $this->getNewValue();
+
+ if ($new == PholioMock::STATUS_CLOSED) {
+ return pht(
+ '%s closed this mock.',
+ $this->renderAuthor());
+ } else {
+ return pht(
+ '%s opened this mock.',
+ $this->renderAuthor());
+ }
+ }
+
+ public function getTitleForFeed() {
+ $new = $this->getNewValue();
+
+ if ($new == PholioMock::STATUS_CLOSED) {
+ return pht(
+ '%s closed mock %s.',
+ $this->renderAuthor(),
+ $this->renderObject());
+ } else {
+ return pht(
+ '%s opened mock %s.',
+ $this->renderAuthor(),
+ $this->renderObject());
+ }
+ }
+
+ public function getIcon() {
+ $new = $this->getNewValue();
+
+ if ($new == PholioMock::STATUS_CLOSED) {
+ return 'fa-ban';
+ } else {
+ return 'fa-check';
+ }
+ }
+
+ public function getColor() {
+ $new = $this->getNewValue();
+
+ if ($new == PholioMock::STATUS_CLOSED) {
+ return PhabricatorTransactions::COLOR_INDIGO;
+ } else {
+ return PhabricatorTransactions::COLOR_GREEN;
+ }
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Wed, Mar 5, 5:49 AM (2 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7223693
Default Alt Text
D17868.id42989.diff (17 KB)

Event Timeline