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

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

Issue 7390027: Added group policies to enable/disable importing of data from other browsers. (Closed) Base URL: http://git.chromium.org/git/chromium.git@trunk
Patch Set: Fixed issues in James' codereview Created 9 years, 4 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 var OptionsPage = options.OptionsPage; 6 var OptionsPage = options.OptionsPage;
7 7
8 /** 8 /**
9 * ImportDataOverlay class 9 * ImportDataOverlay class
10 * Encapsulated handling of the 'Import Data' overlay page. 10 * Encapsulated handling of the 'Import Data' overlay page.
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
83 $('import-data-commit').disabled = !somethingToImport; 83 $('import-data-commit').disabled = !somethingToImport;
84 }, 84 },
85 85
86 /** 86 /**
87 * Sets the sensitivity of all the checkboxes and the commit button. 87 * Sets the sensitivity of all the checkboxes and the commit button.
88 * @private 88 * @private
89 */ 89 */
90 setControlsSensitive_: function(sensitive) { 90 setControlsSensitive_: function(sensitive) {
91 var checkboxes = 91 var checkboxes =
92 document.querySelectorAll('#import-checkboxes input[type=checkbox]'); 92 document.querySelectorAll('#import-checkboxes input[type=checkbox]');
93 for (var i = 0; i < checkboxes.length; i++) 93 for (var i = 0; i < checkboxes.length; i++) {
James Hawkins 2011/08/02 17:51:43 Remove braces (no braces for single line blocks).
simo 2011/08/03 08:31:44 Done.
94 this.setUpCheckboxState_(checkboxes[i], sensitive); 94 this.setUpCheckboxState_(checkboxes[i], sensitive);
95 }
95 $('import-data-commit').disabled = !sensitive; 96 $('import-data-commit').disabled = !sensitive;
96 }, 97 },
97 98
98 /** 99 /**
99 * Set enabled and checked states a checkbox element. 100 * Set enabled and checked states a checkbox element.
100 * @param {Object} checkbox A checkbox element. 101 * @param {Object} checkbox A checkbox element.
101 * @param {boolean} enabled The enabled state of the chekbox. 102 * @param {boolean} enabled The enabled state of the chekbox.
102 * @private 103 * @private
103 */ 104 */
104 setUpCheckboxState_: function(checkbox, enabled) { 105 setUpCheckboxState_: function(checkbox, enabled) {
105 checkbox.disabled = !enabled; 106 checkbox.setDisabled("noProfileData", !enabled);
106 checkbox.checked = enabled;
107 }, 107 },
108 108
109 /** 109 /**
110 * Update the enabled and checked states of all checkboxes. 110 * Update the enabled and checked states of all checkboxes.
111 * @private 111 * @private
112 */ 112 */
113 updateCheckboxes_: function() { 113 updateCheckboxes_: function() {
114 var index = $('import-browsers').selectedIndex; 114 var index = $('import-browsers').selectedIndex;
115 var browserProfile; 115 var browserProfile;
116 if (this.browserProfiles.length > index) 116 if (this.browserProfiles.length > index)
117 browserProfile = this.browserProfiles[index]; 117 browserProfile = this.browserProfiles[index];
118 var importOptions = ['history', 'favorites', 'passwords', 'search']; 118 var importOptions = ['history', 'favorites', 'passwords', 'search'];
119 for (var i = 0; i < importOptions.length; i++) { 119 for (var i = 0; i < importOptions.length; i++) {
120 var checkbox = $('import-' + importOptions[i]); 120 var checkbox = $('import-' + importOptions[i]);
121 this.setUpCheckboxState_(checkbox, 121 var enable = browserProfile && browserProfile[importOptions[i]];
122 browserProfile ? browserProfile[importOptions[i]] : false); 122 this.setUpCheckboxState_(checkbox, enable);
123 } 123 }
124 }, 124 },
125 125
126 /** 126 /**
127 * Update the supported browsers popup with given entries. 127 * Update the supported browsers popup with given entries.
128 * @param {array} browsers List of supported browsers name. 128 * @param {array} browsers List of supported browsers name.
129 * @private 129 * @private
130 */ 130 */
131 updateSupportedBrowsers_: function(browsers) { 131 updateSupportedBrowsers_: function(browsers) {
132 this.browserProfiles = browsers; 132 this.browserProfiles = browsers;
(...skipping 12 matching lines...) Expand all
145 for (var i = 0; i < browserCount; i++) { 145 for (var i = 0; i < browserCount; i++) {
146 var browser = browsers[i] 146 var browser = browsers[i]
147 var option = new Option(browser['name'], browser['index']); 147 var option = new Option(browser['name'], browser['index']);
148 browserSelect.appendChild(option); 148 browserSelect.appendChild(option);
149 } 149 }
150 150
151 this.updateCheckboxes_(); 151 this.updateCheckboxes_();
152 this.validateCommitButton_(); 152 this.validateCommitButton_();
153 } 153 }
154 }, 154 },
155
156 /**
157 * Clear import prefs set when user checks/unchecks a checkbox so that each
158 * checkbox goes back to the default "checked" state (or alternatively, to
159 * the state set by a recommended policy).
160 * @private
161 */
162 clearUserPrefs_: function() {
163 var importPrefs = ['import_history',
164 'import_bookmarks',
165 'import_saved_passwords',
166 'import_search_engine'];
167 for (var i = 0; i < importPrefs.length; i++)
168 Preferences.clearPref(importPrefs[i], undefined);
169 },
170 };
171
172 ImportDataOverlay.clearUserPrefs = function() {
173 ImportDataOverlay.getInstance().clearUserPrefs_();
155 }; 174 };
156 175
157 /** 176 /**
158 * Update the supported browsers popup with given entries. 177 * Update the supported browsers popup with given entries.
159 * @param {array} list of supported browsers name. 178 * @param {array} list of supported browsers name.
160 */ 179 */
161 ImportDataOverlay.updateSupportedBrowsers = function(browsers) { 180 ImportDataOverlay.updateSupportedBrowsers = function(browsers) {
162 ImportDataOverlay.getInstance().updateSupportedBrowsers_(browsers); 181 ImportDataOverlay.getInstance().updateSupportedBrowsers_(browsers);
163 }; 182 };
164 183
165 /** 184 /**
166 * Update the UI to reflect whether an import operation is in progress. 185 * Update the UI to reflect whether an import operation is in progress.
167 * @param {boolean} state True if an import operation is in progress. 186 * @param {boolean} state True if an import operation is in progress.
168 */ 187 */
169 ImportDataOverlay.setImportingState = function(state) { 188 ImportDataOverlay.setImportingState = function(state) {
189 var checkboxes =
190 document.querySelectorAll('#import-checkboxes input[type=checkbox]');
170 if (state) { 191 if (state) {
James Hawkins 2011/08/02 17:51:43 Get rid of the if/else and transform this to: for
simo 2011/08/03 08:31:44 Done.
171 var checkboxes =
172 document.querySelectorAll('#import-checkboxes input[type=checkbox]');
173 for (var i = 0; i < checkboxes.length; i++) { 192 for (var i = 0; i < checkboxes.length; i++) {
174 checkboxes[i].disabled = true; 193 checkboxes[i].setDisabled("Importing", true);
175 } 194 }
176 } else { 195 } else {
196 for (var i = 0; i < checkboxes.length; i++)
197 checkboxes[i].setDisabled("Importing", false);
177 ImportDataOverlay.getInstance().updateCheckboxes_(); 198 ImportDataOverlay.getInstance().updateCheckboxes_();
178 } 199 }
179 $('import-browsers').disabled = state; 200 $('import-browsers').disabled = state;
180 $('import-throbber').style.visibility = state ? "visible" : "hidden"; 201 $('import-throbber').style.visibility = state ? "visible" : "hidden";
181 ImportDataOverlay.getInstance().validateCommitButton_(); 202 ImportDataOverlay.getInstance().validateCommitButton_();
182 }; 203 };
183 204
184 /** 205 /**
185 * Remove the import overlay from display. 206 * Remove the import overlay from display.
186 */ 207 */
187 ImportDataOverlay.dismiss = function() { 208 ImportDataOverlay.dismiss = function() {
209 ImportDataOverlay.clearUserPrefs();
188 OptionsPage.closeOverlay(); 210 OptionsPage.closeOverlay();
189 }; 211 };
190 212
191 /** 213 /**
192 * Show a message confirming the success of the import operation. 214 * Show a message confirming the success of the import operation.
193 */ 215 */
194 ImportDataOverlay.confirmSuccess = function() { 216 ImportDataOverlay.confirmSuccess = function() {
195 var showBookmarksMessage = $('import-favorites').checked; 217 var showBookmarksMessage = $('import-favorites').checked;
196 ImportDataOverlay.setImportingState(false); 218 ImportDataOverlay.setImportingState(false);
197 $('import-data-configure').hidden = true; 219 $('import-data-configure').hidden = true;
198 $('import-data-success').hidden = false; 220 $('import-data-success').hidden = false;
199 $('import-find-your-bookmarks').hidden = !showBookmarksMessage; 221 $('import-find-your-bookmarks').hidden = !showBookmarksMessage;
200 }; 222 };
201 223
202 // Export 224 // Export
203 return { 225 return {
204 ImportDataOverlay: ImportDataOverlay 226 ImportDataOverlay: ImportDataOverlay
205 }; 227 };
206 }); 228 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698