Elim cr-checkbox
[chromium-blink-merge.git] / chrome / browser / resources / settings / internet_page / internet_known_networks_page.js
blobfd47f15f45d226afa65bc9d3de56b3860251a3a1
1 // Copyright 2015 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 /**
6  * @fileoverview
7  * 'cr-settings-internet-known-networks' is the settings subpage listing the
8  * known networks for a type (currently always WiFi).
9  *
10  * @group Chrome Settings Elements
11  * @element cr-settings-internet-known-networks
12  */
13 Polymer({
14   is: 'cr-settings-internet-known-networks-page',
16   properties: {
17     /**
18      * The type of networks to list.
19      * @type {chrome.networkingPrivate.NetworkType}
20      */
21     networkType: {
22       type: String,
23       value: CrOnc.Type.WI_FI,
24       observer: 'networkTypeChanged_',
25     },
27     /**
28      * The maximum height in pixels for the list of networks.
29      */
30     maxHeight: {
31       type: Number,
32       value: 500
33     },
35     /**
36      * List of all network state data for the network type.
37      * @type {!Array<!CrOnc.NetworkStateProperties>}
38      */
39     networkStateList: {
40       type: Array,
41       value: function() { return []; }
42     }
43   },
45   /**
46    * Listener function for chrome.networkingPrivate.onNetworksChanged event.
47    * @type {function(!Array<string>)}
48    * @private
49    */
50   networksChangedListener_: function() {},
52   /** @override */
53   attached: function() {
54     this.networksChangedListener_ = this.onNetworksChangedEvent_.bind(this);
55     chrome.networkingPrivate.onNetworksChanged.addListener(
56         this.networksChangedListener_);
57   },
59   /** @override */
60   detached: function() {
61     chrome.networkingPrivate.onNetworksChanged.removeListener(
62         this.networksChangedListener_);
63   },
65   /**
66    * Polymer type changed method.
67    */
68   networkTypeChanged_: function() {
69     if (!this.networkType)
70       return;
71     this.refreshNetworks_();
72   },
74   /**
75    * networkingPrivate.onNetworksChanged event callback.
76    * @param {!Array<string>} networkIds The list of changed network GUIDs.
77    * @private
78    */
79   onNetworksChangedEvent_: function(networkIds) {
80     this.refreshNetworks_();
81   },
83   /**
84    * Requests the list of network states from Chrome. Updates networkStates
85    * once the results are returned from Chrome.
86    * @private
87    */
88   refreshNetworks_: function() {
89     var filter = {
90       networkType: this.networkType,
91       visible: false,
92       configured: true
93     };
94     chrome.networkingPrivate.getNetworks(
95         filter,
96         function(states) { this.networkStateList = states; }.bind(this));
97   },
99   /**
100    * Event triggered when a cr-network-list item is selected.
101    * @param {!{detail: !CrOnc.NetworkStateProperties}} event
102    * @private
103    */
104   onListItemSelected_: function(event) {
105     this.fire('show-detail', event.detail);
106   },
108   /**
109    * Event triggered when a cr-network-list item 'remove' button is pressed.
110    * @param {!{detail: !CrOnc.NetworkStateProperties}} event
111    * @private
112    */
113   onRemove_: function(event) {
114     var state = event.detail;
115     if (!state.GUID)
116       return;
117     chrome.networkingPrivate.forgetNetwork(state.GUID);
118   },
120   /**
121    * Event triggered when a cr-network-list item 'preferred' button is toggled.
122    * @param {!{detail: !CrOnc.NetworkStateProperties}} event
123    * @private
124    */
125   onTogglePreferred_: function(event) {
126     var state = event.detail;
127     if (!state.GUID)
128       return;
129     var preferred = state.Priority > 0;
130     var onc = {Priority: preferred ? 0 : 1};
131     chrome.networkingPrivate.setProperties(state.GUID, onc);
132   },