PolyGerrit: Use new gr-edit-preferences component in settings
Change-Id: I276a50a4c44c07d153951477dc49dcb1f306fbd8
diff --git a/polygerrit-ui/app/elements/gr-app.js b/polygerrit-ui/app/elements/gr-app.js
index ad5c62e..722fff8 100644
--- a/polygerrit-ui/app/elements/gr-app.js
+++ b/polygerrit-ui/app/elements/gr-app.js
@@ -150,6 +150,7 @@
// Preferences are cached when a user is logged in; warm them.
this.$.restAPI.getPreferences();
this.$.restAPI.getDiffPreferences();
+ this.$.restAPI.getEditPreferences();
this.$.errorManager.knownAccountId =
this._account && this._account._account_id || null;
},
diff --git a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
index 8aae460..1195408 100644
--- a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
+++ b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.html
@@ -29,6 +29,7 @@
<link rel="import" href="../../shared/gr-select/gr-select.html">
<link rel="import" href="../gr-account-info/gr-account-info.html">
<link rel="import" href="../gr-agreements-list/gr-agreements-list.html">
+<link rel="import" href="../gr-edit-preferences/gr-edit-preferences.html">
<link rel="import" href="../gr-email-editor/gr-email-editor.html">
<link rel="import" href="../gr-group-list/gr-group-list.html">
<link rel="import" href="../gr-http-password/gr-http-password.html">
@@ -63,6 +64,7 @@
<li><a href="#Profile">Profile</a></li>
<li><a href="#Preferences">Preferences</a></li>
<li><a href="#DiffPreferences">Diff Preferences</a></li>
+ <li><a href="#EditPreferences">Edit Preferences</a></li>
<li><a href="#Menu">Menu</a></li>
<li><a href="#ChangeTableColumns">Change Table Columns</a></li>
<li><a href="#Notifications">Notifications</a></li>
@@ -237,10 +239,10 @@
<span class="title">Fit to screen</span>
<span class="value">
<input
- id="lineWrapping"
+ id="diffLineWrapping"
type="checkbox"
checked$="[[_diffPrefs.line_wrapping]]"
- on-change="_handleLineWrappingChanged">
+ on-change="_handleDiffLineWrappingChanged">
</span>
</section>
<section id="columnsPref" hidden$="[[_diffPrefs.line_wrapping]]">
@@ -280,10 +282,10 @@
<span class="title">Show tabs</span>
<span class="value">
<input
- id="showTabs"
+ id="diffShowTabs"
type="checkbox"
checked$="[[_diffPrefs.show_tabs]]"
- on-change="_handleShowTabsChanged">
+ on-change="_handleDiffShowTabsChanged">
</span>
</section>
<section>
@@ -300,10 +302,10 @@
<span class="title">Syntax highlighting</span>
<span class="value">
<input
- id="syntaxHighlighting"
+ id="diffSyntaxHighlighting"
type="checkbox"
checked$="[[_diffPrefs.syntax_highlighting]]"
- on-change="_handleSyntaxHighlightingChanged">
+ on-change="_handleDiffSyntaxHighlightingChanged">
</span>
</section>
<gr-button
@@ -311,6 +313,20 @@
on-tap="_handleSaveDiffPreferences"
disabled$="[[!_diffPrefsChanged]]">Save changes</gr-button>
</fieldset>
+ <h2
+ id="EditPreferences"
+ class$="[[_computeHeaderClass(_editPrefsChanged)]]">
+ Edit Preferences
+ </h2>
+ <fieldset id="editPreferences">
+ <gr-edit-preferences
+ id="editPrefs"
+ has-unsaved-changes="{{_editPrefsChanged}}"></gr-edit-preferences>
+ <gr-button
+ id="saveEditPrefs"
+ on-tap="_handleSaveEditPreferences"
+ disabled$="[[!_editPrefsChanged]]">Save changes</gr-button>
+ </fieldset>
<h2 id="Menu" class$="[[_computeHeaderClass(_menuChanged)]]">Menu</h2>
<fieldset id="menu">
<gr-menu-editor menu-items="{{_localMenu}}"></gr-menu-editor>
diff --git a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js
index 08c3d4c1..5836b0d 100644
--- a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js
+++ b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view.js
@@ -90,6 +90,8 @@
type: Boolean,
value: false,
},
+ /** @type {?} */
+ _editPrefsChanged: Boolean,
_menuChanged: {
type: Boolean,
value: false,
@@ -146,6 +148,7 @@
this.$.groupList.loadData(),
this.$.httpPass.loadData(),
this.$.identities.loadData(),
+ this.$.editPrefs.loadData(),
];
promises.push(this.$.restAPI.getPreferences().then(prefs => {
@@ -287,12 +290,12 @@
});
},
- _handleLineWrappingChanged() {
- this.set('_diffPrefs.line_wrapping', this.$.lineWrapping.checked);
+ _handleDiffLineWrappingChanged() {
+ this.set('_diffPrefs.line_wrapping', this.$.diffLineWrapping.checked);
},
- _handleShowTabsChanged() {
- this.set('_diffPrefs.show_tabs', this.$.showTabs.checked);
+ _handleDiffShowTabsChanged() {
+ this.set('_diffPrefs.show_tabs', this.$.diffShowTabs.checked);
},
_handleShowTrailingWhitespaceChanged() {
@@ -300,9 +303,9 @@
this.$.showTrailingWhitespace.checked);
},
- _handleSyntaxHighlightingChanged() {
+ _handleDiffSyntaxHighlightingChanged() {
this.set('_diffPrefs.syntax_highlighting',
- this.$.syntaxHighlighting.checked);
+ this.$.diffSyntaxHighlighting.checked);
},
_handleSaveChangeTable() {
@@ -321,6 +324,10 @@
});
},
+ _handleSaveEditPreferences() {
+ this.$.editPrefs.save();
+ },
+
_handleSaveMenu() {
this.set('prefs.my', this._localMenu);
this._cloneMenu();
diff --git a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view_test.html b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view_test.html
index 868a9e3..9a20b6c 100644
--- a/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view_test.html
+++ b/polygerrit-ui/app/elements/settings/gr-settings-view/gr-settings-view_test.html
@@ -254,7 +254,7 @@
const showTabsCheckbox = valueOf('Show tabs', 'diffPreferences')
.firstElementChild;
showTabsCheckbox.checked = false;
- element._handleShowTabsChanged();
+ element._handleDiffShowTabsChanged();
assert.isTrue(element._diffPrefsChanged);
@@ -275,10 +275,10 @@
test('columns input is hidden with fit to scsreen is selected', () => {
assert.isFalse(element.$.columnsPref.hidden);
- MockInteractions.tap(element.$.lineWrapping);
+ MockInteractions.tap(element.$.diffLineWrapping);
assert.isTrue(element.$.columnsPref.hidden);
- MockInteractions.tap(element.$.lineWrapping);
+ MockInteractions.tap(element.$.diffLineWrapping);
assert.isFalse(element.$.columnsPref.hidden);
});