'commented on', self::ACTION_ACCEPT => 'accepted', self::ACTION_REJECT => 'requested changes to', self::ACTION_RETHINK => 'planned changes to', self::ACTION_ABANDON => 'abandoned', self::ACTION_CLOSE => pht('closed'), self::ACTION_REQUEST => 'requested a review of', self::ACTION_RECLAIM => 'reclaimed', self::ACTION_UPDATE => 'updated', self::ACTION_RESIGN => 'resigned from', self::ACTION_SUMMARIZE => 'summarized', self::ACTION_TESTPLAN => 'explained the test plan for', self::ACTION_CREATE => 'created', self::ACTION_ADDREVIEWERS => 'added reviewers to', self::ACTION_ADDCCS => 'added CCs to', self::ACTION_CLAIM => 'commandeered', self::ACTION_REOPEN => 'reopened', ); if (!empty($verbs[$action])) { return $verbs[$action]; } else { return 'brazenly "'.$action.'ed"'; } } public static function getActionVerb($action) { static $verbs = array( self::ACTION_COMMENT => 'Comment', self::ACTION_ACCEPT => "Accept Revision \xE2\x9C\x94", self::ACTION_REJECT => "Request Changes \xE2\x9C\x98", self::ACTION_RETHINK => "Plan Changes \xE2\x9C\x98", self::ACTION_ABANDON => 'Abandon Revision', self::ACTION_REQUEST => 'Request Review', self::ACTION_RECLAIM => 'Reclaim Revision', self::ACTION_RESIGN => 'Resign as Reviewer', self::ACTION_ADDREVIEWERS => 'Add Reviewers', self::ACTION_ADDCCS => 'Add CCs', self::ACTION_CLOSE => 'Close Revision', self::ACTION_CLAIM => 'Commandeer Revision', self::ACTION_REOPEN => 'Reopen', ); if (!empty($verbs[$action])) { return $verbs[$action]; } else { return 'brazenly '.$action; } } public static function allowReviewers($action) { if ($action == DifferentialAction::ACTION_ADDREVIEWERS || $action == DifferentialAction::ACTION_REQUEST) { return true; } return false; } }