Merge "Add disableDiffPrefs to change view and child"
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 148cd34..38f5f2f 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
@@ -531,6 +531,7 @@
patch-num="{{_patchRange.patchNum}}"
base-patch-num="{{_patchRange.basePatchNum}}"
files-expanded="[[_filesExpanded]]"
+ diff-prefs-disabled="[[_diffPrefsDisabled]]"
on-open-diff-prefs="_handleOpenDiffPrefs"
on-open-download-dialog="_handleOpenDownloadDialog"
on-open-upload-help-dialog="_handleOpenUploadHelpDialog"
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 a905c9f..24453be 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
@@ -108,6 +108,14 @@
type: Boolean,
value: false,
},
+ disableDiffPrefs: {
+ type: Boolean,
+ value: false,
+ },
+ _diffPrefsDisabled: {
+ type: Boolean,
+ computed: '_computeDiffPrefsDisabled(disableDiffPrefs, _loggedIn)',
+ },
_commentThreads: Array,
/** @type {?} */
_serverConfig: {
@@ -978,6 +986,8 @@
if (this.shouldSuppressKeyboardShortcut(e) ||
this.modifierPressed(e)) { return; }
+ if (this._diffPrefsDisabled) { return; }
+
e.preventDefault();
this.$.fileList.openDiffPrefs();
},
@@ -1664,5 +1674,9 @@
_computeCurrentRevision(currentRevision, revisions) {
return revisions && revisions[currentRevision];
},
+
+ _computeDiffPrefsDisabled(disableDiffPrefs, loggedIn) {
+ return disableDiffPrefs || !loggedIn;
+ },
});
})();
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 4b6cc6c..df06e55 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
@@ -291,6 +291,16 @@
test(', should open diff preferences', () => {
const stub = sandbox.stub(element.$.fileList.$.diffPreferences, 'open');
+ element._loggedIn = false;
+ element.disableDiffPrefs = true;
+ MockInteractions.pressAndReleaseKeyOn(element, 188, null, ',');
+ assert.isFalse(stub.called);
+
+ element._loggedIn = true;
+ MockInteractions.pressAndReleaseKeyOn(element, 188, null, ',');
+ assert.isFalse(stub.called);
+
+ element.disableDiffPrefs = false;
MockInteractions.pressAndReleaseKeyOn(element, 188, null, ',');
assert.isTrue(stub.called);
});
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.html b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.html
index 142e706..924ddab 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.html
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.html
@@ -249,10 +249,10 @@
<gr-diff-mode-selector
id="modeSelect"
mode="{{diffViewMode}}"
- save-on-change="[[loggedIn]]"></gr-diff-mode-selector>
+ save-on-change="[[!diffPrefsDisabled]]"></gr-diff-mode-selector>
<span id="diffPrefsContainer"
class="hideOnEdit"
- hidden$="[[_computePrefsButtonHidden(diffPrefs, loggedIn)]]"
+ hidden$="[[_computePrefsButtonHidden(diffPrefs, diffPrefsDisabled)]]"
hidden>
<gr-button
link
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js
index 665472b..eaa2efd 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header.js
@@ -62,6 +62,7 @@
serverConfig: Object,
shownFileCount: Number,
diffPrefs: Object,
+ diffPrefsDisabled: Boolean,
diffViewMode: {
type: String,
notify: true,
@@ -186,8 +187,8 @@
});
},
- _computePrefsButtonHidden(prefs, loggedIn) {
- return !loggedIn || !prefs;
+ _computePrefsButtonHidden(prefs, diffPrefsDisabled) {
+ return diffPrefsDisabled || !prefs;
},
diff --git a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html
index e2685e1..adfeeb4 100644
--- a/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html
+++ b/polygerrit-ui/app/elements/change/gr-file-list-header/gr-file-list-header_test.html
@@ -62,21 +62,21 @@
});
});
- test('Diff preferences hidden when no prefs or logged out', () => {
- element.loggedIn = false;
+ test('Diff preferences hidden when no prefs or diffPrefsDisabled', () => {
+ element.diffPrefsDisabled = true;
flushAsynchronousOperations();
assert.isTrue(element.$.diffPrefsContainer.hidden);
- element.loggedIn = true;
+ element.diffPrefsDisabled = false;
flushAsynchronousOperations();
assert.isTrue(element.$.diffPrefsContainer.hidden);
- element.loggedIn = false;
+ element.diffPrefsDisabled = true;
element.diffPrefs = {font_size: '12'};
flushAsynchronousOperations();
assert.isTrue(element.$.diffPrefsContainer.hidden);
- element.loggedIn = true;
+ element.diffPrefsDisabled = false;
flushAsynchronousOperations();
assert.isFalse(element.$.diffPrefsContainer.hidden);
});
@@ -265,7 +265,7 @@
suite('editMode behavior', () => {
setup(() => {
- element.loggedIn = true;
+ element.diffPrefsDisabled = false;
element.diffPrefs = {};
});