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

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

Issue 6378006: Add Throbber control for DOMUI. Use it everywhere in options and in Sync setup UI. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: - 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 * ClearBrowserDataOverlay class 10 * ClearBrowserDataOverlay class
(...skipping 38 matching lines...) Expand 10 before | Expand all | Expand 10 after
49 checkboxes[i].onclick = f; 49 checkboxes[i].onclick = f;
50 } 50 }
51 this.updateCommitButtonState_(); 51 this.updateCommitButtonState_();
52 52
53 $('clearBrowserDataDismiss').onclick = function(event) { 53 $('clearBrowserDataDismiss').onclick = function(event) {
54 ClearBrowserDataOverlay.dismiss(); 54 ClearBrowserDataOverlay.dismiss();
55 }; 55 };
56 $('clearBrowserDataCommit').onclick = function(event) { 56 $('clearBrowserDataCommit').onclick = function(event) {
57 chrome.send('performClearBrowserData'); 57 chrome.send('performClearBrowserData');
58 }; 58 };
59
60 cr.ui.Throbber.decorate($('cbdThrobber'));
59 }, 61 },
60 62
61 // Set the enabled state of the commit button. 63 // Set the enabled state of the commit button.
62 updateCommitButtonState_: function() { 64 updateCommitButtonState_: function() {
63 var checkboxes = document.querySelectorAll( 65 var checkboxes = document.querySelectorAll(
64 '#cbdContentArea input[type=checkbox]'); 66 '#cbdContentArea input[type=checkbox]');
65 var isChecked = false; 67 var isChecked = false;
66 for (var i = 0; i < checkboxes.length; i++) { 68 for (var i = 0; i < checkboxes.length; i++) {
67 if (checkboxes[i].checked) { 69 if (checkboxes[i].checked) {
68 isChecked = true; 70 isChecked = true;
69 break; 71 break;
70 } 72 }
71 } 73 }
72 $('clearBrowserDataCommit').disabled = !isChecked; 74 $('clearBrowserDataCommit').disabled = !isChecked;
73 }, 75 },
74 }; 76 };
75 77
76 // 78 //
77 // Chrome callbacks 79 // Chrome callbacks
78 // 80 //
79 ClearBrowserDataOverlay.setClearingState = function(state) { 81 ClearBrowserDataOverlay.setClearingState = function(state) {
80 $('deleteBrowsingHistoryCheckbox').disabled = state; 82 $('deleteBrowsingHistoryCheckbox').disabled = state;
81 $('deleteDownloadHistoryCheckbox').disabled = state; 83 $('deleteDownloadHistoryCheckbox').disabled = state;
82 $('deleteCacheCheckbox').disabled = state; 84 $('deleteCacheCheckbox').disabled = state;
83 $('deleteCookiesCheckbox').disabled = state; 85 $('deleteCookiesCheckbox').disabled = state;
84 $('deletePasswordsCheckbox').disabled = state; 86 $('deletePasswordsCheckbox').disabled = state;
85 $('deleteFormDataCheckbox').disabled = state; 87 $('deleteFormDataCheckbox').disabled = state;
86 $('clearBrowserDataTimePeriod').disabled = state; 88 $('clearBrowserDataTimePeriod').disabled = state;
87 $('cbdThrobber').style.visibility = state ? 'visible' : 'hidden'; 89 $('cbdThrobber').visible = state;
88 90
89 if (state) 91 if (state)
90 $('clearBrowserDataCommit').disabled = true; 92 $('clearBrowserDataCommit').disabled = true;
91 else 93 else
92 ClearBrowserDataOverlay.getInstance().updateCommitButtonState_(); 94 ClearBrowserDataOverlay.getInstance().updateCommitButtonState_();
93
94 function advanceThrobber() {
95 var throbber = $('cbdThrobber');
96 // TODO(csilv): make this smoother using time-based animation?
97 throbber.style.backgroundPositionX =
98 ((parseInt(getComputedStyle(throbber).backgroundPositionX, 10) - 16) %
99 576) + 'px';
100 }
101 if (state) {
102 ClearBrowserDataOverlay.throbIntervalId =
103 setInterval(advanceThrobber, 30);
104 } else {
105 clearInterval(ClearBrowserDataOverlay.throbIntervalId);
106 }
107 }; 95 };
108 96
109 ClearBrowserDataOverlay.setClearLocalDataLabel = function(label) { 97 ClearBrowserDataOverlay.setClearLocalDataLabel = function(label) {
110 $('deleteCookiesLabel').innerText = label; 98 $('deleteCookiesLabel').innerText = label;
111 }; 99 };
112 100
113 ClearBrowserDataOverlay.doneClearing = function() { 101 ClearBrowserDataOverlay.doneClearing = function() {
114 // The delay gives the user some feedback that the clearing 102 // The delay gives the user some feedback that the clearing
115 // actually worked. Otherwise the dialog just vanishes instantly in most 103 // actually worked. Otherwise the dialog just vanishes instantly in most
116 // cases. 104 // cases.
117 window.setTimeout(function() { 105 window.setTimeout(function() {
118 ClearBrowserDataOverlay.dismiss(); 106 ClearBrowserDataOverlay.dismiss();
119 }, 200); 107 }, 200);
120 }; 108 };
121 109
122 ClearBrowserDataOverlay.dismiss = function() { 110 ClearBrowserDataOverlay.dismiss = function() {
123 OptionsPage.clearOverlays(); 111 OptionsPage.clearOverlays();
124 this.setClearingState(false); 112 this.setClearingState(false);
125 }; 113 };
126 114
127 // Export 115 // Export
128 return { 116 return {
129 ClearBrowserDataOverlay: ClearBrowserDataOverlay 117 ClearBrowserDataOverlay: ClearBrowserDataOverlay
130 }; 118 };
131 }); 119 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698