OLD | NEW |
| (Empty) |
1 // Copyright 2013 The Chromium Authors. All rights reserved. | |
2 // Use of this source code is governed by a BSD-style license that can be | |
3 // found in the LICENSE file. | |
4 | |
5 cr.define('options.managedUserOptions', function() { | |
6 /** @const */ var List = cr.ui.List; | |
7 /** @const */ var ListItem = cr.ui.ListItem; | |
8 /** @const */ var ListSingleSelectionModel = cr.ui.ListSingleSelectionModel; | |
9 | |
10 /** | |
11 * Create a new managed user list item. | |
12 * @param {Object} entry The managed user this item represents. | |
13 * It has the following form: | |
14 * managedUser = { | |
15 * id: "Managed User ID", | |
16 * name: "Managed User Name", | |
17 * iconURL: "chrome://path/to/icon/image", | |
18 * onCurrentDevice: true or false, | |
19 * needAvatar: true or false | |
20 * } | |
21 * @constructor | |
22 * @extends {cr.ui.ListItem} | |
23 */ | |
24 function ManagedUserListItem(entry) { | |
25 var el = cr.doc.createElement('div'); | |
26 el.managedUser_ = entry; | |
27 el.__proto__ = ManagedUserListItem.prototype; | |
28 el.decorate(); | |
29 return el; | |
30 } | |
31 | |
32 ManagedUserListItem.prototype = { | |
33 __proto__: ListItem.prototype, | |
34 | |
35 /** | |
36 * @type {string} the ID of this managed user list item. | |
37 */ | |
38 get id() { | |
39 return this.managedUser_.id; | |
40 }, | |
41 | |
42 /** | |
43 * @type {string} the name of this managed user list item. | |
44 */ | |
45 get name() { | |
46 return this.managedUser_.name; | |
47 }, | |
48 | |
49 /** | |
50 * @type {string} the path to the avatar icon of this managed | |
51 * user list item. | |
52 */ | |
53 get iconURL() { | |
54 return this.managedUser_.iconURL; | |
55 }, | |
56 | |
57 /** @override */ | |
58 decorate: function() { | |
59 ListItem.prototype.decorate.call(this); | |
60 var managedUser = this.managedUser_; | |
61 | |
62 // Add the avatar. | |
63 var iconElement = this.ownerDocument.createElement('img'); | |
64 iconElement.className = 'profile-img'; | |
65 iconElement.style.content = getProfileAvatarIcon(managedUser.iconURL); | |
66 this.appendChild(iconElement); | |
67 | |
68 // Add the profile name. | |
69 var nameElement = this.ownerDocument.createElement('div'); | |
70 nameElement.className = 'profile-name'; | |
71 nameElement.textContent = managedUser.name; | |
72 this.appendChild(nameElement); | |
73 | |
74 if (managedUser.onCurrentDevice) { | |
75 iconElement.className += ' profile-img-disabled'; | |
76 nameElement.className += ' profile-name-disabled'; | |
77 | |
78 // Add "(already on this device)" message. | |
79 var alreadyOnDeviceElement = this.ownerDocument.createElement('div'); | |
80 alreadyOnDeviceElement.className = | |
81 'profile-name-disabled already-on-this-device'; | |
82 alreadyOnDeviceElement.textContent = | |
83 loadTimeData.getString('managedUserAlreadyOnThisDevice'); | |
84 this.appendChild(alreadyOnDeviceElement); | |
85 } | |
86 }, | |
87 }; | |
88 | |
89 /** | |
90 * Create a new managed users list. | |
91 * @constructor | |
92 * @extends {cr.ui.List} | |
93 */ | |
94 var ManagedUserList = cr.ui.define('list'); | |
95 | |
96 ManagedUserList.prototype = { | |
97 __proto__: List.prototype, | |
98 | |
99 /** @override */ | |
100 createItem: function(entry) { | |
101 return new ManagedUserListItem(entry); | |
102 }, | |
103 | |
104 /** @override */ | |
105 decorate: function() { | |
106 List.prototype.decorate.call(this); | |
107 this.selectionModel = new ListSingleSelectionModel(); | |
108 this.autoExpands = true; | |
109 }, | |
110 }; | |
111 | |
112 return { | |
113 ManagedUserListItem: ManagedUserListItem, | |
114 ManagedUserList: ManagedUserList, | |
115 }; | |
116 }); | |
OLD | NEW |