1
0
Fork 0
mirror of https://we.phorge.it/source/phorge.git synced 2024-12-24 06:20:56 +01:00

Provide getObjectOwnerPHID() on inline comment views

Summary:
This returns the PHID of the current revision owner, or the commit author, if one exists.

NOTE: For drafts, we currently return `null`; I'll fix that in a future change. Should be correct for submitted comments.

Test Plan: Added an inline, nothing seemed broken.

Reviewers: chad

Reviewed By: chad

Subscribers: epriestley

Differential Revision: https://secure.phabricator.com/D12185
This commit is contained in:
epriestley 2015-03-27 11:23:10 -07:00
parent 90ccd37a8c
commit 174cf82398
8 changed files with 50 additions and 3 deletions

View file

@ -206,6 +206,7 @@ final class DifferentialChangesetViewController extends DifferentialController {
$revision_id = $diff->getRevisionID(); $revision_id = $diff->getRevisionID();
$can_mark = false; $can_mark = false;
$object_owner_phid = null;
if ($revision_id) { if ($revision_id) {
$revision = id(new DifferentialRevisionQuery()) $revision = id(new DifferentialRevisionQuery())
->setViewer($viewer) ->setViewer($viewer)
@ -213,6 +214,7 @@ final class DifferentialChangesetViewController extends DifferentialController {
->executeOne(); ->executeOne();
if ($revision) { if ($revision) {
$can_mark = ($revision->getAuthorPHID() == $viewer->getPHID()); $can_mark = ($revision->getAuthorPHID() == $viewer->getPHID());
$object_owner_phid = $revision->getAuthorPHID();
} }
} }
@ -221,6 +223,7 @@ final class DifferentialChangesetViewController extends DifferentialController {
->setMarkupEngine($engine) ->setMarkupEngine($engine)
->setShowEditAndReplyLinks(true) ->setShowEditAndReplyLinks(true)
->setCanMarkDone($can_mark) ->setCanMarkDone($can_mark)
->setObjectOwnerPHID($object_owner_phid)
->setRange($range_s, $range_e) ->setRange($range_s, $range_e)
->setMask($mask); ->setMask($mask);

View file

@ -49,6 +49,7 @@ final class DifferentialChangesetParser {
private $highlightingDisabled; private $highlightingDisabled;
private $showEditAndReplyLinks = true; private $showEditAndReplyLinks = true;
private $canMarkDone; private $canMarkDone;
private $objectOwnerPHID;
private $rangeStart; private $rangeStart;
private $rangeEnd; private $rangeEnd;
@ -126,6 +127,15 @@ final class DifferentialChangesetParser {
return $this->canMarkDone; return $this->canMarkDone;
} }
public function setObjectOwnerPHID($phid) {
$this->objectOwnerPHID = $phid;
return $this;
}
public function getObjectOwnerPHID() {
return $this->objectOwnerPHID;
}
public static function getDefaultRendererForViewer(PhabricatorUser $viewer) { public static function getDefaultRendererForViewer(PhabricatorUser $viewer) {
$prefs = $viewer->loadPreferences(); $prefs = $viewer->loadPreferences();
$pref_unified = PhabricatorUserPreferences::PREFERENCE_DIFF_UNIFIED; $pref_unified = PhabricatorUserPreferences::PREFERENCE_DIFF_UNIFIED;
@ -843,6 +853,7 @@ final class DifferentialChangesetParser {
->setOriginalCharacterEncoding($encoding) ->setOriginalCharacterEncoding($encoding)
->setShowEditAndReplyLinks($this->getShowEditAndReplyLinks()) ->setShowEditAndReplyLinks($this->getShowEditAndReplyLinks())
->setCanMarkDone($this->getCanMarkDone()) ->setCanMarkDone($this->getCanMarkDone())
->setObjectOwnerPHID($this->getObjectOwnerPHID())
->setHighlightingDisabled($this->highlightingDisabled); ->setHighlightingDisabled($this->highlightingDisabled);
$shield = null; $shield = null;

View file

@ -465,7 +465,8 @@ abstract class DifferentialChangesetHTMLRenderer
->setMarkupEngine($this->getMarkupEngine()) ->setMarkupEngine($this->getMarkupEngine())
->setEditable($edit) ->setEditable($edit)
->setAllowReply($allow_reply) ->setAllowReply($allow_reply)
->setCanMarkDone($allow_done); ->setCanMarkDone($allow_done)
->setObjectOwnerPHID($this->getObjectOwnerPHID());
} }

View file

@ -32,6 +32,7 @@ abstract class DifferentialChangesetRenderer {
private $originalCharacterEncoding; private $originalCharacterEncoding;
private $showEditAndReplyLinks; private $showEditAndReplyLinks;
private $canMarkDone; private $canMarkDone;
private $objectOwnerPHID;
private $highlightingDisabled; private $highlightingDisabled;
private $oldFile = false; private $oldFile = false;
@ -334,6 +335,15 @@ abstract class DifferentialChangesetRenderer {
return $this->canMarkDone; return $this->canMarkDone;
} }
public function setObjectOwnerPHID($phid) {
$this->objectOwnerPHID = $phid;
return $this;
}
public function getObjectOwnerPHID() {
return $this->objectOwnerPHID;
}
final public function renderChangesetTable($content) { final public function renderChangesetTable($content) {
$props = null; $props = null;
if ($this->shouldRenderPropertyChangeHeader()) { if ($this->shouldRenderPropertyChangeHeader()) {

View file

@ -95,6 +95,7 @@ final class DiffusionDiffController extends DiffusionController {
$parser->setCanMarkDone( $parser->setCanMarkDone(
($commit->getAuthorPHID()) && ($commit->getAuthorPHID()) &&
($viewer->getPHID() == $commit->getAuthorPHID())); ($viewer->getPHID() == $commit->getAuthorPHID()));
$parser->setObjectOwnerPHID($commit->getAuthorPHID());
$parser->setWhitespaceMode( $parser->setWhitespaceMode(
DifferentialChangesetParser::WHITESPACE_SHOW_ALL); DifferentialChangesetParser::WHITESPACE_SHOW_ALL);

View file

@ -307,13 +307,18 @@ abstract class PhabricatorInlineCommentController
$handles = $this->loadViewerHandles($phids); $handles = $this->loadViewerHandles($phids);
// TODO: This is not correct, but figuring it out is a little bit
// involved and it only affects drafts.
$object_owner_phid = null;
$view = id(new PHUIDiffInlineCommentDetailView()) $view = id(new PHUIDiffInlineCommentDetailView())
->setInlineComment($inline) ->setInlineComment($inline)
->setIsOnRight($on_right) ->setIsOnRight($on_right)
->setMarkupEngine($engine) ->setMarkupEngine($engine)
->setHandles($handles) ->setHandles($handles)
->setEditable(true) ->setEditable(true)
->setCanMarkDone(false); ->setCanMarkDone(false)
->setObjectOwnerPHID($object_owner_phid);
$view = $this->buildScaffoldForView($view); $view = $this->buildScaffoldForView($view);

View file

@ -26,13 +26,17 @@ abstract class PhabricatorInlineCommentPreviewController
$views = array(); $views = array();
foreach ($inlines as $inline) { foreach ($inlines as $inline) {
// TODO: This is incorrect, but figuring it out is somewhat involved.
$object_owner_phid = null;
$view = id(new PHUIDiffInlineCommentDetailView()) $view = id(new PHUIDiffInlineCommentDetailView())
->setInlineComment($inline) ->setInlineComment($inline)
->setMarkupEngine($engine) ->setMarkupEngine($engine)
->setHandles($handles) ->setHandles($handles)
->setEditable(false) ->setEditable(false)
->setPreview(true) ->setPreview(true)
->setCanMarkDone(false); ->setCanMarkDone(false)
->setObjectOwnerPHID($object_owner_phid);
$views[] = $view->render(); $views[] = $view->render();
} }
$views = phutil_implode_html("\n", $views); $views = phutil_implode_html("\n", $views);

View file

@ -11,6 +11,7 @@ final class PHUIDiffInlineCommentDetailView
private $allowReply; private $allowReply;
private $renderer; private $renderer;
private $canMarkDone; private $canMarkDone;
private $objectOwnerPHID;
public function setInlineComment(PhabricatorInlineCommentInterface $comment) { public function setInlineComment(PhabricatorInlineCommentInterface $comment) {
$this->inlineComment = $comment; $this->inlineComment = $comment;
@ -61,6 +62,17 @@ final class PHUIDiffInlineCommentDetailView
return $this->canMarkDone; return $this->canMarkDone;
} }
public function setObjectOwnerPHID($phid) {
$this->objectOwnerPHID = $phid;
return $this;
}
public function getObjectOwnerPHID() {
return $this->objectOwnerPHID;
}
public function render() { public function render() {
$inline = $this->inlineComment; $inline = $this->inlineComment;