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

Side by Side Diff: chrome/browser/resources/extensions/chromeos/kiosk_apps.js

Issue 15966004: cros: Move kiosk settings to extensions page. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fix space Created 7 years, 6 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 2013 The Chromium Authors. All rights reserved. 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 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 cr.define('options', function() { 5 cr.define('extensions', function() {
6 var OptionsPage = options.OptionsPage;
7
8 /** 6 /**
9 * Encapsulated handling of ChromeOS kiosk apps options page. 7 * Encapsulated handling of ChromeOS kiosk apps options page.
10 * @extends {options.OptionsPage}
11 * @constructor 8 * @constructor
12 */ 9 */
13 function KioskAppsOverlay() { 10 function KioskAppsOverlay() {
14 OptionsPage.call(this,
15 'kioskAppsOverlay',
16 loadTimeData.getString('kioskOverlayTitle'),
17 'kiosk-apps-page');
18 } 11 }
19 12
20 cr.addSingletonGetter(KioskAppsOverlay); 13 cr.addSingletonGetter(KioskAppsOverlay);
21 14
22 KioskAppsOverlay.prototype = { 15 KioskAppsOverlay.prototype = {
23 __proto__: OptionsPage.prototype,
24
25 /** 16 /**
26 * Clear error timer id. 17 * Clear error timer id.
27 * @type {?number} 18 * @type {?number}
28 */ 19 */
29 clearErrorTimer_: null, 20 clearErrorTimer_: null,
30 21
31 /** @override */ 22 /**
32 initializePage: function() { 23 * Initialize the page.
33 // Call base class implementation to starts preference initialization. 24 */
34 OptionsPage.prototype.initializePage.call(this); 25 initialize: function() {
26 extensions.KioskAppList.decorate($('kiosk-app-list'));
35 27
36 options.KioskAppList.decorate($('kiosk-app-list')); 28 var overlay = $('kiosk-apps-page');
29 cr.ui.overlay.setupOverlay(overlay);
30 overlay.addEventListener('cancelOverlay', this.handleDismiss_.bind(this));
37 31
38 $('kiosk-options-overlay-confirm').onclick = 32 $('kiosk-options-overlay-confirm').onclick =
39 OptionsPage.closeOverlay.bind(OptionsPage); 33 this.handleDismiss_.bind(this);
40 $('kiosk-app-id-edit').addEventListener('keypress', 34 $('kiosk-app-id-edit').addEventListener('keypress',
41 this.handleAppIdInputKeyPressed_); 35 this.handleAppIdInputKeyPressed_);
42
43 Preferences.getInstance().addEventListener(
44 'cros.accounts.deviceLocalAccounts',
45 this.loadAppsIfVisible_.bind(this));
46 Preferences.getInstance().addEventListener(
47 'cros.accounts.deviceLocalAccountAutoLoginId',
48 this.loadAppsIfVisible_.bind(this));
49 }, 36 },
50 37
51 /** @override */ 38 /*
39 * Invoked when the page is shown.
40 */
52 didShowPage: function() { 41 didShowPage: function() {
53 this.loadAppsIfVisible_(); 42 chrome.send('getKioskAppSettings');
54 $('kiosk-app-id-edit').focus(); 43 $('kiosk-app-id-edit').focus();
55 }, 44 },
56 45
57 /** 46 /**
58 * Loads the apps if the overlay page is visible.
59 * @private
60 */
61 loadAppsIfVisible_: function() {
62 if (this.visible)
63 chrome.send('getKioskApps');
64 },
65
66 /**
67 * Shows error for given app name/id and schedules it to cleared. 47 * Shows error for given app name/id and schedules it to cleared.
68 * @param {!string} appName App name/id to show in error banner. 48 * @param {!string} appName App name/id to show in error banner.
69 */ 49 */
70 showError: function(appName) { 50 showError: function(appName) {
71 var errorBanner = $('kiosk-apps-error-banner'); 51 var errorBanner = $('kiosk-apps-error-banner');
72 var appNameElement = errorBanner.querySelector('.kiosk-app-name'); 52 var appNameElement = errorBanner.querySelector('.kiosk-app-name');
73 appNameElement.textContent = appName; 53 appNameElement.textContent = appName;
74 errorBanner.classList.add('visible'); 54 errorBanner.classList.add('visible');
75 55
76 if (this.clearErrorTimer_) 56 if (this.clearErrorTimer_)
77 window.clearTimeout(this.clearErrorTimer_); 57 window.clearTimeout(this.clearErrorTimer_);
78 58
79 // Sets a timer to clear out error banner after 5 seconds. 59 // Sets a timer to clear out error banner after 5 seconds.
80 this.clearErrorTimer_ = window.setTimeout(function() { 60 this.clearErrorTimer_ = window.setTimeout(function() {
81 errorBanner.classList.remove('visible'); 61 errorBanner.classList.remove('visible');
82 this.clearErrorTimer_ = null; 62 this.clearErrorTimer_ = null;
83 }.bind(this), 5000); 63 }.bind(this), 5000);
84 }, 64 },
85 65
86 /** 66 /**
87 * Handles keypressed event in the app id input element. 67 * Handles keypressed event in the app id input element.
88 * @private 68 * @private
89 */ 69 */
90 handleAppIdInputKeyPressed_: function(e) { 70 handleAppIdInputKeyPressed_: function(e) {
91 if (e.keyIdentifier == 'Enter' && e.target.value) { 71 if (e.keyIdentifier == 'Enter' && e.target.value) {
92 chrome.send('addKioskApp', [e.target.value]); 72 chrome.send('addKioskApp', [e.target.value]);
93 e.target.value = ''; 73 e.target.value = '';
94 } 74 }
75 },
76
77 /**
78 * Handles the overlay being dismissed.
79 * @private
80 */
81 handleDismiss_: function() {
82 ExtensionSettings.showOverlay(null);
95 } 83 }
96 }; 84 };
97 85
98 /** 86 /**
99 * Sets apps to be displayed in kiosk-app-list. 87 * Sets apps to be displayed in kiosk-app-list.
100 * @param {!Array.<!Object>} apps An array of app info objects. 88 * @param {!Object.<{apps: !Array.<Object>, disableBailout: boolean}>}
89 * settings An object containing an array of app info objects and
90 * disable bailout shortcut flag.
101 */ 91 */
102 KioskAppsOverlay.setApps = function(apps) { 92 KioskAppsOverlay.setSettings = function(settings) {
103 $('kiosk-app-list').setApps(apps); 93 $('kiosk-app-list').setApps(settings.apps);
94 $('kiosk-disable-bailout-shortcut').checked = settings.disableBailout;
104 }; 95 };
105 96
106 /** 97 /**
107 * Update an app in kiosk-app-list. 98 * Update an app in kiosk-app-list.
108 * @param {!Object} app App info to be updated. 99 * @param {!Object} app App info to be updated.
109 */ 100 */
110 KioskAppsOverlay.updateApp = function(app) { 101 KioskAppsOverlay.updateApp = function(app) {
111 $('kiosk-app-list').updateApp(app); 102 $('kiosk-app-list').updateApp(app);
112 }; 103 };
113 104
114 /** 105 /**
115 * Shows error for given app name/id. 106 * Shows error for given app name/id.
116 * @param {!string} appName App name/id to show in error banner. 107 * @param {!string} appName App name/id to show in error banner.
117 */ 108 */
118 KioskAppsOverlay.showError = function(appName) { 109 KioskAppsOverlay.showError = function(appName) {
119 KioskAppsOverlay.getInstance().showError(appName); 110 KioskAppsOverlay.getInstance().showError(appName);
120 }; 111 };
121 112
122 // Export 113 // Export
123 return { 114 return {
124 KioskAppsOverlay: KioskAppsOverlay 115 KioskAppsOverlay: KioskAppsOverlay
125 }; 116 };
126 }); 117 });
127 118
128 <include src="kiosk_app_list.js"></include> 119 <include src="kiosk_app_list.js"></include>
129 <include src="kiosk_app_disable_bailout_confirm.js"></include> 120 <include src="kiosk_app_disable_bailout_confirm.js"></include>
OLDNEW
« no previous file with comments | « chrome/browser/resources/extensions/chromeos/kiosk_apps.html ('k') | chrome/browser/resources/extensions/extensions.html » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698