@recaptime-dev's working patches + fork for Phorge, a community fork of Phabricator. (Upstream dev and stable branches are at upstream/main and upstream/stable respectively.) hq.recaptime.dev/wiki/Phorge
phorge phabricator
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

Show add reviewer typehead when user selects resign as a reviewer.

Summary:
1. Show add reviewer typehead when user selects resign as a reviewer.
2. Change the label for add reviewers typehead when user selects resign as a reviewer.

Test Plan:
1. Add yourself as a reviewer in a diff.
2. Select "Resign as Reviewer" in comment editor.
Add reviewer typehead should display, with label "Suggest Another Reviewer".
Add reviewer typehead is also displayed after user refreshed the page with "Resign as Reviewer"
selected.

Reviewers: wez, epriestley

Reviewed By: epriestley

CC: aran, epriestley, akramer, person

Differential Revision: https://secure.phabricator.com/D6340

+29 -4
+2 -1
src/applications/differential/constants/DifferentialAction.php
··· 74 74 75 75 public static function allowReviewers($action) { 76 76 if ($action == DifferentialAction::ACTION_ADDREVIEWERS || 77 - $action == DifferentialAction::ACTION_REQUEST) { 77 + $action == DifferentialAction::ACTION_REQUEST || 78 + $action == DifferentialAction::ACTION_RESIGN) { 78 79 return true; 79 80 } 80 81 return false;
+7
src/applications/differential/editor/DifferentialCommentEditor.php
··· 139 139 "You can not resign from this revision because you are not ". 140 140 "a reviewer."); 141 141 } 142 + 143 + list($added_reviewers, $ignored) = $this->alterReviewers(); 144 + if ($added_reviewers) { 145 + $key = DifferentialComment::METADATA_ADDED_REVIEWERS; 146 + $metadata[$key] = $added_reviewers; 147 + } 148 + 142 149 DifferentialRevisionEditor::alterReviewers( 143 150 $revision, 144 151 $reviewer_phids,
+12 -2
src/applications/differential/view/DifferentialAddCommentView.php
··· 61 61 62 62 $enable_reviewers = DifferentialAction::allowReviewers($action); 63 63 $enable_ccs = ($action == DifferentialAction::ACTION_ADDCCS); 64 + $add_reviewers_labels = array( 65 + 'add_reviewers' => pht('Add Reviewers'), 66 + 'resign' => pht('Suggest Reviewers'), 67 + ); 64 68 65 69 $form = new AphrontFormView(); 66 70 $form ··· 78 82 ->setOptions($this->actions)) 79 83 ->appendChild( 80 84 id(new AphrontFormTokenizerControl()) 81 - ->setLabel(pht('Add Reviewers')) 85 + ->setLabel($enable_reviewers ? $add_reviewers_labels[$action] : 86 + $add_reviewers_labels['add_reviewers']) 82 87 ->setName('reviewers') 83 88 ->setControlID('add-reviewers') 84 89 ->setControlStyle($enable_reviewers ? null : 'display: none') ··· 108 113 array( 109 114 'dynamic' => array( 110 115 'add-reviewers-tokenizer' => array( 111 - 'actions' => array('request_review' => 1, 'add_reviewers' => 1), 116 + 'actions' => array( 117 + 'request_review' => 1, 118 + 'add_reviewers' => 1, 119 + 'resign' => 1, 120 + ), 112 121 'src' => '/typeahead/common/users/', 113 122 'value' => $this->reviewers, 114 123 'row' => 'add-reviewers', 115 124 'ondemand' => PhabricatorEnv::getEnvConfig('tokenizer.ondemand'), 125 + 'labels' => $add_reviewers_labels, 116 126 'placeholder' => pht('Type a user name...'), 117 127 ), 118 128 'add-ccs-tokenizer' => array(
+8 -1
webroot/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js
··· 18 18 dynamic[k] = { 19 19 row : JX.$(props.row), 20 20 tokenizer : tokenizer, 21 - actions : props.actions 21 + actions : props.actions, 22 + labels: props.labels 22 23 }; 23 24 } 24 25 ··· 31 32 for (var k in dynamic) { 32 33 if (dynamic[k].actions[v]) { 33 34 JX.DOM.show(dynamic[k].row); 35 + if (dynamic[k].labels) { 36 + var label_node = JX.DOM.find(dynamic[k].row, 'label'); 37 + if (label_node) { 38 + JX.DOM.setContent(label_node, dynamic[k].labels[v]); 39 + } 40 + } 34 41 dynamic[k].tokenizer.refresh(); 35 42 } else { 36 43 JX.DOM.hide(dynamic[k].row);