Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15446888
D21652.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
6 KB
Referenced Files
None
Subscribers
None
D21652.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' => '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
Details
Attached
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)
Attached To
Mode
D21652: When creating an inline comment, populate the content state with the default suggestion text
Attached
Detach File
Event Timeline
Log In to Comment