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 9047a049442fab62cbbc7d6a0351ad7379045cd8..5b20dd4accf783211c8be9fadc41cf9bdcccc6df 100644 |
--- a/chrome/browser/resources/settings/settings_menu/settings_menu.js |
+++ b/chrome/browser/resources/settings/settings_menu/settings_menu.js |
@@ -48,7 +48,8 @@ Polymer({ |
this.fire('toggle-advanced-page', false); |
}.bind(this)); |
- this.fire('toggle-advanced-page', this.currentRoute.page == 'advanced'); |
+ this.fire('toggle-advanced-page', |
+ settings.Route.ADVANCED.contains(this.currentRoute)); |
}, |
/** |
@@ -57,19 +58,10 @@ Polymer({ |
*/ |
currentRouteChanged_: function(newRoute) { |
// Sync URL changes to the side nav menu. |
- |
- if (newRoute.page == 'advanced') { |
+ this.$.advancedMenu.selected = this.currentRoute.path; |
michaelpg
2016/07/29 20:28:53
if this works, can we just use (one-way) data bind
tommycli
2016/07/29 21:04:40
Done. Nice
michaelpg
2016/07/29 21:32:56
Awesome, we got rid of an entire currentRouteChang
|
+ this.$.basicMenu.selected = this.currentRoute.path; |
assert(!this.pageVisibility || |
this.pageVisibility.advancedSettings !== false); |
- 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; |
- } |
}, |
/** |
@@ -92,22 +84,10 @@ Polymer({ |
*/ |
openPage_: function(event) { |
this.ripple_(/** @type {!Node} */(event.currentTarget)); |
- var page = event.currentTarget.parentNode.dataset.page; |
- if (!page) |
- return; |
- |
- var section = event.currentTarget.dataset.section; |
- // TODO(tommycli): Use Object.values once Closure compilation supports it. |
- var matchingKey = Object.keys(settings.Route).find(function(key) { |
- var route = settings.Route[key]; |
- // TODO(tommycli): Remove usage of page, section, and subpage properties. |
- // Routes should be somehow directly bound to the menu elements. |
- return route.page == page && route.section == section && |
- route.subpage.length == 0; |
- }); |
- if (matchingKey) |
- settings.navigateTo(settings.Route[matchingKey]); |
+ var route = settings.getRouteForPath(event.currentTarget.dataset.path); |
michaelpg
2016/07/29 20:28:53
unfortunate that the menu has to do this -- settin
tommycli
2016/07/29 21:04:40
Yeah I know. Ideally I'd prefer to do
settings.na
|
+ assert(route, 'settings-menu has an an entry with an invalid path'); |
+ settings.navigateTo(route); |
}, |
/** |