Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15413431
D17868.id42989.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
17 KB
Referenced Files
None
Subscribers
None
D17868.id42989.diff
View Options
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
Details
Attached
Mime Type
text/plain
Expires
Thu, Mar 20, 6:38 PM (1 d, 14 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7223693
Default Alt Text
D17868.id42989.diff (17 KB)
Attached To
Mode
D17868: Migrate Pholio image description and mock status to modular transactions
Attached
Detach File
Event Timeline
Log In to Comment