| OLD | NEW |
| 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 cr.define('options', function() { | 5 cr.define('options', function() { |
| 6 var Page = cr.ui.pageManager.Page; | 6 var Page = cr.ui.pageManager.Page; |
| 7 var PageManager = cr.ui.pageManager.PageManager; | 7 var PageManager = cr.ui.pageManager.PageManager; |
| 8 | 8 |
| 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', |
| 17 }; |
| 18 |
| 9 /** | 19 /** |
| 10 * EasyUnlockTurnOffOverlay class | 20 * EasyUnlockTurnOffOverlay class |
| 11 * Encapsulated handling of the Factory Reset confirmation overlay page. | 21 * Encapsulated handling of the Factory Reset confirmation overlay page. |
| 12 * @class | 22 * @class |
| 13 */ | 23 */ |
| 14 function EasyUnlockTurnOffOverlay() { | 24 function EasyUnlockTurnOffOverlay() { |
| 15 Page.call(this, 'easyUnlockTurnOffOverlay', | 25 Page.call(this, 'easyUnlockTurnOffOverlay', |
| 16 loadTimeData.getString('easyUnlockTurnOffTitle'), | 26 loadTimeData.getString('easyUnlockTurnOffTitle'), |
| 17 'easy-unlock-turn-off-overlay'); | 27 'easy-unlock-turn-off-overlay'); |
| 18 } | 28 } |
| 19 | 29 |
| 20 cr.addSingletonGetter(EasyUnlockTurnOffOverlay); | 30 cr.addSingletonGetter(EasyUnlockTurnOffOverlay); |
| 21 | 31 |
| 22 EasyUnlockTurnOffOverlay.prototype = { | 32 EasyUnlockTurnOffOverlay.prototype = { |
| 23 // Inherit EasyUnlockTurnOffOverlay from Page. | 33 // Inherit EasyUnlockTurnOffOverlay from Page. |
| 24 __proto__: Page.prototype, | 34 __proto__: Page.prototype, |
| 25 | 35 |
| 36 /** Current UI state */ |
| 37 uiState_: UIState.UNKNKOWN, |
| 38 get uiState() { |
| 39 return this.uiState_; |
| 40 }, |
| 41 set uiState(newUiState) { |
| 42 var oldState = this.uiState_; |
| 43 this.uiState_ = newUiState; |
| 44 switch (this.uiState_) { |
| 45 case UIState.OFFLINE: |
| 46 this.setUpOfflineUI_(); |
| 47 break; |
| 48 case UIState.IDLE: |
| 49 this.setUpTurnOffUI_(false); |
| 50 break; |
| 51 case UIState.PENDING: |
| 52 this.setUpTurnOffUI_(true); |
| 53 break; |
| 54 case UIState.SERVER_ERROR: |
| 55 this.setUpServerErrorUI_(); |
| 56 break; |
| 57 default: |
| 58 console.error('Unknow Easy unlock turn off UI state: ' + |
| 59 this.uiState_); |
| 60 } |
| 61 }, |
| 62 |
| 26 /** @override */ | 63 /** @override */ |
| 27 initializePage: function() { | 64 initializePage: function() { |
| 28 Page.prototype.initializePage.call(this); | 65 Page.prototype.initializePage.call(this); |
| 29 | 66 |
| 30 $('easy-unlock-turn-off-dismiss').onclick = function(event) { | 67 $('easy-unlock-turn-off-dismiss').onclick = function(event) { |
| 31 EasyUnlockTurnOffOverlay.dismiss(); | 68 EasyUnlockTurnOffOverlay.dismiss(); |
| 32 }; | 69 }; |
| 33 $('easy-unlock-turn-off-confirm').onclick = function(event) { | 70 $('easy-unlock-turn-off-confirm').onclick = function(event) { |
| 34 $('easy-unlock-turn-off-confirm').disabled = true; | 71 this.uiState = UIState.PENDING; |
| 35 this.setSpinnerVisible_(true); | 72 chrome.send('easyUnlockRequestTurnOff'); |
| 36 | |
| 37 // TODO(xiyuan): Wire this up. | |
| 38 // chrome.send('turnOffEasyUnlock'); | |
| 39 }.bind(this); | 73 }.bind(this); |
| 40 }, | 74 }, |
| 41 | 75 |
| 42 /** @override */ | 76 /** @override */ |
| 43 didShowPage: function() { | 77 didShowPage: function() { |
| 44 if (navigator.onLine) { | 78 if (navigator.onLine) { |
| 45 this.setUpTurnOffUI_(); | 79 this.uiState = UIState.IDLE; |
| 80 chrome.send('easyUnlockGetTurnOffFlowStatus'); |
| 46 } else { | 81 } else { |
| 47 this.setUpOfflineUI_(); | 82 this.uiState = UIState.OFFLINE; |
| 48 } | 83 } |
| 49 }, | 84 }, |
| 50 | 85 |
| 86 /** @override */ |
| 87 didClosePage: function() { |
| 88 chrome.send('easyUnlockTurnOffOverlayDismissed'); |
| 89 }, |
| 90 |
| 51 /** | 91 /** |
| 52 * Returns the button strip element. | 92 * Returns the button strip element. |
| 53 * @return {HTMLDivElement} The container div of action buttons. | 93 * @return {HTMLDivElement} The container div of action buttons. |
| 54 */ | 94 */ |
| 55 get buttonStrip() { | 95 get buttonStrip() { |
| 56 return this.pageDiv.querySelector('.button-strip'); | 96 return this.pageDiv.querySelector('.button-strip'); |
| 57 }, | 97 }, |
| 58 | 98 |
| 59 /** | 99 /** |
| 60 * Set visibility of action buttons in button strip. | 100 * Set visibility of action buttons in button strip. |
| (...skipping 23 matching lines...) Expand all Loading... |
| 84 loadTimeData.getString('easyUnlockTurnOffOfflineTitle'); | 124 loadTimeData.getString('easyUnlockTurnOffOfflineTitle'); |
| 85 $('easy-unlock-turn-off-messagee').textContent = | 125 $('easy-unlock-turn-off-messagee').textContent = |
| 86 loadTimeData.getString('easyUnlockTurnOffOfflineMessage'); | 126 loadTimeData.getString('easyUnlockTurnOffOfflineMessage'); |
| 87 | 127 |
| 88 this.setActionButtonsVisible_(false); | 128 this.setActionButtonsVisible_(false); |
| 89 this.setSpinnerVisible_(false); | 129 this.setSpinnerVisible_(false); |
| 90 }, | 130 }, |
| 91 | 131 |
| 92 /** | 132 /** |
| 93 * Set up UI for turning off Easy Unlock. | 133 * Set up UI for turning off Easy Unlock. |
| 134 * @param {boolean} pending Whether there is a pending turn-off call. |
| 94 * @private | 135 * @private |
| 95 */ | 136 */ |
| 96 setUpTurnOffUI_: function() { | 137 setUpTurnOffUI_: function(pending) { |
| 97 $('easy-unlock-turn-off-title').textContent = | 138 $('easy-unlock-turn-off-title').textContent = |
| 98 loadTimeData.getString('easyUnlockTurnOffTitle'); | 139 loadTimeData.getString('easyUnlockTurnOffTitle'); |
| 99 $('easy-unlock-turn-off-messagee').textContent = | 140 $('easy-unlock-turn-off-messagee').textContent = |
| 100 loadTimeData.getString('easyUnlockTurnOffDescription'); | 141 loadTimeData.getString('easyUnlockTurnOffDescription'); |
| 101 $('easy-unlock-turn-off-confirm').textContent = | 142 $('easy-unlock-turn-off-confirm').textContent = |
| 102 loadTimeData.getString('easyUnlockTurnOffButton'); | 143 loadTimeData.getString('easyUnlockTurnOffButton'); |
| 103 | 144 |
| 104 this.setActionButtonsVisible_(true); | 145 this.setActionButtonsVisible_(true); |
| 105 this.setSpinnerVisible_(false); | 146 this.setSpinnerVisible_(pending); |
| 106 $('easy-unlock-turn-off-confirm').disabled = false; | 147 $('easy-unlock-turn-off-confirm').disabled = pending; |
| 107 $('easy-unlock-turn-off-dismiss').hidden = false; | 148 $('easy-unlock-turn-off-dismiss').hidden = false; |
| 108 }, | 149 }, |
| 109 | 150 |
| 110 /** | 151 /** |
| 111 * Set up UI for showing server error. | 152 * Set up UI for showing server error. |
| 112 * @private | 153 * @private |
| 113 */ | 154 */ |
| 114 setUpServerErrorUI_: function() { | 155 setUpServerErrorUI_: function() { |
| 115 $('easy-unlock-turn-off-title').textContent = | 156 $('easy-unlock-turn-off-title').textContent = |
| 116 loadTimeData.getString('easyUnlockTurnOffErrorTitle'); | 157 loadTimeData.getString('easyUnlockTurnOffErrorTitle'); |
| 117 $('easy-unlock-turn-off-messagee').textContent = | 158 $('easy-unlock-turn-off-messagee').textContent = |
| 118 loadTimeData.getString('easyUnlockTurnOffErrorMessage'); | 159 loadTimeData.getString('easyUnlockTurnOffErrorMessage'); |
| 119 $('easy-unlock-turn-off-confirm').textContent = | 160 $('easy-unlock-turn-off-confirm').textContent = |
| 120 loadTimeData.getString('easyUnlockTurnOffRetryButton'); | 161 loadTimeData.getString('easyUnlockTurnOffRetryButton'); |
| 121 | 162 |
| 122 this.setActionButtonsVisible_(true); | 163 this.setActionButtonsVisible_(true); |
| 123 this.setSpinnerVisible_(false); | 164 this.setSpinnerVisible_(false); |
| 124 $('easy-unlock-turn-off-confirm').disabled = false; | 165 $('easy-unlock-turn-off-confirm').disabled = false; |
| 125 $('easy-unlock-turn-off-dismiss').hidden = true; | 166 $('easy-unlock-turn-off-dismiss').hidden = true; |
| 126 }, | 167 }, |
| 127 }; | 168 }; |
| 128 | 169 |
| 170 /** |
| 171 * Closes the Easy unlock turn off overlay. |
| 172 */ |
| 129 EasyUnlockTurnOffOverlay.dismiss = function() { | 173 EasyUnlockTurnOffOverlay.dismiss = function() { |
| 130 PageManager.closeOverlay(); | 174 PageManager.closeOverlay(); |
| 131 }; | 175 }; |
| 132 | 176 |
| 177 /** |
| 178 * Update UI to reflect the turn off operation status. |
| 179 * @param {string} newState The UIState string representing the new state. |
| 180 */ |
| 181 EasyUnlockTurnOffOverlay.updateUIState = function(newState) { |
| 182 EasyUnlockTurnOffOverlay.getInstance().uiState = newState; |
| 183 }; |
| 184 |
| 133 // Export | 185 // Export |
| 134 return { | 186 return { |
| 135 EasyUnlockTurnOffOverlay: EasyUnlockTurnOffOverlay | 187 EasyUnlockTurnOffOverlay: EasyUnlockTurnOffOverlay |
| 136 }; | 188 }; |
| 137 }); | 189 }); |
| OLD | NEW |