Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F14007816
D17183.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
29 KB
Referenced Files
None
Subscribers
None
D17183.diff
View Options
diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -13,7 +13,7 @@
'core.pkg.js' => 'a2ead3fe',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '9535a7e6',
- 'differential.pkg.js' => '40b18f35',
+ 'differential.pkg.js' => 'ddfeb49b',
'diffusion.pkg.css' => '91c5d3a6',
'diffusion.pkg.js' => '84c8f8fd',
'favicon.ico' => '30672e08',
@@ -399,13 +399,12 @@
'rsrc/js/application/diff/behavior-preview-link.js' => '051c7832',
'rsrc/js/application/differential/ChangesetViewManager.js' => 'a2828756',
'rsrc/js/application/differential/DifferentialInlineCommentEditor.js' => '2e3f9738',
- 'rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js' => 'e10f8e18',
'rsrc/js/application/differential/behavior-comment-jump.js' => '4fdb476d',
'rsrc/js/application/differential/behavior-comment-preview.js' => 'b064af76',
'rsrc/js/application/differential/behavior-diff-radios.js' => 'e1ff79b1',
'rsrc/js/application/differential/behavior-dropdown-menus.js' => '9a6b9324',
'rsrc/js/application/differential/behavior-edit-inline-comments.js' => '4fbbc3e9',
- 'rsrc/js/application/differential/behavior-keyboard-nav.js' => '2c426492',
+ 'rsrc/js/application/differential/behavior-keyboard-nav.js' => '92904457',
'rsrc/js/application/differential/behavior-populate.js' => '8694b1df',
'rsrc/js/application/differential/behavior-toggle-files.js' => 'ca3f91eb',
'rsrc/js/application/differential/behavior-user-select.js' => 'a8d8459d',
@@ -627,13 +626,12 @@
'javelin-behavior-detect-timezone' => '4c193c96',
'javelin-behavior-device' => 'bb1dd507',
'javelin-behavior-diff-preview-link' => '051c7832',
- 'javelin-behavior-differential-add-reviewers-and-ccs' => 'e10f8e18',
'javelin-behavior-differential-comment-jump' => '4fdb476d',
'javelin-behavior-differential-diff-radios' => 'e1ff79b1',
'javelin-behavior-differential-dropdown-menus' => '9a6b9324',
'javelin-behavior-differential-edit-inline-comments' => '4fbbc3e9',
'javelin-behavior-differential-feedback-preview' => 'b064af76',
- 'javelin-behavior-differential-keyboard-navigation' => '2c426492',
+ 'javelin-behavior-differential-keyboard-navigation' => '92904457',
'javelin-behavior-differential-populate' => '8694b1df',
'javelin-behavior-differential-toggle-files' => 'ca3f91eb',
'javelin-behavior-differential-user-select' => 'a8d8459d',
@@ -1144,12 +1142,6 @@
'javelin-install',
'javelin-util',
),
- '2c426492' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-stratcom',
- 'phabricator-keyboard-shortcut',
- ),
'2caa8fb8' => array(
'javelin-install',
'javelin-event',
@@ -1651,6 +1643,12 @@
'javelin-dom',
'javelin-request',
),
+ 92904457 => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-stratcom',
+ 'phabricator-keyboard-shortcut',
+ ),
'92b9ec77' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -2086,11 +2084,6 @@
'javelin-request',
'javelin-util',
),
- 'e10f8e18' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'phabricator-prefab',
- ),
'e1621fd5' => array(
'phui-inline-comment-view-css',
),
@@ -2463,7 +2456,6 @@
'javelin-behavior-differential-populate',
'javelin-behavior-differential-diff-radios',
'javelin-behavior-differential-comment-jump',
- 'javelin-behavior-differential-add-reviewers-and-ccs',
'javelin-behavior-differential-keyboard-navigation',
'javelin-behavior-aphront-drag-and-drop-textarea',
'javelin-behavior-phabricator-object-selector',
diff --git a/resources/celerity/packages.php b/resources/celerity/packages.php
--- a/resources/celerity/packages.php
+++ b/resources/celerity/packages.php
@@ -195,7 +195,6 @@
'javelin-behavior-differential-populate',
'javelin-behavior-differential-diff-radios',
'javelin-behavior-differential-comment-jump',
- 'javelin-behavior-differential-add-reviewers-and-ccs',
'javelin-behavior-differential-keyboard-navigation',
'javelin-behavior-aphront-drag-and-drop-textarea',
'javelin-behavior-phabricator-object-selector',
diff --git a/src/__phutil_library_map__.php b/src/__phutil_library_map__.php
--- a/src/__phutil_library_map__.php
+++ b/src/__phutil_library_map__.php
@@ -1867,7 +1867,6 @@
'PhabricatorAsanaSubtaskHasObjectEdgeType' => 'applications/doorkeeper/edge/PhabricatorAsanaSubtaskHasObjectEdgeType.php',
'PhabricatorAsanaTaskHasObjectEdgeType' => 'applications/doorkeeper/edge/PhabricatorAsanaTaskHasObjectEdgeType.php',
'PhabricatorAuditActionConstants' => 'applications/audit/constants/PhabricatorAuditActionConstants.php',
- 'PhabricatorAuditAddCommentController' => 'applications/audit/controller/PhabricatorAuditAddCommentController.php',
'PhabricatorAuditApplication' => 'applications/audit/application/PhabricatorAuditApplication.php',
'PhabricatorAuditCommentEditor' => 'applications/audit/editor/PhabricatorAuditCommentEditor.php',
'PhabricatorAuditCommitStatusConstants' => 'applications/audit/constants/PhabricatorAuditCommitStatusConstants.php',
@@ -1879,7 +1878,6 @@
'PhabricatorAuditMailReceiver' => 'applications/audit/mail/PhabricatorAuditMailReceiver.php',
'PhabricatorAuditManagementDeleteWorkflow' => 'applications/audit/management/PhabricatorAuditManagementDeleteWorkflow.php',
'PhabricatorAuditManagementWorkflow' => 'applications/audit/management/PhabricatorAuditManagementWorkflow.php',
- 'PhabricatorAuditPreviewController' => 'applications/audit/controller/PhabricatorAuditPreviewController.php',
'PhabricatorAuditReplyHandler' => 'applications/audit/mail/PhabricatorAuditReplyHandler.php',
'PhabricatorAuditStatusConstants' => 'applications/audit/constants/PhabricatorAuditStatusConstants.php',
'PhabricatorAuditTransaction' => 'applications/audit/storage/PhabricatorAuditTransaction.php',
@@ -6757,7 +6755,6 @@
'PhabricatorAsanaSubtaskHasObjectEdgeType' => 'PhabricatorEdgeType',
'PhabricatorAsanaTaskHasObjectEdgeType' => 'PhabricatorEdgeType',
'PhabricatorAuditActionConstants' => 'Phobject',
- 'PhabricatorAuditAddCommentController' => 'PhabricatorAuditController',
'PhabricatorAuditApplication' => 'PhabricatorApplication',
'PhabricatorAuditCommentEditor' => 'PhabricatorEditor',
'PhabricatorAuditCommitStatusConstants' => 'Phobject',
@@ -6772,7 +6769,6 @@
'PhabricatorAuditMailReceiver' => 'PhabricatorObjectMailReceiver',
'PhabricatorAuditManagementDeleteWorkflow' => 'PhabricatorAuditManagementWorkflow',
'PhabricatorAuditManagementWorkflow' => 'PhabricatorManagementWorkflow',
- 'PhabricatorAuditPreviewController' => 'PhabricatorAuditController',
'PhabricatorAuditReplyHandler' => 'PhabricatorApplicationTransactionReplyHandler',
'PhabricatorAuditStatusConstants' => 'Phobject',
'PhabricatorAuditTransaction' => 'PhabricatorModularTransaction',
diff --git a/src/applications/audit/application/PhabricatorAuditApplication.php b/src/applications/audit/application/PhabricatorAuditApplication.php
--- a/src/applications/audit/application/PhabricatorAuditApplication.php
+++ b/src/applications/audit/application/PhabricatorAuditApplication.php
@@ -35,8 +35,6 @@
return array(
'/audit/' => array(
'(?:query/(?P<queryKey>[^/]+)/)?' => 'PhabricatorAuditListController',
- 'addcomment/' => 'PhabricatorAuditAddCommentController',
- 'preview/(?P<id>[1-9]\d*)/' => 'PhabricatorAuditPreviewController',
),
);
}
diff --git a/src/applications/audit/controller/PhabricatorAuditAddCommentController.php b/src/applications/audit/controller/PhabricatorAuditAddCommentController.php
deleted file mode 100644
--- a/src/applications/audit/controller/PhabricatorAuditAddCommentController.php
+++ /dev/null
@@ -1,90 +0,0 @@
-<?php
-
-final class PhabricatorAuditAddCommentController
- extends PhabricatorAuditController {
-
- public function handleRequest(AphrontRequest $request) {
- $viewer = $request->getViewer();
-
- if (!$request->isFormPost()) {
- return new Aphront403Response();
- }
-
- $commit_phid = $request->getStr('commit');
- $commit = id(new DiffusionCommitQuery())
- ->setViewer($viewer)
- ->withPHIDs(array($commit_phid))
- ->needAuditRequests(true)
- ->executeOne();
- if (!$commit) {
- return new Aphront404Response();
- }
-
- $xactions = array();
-
- // make sure we only add auditors or ccs if the action matches
- $action = $request->getStr('action');
- switch ($action) {
- case PhabricatorAuditActionConstants::ADD_AUDITORS:
- $auditors = $request->getArr('auditors');
- $xactions[] = id(new PhabricatorAuditTransaction())
- ->setTransactionType(PhabricatorAuditActionConstants::ADD_AUDITORS)
- ->setNewValue(array_fuse($auditors));
- break;
- case PhabricatorAuditActionConstants::ADD_CCS:
- $xactions[] = id(new PhabricatorAuditTransaction())
- ->setTransactionType(PhabricatorTransactions::TYPE_SUBSCRIBERS)
- ->setNewValue(
- array(
- '+' => $request->getArr('ccs'),
- ));
- break;
- case PhabricatorAuditActionConstants::COMMENT:
- // We'll deal with this below.
- break;
- default:
- $xactions[] = id(new PhabricatorAuditTransaction())
- ->setTransactionType(PhabricatorAuditActionConstants::ACTION)
- ->setNewValue($action);
- break;
- }
-
- $content = $request->getStr('content');
- if (strlen($content)) {
- $xactions[] = id(new PhabricatorAuditTransaction())
- ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
- ->attachComment(
- id(new PhabricatorAuditTransactionComment())
- ->setCommitPHID($commit->getPHID())
- ->setContent($content));
- }
-
- $inlines = PhabricatorAuditInlineComment::loadDraftComments(
- $viewer,
- $commit->getPHID());
- foreach ($inlines as $inline) {
- $xactions[] = id(new PhabricatorAuditTransaction())
- ->setTransactionType(PhabricatorAuditActionConstants::INLINE)
- ->attachComment($inline->getTransactionComment());
- }
-
- id(new PhabricatorAuditEditor())
- ->setActor($viewer)
- ->setContentSourceFromRequest($request)
- ->setContinueOnMissingFields(true)
- ->applyTransactions($commit, $xactions);
-
- $draft = id(new PhabricatorDraft())->loadOneWhere(
- 'authorPHID = %s AND draftKey = %s',
- $viewer->getPHID(),
- 'diffusion-audit-'.$commit->getID());
- if ($draft) {
- $draft->delete();
- }
-
- $uri = $commit->getURI();
-
- return id(new AphrontRedirectResponse())->setURI($uri);
- }
-
-}
diff --git a/src/applications/audit/controller/PhabricatorAuditPreviewController.php b/src/applications/audit/controller/PhabricatorAuditPreviewController.php
deleted file mode 100644
--- a/src/applications/audit/controller/PhabricatorAuditPreviewController.php
+++ /dev/null
@@ -1,82 +0,0 @@
-<?php
-
-final class PhabricatorAuditPreviewController
- extends PhabricatorAuditController {
-
- public function handleRequest(AphrontRequest $request) {
- $viewer = $request->getViewer();
- $id = $request->getURIData('id');
-
- $commit = id(new PhabricatorRepositoryCommit())->load($id);
- if (!$commit) {
- return new Aphront404Response();
- }
-
- $xactions = array();
-
- $action = $request->getStr('action');
- if ($action != PhabricatorAuditActionConstants::COMMENT) {
- $action_xaction = id(new PhabricatorAuditTransaction())
- ->setAuthorPHID($viewer->getPHID())
- ->setObjectPHID($commit->getPHID())
- ->setTransactionType(PhabricatorAuditActionConstants::ACTION)
- ->setNewValue($action);
-
- $auditors = $request->getStrList('auditors');
- if ($action == PhabricatorAuditActionConstants::ADD_AUDITORS &&
- $auditors) {
- $action_xaction->setTransactionType($action);
- $action_xaction->setNewValue(array_fuse($auditors));
- }
-
- $ccs = $request->getStrList('ccs');
- if ($action == PhabricatorAuditActionConstants::ADD_CCS && $ccs) {
- $action_xaction->setTransactionType(
- PhabricatorTransactions::TYPE_SUBSCRIBERS);
-
- // NOTE: This doesn't get processed before use, so just provide fake
- // values.
- $action_xaction->setOldValue(array());
- $action_xaction->setNewValue($ccs);
- }
-
- $xactions[] = $action_xaction;
- }
-
- $content = $request->getStr('content');
- if (strlen($content)) {
- $xactions[] = id(new PhabricatorAuditTransaction())
- ->setAuthorPHID($viewer->getPHID())
- ->setObjectPHID($commit->getPHID())
- ->setTransactionType(PhabricatorTransactions::TYPE_COMMENT)
- ->attachComment(
- id(new PhabricatorAuditTransactionComment())
- ->setContent($content));
- }
-
- $phids = array();
- foreach ($xactions as $xaction) {
- $phids[] = $xaction->getRequiredHandlePHIDs();
- }
- $phids = array_mergev($phids);
- $handles = $this->loadViewerHandles($phids);
- foreach ($xactions as $xaction) {
- $xaction->setHandles($handles);
- }
-
- $view = id(new PhabricatorAuditTransactionView())
- ->setIsPreview(true)
- ->setUser($viewer)
- ->setObjectPHID($commit->getPHID())
- ->setTransactions($xactions);
-
- id(new PhabricatorDraft())
- ->setAuthorPHID($viewer->getPHID())
- ->setDraftKey('diffusion-audit-'.$id)
- ->setDraft($content)
- ->replaceOrDelete();
-
- return id(new AphrontAjaxResponse())->setContent(hsprintf('%s', $view));
- }
-
-}
diff --git a/src/applications/audit/editor/PhabricatorAuditEditor.php b/src/applications/audit/editor/PhabricatorAuditEditor.php
--- a/src/applications/audit/editor/PhabricatorAuditEditor.php
+++ b/src/applications/audit/editor/PhabricatorAuditEditor.php
@@ -10,7 +10,7 @@
private $rawPatch;
private $auditorPHIDs = array();
- private $didExpandInlineState;
+ private $didExpandInlineState = false;
public function addAuditReason($phid, $reason) {
if (!isset($this->auditReasonMap[$phid])) {
@@ -67,6 +67,21 @@
return $types;
}
+ protected function expandTransactions(
+ PhabricatorLiskDAO $object,
+ array $xactions) {
+
+ foreach ($xactions as $xaction) {
+ switch ($xaction->getTransactionType()) {
+ case PhabricatorTransactions::TYPE_INLINESTATE:
+ $this->didExpandInlineState = true;
+ break;
+ }
+ }
+
+ return parent::expandTransactions($object, $xactions);
+ }
+
protected function transactionHasEffect(
PhabricatorLiskDAO $object,
PhabricatorApplicationTransaction $xaction) {
diff --git a/src/applications/audit/storage/PhabricatorAuditInlineComment.php b/src/applications/audit/storage/PhabricatorAuditInlineComment.php
--- a/src/applications/audit/storage/PhabricatorAuditInlineComment.php
+++ b/src/applications/audit/storage/PhabricatorAuditInlineComment.php
@@ -68,7 +68,8 @@
public static function loadDraftComments(
PhabricatorUser $viewer,
- $commit_phid) {
+ $commit_phid,
+ $raw = false) {
$inlines = id(new DiffusionDiffInlineCommentQuery())
->setViewer($viewer)
@@ -80,6 +81,10 @@
->needReplyToComments(true)
->execute();
+ if ($raw) {
+ return $inlines;
+ }
+
return self::buildProxies($inlines);
}
diff --git a/src/applications/audit/view/PhabricatorAuditTransactionView.php b/src/applications/audit/view/PhabricatorAuditTransactionView.php
--- a/src/applications/audit/view/PhabricatorAuditTransactionView.php
+++ b/src/applications/audit/view/PhabricatorAuditTransactionView.php
@@ -3,7 +3,7 @@
final class PhabricatorAuditTransactionView
extends PhabricatorApplicationTransactionView {
- private $pathMap;
+ private $pathMap = array();
public function setPathMap(array $path_map) {
$this->pathMap = $path_map;
@@ -55,12 +55,17 @@
$type_inline = PhabricatorAuditActionConstants::INLINE;
$group = $xaction->getTransactionGroup();
+
if ($xaction->getTransactionType() == $type_inline) {
array_unshift($group, $xaction);
} else {
$out[] = parent::renderTransactionContent($xaction);
}
+ if ($this->getIsPreview()) {
+ return $out;
+ }
+
if (!$group) {
return $out;
}
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
@@ -463,12 +463,7 @@
}
Javelin::initBehavior('differential-user-select');
-
- Javelin::initBehavior(
- 'differential-keyboard-navigation',
- array(
- 'haunt' => null,
- ));
+ Javelin::initBehavior('differential-keyboard-navigation');
$view = id(new PHUITwoColumnView())
->setHeader($header)
diff --git a/src/applications/diffusion/controller/DiffusionCommitController.php b/src/applications/diffusion/controller/DiffusionCommitController.php
--- a/src/applications/diffusion/controller/DiffusionCommitController.php
+++ b/src/applications/diffusion/controller/DiffusionCommitController.php
@@ -369,7 +369,9 @@
}
- $add_comment = $this->renderAddCommentPanel($commit, $audit_requests);
+ $add_comment = $this->renderAddCommentPanel(
+ $commit,
+ $timeline);
$filetree_on = $viewer->compareUserSetting(
PhabricatorShowFiletreeSetting::SETTINGKEY,
@@ -717,150 +719,24 @@
private function renderAddCommentPanel(
PhabricatorRepositoryCommit $commit,
- array $audit_requests) {
- assert_instances_of($audit_requests, 'PhabricatorRepositoryAuditRequest');
+ $timeline) {
$request = $this->getRequest();
$viewer = $request->getUser();
- if (!$viewer->isLoggedIn()) {
- return id(new PhabricatorApplicationTransactionCommentView())
- ->setUser($viewer)
- ->setRequestURI($request->getRequestURI());
- }
-
- $is_serious = PhabricatorEnv::getEnvConfig('phabricator.serious-business');
-
- $pane_id = celerity_generate_unique_node_id();
- Javelin::initBehavior(
- 'differential-keyboard-navigation',
- array(
- 'haunt' => $pane_id,
- ));
-
- $draft = id(new PhabricatorDraft())->loadOneWhere(
- 'authorPHID = %s AND draftKey = %s',
- $viewer->getPHID(),
- 'diffusion-audit-'.$commit->getID());
- if ($draft) {
- $draft = $draft->getDraft();
- } else {
- $draft = null;
- }
-
- $actions = $this->getAuditActions($commit, $audit_requests);
-
- $mailable_source = new PhabricatorMetaMTAMailableDatasource();
- $auditor_source = new DiffusionAuditorDatasource();
-
- $form = id(new AphrontFormView())
- ->setUser($viewer)
- ->setAction('/audit/addcomment/')
- ->addHiddenInput('commit', $commit->getPHID())
- ->appendChild(
- id(new AphrontFormSelectControl())
- ->setLabel(pht('Action'))
- ->setName('action')
- ->setID('audit-action')
- ->setOptions($actions))
- ->appendControl(
- id(new AphrontFormTokenizerControl())
- ->setLabel(pht('Add Auditors'))
- ->setName('auditors')
- ->setControlID('add-auditors')
- ->setControlStyle('display: none')
- ->setID('add-auditors-tokenizer')
- ->setDisableBehavior(true)
- ->setDatasource($auditor_source))
- ->appendControl(
- id(new AphrontFormTokenizerControl())
- ->setLabel(pht('Add CCs'))
- ->setName('ccs')
- ->setControlID('add-ccs')
- ->setControlStyle('display: none')
- ->setID('add-ccs-tokenizer')
- ->setDisableBehavior(true)
- ->setDatasource($mailable_source))
- ->appendChild(
- id(new PhabricatorRemarkupControl())
- ->setLabel(pht('Comments'))
- ->setName('content')
- ->setValue($draft)
- ->setID('audit-content')
- ->setUser($viewer))
- ->appendChild(
- id(new AphrontFormSubmitControl())
- ->setValue(pht('Submit')));
-
- $header = new PHUIHeaderView();
- $header->setHeader(
- $is_serious ? pht('Audit Commit') : pht('Creative Accounting'));
-
- Javelin::initBehavior(
- 'differential-add-reviewers-and-ccs',
- array(
- 'dynamic' => array(
- 'add-auditors-tokenizer' => array(
- 'actions' => array('add_auditors' => 1),
- 'src' => $auditor_source->getDatasourceURI(),
- 'row' => 'add-auditors',
- 'placeholder' => $auditor_source->getPlaceholderText(),
- ),
- 'add-ccs-tokenizer' => array(
- 'actions' => array('add_ccs' => 1),
- 'src' => $mailable_source->getDatasourceURI(),
- 'row' => 'add-ccs',
- 'placeholder' => $mailable_source->getPlaceholderText(),
- ),
- ),
- 'select' => 'audit-action',
- ));
-
- Javelin::initBehavior('differential-feedback-preview', array(
- 'uri' => '/audit/preview/'.$commit->getID().'/',
- 'preview' => 'audit-preview',
- 'content' => 'audit-content',
- 'action' => 'audit-action',
- 'previewTokenizers' => array(
- 'auditors' => 'add-auditors-tokenizer',
- 'ccs' => 'add-ccs-tokenizer',
- ),
- 'inline' => 'inline-comment-preview',
- 'inlineuri' => '/diffusion/inline/preview/'.$commit->getPHID().'/',
- ));
-
- $loading = phutil_tag_div(
- 'aphront-panel-preview-loading-text',
- pht('Loading preview...'));
-
- $preview_panel = phutil_tag_div(
- 'aphront-panel-preview aphront-panel-flush',
- array(
- phutil_tag('div', array('id' => 'audit-preview'), $loading),
- phutil_tag('div', array('id' => 'inline-comment-preview')),
- ));
+ Javelin::initBehavior('differential-keyboard-navigation');
// TODO: This is pretty awkward, unify the CSS between Diffusion and
// Differential better.
require_celerity_resource('differential-core-view-css');
- $anchor = id(new PhabricatorAnchorView())
- ->setAnchorName('comment')
- ->setNavigationMarker(true)
- ->render();
+ $comment_view = id(new DiffusionCommitEditEngine())
+ ->setViewer($viewer)
+ ->buildEditEngineCommentView($commit);
- $comment_box = id(new PHUIObjectBoxView())
- ->setHeader($header)
- ->appendChild($form);
+ $comment_view->setTransactionTimeline($timeline);
- return phutil_tag(
- 'div',
- array(
- 'id' => $pane_id,
- ),
- phutil_tag_div(
- 'differential-add-comment-panel',
- array($anchor, $comment_box, $preview_panel)));
+ return $comment_view;
}
/**
diff --git a/src/applications/diffusion/editor/DiffusionCommitEditEngine.php b/src/applications/diffusion/editor/DiffusionCommitEditEngine.php
--- a/src/applications/diffusion/editor/DiffusionCommitEditEngine.php
+++ b/src/applications/diffusion/editor/DiffusionCommitEditEngine.php
@@ -48,6 +48,21 @@
->needAuditRequests(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');
}
@@ -143,4 +158,76 @@
return $fields;
}
+ protected function newAutomaticCommentTransactions($object) {
+ $viewer = $this->getViewer();
+ $xactions = array();
+
+ $inlines = PhabricatorAuditInlineComment::loadDraftComments(
+ $viewer,
+ $object->getPHID(),
+ $raw = true);
+ $inlines = msort($inlines, 'getID');
+
+ foreach ($inlines as $inline) {
+ $xactions[] = $object->getApplicationTransactionTemplate()
+ ->setTransactionType(PhabricatorAuditActionConstants::INLINE)
+ ->attachComment($inline);
+ }
+
+ $viewer_phid = $viewer->getPHID();
+ $viewer_is_author = ($object->getAuthorPHID() == $viewer_phid);
+ if ($viewer_is_author) {
+ $state_map = PhabricatorTransactions::getInlineStateMap();
+
+ $inlines = id(new DiffusionDiffInlineCommentQuery())
+ ->setViewer($viewer)
+ ->withCommitPHIDs(array($object->getPHID()))
+ ->withFixedStates(array_keys($state_map))
+ ->execute();
+ if ($inlines) {
+ $old_value = mpull($inlines, 'getFixedState', 'getPHID');
+ $new_value = array();
+ foreach ($old_value as $key => $state) {
+ $new_value[$key] = $state_map[$state];
+ }
+
+ $xactions[] = $object->getApplicationTransactionTemplate()
+ ->setTransactionType(PhabricatorTransactions::TYPE_INLINESTATE)
+ ->setIgnoreOnNoEffect(true)
+ ->setOldValue($old_value)
+ ->setNewValue($new_value);
+ }
+ }
+
+ 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;
+ }
}
diff --git a/src/infrastructure/diff/view/PHUIDiffInlineCommentPreviewListView.php b/src/infrastructure/diff/view/PHUIDiffInlineCommentPreviewListView.php
--- a/src/infrastructure/diff/view/PHUIDiffInlineCommentPreviewListView.php
+++ b/src/infrastructure/diff/view/PHUIDiffInlineCommentPreviewListView.php
@@ -38,8 +38,15 @@
$inlines = $this->getInlineComments();
foreach ($inlines as $key => $inline) {
- $inlines[$key] = DifferentialInlineComment::newFromModernComment(
- $inline);
+ // TODO: This is real, real gross.
+
+ if ($inline instanceof DifferentialTransactionComment) {
+ $inlines[$key] = DifferentialInlineComment::newFromModernComment(
+ $inline);
+ } else {
+ $inlines[$key] = PhabricatorAuditInlineComment::newFromModernComment(
+ $inline);
+ }
}
$engine = new PhabricatorMarkupEngine();
diff --git a/webroot/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js b/webroot/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js
deleted file mode 100644
--- a/webroot/rsrc/js/application/differential/behavior-add-reviewers-and-ccs.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/**
- * @provides javelin-behavior-differential-add-reviewers-and-ccs
- * @requires javelin-behavior
- * javelin-dom
- * phabricator-prefab
- */
-
-JX.behavior('differential-add-reviewers-and-ccs', function(config) {
-
- var dynamic = {};
- for (var k in config.dynamic) {
- var props = config.dynamic[k];
- props.id = k;
-
- var tokenizer = JX.Prefab.buildTokenizer(props).tokenizer;
- tokenizer.start();
-
- dynamic[k] = {
- row : JX.$(props.row),
- tokenizer : tokenizer,
- actions : props.actions,
- labels: props.labels
- };
- }
-
- JX.DOM.listen(
- JX.$(config.select),
- 'change',
- null,
- function() {
- var v = JX.$(config.select).value;
- for (var k in dynamic) {
- if (dynamic[k].actions[v]) {
- JX.DOM.show(dynamic[k].row);
- if (dynamic[k].labels) {
- var label_node = JX.DOM.find(dynamic[k].row, 'label');
- if (label_node) {
- JX.DOM.setContent(label_node, dynamic[k].labels[v]);
- }
- }
- dynamic[k].tokenizer.refresh();
- } else {
- JX.DOM.hide(dynamic[k].row);
- }
- }
- });
-});
diff --git a/webroot/rsrc/js/application/differential/behavior-keyboard-nav.js b/webroot/rsrc/js/application/differential/behavior-keyboard-nav.js
--- a/webroot/rsrc/js/application/differential/behavior-keyboard-nav.js
+++ b/webroot/rsrc/js/application/differential/behavior-keyboard-nav.js
@@ -173,16 +173,6 @@
refreshFocus();
});
- var haunt_mode = 0;
- function haunt() {
- haunt_mode = (haunt_mode + 1) % 3;
-
- var el = JX.$(config.haunt);
- for (var ii = 1; ii <= 2; ii++) {
- JX.DOM.alterClass(el, 'differential-haunt-mode-'+ii, (haunt_mode == ii));
- }
- }
-
new JX.KeyboardShortcut('j', 'Jump to next change.')
.setHandler(function(manager) {
jump(manager, 1);
@@ -271,10 +261,4 @@
})
.register();
- if (config.haunt) {
- new JX.KeyboardShortcut('z', 'Cycle comment panel haunting modes.')
- .setHandler(haunt)
- .register();
- }
-
});
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Wed, Oct 30, 11:54 AM (2 w, 4 d ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
6727638
Default Alt Text
D17183.diff (29 KB)
Attached To
Mode
D17183: Use EditEngine stacked comments in Diffusion
Attached
Detach File
Event Timeline
Log In to Comment