header_bar.js revision 7dbb3d5cf0c15f500944d211057644d6a2f37371
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_); 472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 487dbb3d5cf0c15f500944d211057644d6a2f37371Ben Murdoch if (document.documentElement.getAttribute('screen') == 'login') 492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) login.AppsMenuButton.decorate($('show-apps-button')); 505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 525821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Tab index value for all button elements. 545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {number} 555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set buttonsTabIndex(tabIndex) { 575821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var buttons = this.getElementsByTagName('button'); 585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) for (var i = 0, button; button = buttons[i]; ++i) { 595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) button.tabIndex = tabIndex; 605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) } 615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Disables the header bar and all of its elements. 655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {boolean} 665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set disabled(value) { 685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var buttons = this.getElementsByTagName('button'); 692a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) for (var i = 0, button; button = buttons[i]; ++i) 702a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!button.classList.contains('button-restricted')) 712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) button.disabled = value; 722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }, 732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Add user button click handler. 762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @private 772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) handleAddUserClick_: function(e) { 792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Oobe.showSigninUI(); 802a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Prevent further propagation of click event. Otherwise, the click event 812a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // handler of document object will set wallpaper to user's wallpaper when 822a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // there is only one existing user. See http://crbug.com/166477 832a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) e.stopPropagation(); 845821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 855821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 865821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 875821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Cancel add user button click handler. 885821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 895821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 905821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleCancelAddUserClick_: function(e) { 912a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) // Let screen handle cancel itself if that is capable of doing so. 922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (Oobe.getInstance().currentScreen && 932a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Oobe.getInstance().currentScreen.cancel) { 942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) Oobe.getInstance().currentScreen.cancel(); 952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) return; 962a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) } 972a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 985821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) $('pod-row').loadLastWallpaper(); 992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1005821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Oobe.showScreen({id: SCREEN_ACCOUNT_PICKER}); 1015821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Oobe.resetSigninUI(true); 1025821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1035821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1045821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1055821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Guest button click handler. 1065821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1075821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1085821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleGuestClick_: function(e) { 1095821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) Oobe.disableSigninUI(); 1105821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.send('launchIncognito'); 1115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) e.stopPropagation(); 1125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Sign out button click handler. 1165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleSignoutClick_: function(e) { 1195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.disabled = true; 1205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.send('signOutUser'); 1215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) e.stopPropagation(); 1225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Shutdown button click handler. 1265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) handleShutdownClick_: function(e) { 1295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) chrome.send('shutdownSystem'); 1305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) e.stopPropagation(); 1315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 134868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) * Cancel user adding button handler. 135868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) * @private 136868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) */ 137868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) handleCancelMultipleSignInClick_: function(e) { 138868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) chrome.send('cancelUserAdding'); 139868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) e.stopPropagation(); 140868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) }, 141868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) 142868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) /** 1435821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * If true then "Browse as Guest" button is shown. 1445821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {boolean} 1455821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1465821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set showGuestButton(value) { 1475821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.showGuest_ = value; 1485821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.updateUI_(); 1495821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1505821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1515821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Update current header bar UI. 1532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @type {number} state Current state of the sign-in screen 1542a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * (see SIGNIN_UI_STATE). 1555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1562a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) set signinUIState(state) { 1572a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) this.signinUIState_ = state; 1585821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.updateUI_(); 1595821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1605821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1615821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1625821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Whether the Cancel button is enabled during Gaia sign-in. 1635821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @type {boolean} 1645821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1655821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) set allowCancel(value) { 1665821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.allowCancel_ = value; 1675821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.updateUI_(); 1685821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 1695821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 1705821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 1712a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Update whether there are kiosk apps. 1722a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * @type {boolean} 1732a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */ 1742a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) set hasApps(value) { 1752a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) this.hasApps_ = value; 1762a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) this.updateUI_(); 1772a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) }, 1782a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 1792a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) /** 1805821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Updates visibility state of action buttons. 1815821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @private 1825821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 1835821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) updateUI_: function() { 1842a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var gaiaIsActive = (this.signinUIState_ == SIGNIN_UI_STATE.GAIA_SIGNIN); 1852a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var accountPickerIsActive = 1862a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (this.signinUIState_ == SIGNIN_UI_STATE.ACCOUNT_PICKER); 1872a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var managedUserCreationDialogIsActive = 188c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) (this.signinUIState_ == SIGNIN_UI_STATE.MANAGED_USER_CREATION_FLOW); 1892a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) var wrongHWIDWarningIsActive = 1902a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (this.signinUIState_ == SIGNIN_UI_STATE.WRONG_HWID_WARNING); 191c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) var isMultiProfilesUI = Oobe.getInstance().isSignInToAddScreen(); 1922a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 193c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) $('add-user-button').hidden = !accountPickerIsActive || isMultiProfilesUI; 1942a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('cancel-add-user-button').hidden = accountPickerIsActive || 1952a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !this.allowCancel_ || 196c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) wrongHWIDWarningIsActive || 197c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) isMultiProfilesUI; 1982a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('guest-user-header-bar-item').hidden = gaiaIsActive || 1992a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) managedUserCreationDialogIsActive || 2002a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) !this.showGuest_ || 201c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) wrongHWIDWarningIsActive || 202c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) isMultiProfilesUI; 2032a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('add-user-header-bar-item').hidden = 2042a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('add-user-button').hidden && $('cancel-add-user-button').hidden; 2052a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('apps-header-bar-item').hidden = !this.hasApps_ || 2062a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) (!gaiaIsActive && !accountPickerIsActive); 207868fa2fe829687343ffae624259930155e16dbd8Torne (Richard Coles) $('cancel-multiple-sign-in-item').hidden = !isMultiProfilesUI; 2082a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) 2092a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) if (!$('apps-header-bar-item').hidden) 2102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) $('show-apps-button').didShow(); 2115821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 2125821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2135821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2145821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Animates Header bar to hide from the screen. 2155821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * @param {function()} callback will be called once animation is finished. 2165821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2175821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) animateOut: function(callback) { 2185821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) var launcher = this; 2195821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) launcher.addEventListener( 2205821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 'webkitTransitionEnd', function f(e) { 2215821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) launcher.removeEventListener('webkitTransitionEnd', f); 2225821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) callback(); 2235821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }); 2245821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.remove('login-header-bar-animate-slow'); 2255821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.add('login-header-bar-animate-fast'); 2265821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.add('login-header-bar-hidden'); 2275821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 2285821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 2295821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) /** 2305821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) * Animates Header bar to slowly appear on the screen. 2315821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) */ 2325821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) animateIn: function() { 2335821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.remove('login-header-bar-animate-fast'); 2345821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.add('login-header-bar-animate-slow'); 2355821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) this.classList.remove('login-header-bar-hidden'); 2365821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }, 2375821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 2385821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) 239c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 240c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Convenience wrapper of animateOut. 241c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 242c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) HeaderBar.animateOut = function(callback) { 243c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) $('login-header-bar').animateOut(callback); 244c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) }; 245c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 246c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) /** 247c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) * Convenience wrapper of animateIn. 248c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) */ 249c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) HeaderBar.animateIn = function() { 250c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) $('login-header-bar').animateIn(); 251c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) } 252c2e0dbddbe15c98d52c4786dac06cb8952a8ae6dTorne (Richard Coles) 2535821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) return { 2545821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) HeaderBar: HeaderBar 2555821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles) }; 2565821806d5e7f356e8fa4b058a389a808ea183019Torne (Richard Coles)}); 257