Path: blob/master/src/applications/diffusion/xaction/DiffusionCommitConcernTransaction.php
12241 views
<?php12final class DiffusionCommitConcernTransaction3extends DiffusionCommitAuditTransaction {45const TRANSACTIONTYPE = 'diffusion.commit.concern';6const ACTIONKEY = 'concern';78protected function getCommitActionLabel() {9return pht('Raise Concern');10}1112protected function getCommitActionDescription() {13return pht('This commit will be returned to the author for consideration.');14}1516public function getIcon() {17return 'fa-times-circle-o';18}1920public function getColor() {21return 'red';22}2324protected function getCommitActionOrder() {25return 600;26}2728public function getActionName() {29return pht('Raised Concern');30}3132public function applyInternalEffects($object, $value) {33// NOTE: We force the commit directly into "Concern Raised" so that we34// override a possible "Needs Verification" state.35$object->setAuditStatus(DiffusionCommitAuditStatus::CONCERN_RAISED);36}3738public function applyExternalEffects($object, $value) {39$status = PhabricatorAuditRequestStatus::CONCERNED;40$actor = $this->getActor();41$this->applyAuditorEffect($object, $actor, $value, $status);42}4344protected function validateAction($object, PhabricatorUser $viewer) {45if ($this->isViewerCommitAuthor($object, $viewer)) {46throw new Exception(47pht(48'You can not raise a concern with this commit because you are '.49'the commit author. You can only raise concerns with commits '.50'you did not author.'));51}5253// Even if you've already raised a concern, you can raise again as long54// as the author requested you verify.55if ($this->isViewerFullyRejected($object, $viewer)) {56if (!$object->isAuditStatusNeedsVerification()) {57throw new Exception(58pht(59'You can not raise a concern with this commit because you have '.60'already raised a concern with it.'));61}62}63}6465public function getTitle() {66return pht(67'%s raised a concern with this commit.',68$this->renderAuthor());69}7071public function getTitleForFeed() {72return pht(73'%s raised a concern with %s.',74$this->renderAuthor(),75$this->renderObject());76}7778public function getTransactionTypeForConduit($xaction) {79return 'concern';80}8182public function getFieldValuesForConduit($object, $data) {83return array();84}8586}878889