diff options
Diffstat (limited to 'polygerrit-ui/app/elements/settings')
3 files changed, 8 insertions, 212 deletions
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 799cf5943b..cb536c17c3 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 @@ -27,6 +27,7 @@ limitations under the License. <link rel="import" href="../../settings/gr-change-table-editor/gr-change-table-editor.html"> <link rel="import" href="../../shared/gr-button/gr-button.html"> <link rel="import" href="../../shared/gr-date-formatter/gr-date-formatter.html"> +<link rel="import" href="../../shared/gr-diff-preferences/gr-diff-preferences.html"> <link rel="import" href="../../shared/gr-page-nav/gr-page-nav.html"> <link rel="import" href="../../shared/gr-rest-api-interface/gr-rest-api-interface.html"> <link rel="import" href="../../shared/gr-select/gr-select.html"> @@ -259,110 +260,9 @@ limitations under the License. Diff Preferences </h2> <fieldset id="diffPreferences"> - <section> - <span class="title">Context</span> - <span class="value"> - <gr-select bind-value="{{_diffPrefs.context}}"> - <select> - <option value="3">3 lines</option> - <option value="10">10 lines</option> - <option value="25">25 lines</option> - <option value="50">50 lines</option> - <option value="75">75 lines</option> - <option value="100">100 lines</option> - <option value="-1">Whole file</option> - </select> - </gr-select> - </span> - </section> - <section> - <span class="title">Fit to screen</span> - <span class="value"> - <input - id="diffLineWrapping" - type="checkbox" - checked$="[[_diffPrefs.line_wrapping]]" - on-change="_handleDiffLineWrappingChanged"> - </span> - </section> - <section id="columnsPref" hidden$="[[_diffPrefs.line_wrapping]]"> - <span class="title">Diff width</span> - <span class="value"> - <input - is="iron-input" - type="number" - prevent-invalid-input - allowed-pattern="[0-9]" - bind-value="{{_diffPrefs.line_length}}"> - </span> - </section> - <section> - <span class="title">Tab width</span> - <span class="value"> - <input - is="iron-input" - type="number" - prevent-invalid-input - allowed-pattern="[0-9]" - bind-value="{{_diffPrefs.tab_size}}"> - </span> - </section> - <section hidden$="[[!_diffPrefs.font_size]]"> - <span class="title">Font size</span> - <span class="value"> - <input - is="iron-input" - type="number" - prevent-invalid-input - allowed-pattern="[0-9]" - bind-value="{{_diffPrefs.font_size}}"> - </span> - </section> - <section> - <span class="title">Show tabs</span> - <span class="value"> - <input - id="diffShowTabs" - type="checkbox" - checked$="[[_diffPrefs.show_tabs]]" - on-change="_handleDiffShowTabsChanged"> - </span> - </section> - <section> - <span class="title">Show trailing whitespace</span> - <span class="value"> - <input - id="showTrailingWhitespace" - type="checkbox" - checked$="[[_diffPrefs.show_whitespace_errors]]" - on-change="_handleShowTrailingWhitespaceChanged"> - </span> - </section> - <section> - <span class="title">Syntax highlighting</span> - <span class="value"> - <input - id="diffSyntaxHighlighting" - type="checkbox" - checked$="[[_diffPrefs.syntax_highlighting]]" - on-change="_handleDiffSyntaxHighlightingChanged"> - </span> - </section> - <section> - <div class="pref"> - <span class="title">Ignore Whitespace</span> - <span class="value"> - <gr-select bind-value="{{_diffPrefs.ignore_whitespace}}"> - <select> - <option value="IGNORE_NONE">None</option> - <option value="IGNORE_TRAILING">Trailing</option> - <option value="IGNORE_LEADING_AND_TRAILING">Leading & trailing</option> - <option value="IGNORE_ALL">All</option> - </select> - </gr-select> - </span> - </div> - </section> + <gr-diff-preferences + id="diffPrefs" + has-unsaved-changes="{{_diffPrefsChanged}}"></gr-diff-preferences> <gr-button id="saveDiffPrefs" on-tap="_handleSaveDiffPreferences" 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 0ce8ce0c80..0ace87c3d5 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 @@ -64,8 +64,6 @@ }, _accountNameMutable: Boolean, _accountInfoChanged: Boolean, - /** @type {?} */ - _diffPrefs: Object, _changeTableColumnsNotDisplayed: Array, /** @type {?} */ _localPrefs: { @@ -92,10 +90,8 @@ type: Boolean, value: false, }, - _diffPrefsChanged: { - type: Boolean, - value: false, - }, + /** @type {?} */ + _diffPrefsChanged: Boolean, /** @type {?} */ _editPrefsChanged: Boolean, _menuChanged: { @@ -149,7 +145,6 @@ observers: [ '_handlePrefsChanged(_localPrefs.*)', - '_handleDiffPrefsChanged(_diffPrefs.*)', '_handleMenuChanged(_localMenu.splices)', '_handleChangeTableChanged(_localChangeTableColumns, _showNumber)', ], @@ -166,6 +161,7 @@ this.$.httpPass.loadData(), this.$.identities.loadData(), this.$.editPrefs.loadData(), + this.$.diffPrefs.loadData(), ]; promises.push(this.$.restAPI.getPreferences().then(prefs => { @@ -176,10 +172,6 @@ this._cloneChangeTableColumns(); })); - promises.push(this.$.restAPI.getDiffPreferences().then(prefs => { - this._diffPrefs = prefs; - })); - promises.push(this.$.restAPI.getConfig().then(config => { this._serverConfig = config; const configPromises = []; @@ -277,11 +269,6 @@ this._prefsChanged = true; }, - _handleDiffPrefsChanged() { - if (this._isLoading()) { return; } - this._diffPrefsChanged = true; - }, - _handleShowSizeBarsInFileListChanged() { this.set('_localPrefs.size_bar_in_change_table', this.$.showSizeBarsInFileList.checked); @@ -318,24 +305,6 @@ }); }, - _handleDiffLineWrappingChanged() { - this.set('_diffPrefs.line_wrapping', this.$.diffLineWrapping.checked); - }, - - _handleDiffShowTabsChanged() { - this.set('_diffPrefs.show_tabs', this.$.diffShowTabs.checked); - }, - - _handleShowTrailingWhitespaceChanged() { - this.set('_diffPrefs.show_whitespace_errors', - this.$.showTrailingWhitespace.checked); - }, - - _handleDiffSyntaxHighlightingChanged() { - this.set('_diffPrefs.syntax_highlighting', - this.$.diffSyntaxHighlighting.checked); - }, - _handleSaveChangeTable() { this.set('prefs.change_table', this._localChangeTableColumns); this.set('prefs.legacycid_in_change_table', this._showNumber); @@ -346,10 +315,7 @@ }, _handleSaveDiffPreferences() { - return this.$.restAPI.saveDiffPreferences(this._diffPrefs) - .then(() => { - this._diffPrefsChanged = false; - }); + this.$.diffPrefs.save(); }, _handleSaveEditPreferences() { 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 f47816f4b1..2f0cb7c0db 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 @@ -43,7 +43,6 @@ limitations under the License. let element; let account; let preferences; - let diffPreferences; let config; let sandbox; @@ -96,31 +95,12 @@ limitations under the License. ], change_table: [], }; - diffPreferences = { - context: 10, - tab_size: 8, - font_size: 12, - line_length: 100, - cursor_blink_rate: 0, - line_wrapping: false, - intraline_difference: true, - show_line_endings: true, - show_tabs: true, - show_whitespace_errors: true, - syntax_highlighting: true, - auto_hide_diff_table_header: true, - theme: 'DEFAULT', - ignore_whitespace: 'IGNORE_NONE', - }; config = {auth: {editable_account_fields: []}}; stub('gr-rest-api-interface', { getLoggedIn() { return Promise.resolve(true); }, getAccount() { return Promise.resolve(account); }, getPreferences() { return Promise.resolve(preferences); }, - getDiffPreferences() { - return Promise.resolve(diffPreferences); - }, getWatchedProjects() { return Promise.resolve([]); }, @@ -261,56 +241,6 @@ limitations under the License. }); }); - test('diff preferences', done => { - // Rendered with the expected preferences selected. - assert.equal(valueOf('Context', 'diffPreferences') - .firstElementChild.bindValue, diffPreferences.context); - assert.equal(valueOf('Diff width', 'diffPreferences') - .firstElementChild.bindValue, diffPreferences.line_length); - assert.equal(valueOf('Tab width', 'diffPreferences') - .firstElementChild.bindValue, diffPreferences.tab_size); - assert.equal(valueOf('Font size', 'diffPreferences') - .firstElementChild.bindValue, diffPreferences.font_size); - assert.equal(valueOf('Show tabs', 'diffPreferences') - .firstElementChild.checked, diffPreferences.show_tabs); - assert.equal(valueOf('Show trailing whitespace', 'diffPreferences') - .firstElementChild.checked, diffPreferences.show_whitespace_errors); - assert.equal(valueOf('Fit to screen', 'diffPreferences') - .firstElementChild.checked, diffPreferences.line_wrapping); - - assert.isFalse(element._diffPrefsChanged); - - const showTabsCheckbox = valueOf('Show tabs', 'diffPreferences') - .firstElementChild; - showTabsCheckbox.checked = false; - element._handleDiffShowTabsChanged(); - - assert.isTrue(element._diffPrefsChanged); - - stub('gr-rest-api-interface', { - saveDiffPreferences(prefs) { - assert.equal(prefs.show_tabs, false); - return Promise.resolve(); - }, - }); - - // Save the change. - element._handleSaveDiffPreferences().then(() => { - assert.isFalse(element._diffPrefsChanged); - done(); - }); - }); - - test('columns input is hidden with fit to scsreen is selected', () => { - assert.isFalse(element.$.columnsPref.hidden); - - MockInteractions.tap(element.$.diffLineWrapping); - assert.isTrue(element.$.columnsPref.hidden); - - MockInteractions.tap(element.$.diffLineWrapping); - assert.isFalse(element.$.columnsPref.hidden); - }); - test('menu', done => { assert.isFalse(element._menuChanged); assert.isFalse(element._prefsChanged); |