Page MenuHomePhabricator

D21652.diff
No OneTemporary

D21652.diff

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' => '68f29322',
'dark-console.pkg.js' => '187792c2',
'differential.pkg.css' => 'ffb69e3d',
- 'differential.pkg.js' => 'bbf6d742',
+ 'differential.pkg.js' => 'fbde899f',
'diffusion.pkg.css' => '42c75c37',
'diffusion.pkg.js' => '78c9885d',
'maniphest.pkg.css' => '35995d6d',
@@ -385,7 +385,7 @@
'rsrc/js/application/dashboard/behavior-dashboard-tab-panel.js' => '0116d3e8',
'rsrc/js/application/diff/DiffChangeset.js' => 'd7d3ba75',
'rsrc/js/application/diff/DiffChangesetList.js' => 'cc2c5de5',
- 'rsrc/js/application/diff/DiffInline.js' => 'c794b624',
+ 'rsrc/js/application/diff/DiffInline.js' => '62fff8eb',
'rsrc/js/application/diff/DiffInlineContentState.js' => '68e6339d',
'rsrc/js/application/diff/DiffPathView.js' => '8207abf9',
'rsrc/js/application/diff/DiffTreeView.js' => '5d83623b',
@@ -788,7 +788,7 @@
'phabricator-dashboard-css' => '5a205b9d',
'phabricator-diff-changeset' => 'd7d3ba75',
'phabricator-diff-changeset-list' => 'cc2c5de5',
- 'phabricator-diff-inline' => 'c794b624',
+ 'phabricator-diff-inline' => '62fff8eb',
'phabricator-diff-inline-content-state' => '68e6339d',
'phabricator-diff-path-view' => '8207abf9',
'phabricator-diff-tree-view' => '5d83623b',
@@ -1532,6 +1532,10 @@
'javelin-request',
'javelin-uri',
),
+ '62fff8eb' => array(
+ 'javelin-dom',
+ 'phabricator-diff-inline-content-state',
+ ),
'65bb0011' => array(
'javelin-behavior',
'javelin-dom',
@@ -2088,10 +2092,6 @@
'javelin-workflow',
'javelin-json',
),
- 'c794b624' => array(
- 'javelin-dom',
- 'phabricator-diff-inline-content-state',
- ),
'cc2c5de5' => array(
'javelin-install',
'phuix-button-view',
diff --git a/src/infrastructure/diff/PhabricatorInlineCommentController.php b/src/infrastructure/diff/PhabricatorInlineCommentController.php
--- a/src/infrastructure/diff/PhabricatorInlineCommentController.php
+++ b/src/infrastructure/diff/PhabricatorInlineCommentController.php
@@ -316,11 +316,28 @@
$this->updateCommentContentState($inline);
}
+ // NOTE: We're writing the comment as "deleted", then reloading to
+ // pick up context and undeleting it. This is silly -- we just want
+ // to load and attach context -- but just loading context is currently
+ // complicated (for example, context relies on cache keys that expect
+ // the inline to have an ID).
+
+ $inline->setIsDeleted(1);
+
$this->saveComment($inline);
// Reload the inline to attach context.
$inline = $this->loadCommentByIDForEdit($inline->getID());
+ // Now, we can read the source file and set the initial state.
+ $state = $inline->getContentState();
+ $default_suggestion = $inline->getDefaultSuggestionText();
+ $state->setContentSuggestionText($default_suggestion);
+ $inline->setContentState($state);
+ $inline->setIsDeleted(0);
+
+ $this->saveComment($inline);
+
$edit_dialog = $this->buildEditDialog($inline);
if ($this->getOperation() == 'reply') {
diff --git a/src/infrastructure/diff/interface/PhabricatorInlineComment.php b/src/infrastructure/diff/interface/PhabricatorInlineComment.php
--- a/src/infrastructure/diff/interface/PhabricatorInlineComment.php
+++ b/src/infrastructure/diff/interface/PhabricatorInlineComment.php
@@ -364,6 +364,19 @@
return $this->getStorageObject()->getInlineContext();
}
+ public function getDefaultSuggestionText() {
+ $context = $this->getInlineContext();
+
+ if (!$context) {
+ return null;
+ }
+
+ $default = $context->getBodyLines();
+ $default = implode('', $default);
+
+ return $default;
+ }
+
/* -( PhabricatorMarkupInterface Implementation )-------------------------- */
diff --git a/src/infrastructure/diff/view/PHUIDiffInlineCommentEditView.php b/src/infrastructure/diff/view/PHUIDiffInlineCommentEditView.php
--- a/src/infrastructure/diff/view/PHUIDiffInlineCommentEditView.php
+++ b/src/infrastructure/diff/view/PHUIDiffInlineCommentEditView.php
@@ -114,9 +114,6 @@
$main = $state->getContentSuggestionText();
$main_count = count(phutil_split_lines($main));
- $default = $context->getBodyLines();
- $default = implode('', $default);
-
// Browsers ignore one leading newline in text areas. Add one so that
// any actual leading newlines in the content are preserved.
$main = "\n".$main;
@@ -127,9 +124,6 @@
'class' => 'inline-suggestion-input PhabricatorMonospaced',
'rows' => max(3, $main_count + 1),
'sigil' => 'inline-content-suggestion',
- 'meta' => array(
- 'defaultText' => $default,
- ),
),
$main);
diff --git a/webroot/rsrc/js/application/diff/DiffInline.js b/webroot/rsrc/js/application/diff/DiffInline.js
--- a/webroot/rsrc/js/application/diff/DiffInline.js
+++ b/webroot/rsrc/js/application/diff/DiffInline.js
@@ -772,21 +772,12 @@
this.setHasSuggestion(!this.getHasSuggestion());
- // The first time the user actually clicks the button and enables
- // suggestions for a given editor state, fill the input with the
- // underlying text if there isn't any text yet.
+ // Resize the suggestion input for size of the text.
if (this.getHasSuggestion()) {
if (this._editRow) {
var node = this._getSuggestionNode(this._editRow);
if (node) {
- if (!node.value.length) {
- var data = JX.Stratcom.getData(node);
- if (!data.hasSetDefault) {
- data.hasSetDefault = true;
- node.value = data.defaultText;
- node.rows = Math.max(3, node.value.split('\n').length);
- }
- }
+ node.rows = Math.max(3, node.value.split('\n').length);
}
}
}

File Metadata

Mime Type
text/plain
Expires
Fri, Mar 28, 8:39 PM (5 d, 1 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7522214
Default Alt Text
D21652.diff (6 KB)

Event Timeline