Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15417345
D17986.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
8 KB
Referenced Files
None
Subscribers
None
D17986.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
@@ -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
Details
Attached
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)
Attached To
Mode
D17986: Migrate Project lock to modular transactions
Attached
Detach File
Event Timeline
Log In to Comment