Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3400)

Unified Diff: chrome/browser/resources/chromeos/login/oobe_screen_controller_pairing.js

Issue 642313002: Implemented UI for the meetings controller out-of-box. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@merge_point
Patch Set: Clean up. Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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);
}
};
-});
+})());

Powered by Google App Engine
This is Rietveld 408576698