OLD | NEW |
1 // Copyright 2015 The Chromium Authors. All rights reserved. | 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 | 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 /** | 5 /** |
6 * @fileoverview Polymer element for displaying the IP Config properties for | 6 * @fileoverview Polymer element for displaying the IP Config properties for |
7 * a network state. TODO(stevenjb): Allow editing of static IP configurations | 7 * a network state. TODO(stevenjb): Allow editing of static IP configurations |
8 * when 'editable' is true. | 8 * when 'editable' is true. |
9 */ | 9 */ |
10 Polymer({ | 10 Polymer({ |
(...skipping 24 matching lines...) Expand all Loading... |
35 */ | 35 */ |
36 automatic_: { | 36 automatic_: { |
37 type: Boolean, | 37 type: Boolean, |
38 value: true, | 38 value: true, |
39 observer: 'automaticChanged_', | 39 observer: 'automaticChanged_', |
40 }, | 40 }, |
41 | 41 |
42 /** | 42 /** |
43 * The currently visible IP Config property dictionary. The 'RoutingPrefix' | 43 * The currently visible IP Config property dictionary. The 'RoutingPrefix' |
44 * property is a human-readable mask instead of a prefix length. | 44 * property is a human-readable mask instead of a prefix length. |
45 * @private {!{ | 45 * @private {?{ |
46 * ipv4: !CrOnc.IPConfigUIProperties, | 46 * ipv4: !CrOnc.IPConfigUIProperties, |
47 * ipv6: !CrOnc.IPConfigUIProperties | 47 * ipv6: !CrOnc.IPConfigUIProperties |
48 * }|undefined} | 48 * }} |
49 */ | 49 */ |
50 ipConfig_: Object, | 50 ipConfig_: { |
| 51 type: Object, |
| 52 value: null, |
| 53 }, |
51 | 54 |
52 /** | 55 /** |
53 * Array of properties to pass to the property list. | 56 * Array of properties to pass to the property list. |
54 * @private {!Array<string>} | 57 * @private {!Array<string>} |
55 */ | 58 */ |
56 ipConfigFields_: { | 59 ipConfigFields_: { |
57 type: Array, | 60 type: Array, |
58 value: function() { | 61 value: function() { |
59 return [ | 62 return [ |
60 'ipv4.IPAddress', | 63 'ipv4.IPAddress', |
(...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
164 */ | 167 */ |
165 showIPEditFields_: function() { | 168 showIPEditFields_: function() { |
166 return this.editable && !this.automatic_; | 169 return this.editable && !this.automatic_; |
167 }, | 170 }, |
168 | 171 |
169 /** | 172 /** |
170 * @return {Object} An object with the edit type for each editable field. | 173 * @return {Object} An object with the edit type for each editable field. |
171 * @private | 174 * @private |
172 */ | 175 */ |
173 getIPEditFields_: function() { | 176 getIPEditFields_: function() { |
174 if (!this.editable || this.automatic__) | 177 if (!this.editable || this.automatic_) |
175 return {}; | 178 return {}; |
176 return { | 179 return { |
177 'ipv4.IPAddress': 'String', | 180 'ipv4.IPAddress': 'String', |
178 'ipv4.RoutingPrefix': 'String', | 181 'ipv4.RoutingPrefix': 'String', |
179 'ipv4.Gateway': 'String' | 182 'ipv4.Gateway': 'String' |
180 }; | 183 }; |
181 }, | 184 }, |
182 | 185 |
183 /** | 186 /** |
184 * Event triggered when the network property list changes. | 187 * Event triggered when the network property list changes. |
185 * @param {!{detail: {field: string, value: string}}} event The | 188 * @param {!{detail: {field: string, value: string}}} event The |
186 * network-property-list change event. | 189 * network-property-list change event. |
187 * @private | 190 * @private |
188 */ | 191 */ |
189 onIPChange_: function(event) { | 192 onIPChange_: function(event) { |
190 if (!this.ipConfig_) | 193 if (!this.ipConfig_) |
191 return; | 194 return; |
192 var field = event.detail.field; | 195 var field = event.detail.field; |
193 var value = event.detail.value; | 196 var value = event.detail.value; |
194 // Note: |field| includes the 'ipv4.' prefix. | 197 // Note: |field| includes the 'ipv4.' prefix. |
195 this.set('ipConfig_.' + field, value); | 198 this.set('ipConfig_.' + field, value); |
196 // This will also set IPAddressConfigType to STATIC. | 199 // This will also set IPAddressConfigType to STATIC. |
197 this.fire('ip-change', { | 200 this.fire('ip-change', { |
198 field: 'StaticIPConfig', | 201 field: 'StaticIPConfig', |
199 value: this.getIPConfigProperties_(this.ipConfig_.ipv4) | 202 value: this.getIPConfigProperties_(this.ipConfig_.ipv4) |
200 }); | 203 }); |
201 }, | 204 }, |
202 }); | 205 }); |
OLD | NEW |