From 6cd5590a15bcf19fbf9263a820bb9682a392d0bc Mon Sep 17 00:00:00 2001 From: Becky Siegel <beckysiegel@google.com> Date: Mon, 13 Mar 2017 11:42:42 -0700 Subject: [PATCH] Fix local storage with PARENT revision Previously, if a PARENT revision was getting compared to a patchset, the local storage key would be the same for both, and there were issues if a user was trying to write drafts on the same line on either side. This addresses the issue by storing 'PARENT' as the patch number in the local storage key, so that each key is unique. Bug: Issue 5412 Change-Id: Ia8b2f0abe1d24a3849628fe335c931f07bcaff52 --- .../gr-diff-comment-thread/gr-diff-comment-thread.html | 1 + .../elements/diff/gr-diff-comment/gr-diff-comment.js | 10 +++++++--- .../diff/gr-diff-comment/gr-diff-comment_test.html | 8 ++++++++ 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.html b/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.html index c446cbd61b..a86d957322 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.html +++ b/polygerrit-ui/app/elements/diff/gr-diff-comment-thread/gr-diff-comment-thread.html @@ -59,6 +59,7 @@ limitations under the License. draft="[[comment.__draft]]" show-actions="[[_showActions]]" comment-side="[[comment.__commentSide]]" + side="[[side]]" project-config="[[projectConfig]]" on-create-fix-comment="_handleCommentFix" on-comment-discard="_handleCommentDiscard"></gr-diff-comment> diff --git a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js index aff29162cf..43d7c3e7ac 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js +++ b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment.js @@ -170,7 +170,7 @@ _eraseDraftComment: function() { this.$.storage.eraseDraftComment({ changeNum: this.changeNum, - patchNum: this.patchNum, + patchNum: this._getPatchNum(), path: this.comment.path, line: this.comment.line, range: this.comment.range, @@ -288,7 +288,7 @@ var commentLocation = { changeNum: this.changeNum, - patchNum: this.patchNum, + patchNum: this._getPatchNum(), path: this.comment.path, line: this.comment.line, range: this.comment.range, @@ -410,6 +410,10 @@ draft); }, + _getPatchNum: function() { + return this.side === 'PARENT' ? 'PARENT' : this.patchNum; + }, + _loadLocalDraft: function(changeNum, patchNum, comment) { // Only apply local drafts to comments that haven't been saved // remotely, and haven't been given a default message already. @@ -423,7 +427,7 @@ var draft = this.$.storage.getDraftComment({ changeNum: changeNum, - patchNum: patchNum, + patchNum: this._getPatchNum(), path: comment.path, line: comment.line, range: comment.range, diff --git a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html index 64be952767..2881fc181e 100644 --- a/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html +++ b/polygerrit-ui/app/elements/diff/gr-diff-comment/gr-diff-comment_test.html @@ -152,6 +152,14 @@ limitations under the License. }); }); + test('_getPatchNum', function() { + element.side = 'PARENT'; + element.patchNum = 1; + assert.equal(element._getPatchNum(), 'PARENT'); + element.side = 'REVISION'; + assert.equal(element._getPatchNum(), 1); + }); + test('comment expand and collapse', function() { element.collapsed = true; assert.isFalse(isVisible(element.$$('gr-formatted-text')),