15821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Copyright (c) 2012 The Chromium Authors. All rights reserved. 25821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 35821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)// found in the LICENSE file. 45821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 55821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)/** 65821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @fileoverview Login UI header bar implementation. 75821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 85821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 95821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)cr.define('login', function() { 105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Creates a header bar element. 125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @constructor 135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @extends {HTMLDivElement} 145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var HeaderBar = cr.ui.define('div'); 165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HeaderBar.prototype = { 185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) __proto__: HTMLDivElement.prototype, 195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) // Whether guest button should be shown when header bar is in normal mode. 215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) showGuest_: false, 225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 232a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Current UI state of the sign-in screen. 242a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) signinUIState_: SIGNIN_UI_STATE.HIDDEN, 252a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 262a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Whether to show kiosk apps menu. 272a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) hasApps_: false, 282a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 292a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** @override */ 305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) decorate: function() { 315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('shutdown-header-bar-item').addEventListener('click', 325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.handleShutdownClick_); 335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('shutdown-button').addEventListener('click', 345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.handleShutdownClick_); 352a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('add-user-button').addEventListener('click', 362a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) this.handleAddUserClick_); 375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('cancel-add-user-button').addEventListener('click', 385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.handleCancelAddUserClick_); 395821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('guest-user-header-bar-item').addEventListener('click', 405821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.handleGuestClick_); 415821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('guest-user-button').addEventListener('click', 425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.handleGuestClick_); 435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('sign-out-user-button').addEventListener('click', 445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.handleSignoutClick_); 45868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) $('cancel-multiple-sign-in-button').addEventListener('click', 46868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) this.handleCancelMultipleSignInClick_); 477dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (document.documentElement.getAttribute('screen') == 'login') 482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) login.AppsMenuButton.decorate($('show-apps-button')); 495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Tab index value for all button elements. 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {number} 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set buttonsTabIndex(tabIndex) { 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var buttons = this.getElementsByTagName('button'); 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (var i = 0, button; button = buttons[i]; ++i) { 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) button.tabIndex = tabIndex; 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Disables the header bar and all of its elements. 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {boolean} 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set disabled(value) { 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var buttons = this.getElementsByTagName('button'); 682a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (var i = 0, button; button = buttons[i]; ++i) 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!button.classList.contains('button-restricted')) 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) button.disabled = value; 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }, 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Add user button click handler. 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @private 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) handleAddUserClick_: function(e) { 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Oobe.showSigninUI(); 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Prevent further propagation of click event. Otherwise, the click event 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // handler of document object will set wallpaper to user's wallpaper when 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // there is only one existing user. See http://crbug.com/166477 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) e.stopPropagation(); 835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Cancel add user button click handler. 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleCancelAddUserClick_: function(e) { 902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Let screen handle cancel itself if that is capable of doing so. 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (Oobe.getInstance().currentScreen && 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Oobe.getInstance().currentScreen.cancel) { 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Oobe.getInstance().currentScreen.cancel(); 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 975821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('pod-row').loadLastWallpaper(); 982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 995821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Oobe.showScreen({id: SCREEN_ACCOUNT_PICKER}); 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Oobe.resetSigninUI(true); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Guest button click handler. 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleGuestClick_: function(e) { 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Oobe.disableSigninUI(); 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.send('launchIncognito'); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) e.stopPropagation(); 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sign out button click handler. 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleSignoutClick_: function(e) { 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.disabled = true; 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.send('signOutUser'); 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) e.stopPropagation(); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Shutdown button click handler. 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleShutdownClick_: function(e) { 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.send('shutdownSystem'); 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) e.stopPropagation(); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 133868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) * Cancel user adding button handler. 134868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) * @private 135868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) */ 136868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) handleCancelMultipleSignInClick_: function(e) { 137868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome.send('cancelUserAdding'); 138868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) e.stopPropagation(); 139868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) }, 140868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 141868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) /** 1425821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If true then "Browse as Guest" button is shown. 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {boolean} 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set showGuestButton(value) { 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.showGuest_ = value; 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.updateUI_(); 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1512a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Update current header bar UI. 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @type {number} state Current state of the sign-in screen 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * (see SIGNIN_UI_STATE). 1545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1552a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) set signinUIState(state) { 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) this.signinUIState_ = state; 1575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.updateUI_(); 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Whether the Cancel button is enabled during Gaia sign-in. 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {boolean} 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set allowCancel(value) { 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.allowCancel_ = value; 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.updateUI_(); 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Update whether there are kiosk apps. 1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @type {boolean} 1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) set hasApps(value) { 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) this.hasApps_ = value; 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) this.updateUI_(); 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }, 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 1795821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Updates visibility state of action buttons. 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) updateUI_: function() { 1832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var gaiaIsActive = (this.signinUIState_ == SIGNIN_UI_STATE.GAIA_SIGNIN); 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var accountPickerIsActive = 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (this.signinUIState_ == SIGNIN_UI_STATE.ACCOUNT_PICKER); 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var managedUserCreationDialogIsActive = 187c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) (this.signinUIState_ == SIGNIN_UI_STATE.MANAGED_USER_CREATION_FLOW); 1882a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var wrongHWIDWarningIsActive = 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (this.signinUIState_ == SIGNIN_UI_STATE.WRONG_HWID_WARNING); 190c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var isMultiProfilesUI = Oobe.getInstance().isSignInToAddScreen(); 1912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 192c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) $('add-user-button').hidden = !accountPickerIsActive || isMultiProfilesUI; 1932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('cancel-add-user-button').hidden = accountPickerIsActive || 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !this.allowCancel_ || 195c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) wrongHWIDWarningIsActive || 196c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) isMultiProfilesUI; 1972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('guest-user-header-bar-item').hidden = gaiaIsActive || 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) managedUserCreationDialogIsActive || 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !this.showGuest_ || 200c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) wrongHWIDWarningIsActive || 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) isMultiProfilesUI; 2022a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('add-user-header-bar-item').hidden = 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('add-user-button').hidden && $('cancel-add-user-button').hidden; 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('apps-header-bar-item').hidden = !this.hasApps_ || 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (!gaiaIsActive && !accountPickerIsActive); 206868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) $('cancel-multiple-sign-in-item').hidden = !isMultiProfilesUI; 2072a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!$('apps-header-bar-item').hidden) 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('show-apps-button').didShow(); 2105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Animates Header bar to hide from the screen. 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {function()} callback will be called once animation is finished. 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) animateOut: function(callback) { 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var launcher = this; 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) launcher.addEventListener( 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'webkitTransitionEnd', function f(e) { 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) launcher.removeEventListener('webkitTransitionEnd', f); 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) callback(); 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }); 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.remove('login-header-bar-animate-slow'); 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.add('login-header-bar-animate-fast'); 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.add('login-header-bar-hidden'); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Animates Header bar to slowly appear on the screen. 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) animateIn: function() { 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.remove('login-header-bar-animate-fast'); 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.add('login-header-bar-animate-slow'); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.remove('login-header-bar-hidden'); 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 238c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 239c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Convenience wrapper of animateOut. 240c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 241c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) HeaderBar.animateOut = function(callback) { 242c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) $('login-header-bar').animateOut(callback); 243c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 244c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 245c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Convenience wrapper of animateIn. 247c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 248c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) HeaderBar.animateIn = function() { 249c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) $('login-header-bar').animateIn(); 250c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HeaderBar: HeaderBar 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 256