Chromium Code Reviews| Index: chrome/browser/resources/options/easy_unlock_turn_off_overlay.js |
| diff --git a/chrome/browser/resources/options/easy_unlock_turn_off_overlay.js b/chrome/browser/resources/options/easy_unlock_turn_off_overlay.js |
| index dd19b26b67c61638c5e4e2987ebf3d2631295b26..6db3564624ab0fb5cab60c6035261eb7c8f23c9d 100644 |
| --- a/chrome/browser/resources/options/easy_unlock_turn_off_overlay.js |
| +++ b/chrome/browser/resources/options/easy_unlock_turn_off_overlay.js |
| @@ -6,6 +6,16 @@ cr.define('options', function() { |
| var Page = cr.ui.pageManager.Page; |
| var PageManager = cr.ui.pageManager.PageManager; |
| + // UI state of the turn off overlay. |
| + // @enum {string} |
| + var UIState = { |
| + UNKNOWN: 'unknown', |
| + OFFLINE: 'offline', |
| + IDLE: 'idle', |
| + PENDING: 'pending', |
| + SERVER_ERROR: 'server-error', |
| + }; |
| + |
| /** |
| * EasyUnlockTurnOffOverlay class |
| * Encapsulated handling of the Factory Reset confirmation overlay page. |
| @@ -23,6 +33,33 @@ cr.define('options', function() { |
| // Inherit EasyUnlockTurnOffOverlay from Page. |
| __proto__: Page.prototype, |
| + /** Current UI state */ |
| + uiState_: UIState.UNKNKOWN, |
| + get uiState() { |
| + return this.uiState_; |
| + }, |
| + set uiState(newUiState) { |
| + var oldState = this.uiState_; |
|
tbarzic
2014/08/14 17:43:23
you don't use oldState
also, consider adding
if (
xiyuan
2014/08/14 22:09:19
Done.
|
| + this.uiState_ = newUiState; |
| + switch (this.uiState_) { |
| + case UIState.OFFLINE: |
| + this.setUpOfflineUI_(); |
| + break; |
| + case UIState.IDLE: |
| + this.setUpTurnOffUI_(false); |
| + break; |
| + case UIState.PENDING: |
| + this.setUpTurnOffUI_(true); |
| + break; |
| + case UIState.SERVER_ERROR: |
| + this.setUpServerErrorUI_(); |
| + break; |
| + default: |
| + console.error('Unknow Easy unlock turn off UI state: ' + |
| + this.uiState_); |
| + } |
| + }, |
| + |
| /** @override */ |
| initializePage: function() { |
| Page.prototype.initializePage.call(this); |
| @@ -31,23 +68,26 @@ cr.define('options', function() { |
| EasyUnlockTurnOffOverlay.dismiss(); |
| }; |
| $('easy-unlock-turn-off-confirm').onclick = function(event) { |
| - $('easy-unlock-turn-off-confirm').disabled = true; |
| - this.setSpinnerVisible_(true); |
| - |
| - // TODO(xiyuan): Wire this up. |
| - // chrome.send('turnOffEasyUnlock'); |
| + this.uiState = UIState.PENDING; |
| + chrome.send('easyUnlockRequestTurnOff'); |
| }.bind(this); |
| }, |
| /** @override */ |
| didShowPage: function() { |
| if (navigator.onLine) { |
| - this.setUpTurnOffUI_(); |
| + this.uiState = UIState.IDLE; |
| + chrome.send('easyUnlockGetTurnOffFlowStatus'); |
| } else { |
| - this.setUpOfflineUI_(); |
| + this.uiState = UIState.OFFLINE; |
| } |
| }, |
| + /** @override */ |
| + didClosePage: function() { |
| + chrome.send('easyUnlockTurnOffOverlayDismissed'); |
| + }, |
| + |
| /** |
| * Returns the button strip element. |
| * @return {HTMLDivElement} The container div of action buttons. |
| @@ -91,9 +131,10 @@ cr.define('options', function() { |
| /** |
| * Set up UI for turning off Easy Unlock. |
| + * @param {boolean} pending Whether there is a pending turn-off call. |
| * @private |
| */ |
| - setUpTurnOffUI_: function() { |
| + setUpTurnOffUI_: function(pending) { |
| $('easy-unlock-turn-off-title').textContent = |
| loadTimeData.getString('easyUnlockTurnOffTitle'); |
| $('easy-unlock-turn-off-messagee').textContent = |
| @@ -102,8 +143,8 @@ cr.define('options', function() { |
| loadTimeData.getString('easyUnlockTurnOffButton'); |
| this.setActionButtonsVisible_(true); |
| - this.setSpinnerVisible_(false); |
| - $('easy-unlock-turn-off-confirm').disabled = false; |
| + this.setSpinnerVisible_(pending); |
| + $('easy-unlock-turn-off-confirm').disabled = pending; |
| $('easy-unlock-turn-off-dismiss').hidden = false; |
| }, |
| @@ -126,10 +167,21 @@ cr.define('options', function() { |
| }, |
| }; |
| + /** |
| + * Closes the Easy unlock turn off overlay. |
| + */ |
| EasyUnlockTurnOffOverlay.dismiss = function() { |
| PageManager.closeOverlay(); |
| }; |
| + /** |
| + * Update UI to reflect the turn off operation status. |
| + * @param {string} newState The UIState string representing the new state. |
| + */ |
| + EasyUnlockTurnOffOverlay.updateUIState = function(newState) { |
| + EasyUnlockTurnOffOverlay.getInstance().uiState = newState; |
| + }; |
| + |
| // Export |
| return { |
| EasyUnlockTurnOffOverlay: EasyUnlockTurnOffOverlay |