Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1112)

Unified Diff: chrome/browser/resources/settings/settings_menu/settings_menu.js

Issue 2008843003: [MD settings] redesign of side nav (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: change defaults Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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..d2a4c90547977df353e16b76a8f876d4c5389822 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,48 @@ 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)
+ this.fire('toggle-advanced-page', this.currentRoute.page == 'advanced');
+ },
+
+ /**
+ * @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) {

Powered by Google App Engine
This is Rietveld 408576698