Chromium Code Reviews| Index: chrome/browser/resources/settings/settings_menu/settings_menu.js |
| diff --git a/chrome/browser/resources/settings/settings_menu/settings_menu.js b/chrome/browser/resources/settings/settings_menu/settings_menu.js |
| index 7ea80a6d4500036b79dfa26f99b137611a0fac5b..db44ee63257eb30404e97c37871c8096bc83dc55 100644 |
| --- a/chrome/browser/resources/settings/settings_menu/settings_menu.js |
| +++ b/chrome/browser/resources/settings/settings_menu/settings_menu.js |
| @@ -5,18 +5,17 @@ |
| /** |
| * @fileoverview |
| * 'settings-menu' shows a menu with a hardcoded set of pages and subpages. |
| - * |
| - * Example: |
| - * |
| - * <settings-menu selected-page-id="{{selectedPageId}}"> |
| - * </settings-menu> |
| */ |
| Polymer({ |
| is: 'settings-menu', |
| properties: { |
| + /** @private */ |
| + advancedOpened_: Boolean, |
| + |
| /** |
| * The current active route. |
| + * @type {!SettingsRoute} |
| */ |
| currentRoute: { |
| type: Object, |
| @@ -25,21 +24,49 @@ Polymer({ |
| }, |
| }, |
| - /** @private */ |
| - currentRouteChanged_: function() { |
| - // Sync URL changes to the side nav menu. |
| + attached: function() { |
| + document.addEventListener('toggle-advanced-page', function(e) { |
| + if (e.detail) |
| + this.$.advancedPage.open(); |
| + else |
| + this.$.advancedPage.close(); |
| + }.bind(this)); |
| - this.$.advancedPage.opened = this.currentRoute.page == 'advanced'; |
| - this.$.basicPage.opened = this.currentRoute.page == 'basic'; |
| + this.$.advancedPage.addEventListener('paper-submenu-open', function() { |
| + this.fire('toggle-advanced-page', true); |
| + }.bind(this)); |
| - if (this.$.advancedPage.opened) |
| - this.$.advancedMenu.selected = this.currentRoute.section; |
| + this.$.advancedPage.addEventListener('paper-submenu-close', function() { |
| + this.fire('toggle-advanced-page', false); |
| + }.bind(this)); |
| - if (this.$.basicPage.opened) |
| + if (this.currentRoute.page == 'advanced') |
| + this.$.advancedPage.open(); |
|
Dan Beam
2016/06/03 03:12:24
could this be:
this.fire('toggle-advanced-page',
dschuyler
2016/06/06 21:47:55
Yes, but then it would fire an unnecessary event
d
Dan Beam
2016/06/06 22:31:03
it seems like this would no-op on the other side a
dschuyler
2016/06/06 23:05:13
Done.
|
| + }, |
| + |
| + /** |
| + * @param {!SettingsRoute} newRoute |
| + * @private |
| + */ |
| + currentRouteChanged_: function(newRoute) { |
| + // Sync URL changes to the side nav menu. |
| + |
| + if (newRoute.page == 'advanced') { |
| + this.$.advancedMenu.selected = this.currentRoute.section; |
| + this.$.basicMenu.selected = null; |
| + } else if (newRoute.page == 'basic') { |
| + this.$.advancedMenu.selected = null; |
| this.$.basicMenu.selected = this.currentRoute.section; |
| + } else { |
| + this.$.advancedMenu.selected = null; |
| + this.$.basicMenu.selected = null; |
| + } |
| }, |
| - /** @private */ |
| + /** |
| + * @param {!Event} event |
| + * @private |
| + */ |
| openPage_: function(event) { |
| var submenuRoute = event.currentTarget.parentNode.dataset.page; |
| if (submenuRoute) { |