Chromium Code Reviews| Index: ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js |
| diff --git a/ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js b/ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js |
| new file mode 100644 |
| index 0000000000000000000000000000000000000000..f2a9077e693bbd1cf20eedfaf231d01de827c69a |
| --- /dev/null |
| +++ b/ui/webui/resources/cr_elements/v1_0/network/cr_network_select.js |
| @@ -0,0 +1,103 @@ |
| +// Copyright 2015 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 Polymer element wrapping cr-network-list including th |
|
michaelpg
2015/08/10 07:35:03
+e
stevenjb
2015/08/10 19:19:48
Done.
|
| + * networkingPrivate calls to populate it. |
| + */ |
| + |
| +/** |
| + * @element cr-network-select |
| + */ |
| +Polymer({ |
| + is: 'cr-network-select', |
| + |
| + properties: { |
|
michaelpg
2015/08/10 07:35:03
expandable, showActive, maxHeight?
stevenjb
2015/08/10 19:19:48
Done.
|
| + /** |
| + * Network state for the active network. |
| + * @type {?CrOnc.NetworkStateProperties} |
| + */ |
| + activeNetworkState: { |
| + type: Object, |
| + value: null |
| + }, |
| + |
| + /** |
| + * List of all network state data for all visible networks. |
| + * @type {!Array<!CrOnc.NetworkStateProperties>} |
| + */ |
| + networkStateList: { |
| + type: Array, |
| + value: function() { return []; } |
| + } |
| + }, |
| + |
| + /** |
| + * Listener function for chrome.networkingPrivate.onNetworkListChanged event. |
| + * @type {?function(!Array<string>)} |
| + * @private |
| + */ |
| + networkListChangedListener_: null, |
| + |
| + /** |
| + * Listener function for chrome.networkingPrivate.onDeviceStateListChanged |
| + * event. |
| + * @type {?function(!Array<string>)} |
| + * @private |
| + */ |
| + deviceStateListChangedListener_: null, |
| + |
| + /** @override */ |
| + attached: function() { |
| + this.networkListChangedListener_ = this.refreshNetworks_.bind(this); |
| + chrome.networkingPrivate.onNetworkListChanged.addListener( |
| + this.networkListChangedListener_); |
| + |
| + this.deviceStateListChangedListener_ = this.refreshNetworks_.bind(this); |
| + chrome.networkingPrivate.onDeviceStateListChanged.addListener( |
| + this.deviceStateListChangedListener_); |
| + |
| + this.refreshNetworks_(); |
| + }, |
| + |
| + /** @override */ |
| + detached: function() { |
| + chrome.networkingPrivate.onNetworksChanged.removeListener( |
| + this.networksChangedListener_); |
| + chrome.networkingPrivate.onDeviceStateListChanged.removeListener( |
| + this.deviceStateListChangedListener_); |
| + }, |
| + |
| + refreshNetworks_: function() { |
| + var filter = { |
| + networkType: 'All', |
| + visible: true, |
| + configured: false |
| + }; |
| + chrome.networkingPrivate.requestNetworkScan(); |
| + chrome.networkingPrivate.getNetworks( |
| + filter, this.getNetworksCallback_.bind(this)); |
| + }, |
| + |
| + getNetworksCallback_: function(states) { |
| + this.activeNetworkState = (states && states.length && states[0]) || null; |
|
michaelpg
2015/08/10 07:35:03
no need to check states.length
also, shouldn't |s
stevenjb
2015/08/10 19:19:48
Yes. Done.
|
| + this.networkStateList = states; |
| + }, |
| + |
| + /** |
| + * Event triggered when a cr-network-list-item is selected. |
| + * @param {!{detail: !CrOnc.NetworkStateProperties}} event |
| + * @private |
| + */ |
| + onNetworkListItemSelected_: function(event) { |
| + var state = event.detail; |
| + if (state.ConnectionState != CrOnc.ConnectionState.NOT_CONNECTED) |
| + return; |
| + chrome.networkingPrivate.startConnect(state.GUID, function() { |
| + var lastError = chrome.runtime.lastError; |
| + if (lastError && lastError != 'connecting') |
| + console.error('networkingPrivate.startConnect error:', lastError); |
|
michaelpg
2015/08/10 07:35:03
indent
stevenjb
2015/08/10 19:19:48
Done.
|
| + }); |
| + }, |
| +}); |