Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(280)

Side by Side Diff: chrome/browser/resources/settings/internet_page/network_ip_config.js

Issue 2179223004: MD Settings: Internet: Clean up network and proxy sections. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@issue_609156_internet_cleanup_3
Patch Set: Add MAX_NAMESERVERS Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
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 (function() {
11 'use strict';
12
13 Polymer({ 10 Polymer({
14 is: 'network-ip-config', 11 is: 'network-ip-config',
15 12
16 properties: { 13 properties: {
17 /** 14 /**
18 * The network properties dictionary containing the IP Config properties to 15 * The network properties dictionary containing the IP Config properties to
19 * display and modify. 16 * display and modify.
20 * @type {!CrOnc.NetworkProperties|undefined} 17 * @type {!CrOnc.NetworkProperties|undefined}
21 */ 18 */
22 networkProperties: { 19 networkProperties: {
23 type: Object, 20 type: Object,
24 observer: 'networkPropertiesChanged_' 21 observer: 'networkPropertiesChanged_',
25 }, 22 },
26 23
27 /** 24 /**
28 * Whether or not the IP Address can be edited. 25 * Whether or not the IP Address can be edited.
29 * TODO(stevenjb): Implement editing. 26 * TODO(stevenjb): Implement editing.
30 */ 27 */
31 editable: { 28 editable: {
32 type: Boolean, 29 type: Boolean,
33 value: false 30 value: false,
34 }, 31 },
35 32
36 /** 33 /**
37 * State of 'Configure IP Addresses Automatically'. 34 * State of 'Configure IP Addresses Automatically'.
38 */ 35 */
39 automatic: { 36 automatic: {
40 type: Boolean, 37 type: Boolean,
41 value: false, 38 value: false,
42 observer: 'automaticChanged_' 39 observer: 'automaticChanged_',
43 }, 40 },
44 41
45 /** 42 /**
46 * The currently visible IP Config property dictionary. The 'RoutingPrefix' 43 * The currently visible IP Config property dictionary. The 'RoutingPrefix'
47 * property is a human-readable mask instead of a prefix length. 44 * property is a human-readable mask instead of a prefix length.
48 * @type {!{ 45 * @type {!{
49 * ipv4: !CrOnc.IPConfigUIProperties, 46 * ipv4: !CrOnc.IPConfigUIProperties,
50 * ipv6: !CrOnc.IPConfigUIProperties 47 * ipv6: !CrOnc.IPConfigUIProperties
51 * }|undefined} 48 * }|undefined}
52 */ 49 */
53 ipConfig: { 50 ipConfig: {type: Object},
54 type: Object
55 },
56 51
57 /** 52 /**
58 * Array of properties to pass to the property list. 53 * Array of properties to pass to the property list.
59 * @type {!Array<string>} 54 * @type {!Array<string>}
60 */ 55 */
61 ipConfigFields_: { 56 ipConfigFields_: {
62 type: Array, 57 type: Array,
63 value: function() { 58 value: function() {
64 return [ 59 return [
65 'ipv4.IPAddress', 60 'ipv4.IPAddress',
66 'ipv4.RoutingPrefix', 61 'ipv4.RoutingPrefix',
67 'ipv4.Gateway', 62 'ipv4.Gateway',
68 'ipv6.IPAddress' 63 'ipv6.IPAddress',
69 ]; 64 ];
70 }, 65 },
71 readOnly: true 66 readOnly: true
72 }, 67 },
73 }, 68 },
74 69
75 /** 70 /**
76 * Saved static IP configuration properties when switching to 'automatic'. 71 * Saved static IP configuration properties when switching to 'automatic'.
77 * @type {!CrOnc.IPConfigUIProperties|undefined} 72 * @type {!CrOnc.IPConfigUIProperties|undefined}
78 */ 73 */
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 automaticChanged_: function() { 105 automaticChanged_: function() {
111 if (!this.automatic || !this.ipConfig) 106 if (!this.automatic || !this.ipConfig)
112 return; 107 return;
113 if (this.automatic || !this.savedStaticIp_) { 108 if (this.automatic || !this.savedStaticIp_) {
114 // Save the static IP configuration when switching to automatic. 109 // Save the static IP configuration when switching to automatic.
115 this.savedStaticIp_ = this.ipConfig.ipv4; 110 this.savedStaticIp_ = this.ipConfig.ipv4;
116 var configType = 111 var configType =
117 this.automatic ? CrOnc.IPConfigType.DHCP : CrOnc.IPConfigType.STATIC; 112 this.automatic ? CrOnc.IPConfigType.DHCP : CrOnc.IPConfigType.STATIC;
118 this.fire('ip-change', { 113 this.fire('ip-change', {
119 field: 'IPAddressConfigType', 114 field: 'IPAddressConfigType',
120 value: configType 115 value: configType,
121 }); 116 });
122 } else { 117 } else {
123 // Restore the saved static IP configuration. 118 // Restore the saved static IP configuration.
124 var ipconfig = { 119 var ipconfig = {
125 Gateway: this.savedStaticIp_.Gateway, 120 Gateway: this.savedStaticIp_.Gateway,
126 IPAddress: this.savedStaticIp_.IPAddress, 121 IPAddress: this.savedStaticIp_.IPAddress,
127 RoutingPrefix: this.savedStaticIp_.RoutingPrefix, 122 RoutingPrefix: this.savedStaticIp_.RoutingPrefix,
128 Type: this.savedStaticIp_.Type 123 Type: this.savedStaticIp_.Type,
129 }; 124 };
130 this.fire('ip-change', { 125 this.fire('ip-change', {
131 field: 'StaticIPConfig', 126 field: 'StaticIPConfig',
132 value: this.getIPConfigProperties_(ipconfig) 127 value: this.getIPConfigProperties_(ipconfig),
133 }); 128 });
134 } 129 }
135 }, 130 },
136 131
137 /** 132 /**
138 * @param {!CrOnc.IPConfigProperties|undefined} ipconfig 133 * @param {!CrOnc.IPConfigProperties|undefined} ipconfig
139 * @return {!CrOnc.IPConfigUIProperties} A new IPConfigUIProperties object 134 * @return {!CrOnc.IPConfigUIProperties} A new IPConfigUIProperties object
140 * with RoutingPrefix expressed as a string mask instead of a prefix 135 * with RoutingPrefix expressed as a string mask instead of a prefix
141 * length. Returns an empty object if |ipconfig| is undefined. 136 * length. Returns an empty object if |ipconfig| is undefined.
142 * @private 137 * @private
(...skipping 24 matching lines...) Expand all
167 let value = ipconfig[key]; 162 let value = ipconfig[key];
168 if (key == 'RoutingPrefix') 163 if (key == 'RoutingPrefix')
169 result.RoutingPrefix = CrOnc.getRoutingPrefixAsLength(value); 164 result.RoutingPrefix = CrOnc.getRoutingPrefixAsLength(value);
170 else 165 else
171 result[key] = value; 166 result[key] = value;
172 } 167 }
173 return result; 168 return result;
174 }, 169 },
175 170
176 /** 171 /**
177 * @param {!CrOnc.IPConfigUIProperties} ipConfig The IP Config UI properties. 172 * @return {boolean}
178 * @param {boolean} editable The editable property. 173 * @private
179 * @param {boolean} automatic The automatic property. 174 */
175 showIPEditFields_: function(editable, automatic) {
176 return editable && !automatic;
177 },
178
179 /**
180 * @return {Object} An object with the edit type for each editable field. 180 * @return {Object} An object with the edit type for each editable field.
181 * @private 181 * @private
182 */ 182 */
183 getIPEditFields_: function(ipConfig, editable, automatic) { 183 getIPEditFields_: function(ipConfig, editable, automatic) {
184 if (!editable || automatic) 184 if (!editable || automatic)
185 return {}; 185 return {};
186 return { 186 return {
187 'ipv4.IPAddress': 'String', 187 'ipv4.IPAddress': 'String',
188 'ipv4.RoutingPrefix': 'String', 188 'ipv4.RoutingPrefix': 'String',
189 'ipv4.Gateway': 'String' 189 'ipv4.Gateway': 'String'
(...skipping 12 matching lines...) Expand all
202 var field = event.detail.field; 202 var field = event.detail.field;
203 var value = event.detail.value; 203 var value = event.detail.value;
204 // Note: |field| includes the 'ipv4.' prefix. 204 // Note: |field| includes the 'ipv4.' prefix.
205 this.set('ipConfig.' + field, value); 205 this.set('ipConfig.' + field, value);
206 this.fire('ip-change', { 206 this.fire('ip-change', {
207 field: 'StaticIPConfig', 207 field: 'StaticIPConfig',
208 value: this.getIPConfigProperties_(this.ipConfig.ipv4) 208 value: this.getIPConfigProperties_(this.ipConfig.ipv4)
209 }); 209 });
210 }, 210 },
211 }); 211 });
212 })();
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698