Chromium Code Reviews| Index: chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.js |
| diff --git a/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.js b/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.js |
| index fd8e372ce004312a40794168e66dae7ca9236595..9f0b233f60f3ec5be875885f2da2928a78041b1d 100644 |
| --- a/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.js |
| +++ b/chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.js |
| @@ -7,158 +7,77 @@ |
| */ |
| login.createScreen('ControllerPairingScreen', 'controller-pairing', function() { |
| + return { |
| + decorate: function() { |
| + this.children[0].decorate(this); |
| + } |
| + }; |
| +}); |
| + |
| +Polymer('pairing-device-list', (function() { |
| + /** @const */ var ICON_COLORS = ['#F0B9CB', '#F0ACC3', '#F098B6', '#F084A9', |
| + '#F06D99', '#F05287', '#F0467F', '#F03473', |
| + '#F01E65', '#F00051']; |
| + return { |
| + /* Returns pseudo-random color depending of hash of the |name|. */ |
| + colorByName: function(name) { |
| + var hash = 0; |
| + for (var i = 0; i < name.length; ++i) |
| + hash = (name.charCodeAt(i) + 31 * hash) | 0; |
| + return ICON_COLORS[hash % ICON_COLORS.length]; |
| + } |
| + }; |
| +})()); |
| + |
| +Polymer('controller-pairing-screen', (function() { |
| 'use strict'; |
| // Keep these constants synced with corresponding constants defined in |
| // controller_pairing_screen_actor.{h,cc}. |
| - /** @const */ var CONTEXT_KEY_PAGE = 'page'; |
| /** @const */ var CONTEXT_KEY_CONTROLS_DISABLED = 'controlsDisabled'; |
| - /** @const */ var CONTEXT_KEY_DEVICES = 'devices'; |
| - /** @const */ var CONTEXT_KEY_CONFIRMATION_CODE = 'code'; |
| /** @const */ var CONTEXT_KEY_SELECTED_DEVICE = 'selectedDevice'; |
| /** @const */ var CONTEXT_KEY_ACCOUNT_ID = 'accountId'; |
| - /** @const */ var CONTEXT_KEY_ENROLLMENT_DOMAIN = 'enrollmentDomain'; |
| /** @const */ var ACTION_ENROLL = 'enroll'; |
| - /** @const */ var PAGE_DEVICES_DISCOVERY = 'devices-discovery'; |
|
Nikita (slow)
2014/10/13 17:23:40
Where these are gone? I guess these are not needed
dzhioev (left Google)
2014/10/15 14:07:43
Yes, we use these identifiers directly in HTML.
|
| - /** @const */ var PAGE_DEVICE_SELECT = 'device-select'; |
| - /** @const */ var PAGE_DEVICE_NOT_FOUND = 'device-not-found'; |
| - /** @const */ var PAGE_ESTABLISHING_CONNECTION = 'establishing-connection'; |
| - /** @const */ var PAGE_ESTABLISHING_CONNECTION_ERROR = |
| - 'establishing-connection-error'; |
| - /** @const */ var PAGE_CODE_CONFIRMATION = 'code-confirmation'; |
| - /** @const */ var PAGE_HOST_UPDATE = 'host-update'; |
| - /** @const */ var PAGE_HOST_CONNECTION_LOST = 'host-connection-lost'; |
| - /** @const */ var PAGE_ENROLLMENT_INTRODUCTION = 'enrollment-introduction'; |
| /** @const */ var PAGE_AUTHENTICATION = 'authentication'; |
| - /** @const */ var PAGE_HOST_ENROLLMENT = 'host-enrollment'; |
| - /** @const */ var PAGE_HOST_ENROLLMENT_ERROR = 'host-enrollment-error'; |
| - /** @const */ var PAGE_PAIRING_DONE = 'pairing-done'; |
| - |
| - /** @const */ var PAGE_NAMES = [ |
| - PAGE_DEVICES_DISCOVERY, |
| - PAGE_DEVICE_SELECT, |
| - PAGE_DEVICE_NOT_FOUND, |
| - PAGE_ESTABLISHING_CONNECTION, |
| - PAGE_ESTABLISHING_CONNECTION_ERROR, |
| - PAGE_CODE_CONFIRMATION, |
| - PAGE_HOST_UPDATE, |
| - PAGE_HOST_CONNECTION_LOST, |
| - PAGE_ENROLLMENT_INTRODUCTION, |
| - PAGE_AUTHENTICATION, |
| - PAGE_HOST_ENROLLMENT, |
| - PAGE_HOST_ENROLLMENT_ERROR, |
| - PAGE_PAIRING_DONE]; |
| return { |
| - deviceSelectionChangedCallback_: null, |
| gaiaHost_: null, |
| - pages_: null, |
| - |
| - /** @override */ |
| - decorate: function() { |
| - this.initialize(); |
| - |
| - this.pages_ = {}; |
| - PAGE_NAMES.forEach(function(pageName) { |
| - var page = this.querySelector('.page-' + pageName); |
| - if (page === null) |
| - throw Error('Page "' + pageName + '" was not found.'); |
| - page.hidden = true; |
| - this.pages_[pageName] = page; |
| - }, this); |
| - |
| - this.disableControls_(true); |
| - |
| - this.addContextObserver(CONTEXT_KEY_PAGE, this.pageChanged_); |
| - this.addContextObserver(CONTEXT_KEY_CONTROLS_DISABLED, |
| - this.disableControls_); |
| - |
| - cr.ui.List.decorate(this.deviceList_); |
| - this.deviceList_.selectionModel = new cr.ui.ListSingleSelectionModel(); |
| - |
| - this.gaiaHost_ = new cr.login.GaiaAuthHost(this.gaiaFrame_); |
| + selectedDevice: null, |
| - this.deviceSelectionChangedCallback_ = |
| - this.deviceSelectionChanged_.bind(this); |
| + observe: { |
| + 'C.devices': 'deviceListChanged', |
| + 'C.page': 'pageChanged' |
| }, |
| - pageChanged_: function(newPage, oldPage) { |
| - this.throbber_.hidden = [PAGE_DEVICES_DISCOVERY, |
| - PAGE_DEVICE_SELECT, |
| - PAGE_ESTABLISHING_CONNECTION, |
| - PAGE_HOST_UPDATE, |
| - PAGE_HOST_CONNECTION_LOST, |
| - PAGE_HOST_ENROLLMENT].indexOf(newPage) == -1; |
| - this.togglePage_(newPage); |
| - if (newPage == PAGE_DEVICE_SELECT) { |
| - this.addContextObserver(CONTEXT_KEY_DEVICES, this.setDeviceList_); |
| - this.addContextObserver(CONTEXT_KEY_SELECTED_DEVICE, |
| - this.setSelectedDevice_); |
| - this.setDeviceList_(this.context.get(CONTEXT_KEY_DEVICES)); |
| - this.deviceList_.addEventListener('change', |
| - this.deviceSelectionChangedCallback_); |
| - } else if (oldPage == PAGE_DEVICE_SELECT) { |
| - this.removeContextObserver(this.setDeviceList_); |
| - this.removeContextObserver(this.setSelectedDevice_); |
| - this.deviceList_.removeEventListener('change', |
| - this.deviceSelectionChangedCallback_); |
| - } |
| - |
| - if (newPage == PAGE_CODE_CONFIRMATION) { |
| - // TODO(dzhioev): replace with i18n pattern. |
| - this.confirmationCodeLabel_.textContent = |
| - this.context.get(CONTEXT_KEY_CONFIRMATION_CODE) + '?'; |
| - } |
| + /** @override */ |
| + initialize: function() { |
| + this.context.set(CONTEXT_KEY_CONTROLS_DISABLED, true); |
| + this.commitContextChanges(); |
| + this.gaiaHost_ = new cr.login.GaiaAuthHost(this.$.gaiaFrame); |
| + }, |
| + pageChanged: function(oldPage, newPage) { |
| if (newPage == PAGE_AUTHENTICATION) { |
| this.gaiaHost_.load(cr.login.GaiaAuthHost.AuthMode.DEFAULT, |
| {}, |
| this.onAuthCompleted_.bind(this)); |
| } |
| - |
| - if (newPage == PAGE_HOST_ENROLLMENT) { |
| - this.domainNameLabel_.textContent = |
| - this.context.get(CONTEXT_KEY_ENROLLMENT_DOMAIN); |
| - } |
| - |
| - this.pageNameLabel_.textContent = '<<<< ' + newPage + ' >>>>'; |
| }, |
| - togglePage_: function(newPage) { |
| - PAGE_NAMES.forEach(function(pageName) { |
| - this.pages_[pageName].hidden = (pageName !== newPage); |
| - }, this); |
| + deviceListChanged: function() { |
| + this.selectedDevice = this.context.get(CONTEXT_KEY_SELECTED_DEVICE); |
| }, |
| - setDeviceList_: function(deviceList) { |
| - this.deviceList_.removeEventListener('change', |
| - this.deviceSelectionChangedCallback_); |
| - |
| - this.deviceList_.dataModel = new cr.ui.ArrayDataModel(deviceList); |
| - this.setSelectedDevice_(this.context.get(CONTEXT_KEY_SELECTED_DEVICE)); |
| - |
| - this.deviceList_.addEventListener('change', |
| - this.deviceSelectionChangedCallback_); |
| - }, |
| - |
| - setSelectedDevice_: function(selectedDevice) { |
| - this.deviceList_.selectedItem = selectedDevice; |
| - }, |
| - |
| - deviceSelectionChanged_: function() { |
| - var item = this.deviceList_.selectedItem; |
| - this.context.set(CONTEXT_KEY_SELECTED_DEVICE, item ? item : ''); |
| + selectedDeviceChanged: function() { |
| + this.context.set(CONTEXT_KEY_SELECTED_DEVICE, |
| + this.selectedDevice ? this.selectedDevice : ''); |
| this.commitContextChanges(); |
| }, |
| - disableControls_: function(disable) { |
| - this.querySelectorAll('button').forEach(function(button) { |
| - button.disabled = disable; |
| - }); |
| - this.context.set(CONTEXT_KEY_CONTROLS_DISABLED, disable); |
| - this.commitContextChanges(); |
| + helpButtonClicked: function() { |
| + console.error('Help is not implemented yet.'); |
| }, |
| onAuthCompleted_: function(credentials) { |
| @@ -167,5 +86,5 @@ login.createScreen('ControllerPairingScreen', 'controller-pairing', function() { |
| this.send(login.Screen.CALLBACK_USER_ACTED, ACTION_ENROLL); |
| } |
| }; |
| -}); |
| +})()); |