Chromium Code Reviews| Index: chrome/browser/resources/options/reset_profile_settings_overlay.js |
| diff --git a/chrome/browser/resources/options/reset_profile_settings_overlay.js b/chrome/browser/resources/options/reset_profile_settings_overlay.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..5a70442f15f26156a0b4bc20a56d28057c07d0af |
| --- /dev/null |
| +++ b/chrome/browser/resources/options/reset_profile_settings_overlay.js |
| @@ -0,0 +1,112 @@ |
| +// Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +cr.define('options', function() { |
| + var OptionsPage = options.OptionsPage; |
| + |
| + /** |
| + * ResetProfileSettingsOverlay class |
| + * Encapsulated handling of the 'Reset Profile Settings' overlay page. |
| + * @class |
| + */ |
| + function ResetProfileSettingsOverlay() { |
| + OptionsPage.call( |
| + this, 'resetProfileSettings', |
| + loadTimeData.getString('resetProfileSettingsOverlayTabTitle'), |
| + 'reset-profile-settings-overlay'); |
| + } |
| + |
| + cr.addSingletonGetter(ResetProfileSettingsOverlay); |
| + |
| + ResetProfileSettingsOverlay.prototype = { |
| + // Inherit ResetProfileSettingsOverlay from OptionsPage. |
| + __proto__: OptionsPage.prototype, |
| + |
| + /** |
| + * Initialize the page. |
| + */ |
| + initializePage: function() { |
| + // Call base class implementation to starts preference initialization. |
|
James Hawkins
2013/05/13 17:31:33
Optional nit: I think this comment is superfluous.
battre
2013/05/21 09:25:08
Done.
|
| + OptionsPage.prototype.initializePage.call(this); |
| + |
| + var f = this.updateCommitButtonState_.bind(this); |
| + var types = ['browser.reset_profile_settings.default_search_engine', |
| + 'browser.reset_profile_settings.homepage', |
| + 'browser.reset_profile_settings.content_settings', |
| + 'browser.reset_profile_settings.cookies_and_site_data', |
| + 'browser.reset_profile_settings.extensions']; |
| + types.forEach(function(type) { |
| + Preferences.getInstance().addEventListener(type, f); |
| + }); |
| + |
| + var checkboxes = document.querySelectorAll( |
| + '#reset-profile-settings-content-area input[type=checkbox]'); |
| + for (var i = 0; i < checkboxes.length; i++) { |
|
James Hawkins
2013/05/13 17:31:33
nit: No braces for single-line blocks.
battre
2013/05/21 09:25:08
Done.
|
| + checkboxes[i].onclick = f; |
| + } |
| + this.updateCommitButtonState_(); |
| + |
| + $('reset-profile-settings-dismiss').onclick = function(event) { |
| + ResetProfileSettingsOverlay.dismiss(); |
| + }; |
| + $('reset-profile-settings-commit').onclick = function(event) { |
| + ResetProfileSettingsOverlay.setResettingState(true); |
| + chrome.send('performResetProfileSettings'); |
| + }; |
| + }, |
| + |
| + // Set the enabled state of the commit button. |
|
James Hawkins
2013/05/13 17:31:33
nit: Sets
battre
2013/05/21 09:25:08
Done.
|
| + updateCommitButtonState_: function() { |
| + var checkboxes = document.querySelectorAll( |
| + '#reset-profile-settings-content-area input[type=checkbox]'); |
| + var isChecked = false; |
| + for (var i = 0; i < checkboxes.length; i++) { |
| + if (checkboxes[i].checked) { |
| + isChecked = true; |
| + break; |
| + } |
| + } |
| + $('reset-profile-settings-commit').disabled = !isChecked; |
| + }, |
| + }; |
| + |
| + // |
| + // Chrome callbacks |
|
James Hawkins
2013/05/13 17:31:33
nit: Unless you want to make these forward to docu
battre
2013/05/21 09:25:08
Done.
|
| + // |
| + ResetProfileSettingsOverlay.setResettingState = function(state) { |
| + $('reset-default-search-engine-checkbox').disabled = state; |
| + $('reset-homepage-checkbox').disabled = state; |
| + $('reset-content-settings-checkbox').disabled = state; |
| + $('reset-cookies-and-site-data-checkbox').disabled = state; |
| + $('reset-extensions-checkbox').disabled = state; |
| + $('reset-extensions-handling').disabled = state; |
| + $('reset-profile-settings-throbber').style.visibility = |
| + state ? 'visible' : 'hidden'; |
| + $('reset-profile-settings-dismiss').disabled = state; |
| + |
| + if (state) |
| + $('reset-profile-settings-commit').disabled = true; |
| + else |
| + ResetProfileSettingsOverlay.getInstance().updateCommitButtonState_(); |
| + }; |
| + |
| + ResetProfileSettingsOverlay.doneResetting = function() { |
| + // The delay gives the user some feedback that the resetting |
| + // actually worked. Otherwise the dialog just vanishes instantly in most |
| + // cases. |
| + window.setTimeout(function() { |
| + ResetProfileSettingsOverlay.dismiss(); |
| + }, 200); |
| + }; |
| + |
| + ResetProfileSettingsOverlay.dismiss = function() { |
| + OptionsPage.closeOverlay(); |
| + this.setResettingState(false); |
| + }; |
| + |
| + // Export |
| + return { |
| + ResetProfileSettingsOverlay: ResetProfileSettingsOverlay |
| + }; |
| +}); |