From b1c18a21912fcc5ebf7da8c6acce6c6bb329cc03 Mon Sep 17 00:00:00 2001 From: Wyatt Allen Date: Thu, 11 Jan 2018 10:27:56 -0800 Subject: [PATCH] Show indicator when change parent is out of date If the parent of the commit is no longer the tip of the target branch, it becomes possible to rebase the change on that branch. With this change, the change metadata section shows an out of date indicator next to the abbreviated parent hash. The indicator is only shown on non-merge changes for authenticated users. Bug: Issue 4655 Change-Id: I6cb4d280352bb37214b853760c6723597690010a --- .../gr-change-metadata/gr-change-metadata.html | 15 ++++++++++++++- .../gr-change-metadata/gr-change-metadata.js | 16 ++++++++++++++-- .../gr-change-metadata_test.html | 12 ++++++++++++ .../change/gr-change-view/gr-change-view.html | 1 + .../change/gr-change-view/gr-change-view.js | 2 ++ .../gr-tooltip-content/gr-tooltip-content.html | 5 +++++ 6 files changed, 48 insertions(+), 3 deletions(-) diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html index ca94356c3c..514f3a9471 100644 --- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html +++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.html @@ -28,6 +28,7 @@ limitations under the License. + @@ -135,6 +136,13 @@ limitations under the License. .parentList gr-commit-info { display: inline-block; } + #parentNotCurrentMessage { + display: none; + } + .parentList.notCurrent.nonMerge #parentNotCurrentMessage { + --arrow-color: red; + display: inline-block; + } @media screen and (max-width: 50em), screen and (min-width: 75em) { :host { display: table; @@ -236,13 +244,18 @@ limitations under the License.
[[_computeParentsLabel(_currentParents)]] -
    +
    diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js index 92763ee360..ddee577cb0 100644 --- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js +++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata.js @@ -25,6 +25,8 @@ CHERRY_PICK: 'Cherry Pick', }; + const NOT_CURRENT_MESSAGE = 'Not current - rebase possible'; + Polymer({ is: 'gr-change-metadata', @@ -46,6 +48,12 @@ * @type {{ note_db_enabled: string }} */ serverConfig: Object, + parentIsCurrent: Boolean, + _notCurrentMessage: { + type: String, + value: NOT_CURRENT_MESSAGE, + readOnly: true, + }, _topicReadOnly: { type: Boolean, computed: '_computeTopicReadOnly(mutable, change)', @@ -425,8 +433,12 @@ return parents.length > 1 ? 'Parents' : 'Parent'; }, - _computeParentListClass(parents) { - return parents.length > 1 ? 'parentList merge' : 'parentList'; + _computeParentListClass(parents, parentIsCurrent) { + return [ + 'parentList', + parents.length > 1 ? 'merge' : 'nonMerge', + parentIsCurrent ? 'current' : 'notCurrent', + ].join(' '); }, }); })(); diff --git a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html index f6d020e206..9ee09eac83 100644 --- a/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html +++ b/polygerrit-ui/app/elements/change/gr-change-metadata/gr-change-metadata_test.html @@ -336,6 +336,18 @@ limitations under the License. 'Parents'); }); + test('_computeParentListClass', () => { + const parent = {commit: 'abc123', subject: 'My parent commit'}; + assert.equal(element._computeParentListClass([parent], true), + 'parentList nonMerge current'); + assert.equal(element._computeParentListClass([parent], false), + 'parentList nonMerge notCurrent'); + assert.equal(element._computeParentListClass([parent, parent], false), + 'parentList merge notCurrent'); + assert.equal(element._computeParentListClass([parent, parent], true), + 'parentList merge current'); + }); + test('_showAddTopic', () => { assert.isTrue(element._showAddTopic(null, false)); assert.isTrue(element._showAddTopic({base: {topic: null}}, false)); diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html index 7db2bc45bf..7e661c75f5 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.html @@ -370,6 +370,7 @@ limitations under the License. server-config="[[_serverConfig]]" missing-labels="[[_missingLabels]]" mutable="[[_loggedIn]]" + parent-is-current="[[!_rebaseOriginallyEnabled]]" on-show-reply-dialog="_handleShowReplyDialog">