1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-22 13:30:55 +01:00

Improve strings for creating blocking subtasks

Summary:
Ref T6884. Ref T10004. For various reasons we previously didn't publish these transactions, but now do. This is probably a better behavior overall, but we didn't have reasonable strings for them.

Parent tasks now show "alice created blocking task Txxx.".

Feed now shows nothing, since "alice created task Txxx." is right next to any story we would show and showing them both seems silly.

Test Plan:
  - Created subtasks.
  - Viewed parent tasks.
  - Viewed feed.
  - Saw pretty reasonable strings/stories.

Reviewers: chad

Reviewed By: chad

Maniphest Tasks: T6884, T10004

Differential Revision: https://secure.phabricator.com/D14849
This commit is contained in:
epriestley 2015-12-21 16:26:34 -08:00
parent a761f73384
commit 57909a705c
2 changed files with 27 additions and 5 deletions

View file

@ -371,20 +371,22 @@ final class ManiphestTransactionEditor
$new = $unblock_xaction->getNewValue(); $new = $unblock_xaction->getNewValue();
foreach ($blocked_tasks as $blocked_task) { foreach ($blocked_tasks as $blocked_task) {
$unblock_xactions = array(); $parent_xaction = id(new ManiphestTransaction())
$unblock_xactions[] = id(new ManiphestTransaction())
->setTransactionType(ManiphestTransaction::TYPE_UNBLOCK) ->setTransactionType(ManiphestTransaction::TYPE_UNBLOCK)
->setOldValue(array($object->getPHID() => $old)) ->setOldValue(array($object->getPHID() => $old))
->setNewValue(array($object->getPHID() => $new)); ->setNewValue(array($object->getPHID() => $new));
if ($this->getIsNewObject()) {
$parent_xaction->setMetadataValue('blocker.new', true);
}
id(new ManiphestTransactionEditor()) id(new ManiphestTransactionEditor())
->setActor($this->getActor()) ->setActor($this->getActor())
->setActingAsPHID($this->getActingAsPHID()) ->setActingAsPHID($this->getActingAsPHID())
->setContentSource($this->getContentSource()) ->setContentSource($this->getContentSource())
->setContinueOnNoEffect(true) ->setContinueOnNoEffect(true)
->setContinueOnMissingFields(true) ->setContinueOnMissingFields(true)
->applyTransactions($blocked_task, $unblock_xactions); ->applyTransactions($blocked_task, array($parent_xaction));
} }
} }
} }

View file

@ -167,6 +167,21 @@ final class ManiphestTransaction
return parent::shouldHide(); return parent::shouldHide();
} }
public function shouldHideForFeed() {
switch ($this->getTransactionType()) {
case self::TYPE_UNBLOCK:
// Hide "alice created X, a task blocking Y." from feed because it
// will almost always appear adjacent to "alice created Y".
$is_new = $this->getMetadataValue('blocker.new');
if ($is_new) {
return true;
}
break;
}
return parent::shouldHideForFeed();
}
public function getActionStrength() { public function getActionStrength() {
switch ($this->getTransactionType()) { switch ($this->getTransactionType()) {
case self::TYPE_TITLE: case self::TYPE_TITLE:
@ -479,7 +494,12 @@ final class ManiphestTransaction
$old_name = ManiphestTaskStatus::getTaskStatusName($old_status); $old_name = ManiphestTaskStatus::getTaskStatusName($old_status);
$new_name = ManiphestTaskStatus::getTaskStatusName($new_status); $new_name = ManiphestTaskStatus::getTaskStatusName($new_status);
if ($old_closed && !$new_closed) { if ($this->getMetadataValue('blocker.new')) {
return pht(
'%s created blocking task %s.',
$this->renderHandleLink($author_phid),
$this->renderHandleLink($blocker_phid));
} else if ($old_closed && !$new_closed) {
return pht( return pht(
'%s reopened blocking task %s as "%s".', '%s reopened blocking task %s as "%s".',
$this->renderHandleLink($author_phid), $this->renderHandleLink($author_phid),