| 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';
|
| - /** @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);
|
| }
|
| };
|
| -});
|
| +})());
|
|
|
|
|