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

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

Issue 2939273002: DO NOT SUBMIT: what chrome/browser/resources/ could eventually look like with clang-format (Closed)
Patch Set: Created 3 years, 6 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
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 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 Page = cr.ui.pageManager.Page; 6 var Page = cr.ui.pageManager.Page;
7 var PageManager = cr.ui.pageManager.PageManager; 7 var PageManager = cr.ui.pageManager.PageManager;
8 8
9 /** 9 /**
10 * ImportDataOverlay class 10 * ImportDataOverlay class
11 * Encapsulated handling of the 'Import Data' overlay page. 11 * Encapsulated handling of the 'Import Data' overlay page.
12 * @class 12 * @class
13 */ 13 */
14 function ImportDataOverlay() { 14 function ImportDataOverlay() {
15 Page.call(this, 15 Page.call(
16 'importData', 16 this, 'importData', loadTimeData.getString('importDataOverlayTabTitle'),
17 loadTimeData.getString('importDataOverlayTabTitle'), 17 'import-data-overlay');
18 'import-data-overlay');
19 } 18 }
20 19
21 cr.addSingletonGetter(ImportDataOverlay); 20 cr.addSingletonGetter(ImportDataOverlay);
22 21
23 /** 22 /**
24 * @param {string} type The type of data to import. Used in the element's ID. 23 * @param {string} type The type of data to import. Used in the element's ID.
25 */ 24 */
26 function importable(type) { 25 function importable(type) {
27 var id = 'import-' + type; 26 var id = 'import-' + type;
28 return $(id).checked && !$(id + '-with-label').hidden; 27 return $(id).checked && !$(id + '-with-label').hidden;
29 } 28 }
30 29
31 ImportDataOverlay.prototype = { 30 ImportDataOverlay.prototype = {
32 // Inherit from Page. 31 // Inherit from Page.
33 __proto__: Page.prototype, 32 __proto__: Page.prototype,
34 33
35 /** @override */ 34 /** @override */
(...skipping 11 matching lines...) Expand all
47 }; 46 };
48 } 47 }
49 48
50 $('import-browsers').onchange = function() { 49 $('import-browsers').onchange = function() {
51 self.updateCheckboxes_(); 50 self.updateCheckboxes_();
52 self.validateCommitButton_(); 51 self.validateCommitButton_();
53 }; 52 };
54 53
55 $('import-data-commit').onclick = function() { 54 $('import-data-commit').onclick = function() {
56 chrome.send('importData', [ 55 chrome.send('importData', [
57 String($('import-browsers').selectedIndex), 56 String($('import-browsers').selectedIndex),
58 String($('import-history').checked), 57 String($('import-history').checked),
59 String($('import-favorites').checked), 58 String($('import-favorites').checked),
60 String($('import-passwords').checked), 59 String($('import-passwords').checked),
61 String($('import-search').checked), 60 String($('import-search').checked),
62 String($('import-autofill-form-data').checked)]); 61 String($('import-autofill-form-data').checked)
62 ]);
63 }; 63 };
64 64
65 $('import-data-cancel').onclick = function() { 65 $('import-data-cancel').onclick = function() {
66 ImportDataOverlay.dismiss(); 66 ImportDataOverlay.dismiss();
67 }; 67 };
68 68
69 $('import-choose-file').onclick = function() { 69 $('import-choose-file').onclick = function() {
70 chrome.send('chooseBookmarksFile'); 70 chrome.send('chooseBookmarksFile');
71 }; 71 };
72 72
73 $('import-data-confirm').onclick = function() { 73 $('import-data-confirm').onclick = function() {
74 ImportDataOverlay.dismiss(); 74 ImportDataOverlay.dismiss();
75 }; 75 };
76 76
77 // Form controls are disabled until the profile list has been loaded. 77 // Form controls are disabled until the profile list has been loaded.
78 self.setAllControlsEnabled_(false); 78 self.setAllControlsEnabled_(false);
79 }, 79 },
80 80
81 /** 81 /**
82 * Sets the enabled and checked state of the commit button. 82 * Sets the enabled and checked state of the commit button.
83 * @private 83 * @private
84 */ 84 */
85 validateCommitButton_: function() { 85 validateCommitButton_: function() {
86 var somethingToImport = 86 var somethingToImport = importable('history') ||
87 importable('history') || importable('favorites') || 87 importable('favorites') || importable('passwords') ||
88 importable('passwords') || importable('search') || 88 importable('search') || importable('autofill-form-data');
89 importable('autofill-form-data');
90 $('import-data-commit').disabled = !somethingToImport; 89 $('import-data-commit').disabled = !somethingToImport;
91 $('import-choose-file').disabled = !$('import-favorites').checked; 90 $('import-choose-file').disabled = !$('import-favorites').checked;
92 }, 91 },
93 92
94 /** 93 /**
95 * Sets the enabled state of all the checkboxes and the commit button. 94 * Sets the enabled state of all the checkboxes and the commit button.
96 * @private 95 * @private
97 */ 96 */
98 setAllControlsEnabled_: function(enabled) { 97 setAllControlsEnabled_: function(enabled) {
99 var checkboxes = 98 var checkboxes =
(...skipping 21 matching lines...) Expand all
121 */ 120 */
122 updateCheckboxes_: function() { 121 updateCheckboxes_: function() {
123 var index = $('import-browsers').selectedIndex; 122 var index = $('import-browsers').selectedIndex;
124 var bookmarksFileSelected = index == this.browserProfiles.length - 1; 123 var bookmarksFileSelected = index == this.browserProfiles.length - 1;
125 $('import-choose-file').hidden = !bookmarksFileSelected; 124 $('import-choose-file').hidden = !bookmarksFileSelected;
126 $('import-data-commit').hidden = bookmarksFileSelected; 125 $('import-data-commit').hidden = bookmarksFileSelected;
127 126
128 var browserProfile; 127 var browserProfile;
129 if (this.browserProfiles.length > index) 128 if (this.browserProfiles.length > index)
130 browserProfile = this.browserProfiles[index]; 129 browserProfile = this.browserProfiles[index];
131 var importOptions = ['history', 130 var importOptions =
132 'favorites', 131 ['history', 'favorites', 'passwords', 'search', 'autofill-form-data'];
133 'passwords',
134 'search',
135 'autofill-form-data'];
136 for (var i = 0; i < importOptions.length; i++) { 132 for (var i = 0; i < importOptions.length; i++) {
137 var id = 'import-' + importOptions[i]; 133 var id = 'import-' + importOptions[i];
138 var enable = browserProfile && browserProfile[importOptions[i]]; 134 var enable = browserProfile && browserProfile[importOptions[i]];
139 this.setUpCheckboxState_($(id), enable); 135 this.setUpCheckboxState_($(id), enable);
140 $(id + '-with-label').hidden = !enable; 136 $(id + '-with-label').hidden = !enable;
141 } 137 }
142 }, 138 },
143 139
144 /** 140 /**
145 * Update the supported browsers popup with given entries. 141 * Update the supported browsers popup with given entries.
146 * @param {Array} browsers List of supported browsers name. 142 * @param {Array} browsers List of supported browsers name.
147 * @private 143 * @private
148 */ 144 */
149 updateSupportedBrowsers_: function(browsers) { 145 updateSupportedBrowsers_: function(browsers) {
150 this.browserProfiles = browsers; 146 this.browserProfiles = browsers;
151 var browserSelect = /** @type {HTMLSelectElement} */( 147 var browserSelect =
152 $('import-browsers')); 148 /** @type {HTMLSelectElement} */ ($('import-browsers'));
153 browserSelect.remove(0); // Remove the 'Loading...' option. 149 browserSelect.remove(0); // Remove the 'Loading...' option.
154 browserSelect.textContent = ''; 150 browserSelect.textContent = '';
155 var browserCount = browsers.length; 151 var browserCount = browsers.length;
156 152
157 if (browserCount == 0) { 153 if (browserCount == 0) {
158 var option = new Option(loadTimeData.getString('noProfileFound'), 0); 154 var option = new Option(loadTimeData.getString('noProfileFound'), 0);
159 browserSelect.appendChild(option); 155 browserSelect.appendChild(option);
160 156
161 this.setAllControlsEnabled_(false); 157 this.setAllControlsEnabled_(false);
162 } else { 158 } else {
(...skipping 54 matching lines...) Expand 10 before | Expand all | Expand 10 after
217 }; 213 };
218 214
219 /** 215 /**
220 * Update the UI to reflect whether an import operation is in progress. 216 * Update the UI to reflect whether an import operation is in progress.
221 * @param {boolean} importing True if an import operation is in progress. 217 * @param {boolean} importing True if an import operation is in progress.
222 */ 218 */
223 ImportDataOverlay.setImportingState = function(importing) { 219 ImportDataOverlay.setImportingState = function(importing) {
224 var checkboxes = 220 var checkboxes =
225 document.querySelectorAll('#import-checkboxes input[type=checkbox]'); 221 document.querySelectorAll('#import-checkboxes input[type=checkbox]');
226 for (var i = 0; i < checkboxes.length; i++) 222 for (var i = 0; i < checkboxes.length; i++)
227 checkboxes[i].setDisabled('Importing', importing); 223 checkboxes[i].setDisabled('Importing', importing);
228 if (!importing) 224 if (!importing)
229 ImportDataOverlay.getInstance().updateCheckboxes_(); 225 ImportDataOverlay.getInstance().updateCheckboxes_();
230 $('import-browsers').disabled = importing; 226 $('import-browsers').disabled = importing;
231 $('import-throbber').style.visibility = importing ? 'visible' : 'hidden'; 227 $('import-throbber').style.visibility = importing ? 'visible' : 'hidden';
232 ImportDataOverlay.getInstance().validateCommitButton_(); 228 ImportDataOverlay.getInstance().validateCommitButton_();
233 }; 229 };
234 230
235 /** 231 /**
236 * Remove the import overlay from display. 232 * Remove the import overlay from display.
237 */ 233 */
(...skipping 18 matching lines...) Expand all
256 ImportDataOverlay.show = function() { 252 ImportDataOverlay.show = function() {
257 // Make sure that any previous import success message is hidden, and 253 // Make sure that any previous import success message is hidden, and
258 // we're showing the UI to import further data. 254 // we're showing the UI to import further data.
259 ImportDataOverlay.getInstance().updateSuccessState_(false); 255 ImportDataOverlay.getInstance().updateSuccessState_(false);
260 ImportDataOverlay.getInstance().validateCommitButton_(); 256 ImportDataOverlay.getInstance().validateCommitButton_();
261 257
262 PageManager.showPageByName('importData'); 258 PageManager.showPageByName('importData');
263 }; 259 };
264 260
265 // Export 261 // Export
266 return { 262 return {ImportDataOverlay: ImportDataOverlay};
267 ImportDataOverlay: ImportDataOverlay
268 };
269 }); 263 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698