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

Side by Side Diff: chrome/browser/resources/options/options_page.js

Issue 5024004: dom-ui settings: prefer to add/remove class 'hidden' rather than manipulate t... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 10 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 cr.define('options', function() { 5 cr.define('options', function() {
6 ///////////////////////////////////////////////////////////////////////////// 6 /////////////////////////////////////////////////////////////////////////////
7 // OptionsPage class: 7 // OptionsPage class:
8 8
9 /** 9 /**
10 * Base class for options page. 10 * Base class for options page.
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
102 /** 102 /**
103 * Closes any currently-open subpage. 103 * Closes any currently-open subpage.
104 */ 104 */
105 OptionsPage.closeSubPage = function() { 105 OptionsPage.closeSubPage = function() {
106 for (var name in OptionsPage.registeredSubPages_) { 106 for (var name in OptionsPage.registeredSubPages_) {
107 var pageInfo = OptionsPage.registeredSubPages_[name]; 107 var pageInfo = OptionsPage.registeredSubPages_[name];
108 if (pageInfo.page.visible) { 108 if (pageInfo.page.visible) {
109 pageInfo.page.visible = false; 109 pageInfo.page.visible = false;
110 // Since the managed pref banner lives outside the overlay, and the 110 // Since the managed pref banner lives outside the overlay, and the
111 // parent is not changing visibility, update the banner explicitly. 111 // parent is not changing visibility, update the banner explicitly.
112 var banner = $('managed-prefs-banner'); 112 if (pageInfo.parentPage.managed) {
113 banner.style.display = pageInfo.parentPage.managed ? 'block' : 'none'; 113 $('managed-prefs-banner').classList.remove('hidden');
114 } else {
115 $('managed-prefs-banner').classList.add('hidden');
116 }
stuartmorgan 2010/11/16 23:42:55 Since we have this duplicated three times, how abo
csilv 2010/11/17 00:15:24 Done.
114 } 117 }
115 } 118 }
116 }; 119 };
117 120
118 /** 121 /**
119 * Shows the tab contents for the given navigation tab. 122 * Shows the tab contents for the given navigation tab.
120 * @param {!Element} tab The tab that the user clicked. 123 * @param {!Element} tab The tab that the user clicked.
121 */ 124 */
122 OptionsPage.showTab = function(tab) { 125 OptionsPage.showTab = function(tab) {
123 // Search parents until we find a tab, or the nav bar itself. This allows 126 // Search parents until we find a tab, or the nav bar itself. This allows
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 * Initializes page content. 228 * Initializes page content.
226 */ 229 */
227 initializePage: function() {}, 230 initializePage: function() {},
228 231
229 /** 232 /**
230 * Sets managed banner visibility state. 233 * Sets managed banner visibility state.
231 */ 234 */
232 setManagedBannerVisibility: function(visible) { 235 setManagedBannerVisibility: function(visible) {
233 this.managed = visible; 236 this.managed = visible;
234 if (this.visible) { 237 if (this.visible) {
235 $('managed-prefs-banner').style.display = visible ? 'block' : 'none'; 238 if (this.managed) {
239 $('managed-prefs-banner').classList.remove('hidden');
240 } else {
241 $('managed-prefs-banner').classList.add('hidden');
242 }
236 } 243 }
237 }, 244 },
238 245
239 /** 246 /**
240 * Gets page visibility state. 247 * Gets page visibility state.
241 */ 248 */
242 get visible() { 249 get visible() {
243 var page = $(this.pageDivName); 250 var page = $(this.pageDivName);
244 return page && page.ownerDocument.defaultView.getComputedStyle( 251 return page && page.ownerDocument.defaultView.getComputedStyle(
245 page).display == 'block'; 252 page).display == 'block';
246 }, 253 },
247 254
248 /** 255 /**
249 * Sets page visibility. 256 * Sets page visibility.
250 */ 257 */
251 set visible(visible) { 258 set visible(visible) {
252 if ((this.visible && visible) || (!this.visible && !visible)) 259 if ((this.visible && visible) || (!this.visible && !visible))
253 return; 260 return;
254 261
255 if (visible) { 262 if (visible) {
256 this.pageDiv.style.display = 'block'; 263 this.pageDiv.classList.remove('hidden');
257 if (this.isOverlay) { 264 if (this.isOverlay) {
258 var overlay = $('overlay'); 265 $('overlay').classList.remove('hidden');
259 overlay.classList.remove('hidden');
260 document.addEventListener('keydown', 266 document.addEventListener('keydown',
261 OptionsPage.clearOverlaysOnEsc_); 267 OptionsPage.clearOverlaysOnEsc_);
262 } else { 268 } else {
263 if (this.isSubPageSheet) 269 if (this.isSubPageSheet)
264 $('subpage-sheet-container').classList.remove('hidden'); 270 $('subpage-sheet-container').classList.remove('hidden');
265 271
266 var banner = $('managed-prefs-banner'); 272 if (this.managed) {
267 banner.style.display = this.managed ? 'block' : 'none'; 273 $('managed-prefs-banner').classList.remove('hidden');
274 } else {
275 $('managed-prefs-banner').classList.add('hidden');
276 }
268 277
269 // Recent webkit change no longer allows url change from "chrome://". 278 // Recent webkit change no longer allows url change from "chrome://".
270 window.history.pushState({pageName: this.name}, 279 window.history.pushState({pageName: this.name},
271 this.title); 280 this.title);
272 } 281 }
273 if (this.tab) { 282 if (this.tab) {
274 this.tab.classList.add('navbar-item-selected'); 283 this.tab.classList.add('navbar-item-selected');
275 } 284 }
276 } else { 285 } else {
286 this.pageDiv.classList.add('hidden');
277 if (this.isOverlay) { 287 if (this.isOverlay) {
278 var overlay = $('overlay'); 288 $('overlay').classList.add('hidden');
279 overlay.classList.add('hidden');
280 document.removeEventListener('keydown', 289 document.removeEventListener('keydown',
281 OptionsPage.clearOverlaysOnEsc_); 290 OptionsPage.clearOverlaysOnEsc_);
282 } else if (this.isSubPageSheet) { 291 } else if (this.isSubPageSheet) {
283 $('subpage-sheet-container').classList.add('hidden'); 292 $('subpage-sheet-container').classList.add('hidden');
284 } 293 }
285 this.pageDiv.style.display = 'none';
286 if (this.tab) { 294 if (this.tab) {
287 this.tab.classList.remove('navbar-item-selected'); 295 this.tab.classList.remove('navbar-item-selected');
288 } 296 }
289 } 297 }
290 298
291 cr.dispatchPropertyChange(this, 'visible', visible, !visible); 299 cr.dispatchPropertyChange(this, 'visible', visible, !visible);
292 }, 300 },
293 301
294 /** 302 /**
295 * Handles a hash value in the URL (such as bar in 303 * Handles a hash value in the URL (such as bar in
296 * chrome://options/foo#bar). Called on page load. By default, this shows 304 * chrome://options/foo#bar). Called on page load. By default, this shows
297 * an overlay that matches the hash name, but can be overriden by individual 305 * an overlay that matches the hash name, but can be overriden by individual
298 * OptionsPage subclasses to get other behavior. 306 * OptionsPage subclasses to get other behavior.
299 * @param {string} hash The hash value. 307 * @param {string} hash The hash value.
300 */ 308 */
301 handleHash: function(hash) { 309 handleHash: function(hash) {
302 OptionsPage.showOverlay(hash); 310 OptionsPage.showOverlay(hash);
303 }, 311 },
304 }; 312 };
305 313
306 // Export 314 // Export
307 return { 315 return {
308 OptionsPage: OptionsPage 316 OptionsPage: OptionsPage
309 }; 317 };
310 318
311 }); 319 });
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698