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

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

Issue 5606008: DOMUI: Clean up importer. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 10 years 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
« no previous file with comments | « chrome/browser/resources/options/import_data_overlay.html ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2010 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 * 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 OptionsPage.call(this, 'importDataOverlay', 15 OptionsPage.call(this,
16 'importDataOverlay',
16 templateData.import_data_title, 17 templateData.import_data_title,
17 'importDataOverlay'); 18 'import-data-overlay');
18 } 19 }
19 20
20 ImportDataOverlay.throbIntervalId = 0; 21 ImportDataOverlay.throbIntervalId = 0;
21 22
22 cr.addSingletonGetter(ImportDataOverlay); 23 cr.addSingletonGetter(ImportDataOverlay);
23 24
24 ImportDataOverlay.prototype = { 25 ImportDataOverlay.prototype = {
25 // Inherit from OptionsPage. 26 // Inherit from OptionsPage.
26 __proto__: OptionsPage.prototype, 27 __proto__: OptionsPage.prototype,
27 28
28 /** 29 /**
29 * Initialize the page. 30 * Initialize the page.
30 */ 31 */
31 initializePage: function() { 32 initializePage: function() {
32 // Call base class implementation to starts preference initialization. 33 // Call base class implementation to start preference initialization.
33 OptionsPage.prototype.initializePage.call(this); 34 OptionsPage.prototype.initializePage.call(this);
34 35
35 var self = this; 36 var self = this;
36 var checkboxes = 37 var checkboxes =
37 document.querySelectorAll('#import-checkboxes input[type=checkbox]'); 38 document.querySelectorAll('#import-checkboxes input[type=checkbox]');
38 for (var i = 0; i < checkboxes.length; i++) { 39 for (var i = 0; i < checkboxes.length; i++) {
39 checkboxes[i].onchange = function() { 40 checkboxes[i].onchange = function() {
40 self.validateCommitButton_(); 41 self.validateCommitButton_();
41 }; 42 };
42 } 43 }
43 44
44 $('import-browsers').onchange = function() { 45 $('import-browsers').onchange = function() {
45 self.updateCheckboxes_(); 46 self.updateCheckboxes_();
46 self.validateCommitButton_(); 47 self.validateCommitButton_();
47 } 48 };
48 49
49 $('import-data-commit').onclick = function() { 50 $('import-data-commit').onclick = function() {
50 chrome.send('importData', [ 51 chrome.send('importData', [
51 String($('import-browsers').selectedIndex), 52 String($('import-browsers').selectedIndex),
52 String($('import-history').checked), 53 String($('import-history').checked),
53 String($('import-favorites').checked), 54 String($('import-favorites').checked),
54 String($('import-passwords').checked), 55 String($('import-passwords').checked),
55 String($('import-search').checked)]); 56 String($('import-search').checked)]);
56 } 57 };
57 58
58 $('import-data-cancel').onclick = function() { 59 $('import-data-cancel').onclick = function() {
59 ImportDataOverlay.dismiss(); 60 ImportDataOverlay.dismiss();
60 } 61 };
62
63 // Form controls are disabled until the profile list has been loaded.
64 self.setControlsSensitive_(false);
61 }, 65 },
62 66
63 /** 67 /**
64 * Set enabled and checked state of the commit button. 68 * Set enabled and checked state of the commit button.
65 * @private 69 * @private
66 */ 70 */
67 validateCommitButton_: function() { 71 validateCommitButton_: function() {
68 var somethingToImport = 72 var somethingToImport =
69 $('import-history').checked || $('import-favorites').checked || 73 $('import-history').checked || $('import-favorites').checked ||
70 $('import-passwords').checked || $('import-search').checked; 74 $('import-passwords').checked || $('import-search').checked;
71 $('import-data-commit').disabled = !somethingToImport; 75 $('import-data-commit').disabled = !somethingToImport;
72 }, 76 },
73 77
74 /** 78 /**
79 * Sets the sensitivity of all the checkboxes and the commit button.
80 * @private
81 */
82 setControlsSensitive_: function(sensitive) {
83 var checkboxes =
84 document.querySelectorAll('#import-checkboxes input[type=checkbox]');
85 for (var i = 0; i < checkboxes.length; i++)
86 this.setUpCheckboxState_(checkboxes[i], sensitive);
87 $('import-data-commit').disabled = !sensitive;
88 },
89
90 /**
75 * Set enabled and checked states a checkbox element. 91 * Set enabled and checked states a checkbox element.
76 * @param {Object} checkbox A checkbox element. 92 * @param {Object} checkbox A checkbox element.
77 * @param {boolean} enabled The enabled state of the chekbox. 93 * @param {boolean} enabled The enabled state of the chekbox.
78 * @private 94 * @private
79 */ 95 */
80 setUpCheckboxState_: function(checkbox, enabled) { 96 setUpCheckboxState_: function(checkbox, enabled) {
81 checkbox.disabled = !enabled; 97 checkbox.disabled = !enabled;
82 checkbox.checked = enabled; 98 checkbox.checked = enabled;
83 }, 99 },
84 100
(...skipping 16 matching lines...) Expand all
101 * @param {array} browsers List of supported browsers name. 117 * @param {array} browsers List of supported browsers name.
102 * @private 118 * @private
103 */ 119 */
104 updateSupportedBrowsers_: function(browsers) { 120 updateSupportedBrowsers_: function(browsers) {
105 ImportDataOverlay.browserProfiles = browsers; 121 ImportDataOverlay.browserProfiles = browsers;
106 var browserSelect = $('import-browsers'); 122 var browserSelect = $('import-browsers');
107 browserSelect.textContent = ''; 123 browserSelect.textContent = '';
108 var browserCount = browsers.length; 124 var browserCount = browsers.length;
109 125
110 if (browserCount == 0) { 126 if (browserCount == 0) {
111 var option = new Option(templateData.no_profile_found, 0); 127 var option = new Option(templateData.noProfileFound, 0);
112 browserSelect.appendChild(option); 128 browserSelect.appendChild(option);
113 129
114 var checkboxes = 130 this.setControlsSensitive_(false);
115 document.querySelectorAll(
116 '#import-checkboxes input[type=checkbox]');
117 for (var i = 0; i < checkboxes.length; i++) {
118 this.setUpCheckboxState_(checkboxes[i], false);
119 }
120 } else { 131 } else {
132 this.setControlsSensitive_(true);
121 for (var i = 0; i < browserCount; i++) { 133 for (var i = 0; i < browserCount; i++) {
122 var browser = browsers[i] 134 var browser = browsers[i]
123 var option = new Option(browser['name'], browser['index']); 135 var option = new Option(browser['name'], browser['index']);
124 browserSelect.appendChild(option); 136 browserSelect.appendChild(option);
125 } 137 }
126 138
127 this.updateCheckboxes_(); 139 this.updateCheckboxes_();
128 this.validateCommitButton_(); 140 this.validateCommitButton_();
129 } 141 }
130 }, 142 },
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 ImportDataOverlay.setImportingState(false); 188 ImportDataOverlay.setImportingState(false);
177 OptionsPage.clearOverlays(); 189 OptionsPage.clearOverlays();
178 } 190 }
179 191
180 // Export 192 // Export
181 return { 193 return {
182 ImportDataOverlay: ImportDataOverlay 194 ImportDataOverlay: ImportDataOverlay
183 }; 195 };
184 196
185 }); 197 });
OLDNEW
« no previous file with comments | « chrome/browser/resources/options/import_data_overlay.html ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698