Add ENABLE_MEDIA_ROUTER define to builds other than Android and iOS.
[chromium-blink-merge.git] / chrome / browser / resources / options / easy_unlock_turn_off_overlay.js
blobeb065df016ad3252f8fa4712b9c3f8083ee6a9ff
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;
9 // UI state of the turn off overlay.
10 // @enum {string}
11 var UIState = {
12 UNKNOWN: 'unknown',
13 OFFLINE: 'offline',
14 IDLE: 'idle',
15 PENDING: 'pending',
16 SERVER_ERROR: 'server-error',
19 /**
20 * EasyUnlockTurnOffOverlay class
21 * Encapsulated handling of the Factory Reset confirmation overlay page.
22 * @class
24 function EasyUnlockTurnOffOverlay() {
25 Page.call(this, 'easyUnlockTurnOffOverlay',
26 loadTimeData.getString('easyUnlockTurnOffTitle'),
27 'easy-unlock-turn-off-overlay');
30 cr.addSingletonGetter(EasyUnlockTurnOffOverlay);
32 EasyUnlockTurnOffOverlay.prototype = {
33 // Inherit EasyUnlockTurnOffOverlay from Page.
34 __proto__: Page.prototype,
36 /** Current UI state */
37 uiState_: UIState.UNKNOWN,
38 get uiState() {
39 return this.uiState_;
41 set uiState(newUiState) {
42 if (newUiState == this.uiState_)
43 return;
45 this.uiState_ = newUiState;
46 switch (this.uiState_) {
47 case UIState.OFFLINE:
48 this.setUpOfflineUI_();
49 break;
50 case UIState.IDLE:
51 this.setUpTurnOffUI_(false);
52 break;
53 case UIState.PENDING:
54 this.setUpTurnOffUI_(true);
55 break;
56 case UIState.SERVER_ERROR:
57 this.setUpServerErrorUI_();
58 break;
59 default:
60 console.error('Unknow Easy unlock turn off UI state: ' +
61 this.uiState_);
62 this.setUpTurnOffUI_(false);
63 break;
67 /** @override */
68 initializePage: function() {
69 Page.prototype.initializePage.call(this);
71 $('easy-unlock-turn-off-dismiss').onclick = function(event) {
72 EasyUnlockTurnOffOverlay.dismiss();
74 $('easy-unlock-turn-off-confirm').onclick = function(event) {
75 this.uiState = UIState.PENDING;
76 chrome.send('easyUnlockRequestTurnOff');
77 }.bind(this);
80 /** @override */
81 didShowPage: function() {
82 if (navigator.onLine) {
83 this.uiState = UIState.IDLE;
84 chrome.send('easyUnlockGetTurnOffFlowStatus');
85 } else {
86 this.uiState = UIState.OFFLINE;
90 /** @override */
91 didClosePage: function() {
92 chrome.send('easyUnlockTurnOffOverlayDismissed');
95 /**
96 * Returns the button strip element.
97 * @return {HTMLDivElement} The container div of action buttons.
99 get buttonStrip() {
100 return this.pageDiv.querySelector('.button-strip');
104 * Set visibility of action buttons in button strip.
105 * @private
107 setActionButtonsVisible_: function(visible) {
108 var buttons = this.buttonStrip.querySelectorAll('button');
109 for (var i = 0; i < buttons.length; ++i) {
110 buttons[i].hidden = !visible;
115 * Set visibility of spinner.
116 * @private
118 setSpinnerVisible_: function(visible) {
119 $('easy-unlock-turn-off-spinner').hidden = !visible;
123 * Set up UI for showing offline message.
124 * @private
126 setUpOfflineUI_: function() {
127 $('easy-unlock-turn-off-title').textContent =
128 loadTimeData.getString('easyUnlockTurnOffOfflineTitle');
129 $('easy-unlock-turn-off-messagee').textContent =
130 loadTimeData.getString('easyUnlockTurnOffOfflineMessage');
132 this.setActionButtonsVisible_(false);
133 this.setSpinnerVisible_(false);
137 * Set up UI for turning off Easy Unlock.
138 * @param {boolean} pending Whether there is a pending turn-off call.
139 * @private
141 setUpTurnOffUI_: function(pending) {
142 $('easy-unlock-turn-off-title').textContent =
143 loadTimeData.getString('easyUnlockTurnOffTitle');
144 $('easy-unlock-turn-off-messagee').textContent =
145 loadTimeData.getString('easyUnlockTurnOffDescription');
146 $('easy-unlock-turn-off-confirm').textContent =
147 loadTimeData.getString('easyUnlockTurnOffButton');
149 this.setActionButtonsVisible_(true);
150 this.setSpinnerVisible_(pending);
151 $('easy-unlock-turn-off-confirm').disabled = pending;
152 $('easy-unlock-turn-off-dismiss').hidden = false;
156 * Set up UI for showing server error.
157 * @private
159 setUpServerErrorUI_: function() {
160 $('easy-unlock-turn-off-title').textContent =
161 loadTimeData.getString('easyUnlockTurnOffErrorTitle');
162 $('easy-unlock-turn-off-messagee').textContent =
163 loadTimeData.getString('easyUnlockTurnOffErrorMessage');
164 $('easy-unlock-turn-off-confirm').textContent =
165 loadTimeData.getString('easyUnlockTurnOffRetryButton');
167 this.setActionButtonsVisible_(true);
168 this.setSpinnerVisible_(false);
169 $('easy-unlock-turn-off-confirm').disabled = false;
170 $('easy-unlock-turn-off-dismiss').hidden = true;
175 * Closes the Easy unlock turn off overlay.
177 EasyUnlockTurnOffOverlay.dismiss = function() {
178 PageManager.closeOverlay();
182 * Update UI to reflect the turn off operation status.
183 * @param {string} newState The UIState string representing the new state.
185 EasyUnlockTurnOffOverlay.updateUIState = function(newState) {
186 EasyUnlockTurnOffOverlay.getInstance().uiState = newState;
189 // Export
190 return {
191 EasyUnlockTurnOffOverlay: EasyUnlockTurnOffOverlay