Page MenuHomePhabricator

D17986.diff
No OneTemporary

D17986.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
@@ -3630,6 +3630,7 @@
'PhabricatorProjectListController' => 'applications/project/controller/PhabricatorProjectListController.php',
'PhabricatorProjectListView' => 'applications/project/view/PhabricatorProjectListView.php',
'PhabricatorProjectLockController' => 'applications/project/controller/PhabricatorProjectLockController.php',
+ 'PhabricatorProjectLockTransaction' => 'applications/project/xaction/PhabricatorProjectLockTransaction.php',
'PhabricatorProjectLogicalAncestorDatasource' => 'applications/project/typeahead/PhabricatorProjectLogicalAncestorDatasource.php',
'PhabricatorProjectLogicalDatasource' => 'applications/project/typeahead/PhabricatorProjectLogicalDatasource.php',
'PhabricatorProjectLogicalOrNotDatasource' => 'applications/project/typeahead/PhabricatorProjectLogicalOrNotDatasource.php',
@@ -9048,6 +9049,7 @@
'PhabricatorProjectListController' => 'PhabricatorProjectController',
'PhabricatorProjectListView' => 'AphrontView',
'PhabricatorProjectLockController' => 'PhabricatorProjectController',
+ 'PhabricatorProjectLockTransaction' => 'PhabricatorProjectTransactionType',
'PhabricatorProjectLogicalAncestorDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
'PhabricatorProjectLogicalDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
'PhabricatorProjectLogicalOrNotDatasource' => 'PhabricatorTypeaheadCompositeDatasource',
diff --git a/src/applications/project/controller/PhabricatorProjectLockController.php b/src/applications/project/controller/PhabricatorProjectLockController.php
--- a/src/applications/project/controller/PhabricatorProjectLockController.php
+++ b/src/applications/project/controller/PhabricatorProjectLockController.php
@@ -49,7 +49,8 @@
}
$xactions[] = id(new PhabricatorProjectTransaction())
- ->setTransactionType(PhabricatorProjectTransaction::TYPE_LOCKED)
+ ->setTransactionType(
+ PhabricatorProjectLockTransaction::TRANSACTIONTYPE)
->setNewValue($new_value);
$editor = 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_LOCKED;
$types[] = PhabricatorProjectTransaction::TYPE_PARENT;
$types[] = PhabricatorProjectTransaction::TYPE_MILESTONE;
$types[] = PhabricatorProjectTransaction::TYPE_HASWORKBOARD;
@@ -46,8 +45,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_LOCKED:
- return (int)$object->getIsMembershipLocked();
case PhabricatorProjectTransaction::TYPE_HASWORKBOARD:
return (int)$object->getHasWorkboard();
case PhabricatorProjectTransaction::TYPE_PARENT:
@@ -69,7 +66,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_LOCKED:
case PhabricatorProjectTransaction::TYPE_PARENT:
case PhabricatorProjectTransaction::TYPE_MILESTONE:
case PhabricatorProjectTransaction::TYPE_DEFAULT_SORT:
@@ -93,9 +89,6 @@
PhabricatorApplicationTransaction $xaction) {
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_LOCKED:
- $object->setIsMembershipLocked($xaction->getNewValue());
- return;
case PhabricatorProjectTransaction::TYPE_PARENT:
$object->setParentProjectPHID($xaction->getNewValue());
return;
@@ -129,7 +122,6 @@
$new = $xaction->getNewValue();
switch ($xaction->getTransactionType()) {
- case PhabricatorProjectTransaction::TYPE_LOCKED:
case PhabricatorProjectTransaction::TYPE_PARENT:
case PhabricatorProjectTransaction::TYPE_MILESTONE:
case PhabricatorProjectTransaction::TYPE_HASWORKBOARD:
@@ -320,7 +312,7 @@
$object,
PhabricatorPolicyCapability::CAN_EDIT);
return;
- case PhabricatorProjectTransaction::TYPE_LOCKED:
+ case PhabricatorProjectLockTransaction::TRANSACTIONTYPE:
PhabricatorPolicyFilter::requireCapability(
$this->requireActor(),
newv($this->getEditorApplicationClass(), array()),
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_LOCKED = 'project:locked';
const TYPE_PARENT = 'project:parent';
const TYPE_MILESTONE = 'project:milestone';
const TYPE_HASWORKBOARD = 'project:hasworkboard';
@@ -87,16 +86,7 @@
}
public function getIcon() {
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
switch ($this->getTransactionType()) {
- case self::TYPE_LOCKED:
- if ($new) {
- return 'fa-lock';
- } else {
- return 'fa-unlock';
- }
case self::TYPE_MEMBERS:
return 'fa-user';
}
@@ -115,18 +105,6 @@
'%s created this project.',
$this->renderHandleLink($author_phid));
- case self::TYPE_LOCKED:
- if ($new) {
- return pht(
- "%s locked this project's membership.",
- $author_handle);
- } else {
- return pht(
- "%s unlocked this project's membership.",
- $author_handle);
- }
- break;
-
case self::TYPE_MEMBERS:
$add = array_diff($new, $old);
$rem = array_diff($old, $new);
@@ -196,33 +174,6 @@
return parent::getTitle();
}
- public function getTitleForFeed() {
- $author_phid = $this->getAuthorPHID();
- $object_phid = $this->getObjectPHID();
- $author_handle = $this->renderHandleLink($author_phid);
- $object_handle = $this->renderHandleLink($object_phid);
-
- $old = $this->getOldValue();
- $new = $this->getNewValue();
-
- switch ($this->getTransactionType()) {
- case self::TYPE_LOCKED:
- if ($new) {
- return pht(
- '%s locked membership for %s.',
- $author_handle,
- $object_handle);
- } else {
- return pht(
- '%s unlocked membership for %s.',
- $author_handle,
- $object_handle);
- }
- }
-
- return parent::getTitleForFeed();
- }
-
public function getMailTags() {
$tags = array();
switch ($this->getTransactionType()) {
@@ -247,7 +198,7 @@
}
break;
case PhabricatorProjectStatusTransaction::TRANSACTIONTYPE:
- case self::TYPE_LOCKED:
+ case PhabricatorProjectLockTransaction::TRANSACTIONTYPE:
default:
$tags[] = self::MAILTAG_OTHER;
break;
diff --git a/src/applications/project/xaction/PhabricatorProjectLockTransaction.php b/src/applications/project/xaction/PhabricatorProjectLockTransaction.php
new file mode 100644
--- /dev/null
+++ b/src/applications/project/xaction/PhabricatorProjectLockTransaction.php
@@ -0,0 +1,56 @@
+<?php
+
+final class PhabricatorProjectLockTransaction
+ extends PhabricatorProjectTransactionType {
+
+ const TRANSACTIONTYPE = 'project:locked';
+
+ public function generateOldValue($object) {
+ return (int)$object->getIsMembershipLocked();
+ }
+
+ public function applyInternalEffects($object, $value) {
+ $object->setIsMembershipLocked($value);
+ }
+
+ public function getTitle() {
+ $new = $this->getNewValue();
+
+ if ($new) {
+ return pht(
+ "%s locked this project's membership.",
+ $this->renderAuthor());
+ } else {
+ return pht(
+ "%s unlocked this project's membership.",
+ $this->renderAuthor());
+ }
+ }
+
+ public function getTitleForFeed() {
+ $new = $this->getNewValue();
+
+ if ($new) {
+ return pht(
+ '%s locked %s membership.',
+ $this->renderAuthor(),
+ $this->renderObject());
+ } else {
+ return pht(
+ '%s unlocked %s membership.',
+ $this->renderAuthor(),
+ $this->renderObject());
+ }
+ }
+
+ public function getIcon() {
+ $new = $this->getNewValue();
+
+ if ($new) {
+ return 'fa-lock';
+ } else {
+ return 'fa-unlock';
+ }
+ }
+
+}

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 21, 4:42 PM (2 d, 4 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7714680
Default Alt Text
D17986.diff (8 KB)

Event Timeline