Page MenuHomePhorge

D25550.1734790625.diff
No OneTemporary

D25550.1734790625.diff

diff --git a/src/applications/maniphest/editor/ManiphestTransactionEditor.php b/src/applications/maniphest/editor/ManiphestTransactionEditor.php
--- a/src/applications/maniphest/editor/ManiphestTransactionEditor.php
+++ b/src/applications/maniphest/editor/ManiphestTransactionEditor.php
@@ -324,14 +324,13 @@
$actor_phid = $actor->getPHID();
$results = parent::expandTransactions($object, $xactions);
-
$is_unassigned = ($object->getOwnerPHID() === null);
- $any_assign = false;
+ $any_xassign = null;
foreach ($xactions as $xaction) {
if ($xaction->getTransactionType() ==
ManiphestTaskOwnerTransaction::TRANSACTIONTYPE) {
- $any_assign = true;
+ $any_xassign = $xaction;
break;
}
}
@@ -353,17 +352,26 @@
$is_closing = ManiphestTaskStatus::isClosedStatus($new_status);
}
+ // Automatically claim the task if the status is configured as such.
// If the task is not assigned, not being assigned, currently open, and
// being closed, try to assign the actor as the owner.
- if ($is_unassigned && !$any_assign && $is_open && $is_closing) {
- $is_claim = ManiphestTaskStatus::isClaimStatus($new_status);
-
- // Don't assign the actor if they aren't a real user.
- // Don't claim the task if the status is configured to not claim.
- if ($actor_phid && $is_claim) {
+ // Don't assign the actor if they aren't a real user.
+ $is_claim = ManiphestTaskStatus::isClaimStatus($new_status);
+ if ($is_unassigned && $is_open && $is_closing && $is_claim && $actor_phid) {
+ if ($any_xassign === null) {
+ // Green light for automatic auto-claim since nothing is manually set.
$results[] = id(new ManiphestTransaction())
->setTransactionType(ManiphestTaskOwnerTransaction::TRANSACTIONTYPE)
->setNewValue($actor_phid);
+ } else if ($any_xassign->getNewValue() === null) {
+ // We have an explicit <"Assign / Claim" = nothing> in the frontend.
+ // The user has probably tried to "undo" the above automatic auto-claim.
+ // When saving, this would cause the "no effect" warning.
+ // So we suppress that confusing warning.
+ // https://we.phorge.it/T15164
+ if ($any_xassign->getNewValue() === null) {
+ $any_xassign->setIgnoreOnNoEffect(true);
+ }
}
}

File Metadata

Mime Type
text/plain
Expires
Sat, Dec 21, 14:17 (12 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1024734
Default Alt Text
D25550.1734790625.diff (2 KB)

Event Timeline