Chromium Code Reviews| Index: chrome/browser/resources/new_tab_sync_promo.js |
| diff --git a/chrome/browser/resources/new_tab_sync_promo.js b/chrome/browser/resources/new_tab_sync_promo.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..970569678a46b4a4001b5113bd2287b1b0b6b5de |
| --- /dev/null |
| +++ b/chrome/browser/resources/new_tab_sync_promo.js |
| @@ -0,0 +1,127 @@ |
| +// Copyright (c) 2011 The Chromium Authors. All rights reserved. |
| +// Use of this source code is governed by a BSD-style license that can be |
| +// found in the LICENSE file. |
| + |
| +cr.define('new_tab', function() { |
| + // Variable to track if the promo is expanded or collapsed. |
| + var isSyncPromoExpanded_ = false; |
|
James Hawkins
2011/07/20 01:55:26
Move this into NewTabSyncPromo.prototype.
sail
2011/07/20 19:40:25
Done.
|
| + |
| + /** |
| + * NewTabSyncPromo class |
| + * Subclass of options.SyncSetupOverlay that customizes the sync setup |
| + * overlay for use in the new tab page. |
| + * @class |
| + */ |
| + function NewTabSyncPromo() { |
| + options.SyncSetupOverlay.call(this, 'syncSetup', |
| + templateData.syncSetupOverlayTitle, |
| + 'sync-setup-overlay'); |
| + } |
| + |
| + cr.addSingletonGetter(NewTabSyncPromo); |
| + |
| + NewTabSyncPromo.prototype = { |
| + __proto__: options.SyncSetupOverlay.prototype, |
| + |
| + showOverlay_: function() { |
| + this.expandSyncPromo_(true); |
| + }, |
| + |
| + // Initializes the page. |
| + initializePage: function() { |
| + options.SyncSetupOverlay.prototype.initializePage.call(this); |
| + $('sync-promo-toggle-button').onclick = this.onTogglePromo; |
| + chrome.send('InitializeSyncPromo'); |
| + }, |
| + |
| + // Handler for the toggle button to show or hide the sync promo. |
| + onTogglePromo: function() { |
| + if (this.isSyncPromoExpanded_) { |
| + this.expandSyncPromo_(false); |
| + chrome.send('CollapseSyncPromo'); |
| + } else { |
| + chrome.send('ExpandSyncPromo'); |
| + } |
| + }, |
| + |
| + // Shows or hides the sync promo. |
| + expandSyncPromo_: function(shouldExpand) { |
| + this.isSyncPromoExpanded_ = shouldExpand; |
| + if (shouldExpand) { |
| + $('sync-promo-login-status').hidden = true; |
| + $('sync-setup-overlay').hidden = false; |
| + $('sync-promo').classList.remove('collapsed'); |
| + } else { |
| + $('sync-promo-login-status').hidden = false; |
| + $('sync-setup-overlay').hidden = true; |
| + $('sync-promo').classList.add('collapsed'); |
| + } |
| + layoutSections(); |
| + }, |
| + |
| + // Sets the sync login name. If there's no login name then makes the |
| + // 'not connected' UI visible and shows the sync promo toggle button. |
| + updateLogin_: function(user_name) { |
| + if (user_name) { |
| + $('sync-promo-toggle').hidden = true; |
| + $('sync-promo-user-name').textContent = user_name; |
| + $('sync-promo-not-connected').hidden = true; |
| + } else { |
| + $('sync-promo-toggle').hidden = false; |
| + $('sync-promo-user-name').hidden = true; |
| + $('sync-promo-not-connected').hidden = false; |
| + } |
| + layoutSections(); |
| + } |
| + |
| + // Shows the sync promo. |
| + showSyncPromo_: function() { |
| + $('sync-promo').hidden = false; |
| + } |
| + }; |
| + |
| + NewTabSyncPromo.showErrorUI = function() { |
| + NewTabSyncPromo.getInstance().showErrorUI_(); |
| + }; |
| + |
| + NewTabSyncPromo.showSetupUI = function() { |
| + NewTabSyncPromo.getInstance().showSetupUI_(); |
| + }; |
| + |
| + NewTabSyncPromo.showSyncSetupPage = function(page, args) { |
| + NewTabSyncPromo.getInstance().showSyncSetupPage_(page, args); |
| + }; |
| + |
| + NewTabSyncPromo.showSuccessAndClose = function() { |
| + NewTabSyncPromo.getInstance().showSuccessAndClose_(); |
| + }; |
| + |
| + NewTabSyncPromo.showSuccessAndSettingUp = function() { |
| + NewTabSyncPromo.getInstance().showSuccessAndSettingUp_(); |
| + }; |
| + |
| + NewTabSyncPromo.showStopSyncingUI = function() { |
| + NewTabSyncPromo.getInstance().showStopSyncingUI_(); |
| + }; |
| + |
| + NewTabSyncPromo.initialize = function() { |
| + NewTabSyncPromo.getInstance().initializePage(); |
| + } |
| + |
| + NewTabSyncPromo.showSynPromo = function() { |
| + NewTabSyncPromo.getInstance().showSyncPromo_(); |
| + } |
| + |
| + NewTabSyncPromo.updateLogin = function(user_name) { |
| + NewTabSyncPromo.getInstance().updateLogin_(user_name); |
| + } |
| + |
| + // Export |
| + return { |
| + NewTabSyncPromo : NewTabSyncPromo |
| + }; |
| +}); |
| + |
| +var OptionsPage = options.OptionsPage; |
| +var SyncSetupOverlay = new_tab.NewTabSyncPromo; |
| +window.addEventListener('DOMContentLoaded', new_tab.NewTabSyncPromo.initialize); |