diff --git a/src/applications/diffusion/editor/DiffusionCommitEditEngine.php b/src/applications/diffusion/editor/DiffusionCommitEditEngine.php index 5b7277000f..6e45241d68 100644 --- a/src/applications/diffusion/editor/DiffusionCommitEditEngine.php +++ b/src/applications/diffusion/editor/DiffusionCommitEditEngine.php @@ -1,179 +1,180 @@ attachRepository($repository) ->attachCommitData($data) ->attachAudits(array()); } protected function newObjectQuery() { $viewer = $this->getViewer(); return id(new DiffusionCommitQuery()) ->needCommitData(true) ->needAuditRequests(true) - ->needAuditAuthority(array($viewer)); + ->needAuditAuthority(array($viewer)) + ->needIdentities(true); } protected function getEditorURI() { return $this->getApplication()->getApplicationURI('commit/edit/'); } protected function newCommentActionGroups() { return array( id(new PhabricatorEditEngineCommentActionGroup()) ->setKey(self::ACTIONGROUP_AUDIT) ->setLabel(pht('Audit Actions')), id(new PhabricatorEditEngineCommentActionGroup()) ->setKey(self::ACTIONGROUP_COMMIT) ->setLabel(pht('Commit Actions')), ); } protected function getObjectCreateTitleText($object) { return pht('Create Commit'); } protected function getObjectCreateShortText() { return pht('Create Commit'); } protected function getObjectEditTitleText($object) { return pht('Edit Commit: %s', $object->getDisplayName()); } protected function getObjectEditShortText($object) { return $object->getDisplayName(); } protected function getObjectName() { return pht('Commit'); } protected function getObjectViewURI($object) { return $object->getURI(); } protected function getCreateNewObjectPolicy() { return PhabricatorPolicies::POLICY_NOONE; } protected function buildCustomEditFields($object) { $viewer = $this->getViewer(); $data = $object->getCommitData(); $fields = array(); $fields[] = id(new PhabricatorDatasourceEditField()) ->setKey('auditors') ->setLabel(pht('Auditors')) ->setDatasource(new DiffusionAuditorDatasource()) ->setUseEdgeTransactions(true) ->setTransactionType( DiffusionCommitAuditorsTransaction::TRANSACTIONTYPE) ->setCommentActionLabel(pht('Change Auditors')) ->setDescription(pht('Auditors for this commit.')) ->setConduitDescription(pht('Change the auditors for this commit.')) ->setConduitTypeDescription(pht('New auditors.')) ->setValue($object->getAuditorPHIDsForEdit()); $actions = DiffusionCommitActionTransaction::loadAllActions(); $actions = msortv($actions, 'getCommitActionOrderVector'); foreach ($actions as $key => $action) { $fields[] = $action->newEditField($object, $viewer); } return $fields; } protected function newAutomaticCommentTransactions($object) { $viewer = $this->getViewer(); $xactions = array(); $inlines = PhabricatorAuditInlineComment::loadDraftComments( $viewer, $object->getPHID(), $raw = true); $inlines = msort($inlines, 'getID'); $editor = $object->getApplicationTransactionEditor() ->setActor($viewer); $query_template = id(new DiffusionDiffInlineCommentQuery()) ->withCommitPHIDs(array($object->getPHID())); $xactions = $editor->newAutomaticInlineTransactions( $object, $inlines, PhabricatorAuditActionConstants::INLINE, $query_template); return $xactions; } protected function newCommentPreviewContent($object, array $xactions) { $viewer = $this->getViewer(); $type_inline = PhabricatorAuditActionConstants::INLINE; $inlines = array(); foreach ($xactions as $xaction) { if ($xaction->getTransactionType() === $type_inline) { $inlines[] = $xaction->getComment(); } } $content = array(); if ($inlines) { $inline_preview = id(new PHUIDiffInlineCommentPreviewListView()) ->setViewer($viewer) ->setInlineComments($inlines); $content[] = phutil_tag( 'div', array( 'id' => 'inline-comment-preview', ), $inline_preview); } return $content; } }