Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15399613
D17864.id42959.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
10 KB
Referenced Files
None
Subscribers
None
D17864.id42959.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
@@ -4357,6 +4357,7 @@
'PholioDAO' => 'applications/pholio/storage/PholioDAO.php',
'PholioDefaultEditCapability' => 'applications/pholio/capability/PholioDefaultEditCapability.php',
'PholioDefaultViewCapability' => 'applications/pholio/capability/PholioDefaultViewCapability.php',
+ 'PholioDescriptionTransaction' => 'applications/pholio/xaction/PholioDescriptionTransaction.php',
'PholioImage' => 'applications/pholio/storage/PholioImage.php',
'PholioImagePHIDType' => 'applications/pholio/phid/PholioImagePHIDType.php',
'PholioImageQuery' => 'applications/pholio/query/PholioImageQuery.php',
@@ -4393,6 +4394,7 @@
'PholioTransaction' => 'applications/pholio/storage/PholioTransaction.php',
'PholioTransactionComment' => 'applications/pholio/storage/PholioTransactionComment.php',
'PholioTransactionQuery' => 'applications/pholio/query/PholioTransactionQuery.php',
+ 'PholioTransactionType' => 'applications/pholio/xaction/PholioTransactionType.php',
'PholioTransactionView' => 'applications/pholio/view/PholioTransactionView.php',
'PholioUploadedImageView' => 'applications/pholio/view/PholioUploadedImageView.php',
'PhortuneAccount' => 'applications/phortune/storage/PhortuneAccount.php',
@@ -9890,6 +9892,7 @@
'PholioDAO' => 'PhabricatorLiskDAO',
'PholioDefaultEditCapability' => 'PhabricatorPolicyCapability',
'PholioDefaultViewCapability' => 'PhabricatorPolicyCapability',
+ 'PholioDescriptionTransaction' => 'PholioTransactionType',
'PholioImage' => array(
'PholioDAO',
'PhabricatorMarkupInterface',
@@ -9940,9 +9943,10 @@
'PholioRemarkupRule' => 'PhabricatorObjectRemarkupRule',
'PholioReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'PholioSchemaSpec' => 'PhabricatorConfigSchemaSpec',
- 'PholioTransaction' => 'PhabricatorApplicationTransaction',
+ 'PholioTransaction' => 'PhabricatorModularTransaction',
'PholioTransactionComment' => 'PhabricatorApplicationTransactionComment',
'PholioTransactionQuery' => 'PhabricatorApplicationTransactionQuery',
+ 'PholioTransactionType' => 'PhabricatorModularTransactionType',
'PholioTransactionView' => 'PhabricatorApplicationTransactionView',
'PholioUploadedImageView' => 'AphrontView',
'PhortuneAccount' => array(
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
@@ -66,7 +66,7 @@
$xactions = array();
$type_name = PholioTransaction::TYPE_NAME;
- $type_desc = PholioTransaction::TYPE_DESCRIPTION;
+ $type_desc = PholioDescriptionTransaction::TRANSACTIONTYPE;
$type_view = PhabricatorTransactions::TYPE_VIEW_POLICY;
$type_edit = PhabricatorTransactions::TYPE_EDIT_POLICY;
$type_cc = PhabricatorTransactions::TYPE_SUBSCRIBERS;
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
@@ -30,7 +30,6 @@
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
$types[] = PholioTransaction::TYPE_NAME;
- $types[] = PholioTransaction::TYPE_DESCRIPTION;
$types[] = PholioTransaction::TYPE_STATUS;
$types[] = PholioTransaction::TYPE_INLINE;
@@ -50,8 +49,6 @@
switch ($xaction->getTransactionType()) {
case PholioTransaction::TYPE_NAME:
return $object->getName();
- case PholioTransaction::TYPE_DESCRIPTION:
- return $object->getDescription();
case PholioTransaction::TYPE_STATUS:
return $object->getStatus();
case PholioTransaction::TYPE_IMAGE_FILE:
@@ -96,7 +93,6 @@
switch ($xaction->getTransactionType()) {
case PholioTransaction::TYPE_NAME:
- case PholioTransaction::TYPE_DESCRIPTION:
case PholioTransaction::TYPE_STATUS:
case PholioTransaction::TYPE_IMAGE_NAME:
case PholioTransaction::TYPE_IMAGE_DESCRIPTION:
@@ -215,9 +211,6 @@
$object->setOriginalName($xaction->getNewValue());
}
break;
- case PholioTransaction::TYPE_DESCRIPTION:
- $object->setDescription($xaction->getNewValue());
- break;
case PholioTransaction::TYPE_STATUS:
$object->setStatus($xaction->getNewValue());
break;
@@ -311,7 +304,6 @@
$type = $u->getTransactionType();
switch ($type) {
case PholioTransaction::TYPE_NAME:
- case PholioTransaction::TYPE_DESCRIPTION:
case PholioTransaction::TYPE_STATUS:
return $v;
case PholioTransaction::TYPE_IMAGE_REPLACE:
diff --git a/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php b/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php
--- a/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php
+++ b/src/applications/pholio/lipsum/PhabricatorPholioMockTestDataGenerator.php
@@ -24,7 +24,7 @@
$changes = array();
$changes[PholioTransaction::TYPE_NAME] =
$this->generateTitle();
- $changes[PholioTransaction::TYPE_DESCRIPTION] =
+ $changes[PholioDescriptionTransaction::TRANSACTIONTYPE] =
$this->generateDescription();
$changes[PhabricatorTransactions::TYPE_VIEW_POLICY] =
PhabricatorPolicies::POLICY_PUBLIC;
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
@@ -1,10 +1,9 @@
<?php
-final class PholioTransaction extends PhabricatorApplicationTransaction {
+final class PholioTransaction extends PhabricatorModularTransaction {
// Edits to the high level mock
const TYPE_NAME = 'name';
- const TYPE_DESCRIPTION = 'description';
const TYPE_STATUS = 'status';
// Edits to images within the mock
@@ -26,6 +25,10 @@
return 'pholio';
}
+ public function getBaseTransactionClass() {
+ return 'PholioTransactionType';
+ }
+
public function getApplicationTransactionType() {
return PholioMockPHIDType::TYPECONST;
}
@@ -67,8 +70,6 @@
$old = $this->getOldValue();
switch ($this->getTransactionType()) {
- case self::TYPE_DESCRIPTION:
- return ($old === null);
case self::TYPE_IMAGE_NAME:
case self::TYPE_IMAGE_DESCRIPTION:
return ($old === array(null => null));
@@ -89,7 +90,6 @@
case self::TYPE_INLINE:
return 'fa-comment';
case self::TYPE_NAME:
- case self::TYPE_DESCRIPTION:
case self::TYPE_STATUS:
if ($new == PholioMock::STATUS_CLOSED) {
return 'fa-ban';
@@ -119,7 +119,7 @@
$tags[] = self::MAILTAG_STATUS;
break;
case self::TYPE_NAME:
- case self::TYPE_DESCRIPTION:
+ case PholioDescriptionTransaction::TRANSACTIONTYPE:
case self::TYPE_IMAGE_NAME:
case self::TYPE_IMAGE_DESCRIPTION:
case self::TYPE_IMAGE_SEQUENCE:
@@ -156,11 +156,6 @@
$new);
}
break;
- case self::TYPE_DESCRIPTION:
- return pht(
- "%s updated the mock's description.",
- $this->renderHandleLink($author_phid));
- break;
case self::TYPE_STATUS:
if ($new == PholioMock::STATUS_CLOSED) {
return pht(
@@ -268,12 +263,6 @@
$new);
}
break;
- case self::TYPE_DESCRIPTION:
- return pht(
- '%s updated the description for %s.',
- $this->renderHandleLink($author_phid),
- $this->renderHandleLink($object_phid));
- break;
case self::TYPE_STATUS:
if ($new == PholioMock::STATUS_CLOSED) {
return pht(
@@ -340,30 +329,6 @@
return $text;
}
- public function hasChangeDetails() {
- switch ($this->getTransactionType()) {
- case self::TYPE_DESCRIPTION:
- case self::TYPE_IMAGE_DESCRIPTION:
- return true;
- }
- return parent::hasChangeDetails();
- }
-
- public function renderChangeDetails(PhabricatorUser $viewer) {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
- if ($this->getTransactionType() ==
- self::TYPE_IMAGE_DESCRIPTION) {
- $old = reset($old);
- $new = reset($new);
- }
-
- return $this->renderTextCorpusChangeDetails(
- $viewer,
- $old,
- $new);
- }
-
public function getColor() {
$old = $this->getOldValue();
$new = $this->getNewValue();
diff --git a/src/applications/pholio/xaction/PholioDescriptionTransaction.php b/src/applications/pholio/xaction/PholioDescriptionTransaction.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/xaction/PholioDescriptionTransaction.php
@@ -0,0 +1,47 @@
+<?php
+
+final class PholioDescriptionTransaction
+ extends PholioTransactionType {
+
+ const TRANSACTIONTYPE = 'description';
+
+ public function generateOldValue($object) {
+ return $object->getDescription();
+ }
+
+ public function applyInternalEffects($object, $value) {
+ $object->setDescription($value);
+ }
+
+ public function getTitle() {
+ return pht(
+ "%s updated the mock's description.",
+ $this->renderAuthor());
+ }
+
+ public function getTitleForFeed() {
+ return pht(
+ '%s updated the description for %s.',
+ $this->renderAuthor(),
+ $this->renderObject());
+ }
+
+ public function shouldHide() {
+ $old = $this->getOldValue();
+ return ($old === null);
+ }
+
+ public function hasChangeDetailView() {
+ return true;
+ }
+
+ public function newChangeDetailView() {
+ $viewer = $this->getViewer();
+
+ return id(new PhabricatorApplicationTransactionTextDiffDetailView())
+ ->setViewer($viewer)
+ ->setOldText($this->getOldValue())
+ ->setNewText($this->getNewValue());
+ }
+
+}
diff --git a/src/applications/pholio/xaction/PholioTransactionType.php b/src/applications/pholio/xaction/PholioTransactionType.php
new file mode 100644
--- /dev/null
+++ b/src/applications/pholio/xaction/PholioTransactionType.php
@@ -0,0 +1,18 @@
+<?php
+
+abstract class PholioTransactionType
+ extends PhabricatorModularTransactionType {
+
+ protected function getImageForXaction(PholioMock $mock) {
+ $raw_new_value = $this->getNewValue();
+ $image_phid = key($raw_new_value);
+ $images = $mock->getImages();
+ foreach ($images as $image) {
+ if ($image->getPHID() == $image_phid) {
+ return $image;
+ }
+ }
+ return null;
+ }
+
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Mar 18, 5:49 AM (1 w, 2 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7709444
Default Alt Text
D17864.id42959.diff (10 KB)
Attached To
Mode
D17864: Migrate Pholio to Frankenstein transactions
Attached
Detach File
Event Timeline
Log In to Comment