OLD | NEW |
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 var ArrayDataModel = cr.ui.ArrayDataModel; | 8 var ArrayDataModel = cr.ui.ArrayDataModel; |
9 | 9 |
10 // State variables. | |
11 var syncEnabled = false; | |
12 var syncSetupCompleted = false; | |
13 | |
14 /** | 10 /** |
15 * Encapsulated handling of personal options page. | 11 * Encapsulated handling of personal options page. |
16 * @constructor | 12 * @constructor |
17 */ | 13 */ |
18 function PersonalOptions() { | 14 function PersonalOptions() { |
19 OptionsPage.call(this, 'personal', | 15 OptionsPage.call(this, 'personal', |
20 templateData.personalPageTabTitle, | 16 templateData.personalPageTabTitle, |
21 'personal-page'); | 17 'personal-page'); |
22 if (cr.isChromeOS) { | 18 if (cr.isChromeOS) { |
23 // Email of the currently logged in user (or |kGuestUser|). | 19 // Email of the currently logged in user (or |kGuestUser|). |
24 this.userEmail_ = localStrings.getString('userEmail'); | 20 this.userEmail_ = localStrings.getString('userEmail'); |
25 } | 21 } |
26 } | 22 } |
27 | 23 |
28 cr.addSingletonGetter(PersonalOptions); | 24 cr.addSingletonGetter(PersonalOptions); |
29 | 25 |
30 PersonalOptions.prototype = { | 26 PersonalOptions.prototype = { |
31 // Inherit PersonalOptions from OptionsPage. | 27 // Inherit PersonalOptions from OptionsPage. |
32 __proto__: options.OptionsPage.prototype, | 28 __proto__: options.OptionsPage.prototype, |
33 | 29 |
| 30 // State variables. |
| 31 syncEnabled: false, |
| 32 syncSetupCompleted: false, |
| 33 |
34 // Initialize PersonalOptions page. | 34 // Initialize PersonalOptions page. |
35 initializePage: function() { | 35 initializePage: function() { |
36 // Call base class implementation to start preference initialization. | 36 // Call base class implementation to start preference initialization. |
37 OptionsPage.prototype.initializePage.call(this); | 37 OptionsPage.prototype.initializePage.call(this); |
38 | 38 |
39 var self = this; | 39 var self = this; |
40 | 40 |
41 // Sync. | 41 // Sync. |
42 $('sync-action-link').onclick = function(event) { | 42 $('sync-action-link').onclick = function(event) { |
43 SyncSetupOverlay.showErrorUI(); | 43 SyncSetupOverlay.showErrorUI(); |
(...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
285 | 285 |
286 setThemesResetButtonEnabled_: function(enabled) { | 286 setThemesResetButtonEnabled_: function(enabled) { |
287 $('themes-reset').disabled = !enabled; | 287 $('themes-reset').disabled = !enabled; |
288 }, | 288 }, |
289 | 289 |
290 hideSyncSection_: function() { | 290 hideSyncSection_: function() { |
291 $('sync-section').hidden = true; | 291 $('sync-section').hidden = true; |
292 }, | 292 }, |
293 | 293 |
294 /** | 294 /** |
| 295 * Get the start/stop sync button DOM element. |
| 296 * @return {DOMElement} The start/stop sync button. |
| 297 * @private |
| 298 */ |
| 299 getStartStopSyncButton_: function() { |
| 300 return $('start-stop-sync'); |
| 301 }, |
| 302 |
| 303 /** |
295 * (Re)loads IMG element with current user account picture. | 304 * (Re)loads IMG element with current user account picture. |
296 */ | 305 */ |
297 updateAccountPicture_: function() { | 306 updateAccountPicture_: function() { |
298 $('account-picture').src = | 307 $('account-picture').src = |
299 'chrome://userimage/' + this.userEmail_ + | 308 'chrome://userimage/' + this.userEmail_ + |
300 '?id=' + (new Date()).getTime(); | 309 '?id=' + (new Date()).getTime(); |
301 }, | 310 }, |
302 }; | 311 }; |
303 | 312 |
304 /** | 313 /** |
(...skipping 18 matching lines...) Expand all Loading... |
323 * Returns email of the user logged in (ChromeOS only). | 332 * Returns email of the user logged in (ChromeOS only). |
324 * @return {string} user email. | 333 * @return {string} user email. |
325 */ | 334 */ |
326 PersonalOptions.getLoggedInUserEmail = function() { | 335 PersonalOptions.getLoggedInUserEmail = function() { |
327 return PersonalOptions.getInstance().userEmail_; | 336 return PersonalOptions.getInstance().userEmail_; |
328 }; | 337 }; |
329 } | 338 } |
330 | 339 |
331 // Forward public APIs to private implementations. | 340 // Forward public APIs to private implementations. |
332 [ | 341 [ |
| 342 'getStartStopSyncButton', |
333 'hideSyncSection', | 343 'hideSyncSection', |
334 'setAutoLoginVisible', | 344 'setAutoLoginVisible', |
335 'setCustomizeSyncButtonEnabled', | 345 'setCustomizeSyncButtonEnabled', |
336 'setGtkThemeButtonEnabled', | 346 'setGtkThemeButtonEnabled', |
337 'setProfilesInfo', | 347 'setProfilesInfo', |
338 'setProfilesSectionVisible', | 348 'setProfilesSectionVisible', |
339 'setStartStopButtonEnabled', | 349 'setStartStopButtonEnabled', |
340 'setStartStopButtonLabel', | 350 'setStartStopButtonLabel', |
341 'setStartStopButtonVisible', | 351 'setStartStopButtonVisible', |
342 'setSyncActionLinkEnabled', | 352 'setSyncActionLinkEnabled', |
343 'setSyncActionLinkLabel', | 353 'setSyncActionLinkLabel', |
344 'setSyncEnabled', | 354 'setSyncEnabled', |
345 'setSyncSetupCompleted', | 355 'setSyncSetupCompleted', |
346 'setSyncStatus', | 356 'setSyncStatus', |
347 'setSyncStatusErrorVisible', | 357 'setSyncStatusErrorVisible', |
348 'setThemesResetButtonEnabled', | 358 'setThemesResetButtonEnabled', |
349 'updateAccountPicture', | 359 'updateAccountPicture', |
350 ].forEach(function(name) { | 360 ].forEach(function(name) { |
351 PersonalOptions[name] = function(value) { | 361 PersonalOptions[name] = function(value) { |
352 PersonalOptions.getInstance()[name + '_'](value); | 362 return PersonalOptions.getInstance()[name + '_'](value); |
353 }; | 363 }; |
354 }); | 364 }); |
355 | 365 |
356 // Export | 366 // Export |
357 return { | 367 return { |
358 PersonalOptions: PersonalOptions | 368 PersonalOptions: PersonalOptions |
359 }; | 369 }; |
360 | 370 |
361 }); | 371 }); |
OLD | NEW |