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
3 // found in the LICENSE file.
5 cr
.define('options', function() {
6 var Page
= cr
.ui
.pageManager
.Page
;
7 var PageManager
= cr
.ui
.pageManager
.PageManager
;
10 * SupervisedUserCreateConfirm class.
11 * Encapsulated handling of the confirmation overlay page when creating a
14 * @extends {cr.ui.pageManager.Page}
16 function SupervisedUserCreateConfirmOverlay() {
17 Page
.call(this, 'supervisedUserCreateConfirm',
18 '', // The title will be based on the new profile name.
19 'supervised-user-created');
22 cr
.addSingletonGetter(SupervisedUserCreateConfirmOverlay
);
24 SupervisedUserCreateConfirmOverlay
.prototype = {
26 __proto__
: Page
.prototype,
28 // Info about the newly created profile.
32 initializePage: function() {
33 Page
.prototype.initializePage
.call(this);
35 $('supervised-user-created-done').onclick = function(event
) {
36 PageManager
.closeOverlay();
41 $('supervised-user-created-switch').onclick = function(event
) {
42 PageManager
.closeOverlay();
43 chrome
.send('switchToProfile', [self
.profileInfo_
.filePath
]);
48 didShowPage: function() {
49 $('supervised-user-created-switch').focus();
53 * Sets the profile info used in the dialog and updates the profile name
54 * displayed. Called by the profile creation overlay when this overlay is
56 * @param {Object} info An object of the form:
58 * name: "Profile Name",
59 * filePath: "/path/to/profile/data/on/disk",
60 * isSupervised: (true|false)
61 * custodianEmail: "example@gmail.com"
65 setProfileInfo_: function(info
) {
66 this.profileInfo_
= info
;
68 var elidedName
= elide(info
.name
, MAX_LENGTH
);
69 $('supervised-user-created-title').textContent
=
70 loadTimeData
.getStringF('supervisedUserCreatedTitle', elidedName
);
71 $('supervised-user-created-switch').textContent
=
72 loadTimeData
.getStringF('supervisedUserCreatedSwitch', elidedName
);
74 // HTML-escape the user-supplied strings before putting them into
75 // innerHTML. This is probably excessive for the email address, but
76 // belt-and-suspenders is cheap here.
77 $('supervised-user-created-text').innerHTML
=
78 loadTimeData
.getStringF('supervisedUserCreatedText',
79 HTMLEscape(elidedName
),
80 HTMLEscape(elide(info
.custodianEmail
,
85 canShowPage: function() {
86 return this.profileInfo_
!= null;
90 * Updates the displayed profile name if it has changed. Called by the
92 * @param {string} filePath The file path of the profile whose name
94 * @param {string} newName The changed profile's new name.
97 onUpdatedProfileName_: function(filePath
, newName
) {
98 if (filePath
== this.profileInfo_
.filePath
) {
99 this.profileInfo_
.name
= newName
;
100 this.setProfileInfo_(this.profileInfo_
);
105 * Closes this overlay if the new profile has been deleted. Called by the
107 * @param {string} filePath The file path of the profile that was deleted.
110 onDeletedProfile_: function(filePath
) {
111 if (filePath
== this.profileInfo_
.filePath
) {
112 PageManager
.closeOverlay();
117 // Forward public APIs to private implementations.
118 cr
.makePublic(SupervisedUserCreateConfirmOverlay
, [
120 'onUpdatedProfileName',
126 SupervisedUserCreateConfirmOverlay
: SupervisedUserCreateConfirmOverlay
,