@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.

Use a more modern design for "no reviewers" warning in Differential

Summary: Ref T2222. Currently this is a giant header box thing. Move it into the ObjectBox.

Test Plan: See screenshots.

Reviewers: btrahan, chad

Reviewed By: chad

CC: aran

Maniphest Tasks: T2222

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

+38 -34
+38 -34
src/applications/differential/controller/DifferentialRevisionViewController.php
··· 132 132 $aux_field->setHandles(array_select_keys($handles, $aux_phids[$key])); 133 133 } 134 134 135 - $reviewer_warning = null; 136 - if ($revision->getStatus() == 137 - ArcanistDifferentialRevisionStatus::NEEDS_REVIEW) { 138 - $has_live_reviewer = false; 139 - foreach ($revision->getReviewers() as $reviewer) { 140 - if (!$handles[$reviewer]->isDisabled()) { 141 - $has_live_reviewer = true; 142 - break; 143 - } 144 - } 145 - if (!$has_live_reviewer) { 146 - $reviewer_warning = new AphrontErrorView(); 147 - $reviewer_warning->setSeverity(AphrontErrorView::SEVERITY_WARNING); 148 - $reviewer_warning->setTitle(pht('No Active Reviewers')); 149 - if ($revision->getReviewers()) { 150 - $reviewer_warning->appendChild( 151 - phutil_tag( 152 - 'p', 153 - array(), 154 - pht('All specified reviewers are disabled and this revision '. 155 - 'needs review. You may want to add some new reviewers.'))); 156 - } else { 157 - $reviewer_warning->appendChild( 158 - phutil_tag( 159 - 'p', 160 - array(), 161 - pht('This revision has no specified reviewers and needs '. 162 - 'review. You may want to add some reviewers.'))); 163 - } 164 - } 165 - } 166 - 167 135 $request_uri = $request->getRequestURI(); 168 136 169 137 $limit = 100; ··· 257 225 258 226 $revision_detail->setActions($actions); 259 227 $revision_detail->setUser($user); 228 + 229 + $revision_detail_box = $revision_detail->render(); 230 + 231 + $revision_warnings = $this->buildRevisionWarnings($revision, $handles); 232 + if ($revision_warnings) { 233 + $revision_detail_box->setErrorView($revision_warnings); 234 + } 260 235 261 236 $comment_view = $this->buildTransactions( 262 237 $revision, ··· 420 395 ->setNavigationMarker(true); 421 396 422 397 $content = array( 423 - $reviewer_warning, 424 398 $top_anchor, 425 - $revision_detail, 399 + $revision_detail_box, 426 400 $page_pane, 427 401 ); 428 402 ··· 939 913 $timeline->setShowEditActions(false); 940 914 941 915 return $timeline; 916 + } 917 + 918 + private function buildRevisionWarnings( 919 + DifferentialRevision $revision, 920 + array $handles) { 921 + 922 + $status_needs_review = ArcanistDifferentialRevisionStatus::NEEDS_REVIEW; 923 + if ($revision->getStatus() != $status_needs_review) { 924 + return; 925 + } 926 + 927 + foreach ($revision->getReviewers() as $reviewer) { 928 + if (!$handles[$reviewer]->isDisabled()) { 929 + return; 930 + } 931 + } 932 + 933 + $warnings = array(); 934 + if ($revision->getReviewers()) { 935 + $warnings[] = pht( 936 + 'This revision needs review, but all specified reviewers are '. 937 + 'disabled or inactive.'); 938 + } else { 939 + $warnings[] = pht( 940 + 'This revision needs review, but there are no reviewers specified.'); 941 + } 942 + 943 + return id(new AphrontErrorView()) 944 + ->setSeverity(AphrontErrorView::SEVERITY_WARNING) 945 + ->setErrors($warnings); 942 946 } 943 947 944 948 }