OLD | NEW |
| (Empty) |
1 // Copyright (c) 2012 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. | |
4 | |
5 cr.define('options', function() { | |
6 var OptionsPage = options.OptionsPage; | |
7 const ArrayDataModel = cr.ui.ArrayDataModel; | |
8 | |
9 ///////////////////////////////////////////////////////////////////////////// | |
10 // InternetOptions class: | |
11 | |
12 /** | |
13 * Encapsulated handling of ChromeOS internet options page. | |
14 * @constructor | |
15 */ | |
16 function InternetOptions() { | |
17 OptionsPage.call(this, 'internet', templateData.internetPageTabTitle, | |
18 'internetPage'); | |
19 } | |
20 | |
21 cr.addSingletonGetter(InternetOptions); | |
22 | |
23 // Inherit InternetOptions from OptionsPage. | |
24 InternetOptions.prototype = { | |
25 __proto__: OptionsPage.prototype, | |
26 | |
27 /** | |
28 * Initializes InternetOptions page. | |
29 * Calls base class implementation to starts preference initialization. | |
30 */ | |
31 initializePage: function() { | |
32 OptionsPage.prototype.initializePage.call(this); | |
33 | |
34 if (templateData.accessLocked) { | |
35 this.accesslocked = true; | |
36 } | |
37 | |
38 options.internet.NetworkElement.decorate($('wired-list')); | |
39 $('wired-list').load(templateData.wiredList); | |
40 options.internet.NetworkElement.decorate($('wireless-list')); | |
41 $('wireless-list').load(templateData.wirelessList); | |
42 options.internet.NetworkElement.decorate($('vpn-list')); | |
43 $('vpn-list').load(templateData.vpnList); | |
44 options.internet.NetworkElement.decorate($('remembered-list')); | |
45 $('remembered-list').load(templateData.rememberedList); | |
46 | |
47 this.updatePolicyIndicatorVisibility_(); | |
48 | |
49 options.internet.CellularPlanElement.decorate($('planList')); | |
50 | |
51 $('wired-section').hidden = (templateData.wiredList.length == 0); | |
52 $('wireless-section').hidden = (templateData.wirelessList.length == 0); | |
53 $('vpn-section').hidden = (templateData.vpnList.length == 0); | |
54 $('remembered-section').hidden = | |
55 (templateData.rememberedList.length == 0); | |
56 InternetOptions.setupAttributes(templateData); | |
57 $('detailsInternetDismiss').addEventListener('click', function(event) { | |
58 InternetOptions.setDetails(); | |
59 }); | |
60 $('detailsInternetLogin').addEventListener('click', function(event) { | |
61 InternetOptions.setDetails(); | |
62 InternetOptions.loginFromDetails(); | |
63 }); | |
64 $('detailsInternetDisconnect').addEventListener('click', function(event) { | |
65 InternetOptions.setDetails(); | |
66 InternetOptions.disconnectNetwork(); | |
67 }); | |
68 $('activateDetails').addEventListener('click', function(event) { | |
69 InternetOptions.activateFromDetails(); | |
70 }); | |
71 $('enable-wifi').addEventListener('click', function(event) { | |
72 event.target.disabled = true; | |
73 chrome.send('enableWifi'); | |
74 }); | |
75 $('disable-wifi').addEventListener('click', function(event) { | |
76 event.target.disabled = true; | |
77 chrome.send('disableWifi'); | |
78 }); | |
79 $('enable-cellular').addEventListener('click', function(event) { | |
80 event.target.disabled = true; | |
81 chrome.send('enableCellular'); | |
82 }); | |
83 $('disable-cellular').addEventListener('click', function(event) { | |
84 event.target.disabled = true; | |
85 chrome.send('disableCellular'); | |
86 }); | |
87 $('change-proxy-button').addEventListener('click', function(event) { | |
88 OptionsPage.closeOverlay(); | |
89 OptionsPage.showPageByName('proxy', false); | |
90 chrome.send('coreOptionsUserMetricsAction', | |
91 ['Options_ShowProxySettings']); | |
92 }); | |
93 $('buyplanDetails').addEventListener('click', function(event) { | |
94 chrome.send('buyDataPlan'); | |
95 OptionsPage.closeOverlay(); | |
96 }); | |
97 $('viewAccountDetails').addEventListener('click', function(event) { | |
98 chrome.send('showMorePlanInfo'); | |
99 OptionsPage.closeOverlay(); | |
100 }); | |
101 $('cellularApnUseDefault').addEventListener('click', function(event) { | |
102 var data = $('connectionState').data; | |
103 var apnSelector = $('selectApn'); | |
104 | |
105 if (data.userApnIndex != -1) { | |
106 apnSelector.remove(data.userApnIndex); | |
107 data.userApnIndex = -1; | |
108 } | |
109 | |
110 if (data.providerApnList.value.length > 0) { | |
111 var iApn = 0; | |
112 data.apn.apn = data.providerApnList.value[iApn].apn; | |
113 data.apn.username = data.providerApnList.value[iApn].username; | |
114 data.apn.password = data.providerApnList.value[iApn].password; | |
115 chrome.send('setApn', [String(data.servicePath), | |
116 String(data.apn.apn), | |
117 String(data.apn.username), | |
118 String(data.apn.password)]); | |
119 apnSelector.selectedIndex = iApn; | |
120 data.selectedApn = iApn; | |
121 } else { | |
122 data.apn.apn = ''; | |
123 data.apn.username = ''; | |
124 data.apn.password = ''; | |
125 apnSelector.selectedIndex = -1; | |
126 data.selectedApn = -1; | |
127 } | |
128 | |
129 InternetOptions.prototype.updateHidden_( | |
130 cr.doc.querySelectorAll('.apn-list-view'), | |
131 false); | |
132 InternetOptions.prototype.updateHidden_( | |
133 cr.doc.querySelectorAll('.apn-details-view'), | |
134 true); | |
135 }); | |
136 $('cellularApnSet').addEventListener('click', function(event) { | |
137 if ($('cellularApn').value == '') | |
138 return; | |
139 | |
140 var data = $('connectionState').data; | |
141 var apnSelector = $('selectApn'); | |
142 | |
143 data.apn.apn = String($('cellularApn').value); | |
144 data.apn.username = String($('cellularApnUsername').value); | |
145 data.apn.password = String($('cellularApnPassword').value); | |
146 chrome.send('setApn', [String(data.servicePath), | |
147 String(data.apn.apn), | |
148 String(data.apn.username), | |
149 String(data.apn.password)]); | |
150 | |
151 if (data.userApnIndex != -1) { | |
152 apnSelector.remove(data.userApnIndex); | |
153 data.userApnIndex = -1; | |
154 } | |
155 | |
156 var option = document.createElement('option'); | |
157 option.textContent = data.apn.apn; | |
158 option.value = -1; | |
159 option.selected = true; | |
160 apnSelector.add(option, apnSelector[apnSelector.length - 1]); | |
161 data.userApnIndex = apnSelector.length - 2 | |
162 data.selectedApn = data.userApnIndex; | |
163 | |
164 InternetOptions.prototype.updateHidden_( | |
165 cr.doc.querySelectorAll('.apn-list-view'), | |
166 false); | |
167 InternetOptions.prototype.updateHidden_( | |
168 cr.doc.querySelectorAll('.apn-details-view'), | |
169 true); | |
170 }); | |
171 $('cellularApnCancel').addEventListener('click', function(event) { | |
172 $('selectApn').selectedIndex = $('connectionState').data.selectedApn; | |
173 | |
174 InternetOptions.prototype.updateHidden_( | |
175 cr.doc.querySelectorAll('.apn-list-view'), | |
176 false); | |
177 InternetOptions.prototype.updateHidden_( | |
178 cr.doc.querySelectorAll('.apn-details-view'), | |
179 true); | |
180 }); | |
181 $('selectApn').addEventListener('change', function(event) { | |
182 var data = $('connectionState').data; | |
183 var apnSelector = $('selectApn'); | |
184 if (apnSelector[apnSelector.selectedIndex].value != -1) { | |
185 var apnList = data.providerApnList.value; | |
186 chrome.send('setApn', [String(data.servicePath), | |
187 String(apnList[apnSelector.selectedIndex].apn), | |
188 String(apnList[apnSelector.selectedIndex].username), | |
189 String(apnList[apnSelector.selectedIndex].password) | |
190 ]); | |
191 data.selectedApn = apnSelector.selectedIndex; | |
192 } else if (apnSelector.selectedIndex == data.userApnIndex) { | |
193 chrome.send('setApn', [String(data.servicePath), | |
194 String(data.apn.apn), | |
195 String(data.apn.username), | |
196 String(data.apn.password)]); | |
197 data.selectedApn = apnSelector.selectedIndex; | |
198 } else { | |
199 $('cellularApn').value = data.apn.apn; | |
200 $('cellularApnUsername').value = data.apn.username; | |
201 $('cellularApnPassword').value = data.apn.password; | |
202 | |
203 InternetOptions.prototype.updateHidden_( | |
204 cr.doc.querySelectorAll('.apn-list-view'), | |
205 true); | |
206 InternetOptions.prototype.updateHidden_( | |
207 cr.doc.querySelectorAll('.apn-details-view'), | |
208 false); | |
209 } | |
210 }); | |
211 $('sim-card-lock-enabled').addEventListener('click', function(event) { | |
212 var newValue = $('sim-card-lock-enabled').checked; | |
213 // Leave value as is because user needs to enter PIN code first. | |
214 // When PIN will be entered and value changed, | |
215 // we'll update UI to reflect that change. | |
216 $('sim-card-lock-enabled').checked = !newValue; | |
217 chrome.send('setSimCardLock', [newValue]); | |
218 }); | |
219 $('change-pin').addEventListener('click', function(event) { | |
220 chrome.send('changePin'); | |
221 }); | |
222 this.showNetworkDetails_(); | |
223 }, | |
224 | |
225 showNetworkDetails_: function() { | |
226 var params = parseQueryParams(window.location); | |
227 var servicePath = params.servicePath; | |
228 var networkType = params.networkType; | |
229 if (!servicePath || !servicePath.length || | |
230 !networkType || !networkType.length) | |
231 return; | |
232 var networkName = params.networkName; | |
233 if (networkName) | |
234 options.ProxyOptions.getInstance().setNetworkName(networkName); | |
235 chrome.send('buttonClickCallback', | |
236 [networkType, servicePath, "options"]); | |
237 }, | |
238 | |
239 updateHidden_: function(elements, hidden) { | |
240 for (var i = 0, el; el = elements[i]; i++) { | |
241 el.hidden = hidden; | |
242 } | |
243 }, | |
244 | |
245 /** | |
246 * Update internet page controls. | |
247 * @private | |
248 */ | |
249 updateControls_: function() { | |
250 accesslocked = this.accesslocked; | |
251 | |
252 $('locked-network-banner').hidden = !accesslocked; | |
253 $('wireless-buttons').hidden = accesslocked; | |
254 $('wired-section').hidden = accesslocked; | |
255 $('wireless-section').hidden = accesslocked; | |
256 $('vpn-section').hidden = accesslocked; | |
257 $('remembered-section').hidden = accesslocked; | |
258 | |
259 // Don't change hidden attribute on OptionsPage divs directly because it | |
260 // is used in supporting infrastructure now. | |
261 if (accesslocked && DetailsInternetPage.getInstance().visible) | |
262 this.closeOverlay(); | |
263 }, | |
264 | |
265 /** | |
266 * Updates the policy indicator visibility. Space is only allocated for the | |
267 * policy indicators if there is at least one visible. | |
268 * @private | |
269 */ | |
270 updatePolicyIndicatorVisibility_: function() { | |
271 var page = $('internetPage'); | |
272 if (page.querySelectorAll( | |
273 '.network-item > .controlled-setting-indicator[controlled-by]') | |
274 .length) { | |
275 page.classList.remove('hide-indicators'); | |
276 } else { | |
277 page.classList.add('hide-indicators'); | |
278 } | |
279 } | |
280 }; | |
281 | |
282 /** | |
283 * Whether access to this page is locked. | |
284 * @type {boolean} | |
285 */ | |
286 cr.defineProperty(InternetOptions, 'accesslocked', cr.PropertyKind.JS, | |
287 InternetOptions.prototype.updateControls_); | |
288 | |
289 InternetOptions.loginFromDetails = function () { | |
290 var data = $('connectionState').data; | |
291 var servicePath = data.servicePath; | |
292 chrome.send('buttonClickCallback', [String(data.type), | |
293 servicePath, | |
294 'connect']); | |
295 OptionsPage.closeOverlay(); | |
296 }; | |
297 | |
298 InternetOptions.disconnectNetwork = function () { | |
299 var data = $('connectionState').data; | |
300 var servicePath = data.servicePath; | |
301 chrome.send('buttonClickCallback', [String(data.type), | |
302 servicePath, | |
303 'disconnect']); | |
304 OptionsPage.closeOverlay(); | |
305 }; | |
306 | |
307 InternetOptions.activateFromDetails = function () { | |
308 var data = $('connectionState').data; | |
309 var servicePath = data.servicePath; | |
310 if (data.type == options.internet.Constants.TYPE_CELLULAR) { | |
311 chrome.send('buttonClickCallback', [String(data.type), | |
312 String(servicePath), | |
313 'activate']); | |
314 } | |
315 OptionsPage.closeOverlay(); | |
316 }; | |
317 | |
318 InternetOptions.setDetails = function () { | |
319 var data = $('connectionState').data; | |
320 var servicePath = data.servicePath; | |
321 if (data.type == options.internet.Constants.TYPE_WIFI) { | |
322 chrome.send('setPreferNetwork', | |
323 [String(servicePath), | |
324 $('preferNetworkWifi').checked ? "true" : "false"]); | |
325 chrome.send('setAutoConnect', | |
326 [String(servicePath), | |
327 $('autoConnectNetworkWifi').checked ? "true" : "false"]); | |
328 } else if (data.type == options.internet.Constants.TYPE_CELLULAR) { | |
329 chrome.send('setAutoConnect', | |
330 [String(servicePath), | |
331 $('autoConnectNetworkCellular').checked ? "true" : "false"]); | |
332 } | |
333 | |
334 var ipConfigList = $('ipConfigList'); | |
335 chrome.send('setIPConfig',[String(servicePath), | |
336 $('ipTypeDHCP').checked ? "true" : "false", | |
337 ipConfigList.dataModel.item(0).value, | |
338 ipConfigList.dataModel.item(1).value, | |
339 ipConfigList.dataModel.item(2).value, | |
340 ipConfigList.dataModel.item(3).value]); | |
341 OptionsPage.closeOverlay(); | |
342 }; | |
343 | |
344 InternetOptions.setupAttributes = function(data) { | |
345 var buttons = $('wireless-buttons'); | |
346 if (data.wifiEnabled) { | |
347 $('disable-wifi').disabled = data.wifiBusy; | |
348 $('disable-wifi').hidden = false; | |
349 $('enable-wifi').hidden = true; | |
350 } else { | |
351 $('enable-wifi').disabled = data.wifiBusy; | |
352 $('enable-wifi').hidden = false; | |
353 $('disable-wifi').hidden = true; | |
354 } | |
355 if (data.cellularAvailable) { | |
356 if (data.cellularEnabled) { | |
357 $('disable-cellular').disabled = data.cellularBusy; | |
358 $('disable-cellular').hidden = false; | |
359 $('enable-cellular').hidden = true; | |
360 } else { | |
361 $('enable-cellular').disabled = data.cellularBusy; | |
362 $('enable-cellular').hidden = false; | |
363 $('disable-cellular').hidden = true; | |
364 } | |
365 if (!AccountsOptions.currentUserIsOwner()) | |
366 $('internet-owner-only-warning').hidden = false; | |
367 $('data-roaming').hidden = false; | |
368 } else { | |
369 $('enable-cellular').hidden = true; | |
370 $('disable-cellular').hidden = true; | |
371 $('data-roaming').hidden = true; | |
372 } | |
373 }; | |
374 | |
375 // | |
376 //Chrome callbacks | |
377 // | |
378 InternetOptions.refreshNetworkData = function (data) { | |
379 var self = InternetOptions.getInstance(); | |
380 if (data.accessLocked) { | |
381 self.accesslocked = true; | |
382 return; | |
383 } | |
384 self.accesslocked = false; | |
385 $('wired-list').load(data.wiredList); | |
386 $('wireless-list').load(data.wirelessList); | |
387 $('vpn-list').load(data.vpnList); | |
388 $('remembered-list').load(data.rememberedList); | |
389 | |
390 self.updatePolicyIndicatorVisibility_(); | |
391 | |
392 $('wired-section').hidden = (data.wiredList.length == 0); | |
393 $('wireless-section').hidden = (data.wirelessList.length == 0); | |
394 $('vpn-section').hidden = (data.vpnList.length == 0); | |
395 InternetOptions.setupAttributes(data); | |
396 $('remembered-section').hidden = (data.rememberedList.length == 0); | |
397 }; | |
398 | |
399 // TODO(xiyuan): This function seems belonging to DetailsInternetPage. | |
400 InternetOptions.updateCellularPlans = function (data) { | |
401 var detailsPage = DetailsInternetPage.getInstance(); | |
402 detailsPage.cellplanloading = false; | |
403 if (data.plans && data.plans.length) { | |
404 detailsPage.nocellplan = false | |
405 detailsPage.hascellplan = true; | |
406 $('planList').load(data.plans); | |
407 } else { | |
408 detailsPage.nocellplan = true; | |
409 detailsPage.hascellplan = false; | |
410 } | |
411 | |
412 detailsPage.hasactiveplan = !data.needsPlan; | |
413 detailsPage.activated = data.activated; | |
414 if (!data.activated) | |
415 $('detailsInternetLogin').hidden = true; | |
416 | |
417 $('buyplanDetails').hidden = !data.showBuyButton; | |
418 $('activateDetails').hidden = !data.showActivateButton; | |
419 $('viewAccountDetails').hidden = !data.showViewAccountButton; | |
420 }; | |
421 | |
422 InternetOptions.updateSecurityTab = function(requirePin) { | |
423 $('sim-card-lock-enabled').checked = requirePin; | |
424 $('change-pin').hidden = !requirePin; | |
425 }; | |
426 | |
427 InternetOptions.showDetailedInfo = function (data) { | |
428 var detailsPage = DetailsInternetPage.getInstance(); | |
429 // TODO(chocobo): Is this hack to cache the data here reasonable? | |
430 $('connectionState').data = data; | |
431 $('buyplanDetails').hidden = true; | |
432 $('activateDetails').hidden = true; | |
433 $('viewAccountDetails').hidden = true; | |
434 $('detailsInternetLogin').hidden = data.connected; | |
435 if (data.type == options.internet.Constants.TYPE_ETHERNET) | |
436 $('detailsInternetDisconnect').hidden = true; | |
437 else | |
438 $('detailsInternetDisconnect').hidden = !data.connected; | |
439 | |
440 detailsPage.deviceConnected = data.deviceConnected; | |
441 detailsPage.connecting = data.connecting; | |
442 detailsPage.connected = data.connected; | |
443 if (data.connected) { | |
444 $('inetTitle').textContent = localStrings.getString('inetStatus'); | |
445 } else { | |
446 $('inetTitle').textContent = localStrings.getString('inetConnect'); | |
447 } | |
448 $('connectionState').textContent = data.connectionState; | |
449 | |
450 var inetAddress = ''; | |
451 var inetSubnetAddress = ''; | |
452 var inetGateway = ''; | |
453 var inetDns = ''; | |
454 $('ipTypeDHCP').checked = true; | |
455 if (data.ipconfigStatic.value) { | |
456 inetAddress = data.ipconfigStatic.value.address; | |
457 inetSubnetAddress = data.ipconfigStatic.value.subnetAddress; | |
458 inetGateway = data.ipconfigStatic.value.gateway; | |
459 inetDns = data.ipconfigStatic.value.dns; | |
460 $('ipTypeStatic').checked = true; | |
461 } else if (data.ipconfigDHCP.value) { | |
462 inetAddress = data.ipconfigDHCP.value.address; | |
463 inetSubnetAddress = data.ipconfigDHCP.value.subnetAddress; | |
464 inetGateway = data.ipconfigDHCP.value.gateway; | |
465 inetDns = data.ipconfigDHCP.value.dns; | |
466 } | |
467 | |
468 // Hide the dhcp/static radio if needed. | |
469 $('ipTypeDHCPDiv').hidden = !data.showStaticIPConfig; | |
470 $('ipTypeStaticDiv').hidden = !data.showStaticIPConfig; | |
471 | |
472 // Hide change-proxy-button and change-proxy-section if not showing proxy. | |
473 $('change-proxy-button').hidden = !data.showProxy; | |
474 $('change-proxy-section').hidden = !data.showProxy; | |
475 | |
476 var ipConfigList = $('ipConfigList'); | |
477 ipConfigList.disabled = | |
478 $('ipTypeDHCP').checked || data.ipconfigStatic.controlledBy || | |
479 !data.showStaticIPConfig; | |
480 options.internet.IPConfigList.decorate(ipConfigList); | |
481 ipConfigList.autoExpands = true; | |
482 var model = new ArrayDataModel([]); | |
483 model.push({ | |
484 'property': 'inetAddress', | |
485 'name': localStrings.getString('inetAddress'), | |
486 'value': inetAddress, | |
487 }); | |
488 model.push({ | |
489 'property': 'inetSubnetAddress', | |
490 'name': localStrings.getString('inetSubnetAddress'), | |
491 'value': inetSubnetAddress, | |
492 }); | |
493 model.push({ | |
494 'property': 'inetGateway', | |
495 'name': localStrings.getString('inetGateway'), | |
496 'value': inetGateway, | |
497 }); | |
498 model.push({ | |
499 'property': 'inetDns', | |
500 'name': localStrings.getString('inetDns'), | |
501 'value': inetDns, | |
502 }); | |
503 ipConfigList.dataModel = model; | |
504 | |
505 $('ipTypeDHCP').addEventListener('click', function(event) { | |
506 // disable ipConfigList and switch back to dhcp values (if any) | |
507 if (data.ipconfigDHCP.value) { | |
508 var config = data.ipconfigDHCP.value; | |
509 ipConfigList.dataModel.item(0).value = config.address; | |
510 ipConfigList.dataModel.item(1).value = config.subnetAddress; | |
511 ipConfigList.dataModel.item(2).value = config.gateway; | |
512 ipConfigList.dataModel.item(3).value = config.dns; | |
513 } | |
514 ipConfigList.dataModel.updateIndex(0); | |
515 ipConfigList.dataModel.updateIndex(1); | |
516 ipConfigList.dataModel.updateIndex(2); | |
517 ipConfigList.dataModel.updateIndex(3); | |
518 // Unselect all so we don't keep the currently selected field editable. | |
519 ipConfigList.selectionModel.unselectAll(); | |
520 ipConfigList.disabled = true; | |
521 }); | |
522 | |
523 $('ipTypeStatic').addEventListener('click', function(event) { | |
524 // enable ipConfigList | |
525 ipConfigList.disabled = false; | |
526 ipConfigList.focus(); | |
527 ipConfigList.selectionModel.selectedIndex = 0; | |
528 }); | |
529 | |
530 if (data.hardwareAddress) { | |
531 $('hardwareAddress').textContent = data.hardwareAddress; | |
532 $('hardwareAddressRow').style.display = 'table-row'; | |
533 } else { | |
534 // This is most likely a device without a hardware address. | |
535 $('hardwareAddressRow').style.display = 'none'; | |
536 } | |
537 if (data.type == options.internet.Constants.TYPE_WIFI) { | |
538 OptionsPage.showTab($('wifiNetworkNavTab')); | |
539 detailsPage.wireless = true; | |
540 detailsPage.vpn = false; | |
541 detailsPage.ethernet = false; | |
542 detailsPage.cellular = false; | |
543 detailsPage.gsm = false; | |
544 detailsPage.shared = data.shared; | |
545 $('inetSsid').textContent = data.ssid; | |
546 detailsPage.showPreferred = data.showPreferred; | |
547 $('preferNetworkWifi').checked = data.preferred.value; | |
548 $('preferNetworkWifi').disabled = !data.remembered; | |
549 $('autoConnectNetworkWifi').checked = data.autoConnect.value; | |
550 $('autoConnectNetworkWifi').disabled = !data.remembered; | |
551 detailsPage.password = data.encrypted; | |
552 } else if(data.type == options.internet.Constants.TYPE_CELLULAR) { | |
553 if (!data.gsm) | |
554 OptionsPage.showTab($('cellularPlanNavTab')); | |
555 else | |
556 OptionsPage.showTab($('cellularConnNavTab')); | |
557 detailsPage.ethernet = false; | |
558 detailsPage.wireless = false; | |
559 detailsPage.vpn = false; | |
560 detailsPage.cellular = true; | |
561 if (data.carrierUrl) { | |
562 var a = $('carrierUrl'); | |
563 if (!a) { | |
564 a = document.createElement('a'); | |
565 $('serviceName').appendChild(a); | |
566 a.id = 'carrierUrl'; | |
567 a.target = "_blank"; | |
568 } | |
569 a.href = data.carrierUrl; | |
570 a.textContent = data.serviceName; | |
571 } else { | |
572 $('serviceName').textContent = data.serviceName; | |
573 } | |
574 $('networkTechnology').textContent = data.networkTechnology; | |
575 $('activationState').textContent = data.activationState; | |
576 $('roamingState').textContent = data.roamingState; | |
577 $('restrictedPool').textContent = data.restrictedPool; | |
578 $('errorState').textContent = data.errorState; | |
579 $('manufacturer').textContent = data.manufacturer; | |
580 $('modelId').textContent = data.modelId; | |
581 $('firmwareRevision').textContent = data.firmwareRevision; | |
582 $('hardwareRevision').textContent = data.hardwareRevision; | |
583 $('prlVersion').textContent = data.prlVersion; | |
584 $('meid').textContent = data.meid; | |
585 $('imei').textContent = data.imei; | |
586 $('mdn').textContent = data.mdn; | |
587 $('esn').textContent = data.esn; | |
588 $('min').textContent = data.min; | |
589 detailsPage.gsm = data.gsm; | |
590 if (data.gsm) { | |
591 $('operatorName').textContent = data.operatorName; | |
592 $('operatorCode').textContent = data.operatorCode; | |
593 $('imsi').textContent = data.imsi; | |
594 | |
595 var apnSelector = $('selectApn'); | |
596 // Clear APN lists, keep only last element that "other". | |
597 while (apnSelector.length != 1) | |
598 apnSelector.remove(0); | |
599 var otherOption = apnSelector[0]; | |
600 data.selectedApn = -1; | |
601 data.userApnIndex = -1; | |
602 var apnList = data.providerApnList.value; | |
603 for (var i = 0; i < apnList.length; i++) { | |
604 var option = document.createElement('option'); | |
605 var name = apnList[i].localizedName; | |
606 if (name == '' && apnList[i].name != '') | |
607 name = apnList[i].name; | |
608 if (name == '') | |
609 name = apnList[i].apn; | |
610 else | |
611 name = name + ' (' + apnList[i].apn + ')'; | |
612 option.textContent = name; | |
613 option.value = i; | |
614 if ((data.apn.apn == apnList[i].apn && | |
615 data.apn.username == apnList[i].username && | |
616 data.apn.password == apnList[i].password) || | |
617 (data.apn.apn == '' && | |
618 data.lastGoodApn.apn == apnList[i].apn && | |
619 data.lastGoodApn.username == apnList[i].username && | |
620 data.lastGoodApn.password == apnList[i].password)) { | |
621 data.selectedApn = i; | |
622 } | |
623 // Insert new option before "other" option. | |
624 apnSelector.add(option, otherOption); | |
625 } | |
626 if (data.selectedApn == -1 && data.apn.apn != '') { | |
627 var option = document.createElement('option'); | |
628 option.textContent = data.apn.apn; | |
629 option.value = -1; | |
630 apnSelector.add(option, otherOption); | |
631 data.selectedApn = apnSelector.length - 2; | |
632 data.userApnIndex = data.selectedApn; | |
633 } | |
634 apnSelector.selectedIndex = data.selectedApn; | |
635 InternetOptions.prototype.updateHidden_( | |
636 cr.doc.querySelectorAll('.apn-list-view'), | |
637 false); | |
638 InternetOptions.prototype.updateHidden_( | |
639 cr.doc.querySelectorAll('.apn-details-view'), | |
640 true); | |
641 | |
642 InternetOptions.updateSecurityTab(data.simCardLockEnabled.value); | |
643 } | |
644 $('autoConnectNetworkCellular').checked = data.autoConnect.value; | |
645 $('autoConnectNetworkCellular').disabled = false; | |
646 | |
647 $('buyplanDetails').hidden = !data.showBuyButton; | |
648 $('viewAccountDetails').hidden = !data.showViewAccountButton; | |
649 $('activateDetails').hidden = !data.showActivateButton; | |
650 if (data.showActivateButton) { | |
651 $('detailsInternetLogin').hidden = true; | |
652 } | |
653 | |
654 detailsPage.hascellplan = false; | |
655 if (data.connected) { | |
656 detailsPage.nocellplan = false; | |
657 detailsPage.cellplanloading = true; | |
658 chrome.send('refreshCellularPlan', [data.servicePath]) | |
659 } else { | |
660 detailsPage.nocellplan = true; | |
661 detailsPage.cellplanloading = false; | |
662 } | |
663 } else if (data.type == options.internet.Constants.TYPE_VPN) { | |
664 OptionsPage.showTab($('vpnNavTab')); | |
665 detailsPage.wireless = false; | |
666 detailsPage.vpn = true; | |
667 detailsPage.ethernet = false; | |
668 detailsPage.cellular = false; | |
669 detailsPage.gsm = false; | |
670 $('inetServiceName').textContent = data.service_name; | |
671 $('inetServerHostname').textContent = data.server_hostname; | |
672 $('inetProviderType').textContent = data.provider_type; | |
673 $('inetUsername').textContent = data.username; | |
674 } else { | |
675 OptionsPage.showTab($('internetNavTab')); | |
676 detailsPage.ethernet = true; | |
677 detailsPage.wireless = false; | |
678 detailsPage.vpn = false; | |
679 detailsPage.cellular = false; | |
680 detailsPage.gsm = false; | |
681 } | |
682 | |
683 detailsPage.initializeControlledSettingIndicators(data) | |
684 | |
685 // Don't show page name in address bar and in history to prevent people | |
686 // navigate here by hand and solve issue with page session restore. | |
687 OptionsPage.showPageByName('detailsInternetPage', false); | |
688 }; | |
689 | |
690 InternetOptions.invalidNetworkSettings = function () { | |
691 alert(localStrings.getString('invalidNetworkSettings')); | |
692 }; | |
693 | |
694 // Export | |
695 return { | |
696 InternetOptions: InternetOptions | |
697 }; | |
698 }); | |
OLD | NEW |