Merge "Add "voting disabled" text to reply dialogue for closed CLs"
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html
index 1432d8c..cb6a6f9 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.html
@@ -208,6 +208,12 @@
</iron-autogrow-textarea>
</section>
<section class="labelsContainer">
+ <template is="dom-if" if="[[_isClosed(change)]]" id="labelDisabled">
+ <div class="labelDisabledMessage">
+ Setting labels are disabled for this change because it has been
+ closed.
+ </div>
+ </template>
<template is="dom-repeat"
items="[[_computeLabelArray(permittedLabels)]]" as="label">
<div class="labelContainer">
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js
index b3d3849..a61de4d 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog.js
@@ -23,6 +23,8 @@
REVIEWERS: 'reviewers',
};
+ var CLOSED_CHANGE_STATUSES = ['ABANDONED', 'MERGED'];
+
Polymer({
is: 'gr-reply-dialog',
@@ -271,6 +273,10 @@
}.bind(this));
},
+ _isClosed: function(change) {
+ return CLOSED_CHANGE_STATUSES.indexOf(change.status) !== -1;
+ },
+
_computeHideDraftList: function(drafts) {
return Object.keys(drafts || {}).length == 0;
},
diff --git a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html
index 01ca076..6c77afb 100644
--- a/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html
+++ b/polygerrit-ui/app/elements/change/gr-reply-dialog/gr-reply-dialog_test.html
@@ -244,6 +244,18 @@
}).then(done);
});
+ test('message disabled dialogue appears for closed change', function() {
+ element.change = {status: 'ABANDONED'};
+ flushAsynchronousOperations();
+ assert.isOk(element.$$('.labelDisabledMessage'));
+ });
+
+ test('message disabled dialogue does not appear for open change',
+ function() {
+ element.change = {status: 'NEW'};
+ assert.isNotOk(element.$$('.labelDisabledMessage'));
+ });
+
test('_getStorageLocation', function() {
var actual = element._getStorageLocation();
assert.equal(actual.changeNum, changeNum);