Chromium Code Reviews| Index: chrome/browser/resources/settings/settings_main/settings_main.js |
| diff --git a/chrome/browser/resources/settings/settings_main/settings_main.js b/chrome/browser/resources/settings/settings_main/settings_main.js |
| index a7070d055de7346ce2f20152e1dde8525681c5d1..b8a061845bc8925ee9705f08eeb277b6da89e888 100644 |
| --- a/chrome/browser/resources/settings/settings_main/settings_main.js |
| +++ b/chrome/browser/resources/settings/settings_main/settings_main.js |
| @@ -5,22 +5,19 @@ |
| /** |
| * @fileoverview |
| * 'settings-main' displays the selected settings page. |
| - * |
| - * Example: |
| - * |
| - * <settings-main pages="[[pages]]" selected-page-id="{{selectedId}}"> |
| - * </settings-main> |
| - * |
| - * See settings-drawer for example of use in 'paper-drawer-panel'. |
| */ |
| Polymer({ |
| is: 'settings-main', |
| properties: { |
| + /** @private */ |
| + isAdvancedMenuOpen_: { |
| + type: Boolean, |
| + value: false, |
| + }, |
| + |
| /** |
| * Preferences state. |
| - * |
| - * @type {?CrSettingsPrefsElement} |
| */ |
| prefs: { |
| type: Object, |
| @@ -29,6 +26,7 @@ Polymer({ |
| /** |
| * The current active route. |
| + * @type {!SettingsRoute} |
| */ |
| currentRoute: { |
| type: Object, |
| @@ -37,13 +35,35 @@ Polymer({ |
| }, |
| /** @private */ |
| - showAdvancedPage_: Boolean, |
| + showAdvancedPage_: { |
| + type: Boolean, |
| + value: false, |
| + }, |
| /** @private */ |
| - showBasicPage_: Boolean, |
| + showAdvancedToggle_: { |
| + type: Boolean, |
| + value: true, |
| + }, |
| /** @private */ |
| - showAboutPage_: Boolean, |
| + showBasicPage_: { |
| + type: Boolean, |
| + value: true, |
| + }, |
| + |
| + /** @private */ |
| + showAboutPage_: { |
| + type: Boolean, |
| + value: false, |
| + }, |
| + }, |
| + |
| + attached: function() { |
| + document.addEventListener('toggle-advanced-page', function(e) { |
| + this.showAdvancedPage_ = e.detail; |
| + this.isAdvancedMenuOpen_ = e.detail; |
| + }.bind(this)); |
| }, |
| /** |
| @@ -51,8 +71,23 @@ Polymer({ |
| * @private |
| */ |
| currentRouteChanged_: function(newRoute) { |
| + var isSubpage = !!newRoute.subpage.length; |
| + |
| this.showAboutPage_ = newRoute.page == 'about'; |
| - this.showAdvancedPage_ = newRoute.page == 'advanced'; |
| - this.showBasicPage_ = newRoute.page == 'basic'; |
| + |
| + this.showAdvancedToggle_ = !this.showAboutPage_ && !isSubpage; |
| + |
| + this.showBasicPage_ = this.showAdvancedToggle_ || newRoute.page == 'basic'; |
| + |
| + this.showAdvancedPage_ = |
| + (this.isAdvancedMenuOpen_ && this.showAdvancedToggle_) || |
| + newRoute.page == 'advanced'; |
| + |
| + this.$.pageContainer.style.height = isSubpage ? '100%' : ''; |
|
michaelpg
2016/06/09 18:00:13
this resets the scrollTop of this.$.pageContainer
|
| + }, |
| + |
| + /** @private */ |
| + toggleAdvancedPage_: function() { |
| + this.fire('toggle-advanced-page', !this.isAdvancedMenuOpen_); |
| }, |
| }); |