Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15397654
D17953.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
D17953.diff
View Options
diff --git a/resources/sql/patches/20131020.pxactionmig.php b/resources/sql/patches/20131020.pxactionmig.php
--- a/resources/sql/patches/20131020.pxactionmig.php
+++ b/resources/sql/patches/20131020.pxactionmig.php
@@ -34,7 +34,7 @@
$type_map = array(
'name' => PhabricatorProjectNameTransaction::TRANSACTIONTYPE,
'members' => PhabricatorProjectTransaction::TYPE_MEMBERS,
- 'status' => PhabricatorProjectTransaction::TYPE_STATUS,
+ 'status' => PhabricatorProjectStatusTransaction::TRANSACTIONTYPE,
'canview' => PhabricatorTransactions::TYPE_VIEW_POLICY,
'canedit' => PhabricatorTransactions::TYPE_EDIT_POLICY,
'canjoin' => PhabricatorTransactions::TYPE_JOIN_POLICY,
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
@@ -3669,6 +3669,7 @@
'PhabricatorProjectSlugsTransaction' => 'applications/project/xaction/PhabricatorProjectSlugsTransaction.php',
'PhabricatorProjectStandardCustomField' => 'applications/project/customfield/PhabricatorProjectStandardCustomField.php',
'PhabricatorProjectStatus' => 'applications/project/constants/PhabricatorProjectStatus.php',
+ 'PhabricatorProjectStatusTransaction' => 'applications/project/xaction/PhabricatorProjectStatusTransaction.php',
'PhabricatorProjectSubprojectWarningController' => 'applications/project/controller/PhabricatorProjectSubprojectWarningController.php',
'PhabricatorProjectSubprojectsController' => 'applications/project/controller/PhabricatorProjectSubprojectsController.php',
'PhabricatorProjectSubprojectsProfileMenuItem' => 'applications/project/menuitem/PhabricatorProjectSubprojectsProfileMenuItem.php',
@@ -9084,6 +9085,7 @@
'PhabricatorStandardCustomFieldInterface',
),
'PhabricatorProjectStatus' => 'Phobject',
+ 'PhabricatorProjectStatusTransaction' => 'PhabricatorProjectTransactionType',
'PhabricatorProjectSubprojectWarningController' => 'PhabricatorProjectController',
'PhabricatorProjectSubprojectsController' => 'PhabricatorProjectController',
'PhabricatorProjectSubprojectsProfileMenuItem' => 'PhabricatorProfileMenuItem',
diff --git a/src/applications/project/controller/PhabricatorProjectArchiveController.php b/src/applications/project/controller/PhabricatorProjectArchiveController.php
--- a/src/applications/project/controller/PhabricatorProjectArchiveController.php
+++ b/src/applications/project/controller/PhabricatorProjectArchiveController.php
@@ -32,7 +32,8 @@
$xactions = array();
$xactions[] = id(new PhabricatorProjectTransaction())
- ->setTransactionType(PhabricatorProjectTransaction::TYPE_STATUS)
+ ->setTransactionType(
+ PhabricatorProjectStatusTransaction::TRANSACTIONTYPE)
->setNewValue($new_status);
id(new PhabricatorProjectTransactionEditor())
diff --git a/src/applications/project/controller/PhabricatorProjectColumnHideController.php b/src/applications/project/controller/PhabricatorProjectColumnHideController.php
--- a/src/applications/project/controller/PhabricatorProjectColumnHideController.php
+++ b/src/applications/project/controller/PhabricatorProjectColumnHideController.php
@@ -65,7 +65,8 @@
$xactions = array();
$xactions[] = id(new PhabricatorProjectTransaction())
- ->setTransactionType(PhabricatorProjectTransaction::TYPE_STATUS)
+ ->setTransactionType(
+ PhabricatorProjectStatusTransaction::TRANSACTIONTYPE)
->setNewValue($new_status);
id(new PhabricatorProjectTransactionEditor())
diff --git a/src/applications/project/editor/PhabricatorProjectTransactionEditor.php b/src/applications/project/editor/PhabricatorProjectTransactionEditor.php
--- a/src/applications/project/editor/PhabricatorProjectTransactionEditor.php
+++ b/src/applications/project/editor/PhabricatorProjectTransactionEditor.php
@@ -30,7 +30,6 @@
$types[] = PhabricatorTransactions::TYPE_EDIT_POLICY;
$types[] = PhabricatorTransactions::TYPE_JOIN_POLICY;
- $types[] = PhabricatorProjectTransaction::TYPE_STATUS;
$types[] = PhabricatorProjectTransaction::TYPE_IMAGE;
$types[] = PhabricatorProjectTransaction::TYPE_ICON;
$types[] = PhabricatorProjectTransaction::TYPE_COLOR;
@@ -50,8 +49,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_STATUS:
- return $object->getStatus();
case PhabricatorProjectTransaction::TYPE_IMAGE:
return $object->getProfileImagePHID();
case PhabricatorProjectTransaction::TYPE_ICON:
@@ -81,7 +78,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_STATUS:
case PhabricatorProjectTransaction::TYPE_IMAGE:
case PhabricatorProjectTransaction::TYPE_ICON:
case PhabricatorProjectTransaction::TYPE_COLOR:
@@ -109,9 +105,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_STATUS:
- $object->setStatus($xaction->getNewValue());
- return;
case PhabricatorProjectTransaction::TYPE_IMAGE:
$object->setProfileImagePHID($xaction->getNewValue());
return;
@@ -157,7 +150,6 @@
$new = $xaction->getNewValue();
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_STATUS:
case PhabricatorProjectTransaction::TYPE_IMAGE:
case PhabricatorProjectTransaction::TYPE_ICON:
case PhabricatorProjectTransaction::TYPE_COLOR:
@@ -343,7 +335,7 @@
switch ($xaction->getTransactionType()) {
case PhabricatorProjectNameTransaction::TRANSACTIONTYPE:
- case PhabricatorProjectTransaction::TYPE_STATUS:
+ case PhabricatorProjectStatusTransaction::TRANSACTIONTYPE:
case PhabricatorProjectTransaction::TYPE_IMAGE:
case PhabricatorProjectTransaction::TYPE_ICON:
case PhabricatorProjectTransaction::TYPE_COLOR:
diff --git a/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php b/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php
--- a/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php
+++ b/src/applications/project/lipsum/PhabricatorProjectTestDataGenerator.php
@@ -20,7 +20,7 @@
$this->newProjectTitle());
$xactions[] = $this->newTransaction(
- PhabricatorProjectTransaction::TYPE_STATUS,
+ PhabricatorProjectStatusTransaction::TRANSACTIONTYPE,
$this->newProjectStatus());
// Almost always make the author a member.
diff --git a/src/applications/project/storage/PhabricatorProjectTransaction.php b/src/applications/project/storage/PhabricatorProjectTransaction.php
--- a/src/applications/project/storage/PhabricatorProjectTransaction.php
+++ b/src/applications/project/storage/PhabricatorProjectTransaction.php
@@ -3,7 +3,6 @@
final class PhabricatorProjectTransaction
extends PhabricatorModularTransaction {
- const TYPE_STATUS = 'project:status';
const TYPE_IMAGE = 'project:image';
const TYPE_ICON = 'project:icon';
const TYPE_COLOR = 'project:color';
@@ -55,22 +54,6 @@
return array_merge($req_phids, parent::getRequiredHandlePHIDs());
}
- public function getColor() {
-
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- switch ($this->getTransactionType()) {
- case self::TYPE_STATUS:
- if ($old == 0) {
- return 'red';
- } else {
- return 'green';
- }
- }
- return parent::getColor();
- }
-
public function shouldHide() {
switch ($this->getTransactionType()) {
case PhabricatorTransactions::TYPE_EDGE:
@@ -115,12 +98,6 @@
$new = $this->getNewValue();
switch ($this->getTransactionType()) {
- case self::TYPE_STATUS:
- if ($old == 0) {
- return 'fa-ban';
- } else {
- return 'fa-check';
- }
case self::TYPE_LOCKED:
if ($new) {
return 'fa-lock';
@@ -149,18 +126,6 @@
'%s created this project.',
$this->renderHandleLink($author_phid));
- case self::TYPE_STATUS:
- if ($old == 0) {
- return pht(
- '%s archived this project.',
- $author_handle);
- } else {
- return pht(
- '%s activated this project.',
- $author_handle);
- }
- break;
-
case self::TYPE_IMAGE:
// TODO: Some day, it would be nice to show the images.
if (!$old) {
@@ -288,18 +253,6 @@
$new = $this->getNewValue();
switch ($this->getTransactionType()) {
- case self::TYPE_STATUS:
- if ($old == 0) {
- return pht(
- '%s archived %s.',
- $author_handle,
- $object_handle);
- } else {
- return pht(
- '%s activated %s.',
- $author_handle,
- $object_handle);
- }
case self::TYPE_IMAGE:
// TODO: Some day, it would be nice to show the images.
if (!$old) {
@@ -378,7 +331,7 @@
$tags[] = self::MAILTAG_OTHER;
}
break;
- case self::TYPE_STATUS:
+ case PhabricatorProjectStatusTransaction::TRANSACTIONTYPE:
case self::TYPE_LOCKED:
default:
$tags[] = self::MAILTAG_OTHER;
diff --git a/src/applications/project/xaction/PhabricatorProjectStatusTransaction.php b/src/applications/project/xaction/PhabricatorProjectStatusTransaction.php
new file mode 100644
--- /dev/null
+++ b/src/applications/project/xaction/PhabricatorProjectStatusTransaction.php
@@ -0,0 +1,66 @@
+<?php
+
+final class PhabricatorProjectStatusTransaction
+ extends PhabricatorProjectTransactionType {
+
+ const TRANSACTIONTYPE = 'project:status';
+
+ public function generateOldValue($object) {
+ return $object->getStatus();
+ }
+
+ public function applyInternalEffects($object, $value) {
+ $object->setStatus($value);
+ }
+
+ public function getTitle() {
+ $old = $this->getOldValue();
+
+ if ($old == 0) {
+ return pht(
+ '%s archived this project.',
+ $this->renderAuthor());
+ } else {
+ return pht(
+ '%s activated this project.',
+ $this->renderAuthor());
+ }
+ }
+
+ public function getTitleForFeed() {
+ $old = $this->getOldValue();
+
+ if ($old == 0) {
+ return pht(
+ '%s archived %s.',
+ $this->renderAuthor(),
+ $this->renderObject());
+ } else {
+ return pht(
+ '%s activated %s.',
+ $this->renderAuthor(),
+ $this->renderObject());
+ }
+ }
+
+ public function getColor() {
+ $old = $this->getOldValue();
+
+ if ($old == 0) {
+ return 'red';
+ } else {
+ return 'green';
+ }
+ }
+
+ public function getIcon() {
+ $old = $this->getOldValue();
+
+ if ($old == 0) {
+ return 'fa-ban';
+ } else {
+ return 'fa-check';
+ }
+ }
+
+}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Mar 17, 9:34 PM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7228751
Default Alt Text
D17953.diff (10 KB)
Attached To
Mode
D17953: Migrate Project status to modular transactions
Attached
Detach File
Event Timeline
Log In to Comment