Page MenuHomePhabricator

D17953.id43180.diff
No OneTemporary

D17953.id43180.diff

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

Mime Type
text/plain
Expires
Sun, May 12, 6:45 PM (1 w, 3 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6291654
Default Alt Text
D17953.id43180.diff (10 KB)

Event Timeline