blob: d0881efa6342c998fc85fd80e8fda356ab935588 [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/**
* @fileoverview OOBE network selection screen implementation.
*/
login.createScreen('NetworkScreen', 'network-selection', function() {
return {
EXTERNAL_API: ['showError', 'setOfflineDemoModeEnabled'],
/** Dropdown element for networks selection. */
dropdown_: null,
/**
* Network selection module.
* @private
*/
networkModule_: null,
/** @override */
decorate: function() {
this.networkModule_ = $('oobe-network-md');
this.networkModule_.screen = this;
this.networkModule_.enabled = true;
},
/** Returns a control which should receive an initial focus. */
get defaultControl() {
return this.networkModule_;
},
/** @override */
onBeforeShow: function(data) {
var isDemoModeSetupKey = 'isDemoModeSetup';
var isDemoModeSetup =
data && isDemoModeSetupKey in data && data[isDemoModeSetupKey];
this.networkModule_.isDemoModeSetup = isDemoModeSetup;
this.networkModule_.show();
},
/**
* Shows the network error message.
* @param {string} message Message to be shown.
*/
showError: function(message) {
var error = document.createElement('div');
var messageDiv = document.createElement('div');
messageDiv.className = 'error-message-bubble';
messageDiv.textContent = message;
error.appendChild(messageDiv);
error.setAttribute('role', 'alert');
},
/**
* Enables or disables the offline Demo Mode option.
* @param {bool} enabled
*/
setOfflineDemoModeEnabled: function(enabled) {
this.networkModule_.offlineDemoModeEnabled = enabled;
},
/** Called after resources are updated. */
updateLocalizedContent: function() {
this.networkModule_.updateLocalizedContent();
},
};
});