diff --git a/src/applications/differential/editor/DifferentialTransactionEditor.php b/src/applications/differential/editor/DifferentialTransactionEditor.php index bf7faa2700..f24bc7abda 100644 --- a/src/applications/differential/editor/DifferentialTransactionEditor.php +++ b/src/applications/differential/editor/DifferentialTransactionEditor.php @@ -339,12 +339,22 @@ final class DifferentialTransactionEditor } } - if ($downgrade_accepts || $downgrade_rejects) { + $downgrade = array(); + if ($downgrade_accepts) { + $downgrade[] = DifferentialReviewerStatus::STATUS_ACCEPTED; + } + + if ($downgrade_accepts) { + $downgrade[] = DifferentialReviewerStatus::STATUS_REJECTED; + } + + if ($downgrade) { $void_type = DifferentialRevisionVoidTransaction::TRANSACTIONTYPE; + $results[] = id(new DifferentialTransaction()) ->setTransactionType($void_type) ->setIgnoreOnNoEffect(true) - ->setNewValue(true); + ->setNewValue($downgrade); } $is_commandeer = false; diff --git a/src/applications/differential/xaction/DifferentialRevisionVoidTransaction.php b/src/applications/differential/xaction/DifferentialRevisionVoidTransaction.php index ae684d94fe..5073a9c464 100644 --- a/src/applications/differential/xaction/DifferentialRevisionVoidTransaction.php +++ b/src/applications/differential/xaction/DifferentialRevisionVoidTransaction.php @@ -28,7 +28,7 @@ final class DifferentialRevisionVoidTransaction AND reviewerStatus IN (%Ls)', $table_name, $object->getPHID(), - $this->getVoidableStatuses()); + $value); return ipull($rows, 'reviewerPHID'); } @@ -47,11 +47,11 @@ final class DifferentialRevisionVoidTransaction 'UPDATE %T SET voidedPHID = %s WHERE revisionPHID = %s AND voidedPHID IS NULL - AND reviewerStatus IN (%Ls)', + AND reviewerPHID IN (%Ls)', $table_name, $this->getActingAsPHID(), $object->getPHID(), - $this->getVoidableStatuses()); + $value); } public function shouldHide() {