diff --git a/src/applications/differential/controller/DifferentialRevisionViewController.php b/src/applications/differential/controller/DifferentialRevisionViewController.php --- a/src/applications/differential/controller/DifferentialRevisionViewController.php +++ b/src/applications/differential/controller/DifferentialRevisionViewController.php @@ -255,17 +255,14 @@ $target, $revision); - $comment_view = $this->buildTransactions( + $timeline = $this->buildTransactions( $revision, $diff_vs ? $diffs[$diff_vs] : $target, $target, $old_ids, $new_ids); - if (!$viewer_is_anonymous) { - $comment_view->setQuoteRef('D'.$revision->getID()); - $comment_view->setQuoteTargetID('comment-content'); - } + $timeline->setQuoteRef($revision->getMonogram()); $changeset_view = id(new DifferentialChangesetListView()) ->setChangesets($changesets) @@ -421,15 +418,33 @@ ); } - $footer[] = id(new DifferentialRevisionEditEngine()) + $comment_view = id(new DifferentialRevisionEditEngine()) ->setViewer($viewer) ->buildEditEngineCommentView($revision); - $object_id = 'D'.$revision->getID(); + $comment_view->setTransactionTimeline($timeline); + + $review_warnings = array(); + foreach ($field_list->getFields() as $field) { + $review_warnings[] = $field->getWarningsForDetailView(); + } + $review_warnings = array_mergev($review_warnings); + + if ($review_warnings) { + $warnings_view = id(new PHUIInfoView()) + ->setSeverity(PHUIInfoView::SEVERITY_WARNING) + ->setErrors($review_warnings); + + $comment_view->setInfoView($warnings_view); + } + + $footer[] = $comment_view; + + $monogram = $revision->getMonogram(); $operations_box = $this->buildOperationsBox($revision); $crumbs = $this->buildApplicationCrumbs(); - $crumbs->addTextCrumb($object_id, '/'.$object_id); + $crumbs->addTextCrumb($monogram, $revision->getURI()); $crumbs->setBorder(true); $filetree_on = $viewer->compareUserSetting( @@ -442,8 +457,8 @@ $collapsed_value = $viewer->getUserSetting($collapsed_key); $nav = id(new DifferentialChangesetFileTreeSideNavBuilder()) - ->setTitle('D'.$revision->getID()) - ->setBaseURI(new PhutilURI('/D'.$revision->getID())) + ->setTitle($monogram) + ->setBaseURI(new PhutilURI($revision->getURI())) ->setCollapsed((bool)$collapsed_value) ->build($changesets); } @@ -454,19 +469,20 @@ ->setHeader($header) ->setSubheader($subheader) ->setCurtain($curtain) - ->setMainColumn(array( - $operations_box, - $info_view, - $details, - $diff_detail_box, - $unit_box, - $comment_view, - $signature_message, - )) + ->setMainColumn( + array( + $operations_box, + $info_view, + $details, + $diff_detail_box, + $unit_box, + $timeline, + $signature_message, + )) ->setFooter($footer); $page = $this->newPage() - ->setTitle($object_id.' '.$revision->getTitle()) + ->setTitle($monogram.' '.$revision->getTitle()) ->setCrumbs($crumbs) ->setPageObjectPHIDs(array($revision->getPHID())) ->appendChild($view); diff --git a/src/applications/transactions/view/PhabricatorApplicationTransactionCommentView.php b/src/applications/transactions/view/PhabricatorApplicationTransactionCommentView.php --- a/src/applications/transactions/view/PhabricatorApplicationTransactionCommentView.php +++ b/src/applications/transactions/view/PhabricatorApplicationTransactionCommentView.php @@ -20,6 +20,7 @@ private $headerText; private $noPermission; private $fullWidth; + private $infoView; private $currentVersion; private $versionedDraft; @@ -109,6 +110,15 @@ return $this; } + public function setInfoView(PHUIInfoView $info_view) { + $this->infoView = $info_view; + return $this; + } + + public function getInfoView() { + return $this->infoView; + } + public function setCommentActions(array $comment_actions) { assert_instances_of($comment_actions, 'PhabricatorEditEngineCommentAction'); $this->commentActions = $comment_actions; @@ -334,6 +344,15 @@ )); $form->appendChild($action_bar); + + $info_view = $this->getInfoView(); + if ($info_view) { + $info_box = id(new PHUIBoxView()) + ->addMargin(PHUI::MARGIN_LARGE) + ->appendChild($info_view); + $form->appendChild($info_box); + } + $form->appendChild($invisi_bar); $form->addClass('phui-comment-has-actions');