mirror of
https://we.phorge.it/source/phorge.git
synced 2024-11-28 17:52:43 +01:00
77bf245637
Summary: Ref T2543. Cleans up some more references to ArcanistDifferentialRevisionStatus, moving toward getting rid of it completely. Test Plan: Planned changes, requested review, inspected the "close" one since it isn't trivial to trigger. Reviewers: chad Reviewed By: chad Maniphest Tasks: T2543 Differential Revision: https://secure.phabricator.com/D18408
76 lines
1.9 KiB
PHP
76 lines
1.9 KiB
PHP
<?php
|
|
|
|
final class DifferentialRevisionRequestReviewTransaction
|
|
extends DifferentialRevisionActionTransaction {
|
|
|
|
const TRANSACTIONTYPE = 'differential.revision.request';
|
|
const ACTIONKEY = 'request-review';
|
|
|
|
protected function getRevisionActionLabel() {
|
|
return pht('Request Review');
|
|
}
|
|
|
|
protected function getRevisionActionDescription() {
|
|
return pht('This revision will be returned to reviewers for feedback.');
|
|
}
|
|
|
|
public function getColor() {
|
|
return 'sky';
|
|
}
|
|
|
|
protected function getRevisionActionOrder() {
|
|
return 200;
|
|
}
|
|
|
|
public function getActionName() {
|
|
return pht('Requested Review');
|
|
}
|
|
|
|
public function generateOldValue($object) {
|
|
return $object->isNeedsReview();
|
|
}
|
|
|
|
public function applyInternalEffects($object, $value) {
|
|
$status_review = ArcanistDifferentialRevisionStatus::NEEDS_REVIEW;
|
|
$object->setStatus($status_review);
|
|
}
|
|
|
|
protected function validateAction($object, PhabricatorUser $viewer) {
|
|
if ($object->isNeedsReview()) {
|
|
throw new Exception(
|
|
pht(
|
|
'You can not request review of this revision because this '.
|
|
'revision is already under review and the action would have '.
|
|
'no effect.'));
|
|
}
|
|
|
|
if ($object->isClosed()) {
|
|
throw new Exception(
|
|
pht(
|
|
'You can not request review of this revision because it has '.
|
|
'already been closed. You can only request review of open '.
|
|
'revisions.'));
|
|
}
|
|
|
|
if (!$this->isViewerRevisionAuthor($object, $viewer)) {
|
|
throw new Exception(
|
|
pht(
|
|
'You can not request review of this revision because you are not '.
|
|
'the author of the revision.'));
|
|
}
|
|
}
|
|
|
|
public function getTitle() {
|
|
return pht(
|
|
'%s requested review of this revision.',
|
|
$this->renderAuthor());
|
|
}
|
|
|
|
public function getTitleForFeed() {
|
|
return pht(
|
|
'%s requested review of %s.',
|
|
$this->renderAuthor(),
|
|
$this->renderObject());
|
|
}
|
|
|
|
}
|