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

Side by Side Diff: ui/login/account_picker/user_pod_row.js

Issue 417103003: Retrieve the list of keyboard layouts for public sessions async (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Rebased. Created 6 years, 4 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @fileoverview User pod row implementation. 6 * @fileoverview User pod row implementation.
7 */ 7 */
8 8
9 cr.define('login', function() { 9 cr.define('login', function() {
10 /** 10 /**
(...skipping 1037 matching lines...) Expand 10 before | Expand all | Expand 10 after
1048 learnMore.addEventListener('mousedown', stopEventPropagation); 1048 learnMore.addEventListener('mousedown', stopEventPropagation);
1049 learnMore.addEventListener('click', this.handleLearnMoreEvent); 1049 learnMore.addEventListener('click', this.handleLearnMoreEvent);
1050 learnMore.addEventListener('keydown', this.handleLearnMoreEvent); 1050 learnMore.addEventListener('keydown', this.handleLearnMoreEvent);
1051 1051
1052 learnMore = this.querySelector('.expanded-pane-learn-more'); 1052 learnMore = this.querySelector('.expanded-pane-learn-more');
1053 learnMore.addEventListener('click', this.handleLearnMoreEvent); 1053 learnMore.addEventListener('click', this.handleLearnMoreEvent);
1054 learnMore.addEventListener('keydown', this.handleLearnMoreEvent); 1054 learnMore.addEventListener('keydown', this.handleLearnMoreEvent);
1055 1055
1056 var languageSelect = this.querySelector('.language-select'); 1056 var languageSelect = this.querySelector('.language-select');
1057 languageSelect.tabIndex = UserPodTabOrder.POD_INPUT; 1057 languageSelect.tabIndex = UserPodTabOrder.POD_INPUT;
1058 languageSelect.addEventListener('change', function() { 1058 languageSelect.addEventListener(
1059 chrome.send('getPublicSessionKeyboardLayouts', [ 1059 'change',
1060 this.user.username, 1060 this.getPublicSessionKeyboardLayouts_.bind(this));
1061 languageSelect.options[languageSelect.selectedIndex].value]);
1062 }.bind(this));
1063
1064 this.querySelector('.keyboard-select').tabIndex = 1061 this.querySelector('.keyboard-select').tabIndex =
1065 UserPodTabOrder.POD_INPUT; 1062 UserPodTabOrder.POD_INPUT;
1066 1063
1067 var languageAndInput = this.querySelector('.language-and-input'); 1064 var languageAndInput = this.querySelector('.language-and-input');
1068 languageAndInput.tabIndex = UserPodTabOrder.POD_INPUT; 1065 languageAndInput.tabIndex = UserPodTabOrder.POD_INPUT;
1069 languageAndInput.addEventListener('click', 1066 languageAndInput.addEventListener('click',
1070 this.transitionToAdvanced_.bind(this)); 1067 this.transitionToAdvanced_.bind(this));
1071 1068
1072 this.enterButtonElement.addEventListener('click', (function(e) { 1069 this.enterButtonElement.addEventListener('click', (function(e) {
1073 this.enterButtonElement.disabled = true; 1070 this.enterButtonElement.disabled = true;
(...skipping 20 matching lines...) Expand all
1094 languageSelect.appendChild(group); 1091 languageSelect.appendChild(group);
1095 } else { 1092 } else {
1096 group.appendChild( 1093 group.appendChild(
1097 new Option(item.title, item.value, item.selected, item.selected)); 1094 new Option(item.title, item.value, item.selected, item.selected));
1098 } 1095 }
1099 } 1096 }
1100 1097
1101 id = this.user.username + '-keyboard'; 1098 id = this.user.username + '-keyboard';
1102 this.querySelector('.keyboard-select-label').htmlFor = id; 1099 this.querySelector('.keyboard-select-label').htmlFor = id;
1103 this.querySelector('.keyboard-select').setAttribute('id', id); 1100 this.querySelector('.keyboard-select').setAttribute('id', id);
1104 this.populateKeyboardSelect_(this.user.initialKeyboardLayouts); 1101 this.populateKeyboardSelect_([this.user.initialKeyboardLayout]);
1102 this.getPublicSessionKeyboardLayouts_();
1105 }, 1103 },
1106 1104
1107 /** @override **/ 1105 /** @override **/
1108 update: function() { 1106 update: function() {
1109 UserPod.prototype.update.call(this); 1107 UserPod.prototype.update.call(this);
1110 this.querySelector('.expanded-pane-name').textContent = 1108 this.querySelector('.expanded-pane-name').textContent =
1111 this.user_.displayName; 1109 this.user_.displayName;
1112 this.querySelector('.info').textContent = 1110 this.querySelector('.info').textContent =
1113 loadTimeData.getStringF('publicAccountInfoFormat', 1111 loadTimeData.getStringF('publicAccountInfoFormat',
1114 this.user_.enterpriseDomain); 1112 this.user_.enterpriseDomain);
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
1206 observer); 1204 observer);
1207 pod.classList.remove('transitioning-to-advanced'); 1205 pod.classList.remove('transitioning-to-advanced');
1208 pod.querySelector('.language-select').focus(); 1206 pod.querySelector('.language-select').focus();
1209 }); 1207 });
1210 // Guard timer set to animation duration + 20ms. 1208 // Guard timer set to animation duration + 20ms.
1211 ensureTransitionEndEvent(languageAndInputSection, 380); 1209 ensureTransitionEndEvent(languageAndInputSection, 380);
1212 }, 0); 1210 }, 0);
1213 }, 1211 },
1214 1212
1215 /** 1213 /**
1214 * Retrieves the list of keyboard layouts available for the currently
1215 * selected locale.
1216 */
1217 getPublicSessionKeyboardLayouts_: function() {
1218 var languageSelect = this.querySelector('.language-select');
1219 chrome.send('getPublicSessionKeyboardLayouts', [
1220 this.user.username,
1221 languageSelect.options[languageSelect.selectedIndex].value]);
1222 },
1223
1224 /**
1216 * Populates the keyboard layout "select" element with a list of layouts. 1225 * Populates the keyboard layout "select" element with a list of layouts.
1217 * @param {!Object} list List of available keyboard layouts 1226 * @param {!Object} list List of available keyboard layouts
1218 */ 1227 */
1219 populateKeyboardSelect_: function(list) { 1228 populateKeyboardSelect_: function(list) {
1220 var keyboardSelect = this.querySelector('.keyboard-select'); 1229 var keyboardSelect = this.querySelector('.keyboard-select');
1221 keyboardSelect.innerHTML = ''; 1230 keyboardSelect.innerHTML = '';
1222 for (var i = 0; i < list.length; ++i) { 1231 for (var i = 0; i < list.length; ++i) {
1223 var item = list[i]; 1232 var item = list[i];
1224 keyboardSelect.appendChild( 1233 keyboardSelect.appendChild(
1225 new Option(item.title, item.value, item.selected, item.selected)); 1234 new Option(item.title, item.value, item.selected, item.selected));
(...skipping 1164 matching lines...) Expand 10 before | Expand all | Expand 10 after
2390 if (this.podsWithPendingImages_.length == 0) { 2399 if (this.podsWithPendingImages_.length == 0) {
2391 this.classList.remove('images-loading'); 2400 this.classList.remove('images-loading');
2392 } 2401 }
2393 } 2402 }
2394 }; 2403 };
2395 2404
2396 return { 2405 return {
2397 PodRow: PodRow 2406 PodRow: PodRow
2398 }; 2407 };
2399 }); 2408 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698