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

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

Issue 6340002: tabbed options - new clear browsing data overlay (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: review fixes Created 9 years, 11 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 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 var OptionsPage = options.OptionsPage; 7 var OptionsPage = options.OptionsPage;
8 8
9 /** 9 /**
10 * ClearBrowserData class 10 * ClearBrowserDataOverlay class
11 * Encapsulated handling of the 'Clear Browser Data' overlay page. 11 * Encapsulated handling of the 'Clear Browser Data' overlay page.
12 * @class 12 * @class
13 */ 13 */
14 function ClearBrowserDataPage() { 14 function ClearBrowserDataOverlay() {
15 OptionsPage.call(this, 'clearBrowserDataPage', 15 OptionsPage.call(this, 'clearBrowserDataOverlay',
16 templateData.clearBrowserDataTitle, 16 templateData.clearBrowserDataTitle,
17 'clearBrowserDataPage'); 17 'clearBrowserDataOverlay');
18 } 18 }
19 19
20 ClearBrowserDataPage.throbIntervalId = 0; 20 ClearBrowserDataOverlay.throbIntervalId = 0;
21 21
22 cr.addSingletonGetter(ClearBrowserDataPage); 22 cr.addSingletonGetter(ClearBrowserDataOverlay);
23 23
24 ClearBrowserDataPage.prototype = { 24 ClearBrowserDataOverlay.prototype = {
25 // Inherit ClearBrowserDataPage from OptionsPage. 25 // Inherit ClearBrowserDataOverlay from OptionsPage.
26 __proto__: OptionsPage.prototype, 26 __proto__: OptionsPage.prototype,
27 27
28 /** 28 /**
29 * Initialize the page. 29 * Initialize the page.
30 */ 30 */
31 initializePage: function() { 31 initializePage: function() {
32 // Call base class implementation to starts preference initialization. 32 // Call base class implementation to starts preference initialization.
33 OptionsPage.prototype.initializePage.call(this); 33 OptionsPage.prototype.initializePage.call(this);
34 34
35 var f = this.updateCommitButtonState_.bind(this); 35 var f = this.updateCommitButtonState_.bind(this);
36 var types = ['browser.clear_data.browsing_history', 36 var types = ['browser.clear_data.browsing_history',
37 'browser.clear_data.download_history', 37 'browser.clear_data.download_history',
38 'browser.clear_data.cache', 38 'browser.clear_data.cache',
39 'browser.clear_data.cookies', 39 'browser.clear_data.cookies',
40 'browser.clear_data.passwords', 40 'browser.clear_data.passwords',
41 'browser.clear_data.form_data']; 41 'browser.clear_data.form_data'];
42 types.forEach(function(type) { 42 types.forEach(function(type) {
43 Preferences.getInstance().addEventListener(type, f); 43 Preferences.getInstance().addEventListener(type, f);
44 }); 44 });
45 45
46 var checkboxes = document.querySelectorAll( 46 var checkboxes = document.querySelectorAll(
47 '#checkboxListData input[type=checkbox]'); 47 '#cbdContentArea input[type=checkbox]');
48 for (var i = 0; i < checkboxes.length; i++) { 48 for (var i = 0; i < checkboxes.length; i++) {
49 checkboxes[i].onclick = f; 49 checkboxes[i].onclick = f;
50 } 50 }
51 this.updateCommitButtonState_(); 51 this.updateCommitButtonState_();
52 52
53 // Setup click handler for the clear(Ok) button. 53 $('clearBrowserDataDismiss').onclick = function(event) {
54 $('clearBrowsingDataCommit').onclick = function(event) { 54 ClearBrowserDataOverlay.dismiss();
55 };
56 $('clearBrowserDataCommit').onclick = function(event) {
55 chrome.send('performClearBrowserData'); 57 chrome.send('performClearBrowserData');
56 }; 58 };
57 }, 59 },
58 60
59 // Set the enabled state of the commit button. 61 // Set the enabled state of the commit button.
60 updateCommitButtonState_: function() { 62 updateCommitButtonState_: function() {
61 var checkboxes = document.querySelectorAll( 63 var checkboxes = document.querySelectorAll(
62 '#checkboxListData input[type=checkbox]'); 64 '#cbdContentArea input[type=checkbox]');
63 var isChecked = false; 65 var isChecked = false;
64 for (var i = 0; i < checkboxes.length; i++) { 66 for (var i = 0; i < checkboxes.length; i++) {
65 if (checkboxes[i].checked) { 67 if (checkboxes[i].checked) {
66 isChecked = true; 68 isChecked = true;
67 break; 69 break;
68 } 70 }
69 } 71 }
70 $('clearBrowsingDataCommit').disabled = !isChecked; 72 $('clearBrowserDataCommit').disabled = !isChecked;
71 }, 73 },
72 }; 74 };
73 75
74 // 76 //
75 // Chrome callbacks 77 // Chrome callbacks
76 // 78 //
77 ClearBrowserDataPage.setClearingState = function(state) { 79 ClearBrowserDataOverlay.setClearingState = function(state) {
78 $('deleteBrowsingHistoryCheckbox').disabled = state; 80 $('deleteBrowsingHistoryCheckbox').disabled = state;
79 $('deleteDownloadHistoryCheckbox').disabled = state; 81 $('deleteDownloadHistoryCheckbox').disabled = state;
80 $('deleteCacheCheckbox').disabled = state; 82 $('deleteCacheCheckbox').disabled = state;
81 $('deleteCookiesCheckbox').disabled = state; 83 $('deleteCookiesCheckbox').disabled = state;
82 $('deletePasswordsCheckbox').disabled = state; 84 $('deletePasswordsCheckbox').disabled = state;
83 $('deleteFormDataCheckbox').disabled = state; 85 $('deleteFormDataCheckbox').disabled = state;
84 $('clearBrowsingDataTimePeriod').disabled = state; 86 $('clearBrowserDataTimePeriod').disabled = state;
85 $('cbdThrobber').style.visibility = state ? 'visible' : 'hidden'; 87 $('cbdThrobber').style.visibility = state ? 'visible' : 'hidden';
86 88
87 if (state) 89 if (state)
88 $('clearBrowsingDataCommit').disabled = true; 90 $('clearBrowserDataCommit').disabled = true;
89 else 91 else
90 ClearBrowserDataPage.getInstance().updateCommitButtonState_(); 92 ClearBrowserDataOverlay.getInstance().updateCommitButtonState_();
91 93
92 function advanceThrobber() { 94 function advanceThrobber() {
93 var throbber = $('cbdThrobber'); 95 var throbber = $('cbdThrobber');
94 // TODO(csilv): make this smoother using time-based animation? 96 // TODO(csilv): make this smoother using time-based animation?
95 throbber.style.backgroundPositionX = 97 throbber.style.backgroundPositionX =
96 ((parseInt(getComputedStyle(throbber).backgroundPositionX, 10) - 16) % 98 ((parseInt(getComputedStyle(throbber).backgroundPositionX, 10) - 16) %
97 576) + 'px'; 99 576) + 'px';
98 } 100 }
99 if (state) { 101 if (state) {
100 ClearBrowserDataPage.throbIntervalId = 102 ClearBrowserDataOverlay.throbIntervalId =
101 setInterval(advanceThrobber, 30); 103 setInterval(advanceThrobber, 30);
102 } else { 104 } else {
103 clearInterval(ClearBrowserDataPage.throbIntervalId); 105 clearInterval(ClearBrowserDataOverlay.throbIntervalId);
104 } 106 }
105 } 107 };
106 108
107 ClearBrowserDataPage.setClearLocalDataLabel = function(label) { 109 ClearBrowserDataOverlay.setClearLocalDataLabel = function(label) {
108 $('deleteCookiesLabel').innerText = label; 110 $('deleteCookiesLabel').innerText = label;
109 }; 111 };
110 112
111 ClearBrowserDataPage.dismiss = function() { 113 ClearBrowserDataOverlay.doneClearing = function() {
114 // The delay gives the user some feedback that the clearing
115 // actually worked. Otherwise the dialog just vanishes instantly in most
116 // cases.
117 window.setTimeout(function() {
118 ClearBrowserDataOverlay.dismiss();
119 }, 200);
120 };
121
122 ClearBrowserDataOverlay.dismiss = function() {
112 OptionsPage.clearOverlays(); 123 OptionsPage.clearOverlays();
113 this.setClearingState(false); 124 this.setClearingState(false);
114 } 125 };
115 126
116 // Export 127 // Export
117 return { 128 return {
118 ClearBrowserDataPage: ClearBrowserDataPage 129 ClearBrowserDataOverlay: ClearBrowserDataOverlay
119 }; 130 };
120
121 }); 131 });
122
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/clear_browser_data_overlay.html ('k') | chrome/browser/resources/options/options.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698