diff --git a/polygerrit-ui/app/behaviors/rest-client-behavior.html b/polygerrit-ui/app/behaviors/rest-client-behavior.html index ce0b2a59bb..4def9b2596 100644 --- a/polygerrit-ui/app/behaviors/rest-client-behavior.html +++ b/polygerrit-ui/app/behaviors/rest-client-behavior.html @@ -30,10 +30,10 @@ limitations under the License. }, ChangeStatus: { - NEW: 'NEW', - MERGED: 'MERGED', ABANDONED: 'ABANDONED', DRAFT: 'DRAFT', + MERGED: 'MERGED', + NEW: 'NEW', }, // Must be kept in sync with the ListChangesOption enum and protobuf. @@ -108,6 +108,23 @@ limitations under the License. return status === this.ChangeStatus.NEW || status === this.ChangeStatus.DRAFT; }, + + changeStatusString: function(change) { + // "Closed" states should take precedence over "open" ones. + if (change.status === this.ChangeStatus.MERGED) { + return 'Merged'; + } + if (change.status === this.ChangeStatus.ABANDONED) { + return 'Abandoned'; + } + if (change.mergeable === false) { + return 'Merge Conflict'; + } + if (change.status === this.ChangeStatus.DRAFT) { + return 'Draft'; + } + return ''; + }, }; window.Gerrit = window.Gerrit || {}; diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.html b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.html index 24f915a162..91267852be 100644 --- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.html +++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.html @@ -75,7 +75,7 @@ limitations under the License. [[change._number]] [[change.subject]] - [[_computeChangeStatusString(change)]] + [[changeStatusString(change)]] diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js index d16093374e..90b2e1d1a9 100644 --- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js +++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item.js @@ -51,25 +51,6 @@ return '/c/' + changeNum + '/'; }, - _computeChangeStatusString: function(change) { - // "Closed" states should take precedence over "open" ones. - if (change.status == this.ChangeStatus.MERGED) { - return 'Merged'; - } - if (change.status == this.ChangeStatus.ABANDONED) { - return 'Abandoned'; - } - - if (change.mergeable != null && change.mergeable == false) { - return 'Merge Conflict'; - } - if (change.status == this.ChangeStatus.DRAFT) { - return 'Draft'; - } - - return ''; - }, - _computeLabelTitle: function(change, labelName) { var label = change.labels[labelName]; if (!label) { return 'Label not applicable'; } diff --git a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html index 5507b9f625..b7c0853206 100644 --- a/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html +++ b/polygerrit-ui/app/elements/change-list/gr-change-list-item/gr-change-list-item_test.html @@ -38,18 +38,21 @@ limitations under the License. element = fixture('basic'); }); - test('computed fields', function() { - assert.equal(element._computeChangeStatusString({mergeable: true}), ''); - assert.equal(element._computeChangeStatusString({mergeable: false}), - 'Merge Conflict'); - assert.equal(element._computeChangeStatusString({status: 'NEW'}), ''); - assert.equal(element._computeChangeStatusString({status: 'MERGED'}), - 'Merged'); - assert.equal(element._computeChangeStatusString({status: 'ABANDONED'}), - 'Abandoned'); - assert.equal(element._computeChangeStatusString({status: 'DRAFT'}), - 'Draft'); + test('change status', function() { + var getStatusForChange = function(change) { + element.change = change; + return element.$$('.cell.status').textContent; + }; + assert.equal(getStatusForChange({mergeable: true}), ''); + assert.equal(getStatusForChange({mergeable: false}), 'Merge Conflict'); + assert.equal(getStatusForChange({status: 'NEW'}), ''); + assert.equal(getStatusForChange({status: 'MERGED'}), 'Merged'); + assert.equal(getStatusForChange({status: 'ABANDONED'}), 'Abandoned'); + assert.equal(getStatusForChange({status: 'DRAFT'}), 'Draft'); + }); + + test('computed fields', function() { assert.equal(element._computeLabelClass({labels: {}}), 'cell label u-gray-background'); assert.equal(element._computeLabelClass( diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js index 76874c0486..90499dd800 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view.js @@ -405,15 +405,17 @@ return '/' + changeNum; }, - _computeChangeStatus: function(change, patchNum) { - var status = change.status; - if (status == this.ChangeStatus.NEW) { + _computeChangeStatus: function(change, patchNum) { + var statusString; + if (change.status === this.ChangeStatus.NEW) { var rev = this._getRevisionNumber(change, patchNum); - // TODO(davido): Figure out, why sometimes revision is not there - if (rev == undefined || !rev.draft) { return ''; } - status = this.ChangeStatus.DRAFT; + if (rev && rev.draft === true) { + statusString = 'Draft'; + } + } else { + statusString = this.changeStatusString(change); } - return '(' + status.toLowerCase() + ')'; + return statusString ? '(' + statusString + ')' : ''; }, _computeLatestPatchNum: function(allPatchSets) { diff --git a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html index 141940dec2..633b72a8f4 100644 --- a/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html +++ b/polygerrit-ui/app/elements/change/gr-change-view/gr-change-view_test.html @@ -257,7 +257,7 @@ limitations under the License. labels: {}, }; var status = element._computeChangeStatus(element._change, '1'); - assert.equal(status, '(draft)'); + assert.equal(status, '(Draft)'); }); test('revision status draft', function() { @@ -280,7 +280,7 @@ limitations under the License. labels: {}, }; var status = element._computeChangeStatus(element._change, '2'); - assert.equal(status, '(draft)'); + assert.equal(status, '(Draft)'); }); test('show commit message edit button', function() {