Page MenuHomePhabricator

D14887.id35984.diff
No OneTemporary

D14887.id35984.diff

diff --git a/resources/celerity/map.php b/resources/celerity/map.php
--- a/resources/celerity/map.php
+++ b/resources/celerity/map.php
@@ -8,7 +8,7 @@
return array(
'names' => array(
'core.pkg.css' => 'a419cf4b',
- 'core.pkg.js' => '400453e4',
+ 'core.pkg.js' => '57dff7df',
'darkconsole.pkg.js' => 'e7393ebb',
'differential.pkg.css' => '2de124c9',
'differential.pkg.js' => '64e69521',
@@ -487,9 +487,9 @@
'rsrc/js/core/behavior-object-selector.js' => '49b73b36',
'rsrc/js/core/behavior-oncopy.js' => '2926fff2',
'rsrc/js/core/behavior-phabricator-nav.js' => '56a1ca03',
- 'rsrc/js/core/behavior-phabricator-remarkup-assist.js' => 'ecddcbe2',
+ 'rsrc/js/core/behavior-phabricator-remarkup-assist.js' => 'b60b6d9b',
'rsrc/js/core/behavior-refresh-csrf.js' => 'ab2f381b',
- 'rsrc/js/core/behavior-remarkup-preview.js' => 'f7379f45',
+ 'rsrc/js/core/behavior-remarkup-preview.js' => '4b700e9e',
'rsrc/js/core/behavior-reorder-applications.js' => '76b9fc3e',
'rsrc/js/core/behavior-reveal-content.js' => '60821bc7',
'rsrc/js/core/behavior-scrollbar.js' => '834a1173',
@@ -640,7 +640,7 @@
'javelin-behavior-phabricator-notification-example' => '8ce821c5',
'javelin-behavior-phabricator-object-selector' => '49b73b36',
'javelin-behavior-phabricator-oncopy' => '2926fff2',
- 'javelin-behavior-phabricator-remarkup-assist' => 'ecddcbe2',
+ 'javelin-behavior-phabricator-remarkup-assist' => 'b60b6d9b',
'javelin-behavior-phabricator-reveal-content' => '60821bc7',
'javelin-behavior-phabricator-search-typeahead' => '048330fa',
'javelin-behavior-phabricator-show-older-transactions' => 'dbbf48b6',
@@ -662,7 +662,7 @@
'javelin-behavior-releeph-preview-branch' => 'b2b4fbaf',
'javelin-behavior-releeph-request-state-change' => 'a0b57eb8',
'javelin-behavior-releeph-request-typeahead' => 'de2e896f',
- 'javelin-behavior-remarkup-preview' => 'f7379f45',
+ 'javelin-behavior-remarkup-preview' => '4b700e9e',
'javelin-behavior-reorder-applications' => '76b9fc3e',
'javelin-behavior-reorder-columns' => 'e1d25dfb',
'javelin-behavior-repository-crossreference' => 'e5339c43',
@@ -1125,6 +1125,12 @@
'javelin-request',
'javelin-util',
),
+ '4b700e9e' => array(
+ 'javelin-behavior',
+ 'javelin-dom',
+ 'javelin-util',
+ 'phabricator-shaped-request',
+ ),
'4e3e79a6' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -1721,6 +1727,15 @@
'javelin-dom',
'javelin-util',
),
+ 'b60b6d9b' => array(
+ 'javelin-behavior',
+ 'javelin-stratcom',
+ 'javelin-dom',
+ 'phabricator-phtize',
+ 'phabricator-textareautils',
+ 'javelin-workflow',
+ 'javelin-vector',
+ ),
'b65559c0' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -1960,15 +1975,6 @@
'phabricator-phtize',
'javelin-dom',
),
- 'ecddcbe2' => array(
- 'javelin-behavior',
- 'javelin-stratcom',
- 'javelin-dom',
- 'phabricator-phtize',
- 'phabricator-textareautils',
- 'javelin-workflow',
- 'javelin-vector',
- ),
'edd1ba66' => array(
'javelin-behavior',
'javelin-stratcom',
@@ -2005,12 +2011,6 @@
'javelin-util',
'javelin-reactor',
),
- 'f7379f45' => array(
- 'javelin-behavior',
- 'javelin-dom',
- 'javelin-util',
- 'phabricator-shaped-request',
- ),
'f7fc67ec' => array(
'javelin-install',
'javelin-typeahead',
diff --git a/src/applications/maniphest/application/PhabricatorManiphestApplication.php b/src/applications/maniphest/application/PhabricatorManiphestApplication.php
--- a/src/applications/maniphest/application/PhabricatorManiphestApplication.php
+++ b/src/applications/maniphest/application/PhabricatorManiphestApplication.php
@@ -52,13 +52,6 @@
'task/' => array(
$this->getEditRoutePattern('edit/')
=> 'ManiphestTaskEditController',
- 'descriptionpreview/'
- => 'PhabricatorMarkupPreviewController',
- ),
- 'transaction/' => array(
- 'save/' => 'ManiphestTransactionSaveController',
- 'preview/(?P<id>[1-9]\d*)/'
- => 'ManiphestTransactionPreviewController',
),
'export/(?P<key>[^/]+)/' => 'ManiphestExportController',
'subpriority/' => 'ManiphestSubpriorityController',
diff --git a/src/applications/maniphest/editor/ManiphestEditEngine.php b/src/applications/maniphest/editor/ManiphestEditEngine.php
--- a/src/applications/maniphest/editor/ManiphestEditEngine.php
+++ b/src/applications/maniphest/editor/ManiphestEditEngine.php
@@ -156,7 +156,10 @@
->setConduitDescription(pht('Update the task description.'))
->setConduitTypeDescription(pht('New task description.'))
->setTransactionType(ManiphestTransaction::TYPE_DESCRIPTION)
- ->setValue($object->getDescription()),
+ ->setValue($object->getDescription())
+ ->setPreviewPanel(
+ id(new PHUIRemarkupPreviewPanel())
+ ->setHeader(pht('Description Preview'))),
);
}
diff --git a/src/applications/transactions/controller/PhabricatorApplicationTransactionRemarkupPreviewController.php b/src/applications/transactions/controller/PhabricatorApplicationTransactionRemarkupPreviewController.php
--- a/src/applications/transactions/controller/PhabricatorApplicationTransactionRemarkupPreviewController.php
+++ b/src/applications/transactions/controller/PhabricatorApplicationTransactionRemarkupPreviewController.php
@@ -10,9 +10,9 @@
public function handleRequest(AphrontRequest $request) {
$viewer = $this->getViewer();
- $corpus = $request->getStr('corpus');
+ $text = $request->getStr('text');
- $remarkup = new PHUIRemarkupView($viewer, $corpus);
+ $remarkup = new PHUIRemarkupView($viewer, $text);
$content = array(
'content' => hsprintf('%s', $remarkup),
diff --git a/src/applications/transactions/editengine/PhabricatorEditEngine.php b/src/applications/transactions/editengine/PhabricatorEditEngine.php
--- a/src/applications/transactions/editengine/PhabricatorEditEngine.php
+++ b/src/applications/transactions/editengine/PhabricatorEditEngine.php
@@ -962,6 +962,28 @@
$header_text = $this->getObjectEditTitleText($object);
}
+ $show_preview = !$request->isAjax();
+
+ if ($show_preview) {
+ $previews = array();
+ foreach ($fields as $field) {
+ $preview = $field->getPreviewPanel();
+ if (!$preview) {
+ continue;
+ }
+
+ $control_id = $field->getControlID();
+
+ $preview
+ ->setControlID($control_id)
+ ->setPreviewURI('/transactions/remarkuppreview/');
+
+ $previews[] = $preview;
+ }
+ } else {
+ $previews = array();
+ }
+
$form = $this->buildEditForm($object, $fields);
if ($request->isAjax()) {
@@ -998,7 +1020,8 @@
return $controller->newPage()
->setTitle($header_text)
->setCrumbs($crumbs)
- ->appendChild($box);
+ ->appendChild($box)
+ ->appendChild($previews);
}
protected function newEditResponse(
diff --git a/src/applications/transactions/editfield/PhabricatorEditField.php b/src/applications/transactions/editfield/PhabricatorEditField.php
--- a/src/applications/transactions/editfield/PhabricatorEditField.php
+++ b/src/applications/transactions/editfield/PhabricatorEditField.php
@@ -14,6 +14,8 @@
private $metadata = array();
private $editTypeKey;
private $isRequired;
+ private $previewPanel;
+ private $controlID;
private $description;
private $conduitDescription;
@@ -251,6 +253,15 @@
return $this->commentActionValue;
}
+ public function setPreviewPanel(PHUIRemarkupPreviewPanel $preview_panel) {
+ $this->previewPanel = $preview_panel;
+ return $this;
+ }
+
+ public function getPreviewPanel() {
+ return $this->previewPanel;
+ }
+
protected function newControl() {
throw new PhutilMethodNotImplementedException();
}
@@ -285,6 +296,13 @@
return $control;
}
+ public function getControlID() {
+ if (!$this->controlID) {
+ $this->controlID = celerity_generate_unique_node_id();
+ }
+ return $this->controlID;
+ }
+
protected function renderControl() {
$control = $this->buildControl();
if ($control === null) {
@@ -308,6 +326,10 @@
$control->setDisabled($disabled);
+ if ($this->controlID) {
+ $control->setID($this->controlID);
+ }
+
return $control;
}
diff --git a/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js b/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js
--- a/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js
+++ b/webroot/rsrc/js/core/behavior-phabricator-remarkup-assist.js
@@ -254,7 +254,7 @@
var value = area.value;
var data = {
- corpus: value
+ text: value
};
var onupdate = function(r) {
diff --git a/webroot/rsrc/js/core/behavior-remarkup-preview.js b/webroot/rsrc/js/core/behavior-remarkup-preview.js
--- a/webroot/rsrc/js/core/behavior-remarkup-preview.js
+++ b/webroot/rsrc/js/core/behavior-remarkup-preview.js
@@ -8,16 +8,26 @@
JX.behavior('remarkup-preview', function(config) {
+ // Don't bother with any of this on mobile.
+ if (JX.Device.getDevice() !== 'desktop') {
+ return;
+ }
+
var preview = JX.$(config.previewID);
var control = JX.$(config.controlID);
var callback = function(r) {
- JX.DOM.setContent(preview, JX.$H(r));
+ // This currently accepts responses from two controllers:
+ // Old: PhabricatorMarkupPreviewController
+ // New: PhabricatorApplicationTransactionRemarkupPreviewController
+ // TODO: Swap everything to just the new controller.
+
+ JX.DOM.setContent(preview, JX.$H(r.content || r));
};
var getdata = function() {
return {
- text : control.value
+ text: control.value
};
};

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 21, 5:25 AM (10 h, 6 m ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7696802
Default Alt Text
D14887.id35984.diff (9 KB)

Event Timeline