OLD | NEW |
---|---|
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 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 // NOTE(stevenjb): This code is in the process of being converted to be | 5 // NOTE(stevenjb): This code is in the process of being converted to be |
6 // compatible with the networkingPrivate extension API: | 6 // compatible with the networkingPrivate extension API: |
7 // * The network property dictionaries are being converted to use ONC values. | 7 // * The network property dictionaries are being converted to use ONC values. |
8 // * chrome.send calls will be replaced with an API object that simulates the | 8 // * chrome.send calls will be replaced with an API object that simulates the |
9 // networkingPrivate API. See network_config.js. | 9 // networkingPrivate API. See network_config.js. |
10 // See crbug.com/279351 for more info. | 10 // See crbug.com/279351 for more info. |
11 | 11 |
12 cr.define('options.internet', function() { | 12 cr.define('options.internet', function() { |
13 var OptionsPage = options.OptionsPage; | 13 var OptionsPage = options.OptionsPage; |
14 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel; | 14 /** @const */ var ArrayDataModel = cr.ui.ArrayDataModel; |
15 /** @const */ var IPAddressField = options.internet.IPAddressField; | 15 /** @const */ var IPAddressField = options.internet.IPAddressField; |
16 | 16 |
17 /** | 17 /** |
18 /* | 18 * Helper function to get a property from a dictionary that includes |
19 * ONC Managed Property sub-dictionary, e.g. getActiveValue(data, 'Name'). | |
pneubeck (no reviews)
2014/07/30 20:12:45
How about:
Helper function to read the 'active' v
stevenjb
2014/07/30 21:57:48
Done.
| |
20 * @param {object|string} property The property which may be a dictionary | |
21 * object or a plain data type. | |
22 * @return {*} the property value or undefined. | |
23 */ | |
24 function getActiveValue(data, key) { | |
pneubeck (no reviews)
2014/07/30 20:12:46
The @param section doesn't mention data or key, bu
stevenjb
2014/07/30 21:57:47
I went with this format because I wanted to keep o
| |
25 if (!(key in data)) | |
26 return undefined; | |
27 var property = data[key]; | |
28 if (typeof property != 'object') | |
29 return property; | |
30 if ('Active' in property) | |
31 return property['Active']; | |
32 if ('Effective' in property) { | |
pneubeck (no reviews)
2014/07/30 20:12:45
i would drop this block.
active should be always
stevenjb
2014/07/30 21:57:48
As discussed in chat, 'Active' may not be set.
| |
33 var effective = property.Effective; | |
34 if (effective in property) | |
35 return property[effective]; | |
36 } | |
37 return undefined; | |
38 } | |
39 | |
40 /** | |
41 * Helper function to get a property from a dictionary in an ONC Managed | |
pneubeck (no reviews)
2014/07/30 20:12:45
again i'd drop 'a dictionary in'
stevenjb
2014/07/30 21:57:47
Simplified comment.
| |
42 * Property dictionary, e.g. getActiveDictionaryValue(data, WiFi, Strength). | |
43 * @param {object|string} property The property which must ether be | |
44 * a dictionary object or not be present. | |
45 * @return {*} the property value or undefined. | |
46 */ | |
47 function getActiveDictionaryValue(data, dict, key) { | |
pneubeck (no reviews)
2014/07/30 20:12:45
hm. again could be one argument less
get..(data, k
stevenjb
2014/07/30 21:57:47
Same reason.
| |
48 if (!(dict in data)) | |
49 return undefined; | |
50 return getActiveValue(data[dict], key); | |
51 } | |
52 | |
53 /** | |
19 * Helper function to set hidden attribute for elements matching a selector. | 54 * Helper function to set hidden attribute for elements matching a selector. |
20 * @param {string} selector CSS selector for extracting a list of elements. | 55 * @param {string} selector CSS selector for extracting a list of elements. |
21 * @param {bool} hidden New hidden value. | 56 * @param {bool} hidden New hidden value. |
22 */ | 57 */ |
23 function updateHidden(selector, hidden) { | 58 function updateHidden(selector, hidden) { |
24 var elements = cr.doc.querySelectorAll(selector); | 59 var elements = cr.doc.querySelectorAll(selector); |
25 for (var i = 0, el; el = elements[i]; i++) { | 60 for (var i = 0, el; el = elements[i]; i++) { |
26 el.hidden = hidden; | 61 el.hidden = hidden; |
27 } | 62 } |
28 } | 63 } |
(...skipping 60 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
89 else if (state == 'Connected') | 124 else if (state == 'Connected') |
90 return loadTimeData.getString('OncStateConnected'); | 125 return loadTimeData.getString('OncStateConnected'); |
91 return loadTimeData.getString('OncStateUnknown'); | 126 return loadTimeData.getString('OncStateUnknown'); |
92 } | 127 } |
93 | 128 |
94 /** | 129 /** |
95 * Returns the display name for the network represented by 'data'. | 130 * Returns the display name for the network represented by 'data'. |
96 * @param {Object} data The network ONC dictionary. | 131 * @param {Object} data The network ONC dictionary. |
97 */ | 132 */ |
98 function getNetworkName(data) { | 133 function getNetworkName(data) { |
99 if (data.Type == 'Ethernet') | 134 if (data.type == 'Ethernet') |
100 return loadTimeData.getString('ethernetName'); | 135 return loadTimeData.getString('ethernetName'); |
101 return data.Name; | 136 return getActiveValue(data, 'Name'); |
102 } | |
103 | |
104 /** | |
105 * Returns True if the network represented by 'data' is a secure WiFi network. | |
106 * @param {Object} data The network ONC dictionary. | |
107 */ | |
108 function isSecureWiFiNetwork(data) { | |
109 return data.WiFi && data.WiFi.Security && data.WiFi.Security != 'None'; | |
110 } | 137 } |
111 | 138 |
112 ///////////////////////////////////////////////////////////////////////////// | 139 ///////////////////////////////////////////////////////////////////////////// |
113 // DetailsInternetPage class: | 140 // DetailsInternetPage class: |
114 | 141 |
115 /** | 142 /** |
116 * Encapsulated handling of ChromeOS internet details overlay page. | 143 * Encapsulated handling of ChromeOS internet details overlay page. |
117 * @constructor | 144 * @constructor |
118 */ | 145 */ |
119 function DetailsInternetPage() { | 146 function DetailsInternetPage() { |
(...skipping 24 matching lines...) Expand all Loading... | |
144 * is included in the URL. | 171 * is included in the URL. |
145 */ | 172 */ |
146 showNetworkDetails_: function(params) { | 173 showNetworkDetails_: function(params) { |
147 var servicePath = params.servicePath; | 174 var servicePath = params.servicePath; |
148 if (!servicePath || !servicePath.length) | 175 if (!servicePath || !servicePath.length) |
149 return; | 176 return; |
150 var networkType = ''; // ignored for 'options' | 177 var networkType = ''; // ignored for 'options' |
151 chrome.send('networkCommand', [networkType, servicePath, 'options']); | 178 chrome.send('networkCommand', [networkType, servicePath, 'options']); |
152 }, | 179 }, |
153 | 180 |
154 | |
155 /** | 181 /** |
156 * Initializes the contents of the page. | 182 * Initializes the contents of the page. |
157 */ | 183 */ |
158 initializePageContents_: function(params) { | 184 initializePageContents_: function(params) { |
159 $('details-internet-dismiss').addEventListener('click', function(event) { | 185 $('details-internet-dismiss').addEventListener('click', function(event) { |
160 DetailsInternetPage.setDetails(); | 186 DetailsInternetPage.setDetails(); |
161 }); | 187 }); |
162 | 188 |
163 $('details-internet-login').addEventListener('click', function(event) { | 189 $('details-internet-login').addEventListener('click', function(event) { |
164 DetailsInternetPage.setDetails(); | 190 DetailsInternetPage.setDetails(); |
(...skipping 244 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
409 * Handler for when the name server selection changes. | 435 * Handler for when the name server selection changes. |
410 * @param {Event} e The click event. | 436 * @param {Event} e The click event. |
411 * @private | 437 * @private |
412 */ | 438 */ |
413 handleNameServerTypeChange_: function(event) { | 439 handleNameServerTypeChange_: function(event) { |
414 var type = event.target.value; | 440 var type = event.target.value; |
415 DetailsInternetPage.updateNameServerDisplay(type); | 441 DetailsInternetPage.updateNameServerDisplay(type); |
416 }, | 442 }, |
417 | 443 |
418 /** | 444 /** |
445 * Creates an indicator event for controlled properties using | |
446 * the same dictionary format as CoreOptionsHandler::CreateValueForPref. | |
447 * @param {string} name The name for the Event. | |
448 * @param {Object} data Property dictionary with |value|, |controlledBy|, | |
449 * and |recommendedValue| properties set. | |
450 * @private | |
451 */ | |
452 createControlledEvent_: function(name, propData) { | |
453 var event = new Event(name); | |
454 event.value = { | |
455 value: propData.value, | |
456 controlledBy: propData.controlledBy, | |
457 recommendedValue: propData.recommendedValue | |
458 }; | |
459 return event; | |
460 }, | |
461 | |
462 /** | |
463 * Creates an indicator event for controlled properties using | |
464 * the ONC getManagedProperties dictionary format. | |
465 * @param {string} name The name for the Event. | |
466 * @param {Object} data ONC managed network property dictionary. | |
467 * @private | |
468 */ | |
469 createManagedEvent_: function(name, propData) { | |
pneubeck (no reviews)
2014/07/30 20:12:45
nit: replace propData['abc'] by propData.abc
stevenjb
2014/07/30 21:57:48
So, I kept you out of a long email thread that wan
| |
470 var event = new Event(name); | |
471 event.value = {}; | |
472 if ('Effective' in propData) { | |
473 var effective = propData['Effective']; | |
474 if (effective != 'Unmanaged') | |
pneubeck (no reviews)
2014/07/30 20:12:45
var policy;
if (effective == UserPolicy || effecti
stevenjb
2014/07/30 21:57:47
I wasn't sure whether there might be other policy
pneubeck (no reviews)
2014/07/31 20:29:36
You should see the *Editable fields already if you
stevenjb
2014/08/01 00:53:41
OK, I think I get it now, documenting the properti
| |
475 event.value.controlledBy = 'policy'; | |
476 else | |
477 event.value.controlledBy = 'recommended'; | |
478 event.value.recommendedValue = propData[effective]; | |
479 } | |
480 if ('Active' in propData) | |
pneubeck (no reviews)
2014/07/30 20:12:45
'Active' should always be present.
stevenjb
2014/07/30 21:57:47
See previous comment.
| |
481 event.value.value = propData['Active']; | |
482 else | |
483 event.value.value = event.value.recommendedValue; | |
484 return event; | |
485 }, | |
486 | |
487 /** | |
419 * Update details page controls. | 488 * Update details page controls. |
420 * @private | |
421 */ | 489 */ |
422 updateControls: function() { | 490 updateControls: function() { |
423 // Only show ipconfig section if network is connected OR if nothing on | 491 // Only show ipconfig section if network is connected OR if nothing on |
424 // this device is connected. This is so that you can fix the ip configs | 492 // this device is connected. This is so that you can fix the ip configs |
425 // if you can't connect to any network. | 493 // if you can't connect to any network. |
426 // TODO(chocobo): Once ipconfig is moved to flimflam service objects, | 494 // TODO(chocobo): Once ipconfig is moved to flimflam service objects, |
427 // we need to redo this logic to allow configuration of all networks. | 495 // we need to redo this logic to allow configuration of all networks. |
428 $('ipconfig-section').hidden = !this.connected && this.deviceConnected; | 496 $('ipconfig-section').hidden = !this.connected && this.deviceConnected; |
429 $('ipconfig-dns-section').hidden = | 497 $('ipconfig-dns-section').hidden = |
430 !this.connected && this.deviceConnected; | 498 !this.connected && this.deviceConnected; |
431 | 499 |
432 // Network type related. | 500 // Network type related. |
433 updateHidden('#details-internet-page .cellular-details', !this.cellular); | 501 updateHidden('#details-internet-page .cellular-details', |
434 updateHidden('#details-internet-page .wifi-details', !this.wireless); | 502 this.type != 'Cellular'); |
435 updateHidden('#details-internet-page .wimax-details', !this.wimax); | 503 updateHidden('#details-internet-page .wifi-details', |
436 updateHidden('#details-internet-page .vpn-details', !this.vpn); | 504 this.type != 'WiFi'); |
505 updateHidden('#details-internet-page .wimax-details', | |
506 this.type != 'Wimax'); | |
507 updateHidden('#details-internet-page .vpn-details', this.type != 'VPN'); | |
437 updateHidden('#details-internet-page .proxy-details', !this.showProxy); | 508 updateHidden('#details-internet-page .proxy-details', !this.showProxy); |
438 | 509 |
439 // Cellular | 510 // Cellular |
440 | 511 |
441 // Conditionally call updateHidden on .gsm-only, so that we don't unhide | 512 // Conditionally call updateHidden on .gsm-only, so that we don't unhide |
442 // a previously hidden element. | 513 // a previously hidden element. |
443 if (this.gsm) | 514 if (this.gsm) |
444 updateHidden('#details-internet-page .cdma-only', true); | 515 updateHidden('#details-internet-page .cdma-only', true); |
445 else | 516 else |
446 updateHidden('#details-internet-page .gsm-only', true); | 517 updateHidden('#details-internet-page .gsm-only', true); |
447 | 518 |
448 // Wifi | 519 // Wifi |
449 | 520 |
450 // Network information merged into the Wifi tab for wireless networks | 521 // Hide network tab for VPN. |
451 // unless the option is set for enabling a static IP configuration. | |
452 updateHidden('#details-internet-page .network-details', | 522 updateHidden('#details-internet-page .network-details', |
453 (this.wireless && !this.showStaticIPConfig) || this.vpn); | 523 this.type == 'VPN'); |
stevenjb
2014/07/29 23:21:11
We were setting showStaticIPConfig = true for wifi
stevenjb
2014/07/30 21:57:47
Acknowledged.
| |
454 updateHidden('#details-internet-page .wifi-network-setting', | |
455 this.showStaticIPConfig); | |
stevenjb
2014/07/29 23:21:11
Always true, so removed elements with that class.
stevenjb
2014/07/30 21:57:47
Acknowledged.
| |
456 | 524 |
457 // Password and shared. | 525 // Password and shared. |
458 updateHidden('#details-internet-page #password-details', | 526 updateHidden('#details-internet-page #password-details', |
459 !this.wireless || !this.hasSecurity); | 527 this.type != 'WiFi' || !this.hasSecurity); |
460 updateHidden('#details-internet-page #wifi-shared-network', | 528 updateHidden('#details-internet-page #wifi-shared-network', |
461 !this.shared); | 529 !this.shared); |
462 updateHidden('#details-internet-page #prefer-network', | 530 updateHidden('#details-internet-page #prefer-network', |
463 !this.showPreferred); | 531 !this.showPreferred); |
464 | 532 |
465 // WiMAX. | 533 // WiMAX. |
466 updateHidden('#details-internet-page #wimax-shared-network', | 534 updateHidden('#details-internet-page #wimax-shared-network', |
467 !this.shared); | 535 !this.shared); |
468 | 536 |
469 // Proxy | 537 // Proxy |
470 this.updateProxyBannerVisibility_(); | 538 this.updateProxyBannerVisibility_(); |
471 this.toggleSingleProxy_(); | 539 this.toggleSingleProxy_(); |
472 if ($('manual-proxy').checked) | 540 if ($('manual-proxy').checked) |
473 this.enableManualProxy_(); | 541 this.enableManualProxy_(); |
474 else | 542 else |
475 this.disableManualProxy_(); | 543 this.disableManualProxy_(); |
476 }, | 544 }, |
477 | 545 |
(...skipping 106 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
584 $('ftp-proxy').disabled = allDisabled; | 652 $('ftp-proxy').disabled = allDisabled; |
585 $('ftp-proxy-port').disabled = allDisabled; | 653 $('ftp-proxy-port').disabled = allDisabled; |
586 $('socks-host').disabled = allDisabled; | 654 $('socks-host').disabled = allDisabled; |
587 $('socks-port').disabled = allDisabled; | 655 $('socks-port').disabled = allDisabled; |
588 $('proxy-use-pac-url').disabled = true; | 656 $('proxy-use-pac-url').disabled = true; |
589 $('proxy-pac-url').disabled = true; | 657 $('proxy-pac-url').disabled = true; |
590 $('auto-proxy-parms').hidden = !$('auto-proxy').checked; | 658 $('auto-proxy-parms').hidden = !$('auto-proxy').checked; |
591 $('manual-proxy-parms').hidden = !$('manual-proxy').checked; | 659 $('manual-proxy-parms').hidden = !$('manual-proxy').checked; |
592 chrome.send('coreOptionsUserMetricsAction', | 660 chrome.send('coreOptionsUserMetricsAction', |
593 ['Options_NetworkManualProxy_Enable']); | 661 ['Options_NetworkManualProxy_Enable']); |
594 }, | 662 } |
595 }; | 663 }; |
596 | 664 |
597 /** | 665 /** |
598 * Enables or Disables all buttons that provide operations on the cellular | 666 * Enables or Disables all buttons that provide operations on the cellular |
599 * network. | 667 * network. |
600 */ | 668 */ |
601 DetailsInternetPage.changeCellularButtonsState = function(disable) { | 669 DetailsInternetPage.changeCellularButtonsState = function(disable) { |
602 var buttonsToDisableList = | 670 var buttonsToDisableList = |
603 new Array('details-internet-login', | 671 new Array('details-internet-login', |
604 'details-internet-disconnect', | 672 'details-internet-disconnect', |
(...skipping 40 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
645 /** | 713 /** |
646 * Displays the InternetDetails dialog with only the proxy settings visible. | 714 * Displays the InternetDetails dialog with only the proxy settings visible. |
647 */ | 715 */ |
648 DetailsInternetPage.showProxySettings = function() { | 716 DetailsInternetPage.showProxySettings = function() { |
649 var detailsPage = DetailsInternetPage.getInstance(); | 717 var detailsPage = DetailsInternetPage.getInstance(); |
650 $('network-details-header').hidden = true; | 718 $('network-details-header').hidden = true; |
651 $('buyplan-details').hidden = true; | 719 $('buyplan-details').hidden = true; |
652 $('activate-details').hidden = true; | 720 $('activate-details').hidden = true; |
653 $('view-account-details').hidden = true; | 721 $('view-account-details').hidden = true; |
654 $('web-proxy-auto-discovery').hidden = true; | 722 $('web-proxy-auto-discovery').hidden = true; |
655 detailsPage.cellular = false; | |
656 detailsPage.wireless = false; | |
657 detailsPage.vpn = false; | |
658 detailsPage.showProxy = true; | 723 detailsPage.showProxy = true; |
659 updateHidden('#internet-tab', true); | 724 updateHidden('#internet-tab', true); |
660 updateHidden('#details-tab-strip', true); | 725 updateHidden('#details-tab-strip', true); |
661 updateHidden('#details-internet-page .action-area', true); | 726 updateHidden('#details-internet-page .action-area', true); |
662 detailsPage.updateControls(); | 727 detailsPage.updateControls(); |
663 detailsPage.visible = true; | 728 detailsPage.visible = true; |
664 chrome.send('coreOptionsUserMetricsAction', | 729 chrome.send('coreOptionsUserMetricsAction', |
665 ['Options_NetworkShowProxyTab']); | 730 ['Options_NetworkShowProxyTab']); |
666 }; | 731 }; |
667 | 732 |
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
705 } | 770 } |
706 }; | 771 }; |
707 | 772 |
708 DetailsInternetPage.updateCarrier = function() { | 773 DetailsInternetPage.updateCarrier = function() { |
709 DetailsInternetPage.showCarrierChangeSpinner(false); | 774 DetailsInternetPage.showCarrierChangeSpinner(false); |
710 }; | 775 }; |
711 | 776 |
712 DetailsInternetPage.loginFromDetails = function() { | 777 DetailsInternetPage.loginFromDetails = function() { |
713 var data = $('connection-state').data; | 778 var data = $('connection-state').data; |
714 var servicePath = data.servicePath; | 779 var servicePath = data.servicePath; |
715 chrome.send('networkCommand', [data.Type, servicePath, 'connect']); | 780 chrome.send('networkCommand', [data.type, servicePath, 'connect']); |
716 OptionsPage.closeOverlay(); | 781 OptionsPage.closeOverlay(); |
717 }; | 782 }; |
718 | 783 |
719 DetailsInternetPage.disconnectNetwork = function() { | 784 DetailsInternetPage.disconnectNetwork = function() { |
720 var data = $('connection-state').data; | 785 var data = $('connection-state').data; |
721 var servicePath = data.servicePath; | 786 var servicePath = data.servicePath; |
722 chrome.send('networkCommand', [data.Type, servicePath, 'disconnect']); | 787 chrome.send('networkCommand', [data.type, servicePath, 'disconnect']); |
723 OptionsPage.closeOverlay(); | 788 OptionsPage.closeOverlay(); |
724 }; | 789 }; |
725 | 790 |
726 DetailsInternetPage.configureNetwork = function() { | 791 DetailsInternetPage.configureNetwork = function() { |
727 var data = $('connection-state').data; | 792 var data = $('connection-state').data; |
728 var servicePath = data.servicePath; | 793 var servicePath = data.servicePath; |
729 chrome.send('networkCommand', [data.Type, servicePath, 'configure']); | 794 chrome.send('networkCommand', [data.type, servicePath, 'configure']); |
730 OptionsPage.closeOverlay(); | 795 OptionsPage.closeOverlay(); |
731 }; | 796 }; |
732 | 797 |
733 DetailsInternetPage.activateFromDetails = function() { | 798 DetailsInternetPage.activateFromDetails = function() { |
734 var data = $('connection-state').data; | 799 var data = $('connection-state').data; |
735 var servicePath = data.servicePath; | 800 var servicePath = data.servicePath; |
736 if (data.Type == 'Cellular') | 801 if (data.type == 'Cellular') |
737 chrome.send('networkCommand', [data.Type, servicePath, 'activate']); | 802 chrome.send('networkCommand', [data.type, servicePath, 'activate']); |
738 OptionsPage.closeOverlay(); | 803 OptionsPage.closeOverlay(); |
739 }; | 804 }; |
740 | 805 |
741 DetailsInternetPage.setDetails = function() { | 806 DetailsInternetPage.setDetails = function() { |
742 var data = $('connection-state').data; | 807 var data = $('connection-state').data; |
743 var servicePath = data.servicePath; | 808 var servicePath = data.servicePath; |
744 if (data.Type == 'WiFi') { | 809 if (data.type == 'WiFi') { |
745 sendCheckedIfEnabled(servicePath, 'setPreferNetwork', | 810 sendCheckedIfEnabled(servicePath, 'setPreferNetwork', |
746 $('prefer-network-wifi')); | 811 $('prefer-network-wifi')); |
747 sendCheckedIfEnabled(servicePath, 'setAutoConnect', | 812 sendCheckedIfEnabled(servicePath, 'setAutoConnect', |
748 $('auto-connect-network-wifi')); | 813 $('auto-connect-network-wifi')); |
749 } else if (data.Type == 'Wimax') { | 814 } else if (data.type == 'Wimax') { |
750 sendCheckedIfEnabled(servicePath, 'setAutoConnect', | 815 sendCheckedIfEnabled(servicePath, 'setAutoConnect', |
751 $('auto-connect-network-wimax')); | 816 $('auto-connect-network-wimax')); |
752 } else if (data.Type == 'Cellular') { | 817 } else if (data.type == 'Cellular') { |
753 sendCheckedIfEnabled(servicePath, 'setAutoConnect', | 818 sendCheckedIfEnabled(servicePath, 'setAutoConnect', |
754 $('auto-connect-network-cellular')); | 819 $('auto-connect-network-cellular')); |
755 } else if (data.Type == 'VPN') { | 820 } else if (data.type == 'VPN') { |
756 chrome.send('setServerHostname', | 821 chrome.send('setServerHostname', |
757 [servicePath, | 822 [servicePath, |
758 $('inet-server-hostname').value]); | 823 $('inet-server-hostname').value]); |
759 sendCheckedIfEnabled(servicePath, 'setAutoConnect', | 824 sendCheckedIfEnabled(servicePath, 'setAutoConnect', |
760 $('auto-connect-network-vpn')); | 825 $('auto-connect-network-vpn')); |
761 } | 826 } |
762 | 827 |
763 var nameServerTypes = ['automatic', 'google', 'user']; | 828 var nameServerTypes = ['automatic', 'google', 'user']; |
764 var nameServerType = 'automatic'; | 829 var nameServerType = 'automatic'; |
765 for (var i = 0; i < nameServerTypes.length; ++i) { | 830 for (var i = 0; i < nameServerTypes.length; ++i) { |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
818 break; | 883 break; |
819 case 'user': | 884 case 'user': |
820 automaticDns.removeAttribute('selected'); | 885 automaticDns.removeAttribute('selected'); |
821 googleDns.removeAttribute('selected'); | 886 googleDns.removeAttribute('selected'); |
822 userDns.setAttribute('selected', ''); | 887 userDns.setAttribute('selected', ''); |
823 break; | 888 break; |
824 } | 889 } |
825 }; | 890 }; |
826 | 891 |
827 DetailsInternetPage.updateConnectionButtonVisibilty = function(data) { | 892 DetailsInternetPage.updateConnectionButtonVisibilty = function(data) { |
828 var connected = data.ConnectionState == 'Connected'; | 893 var connected = getActiveValue(data, 'ConnectionState') == 'Connected'; |
894 var connectable = getActiveValue(data, 'Connectable'); | |
829 $('details-internet-login').hidden = connected; | 895 $('details-internet-login').hidden = connected; |
830 $('details-internet-login').disabled = !data.Connectable; | 896 $('details-internet-login').disabled = !connectable; |
831 | 897 |
832 if (data.Type == 'Ethernet') { | 898 if (data.type == 'Ethernet') { |
833 // Ethernet can be configured while connected (e.g. to set security). | 899 // Ethernet can be configured while connected (e.g. to set security). |
834 $('details-internet-configure').hidden = false; | 900 $('details-internet-configure').hidden = false; |
835 } else if (!connected && | 901 } else if (!connected && |
836 (!data.Connectable || isSecureWiFiNetwork(data) || | 902 (!connectable || this.hasSecurity || |
837 (data.Type == 'Wimax' || data.Type == 'VPN'))) { | 903 (data.type == 'Wimax' || data.type == 'VPN'))) { |
838 $('details-internet-configure').hidden = false; | 904 $('details-internet-configure').hidden = false; |
839 } else { | 905 } else { |
840 $('details-internet-configure').hidden = true; | 906 $('details-internet-configure').hidden = true; |
841 } | 907 } |
842 | 908 |
843 if (data.Type == 'Ethernet') | 909 if (data.type == 'Ethernet') |
844 $('details-internet-disconnect').hidden = true; | 910 $('details-internet-disconnect').hidden = true; |
845 else | 911 else |
846 $('details-internet-disconnect').hidden = !connected; | 912 $('details-internet-disconnect').hidden = !connected; |
847 }; | 913 }; |
848 | 914 |
849 DetailsInternetPage.updateConnectionData = function(update) { | 915 DetailsInternetPage.updateConnectionData = function(update) { |
850 var detailsPage = DetailsInternetPage.getInstance(); | 916 var detailsPage = DetailsInternetPage.getInstance(); |
851 if (!detailsPage.visible) | 917 if (!detailsPage.visible) |
852 return; | 918 return; |
853 | 919 |
854 var data = $('connection-state').data; | 920 var data = $('connection-state').data; |
855 if (!data) | 921 if (!data) |
856 return; | 922 return; |
857 | 923 |
858 if (update.servicePath != data.servicePath) | 924 if (update.servicePath != data.servicePath) |
859 return; | 925 return; |
860 | 926 |
861 // Update our cached data object. | 927 // Update our cached data object. |
862 updateDataObject(data, update); | 928 updateDataObject(data, update); |
863 | 929 |
930 var connectionState = getActiveValue(data, 'ConnectionState'); | |
931 var connectionStateString = networkOncStateString(connectionState); | |
864 detailsPage.deviceConnected = data.deviceConnected; | 932 detailsPage.deviceConnected = data.deviceConnected; |
865 detailsPage.connecting = data.ConnectionState == 'Connecting'; | 933 detailsPage.connected = connectionState == 'Connected'; |
866 detailsPage.connected = data.ConnectionState == 'Connected'; | |
867 var connectionStateString = networkOncStateString(data.ConnectionState); | |
868 $('connection-state').textContent = connectionStateString; | 934 $('connection-state').textContent = connectionStateString; |
869 | 935 |
870 this.updateConnectionButtonVisibilty(data); | 936 this.updateConnectionButtonVisibilty(data); |
871 | 937 |
872 if (data.Type == 'WiFi') { | 938 if (data.type == 'WiFi') { |
873 $('wifi-connection-state').textContent = connectionStateString; | 939 $('wifi-connection-state').textContent = connectionStateString; |
874 } else if (data.Type == 'Wimax') { | 940 } else if (data.type == 'Wimax') { |
875 $('wimax-connection-state').textContent = connectionStateString; | 941 $('wimax-connection-state').textContent = connectionStateString; |
876 } else if (data.Type == 'Cellular') { | 942 } else if (data.type == 'Cellular') { |
877 $('activation-state').textContent = data.activationState; | 943 $('activation-state').textContent = data.activationState; |
878 | 944 |
879 $('buyplan-details').hidden = !data.showBuyButton; | 945 $('buyplan-details').hidden = !data.showBuyButton; |
880 $('view-account-details').hidden = !data.showViewAccountButton; | 946 $('view-account-details').hidden = !data.showViewAccountButton; |
881 | 947 |
882 $('activate-details').hidden = !data.showActivateButton; | 948 $('activate-details').hidden = !data.showActivateButton; |
883 if (data.showActivateButton) | 949 if (data.showActivateButton) |
884 $('details-internet-login').hidden = true; | 950 $('details-internet-login').hidden = true; |
885 | 951 |
886 if (detailsPage.gsm) { | 952 if (detailsPage.gsm) { |
887 // TODO(stevenjb): Use managed properties for policy controlled values. | 953 // TODO(stevenjb): Use managed properties for policy controlled values. |
888 var lockEnabled = data.simCardLockEnabled.value; | 954 var lockEnabled = data.simCardLockEnabled.value; |
889 $('sim-card-lock-enabled').checked = lockEnabled; | 955 $('sim-card-lock-enabled').checked = lockEnabled; |
890 $('change-pin').hidden = !lockEnabled; | 956 $('change-pin').hidden = !lockEnabled; |
891 } | 957 } |
892 } | 958 } |
893 | 959 |
894 $('connection-state').data = data; | 960 $('connection-state').data = data; |
895 }; | 961 }; |
896 | 962 |
897 DetailsInternetPage.showDetailedInfo = function(data) { | 963 DetailsInternetPage.showDetailedInfo = function(data) { |
898 var detailsPage = DetailsInternetPage.getInstance(); | 964 var detailsPage = DetailsInternetPage.getInstance(); |
899 | 965 |
966 data.type = getActiveValue(data, 'Type'); // Get Active Type value. | |
967 | |
900 // Populate header | 968 // Populate header |
901 $('network-details-title').textContent = getNetworkName(data); | 969 $('network-details-title').textContent = getNetworkName(data); |
902 var connectionStateString = networkOncStateString(data.ConnectionState); | 970 var connectionState = getActiveValue(data, 'ConnectionState'); |
971 var connectionStateString = networkOncStateString(connectionState); | |
972 detailsPage.connected = connectionState == 'Connected'; | |
903 $('network-details-subtitle-status').textContent = connectionStateString; | 973 $('network-details-subtitle-status').textContent = connectionStateString; |
904 var typeKey = null; | 974 var typeKey = null; |
905 switch (data.Type) { | 975 switch (data.type) { |
906 case 'Ethernet': | 976 case 'Ethernet': |
907 typeKey = 'ethernetTitle'; | 977 typeKey = 'ethernetTitle'; |
908 break; | 978 break; |
909 case 'WiFi': | 979 case 'WiFi': |
910 typeKey = 'wifiTitle'; | 980 typeKey = 'wifiTitle'; |
911 break; | 981 break; |
912 case 'Wimax': | 982 case 'Wimax': |
913 typeKey = 'wimaxTitle'; | 983 typeKey = 'wimaxTitle'; |
914 break; | 984 break; |
915 case 'Cellular': | 985 case 'Cellular': |
916 typeKey = 'cellularTitle'; | 986 typeKey = 'cellularTitle'; |
917 break; | 987 break; |
918 case 'VPN': | 988 case 'VPN': |
919 typeKey = 'vpnTitle'; | 989 typeKey = 'vpnTitle'; |
920 break; | 990 break; |
921 } | 991 } |
922 var typeLabel = $('network-details-subtitle-type'); | 992 var typeLabel = $('network-details-subtitle-type'); |
923 var typeSeparator = $('network-details-subtitle-separator'); | 993 var typeSeparator = $('network-details-subtitle-separator'); |
924 if (typeKey) { | 994 if (typeKey) { |
925 typeLabel.textContent = loadTimeData.getString(typeKey); | 995 typeLabel.textContent = loadTimeData.getString(typeKey); |
926 typeLabel.hidden = false; | 996 typeLabel.hidden = false; |
927 typeSeparator.hidden = false; | 997 typeSeparator.hidden = false; |
928 } else { | 998 } else { |
929 typeLabel.hidden = true; | 999 typeLabel.hidden = true; |
930 typeSeparator.hidden = true; | 1000 typeSeparator.hidden = true; |
931 } | 1001 } |
932 | 1002 |
933 // TODO(chocobo): Is this hack to cache the data here reasonable? | 1003 // TODO(stevenjb): Find a more appropriate place to cache data. |
934 // TODO(kevers): Find more appropriate place to cache data. | |
935 $('connection-state').data = data; | 1004 $('connection-state').data = data; |
936 | 1005 |
937 $('buyplan-details').hidden = true; | 1006 $('buyplan-details').hidden = true; |
938 $('activate-details').hidden = true; | 1007 $('activate-details').hidden = true; |
939 $('view-account-details').hidden = true; | 1008 $('view-account-details').hidden = true; |
940 | 1009 |
941 this.updateConnectionButtonVisibilty(data); | 1010 this.updateConnectionButtonVisibilty(data); |
942 | 1011 |
943 $('web-proxy-auto-discovery').hidden = true; | 1012 $('web-proxy-auto-discovery').hidden = true; |
944 | 1013 |
945 detailsPage.deviceConnected = data.deviceConnected; | 1014 detailsPage.deviceConnected = data.deviceConnected; |
946 detailsPage.connecting = data.ConnectionState == 'Connecting'; | 1015 detailsPage.connected = connectionState == 'Connected'; |
947 detailsPage.connected = data.ConnectionState == 'Connected'; | |
948 | 1016 |
949 // Only show proxy for remembered networks. | 1017 // Only show proxy for remembered networks. |
950 if (data.remembered) { | 1018 if (data.remembered) { |
951 detailsPage.showProxy = true; | 1019 detailsPage.showProxy = true; |
952 chrome.send('selectNetwork', [data.servicePath]); | 1020 chrome.send('selectNetwork', [data.servicePath]); |
953 } else { | 1021 } else { |
954 detailsPage.showProxy = false; | 1022 detailsPage.showProxy = false; |
955 } | 1023 } |
956 detailsPage.showStaticIPConfig = data.showStaticIPConfig; | |
957 $('connection-state').textContent = connectionStateString; | 1024 $('connection-state').textContent = connectionStateString; |
958 | 1025 |
959 var ipAutoConfig = data.ipAutoConfig ? 'automatic' : 'user'; | 1026 var ipAutoConfig = data.ipAutoConfig ? 'automatic' : 'user'; |
960 $('ip-automatic-configuration-checkbox').checked = data.ipAutoConfig; | 1027 $('ip-automatic-configuration-checkbox').checked = data.ipAutoConfig; |
961 var inetAddress = {autoConfig: ipAutoConfig}; | 1028 var inetAddress = {autoConfig: ipAutoConfig}; |
962 var inetNetmask = {autoConfig: ipAutoConfig}; | 1029 var inetNetmask = {autoConfig: ipAutoConfig}; |
963 var inetGateway = {autoConfig: ipAutoConfig}; | 1030 var inetGateway = {autoConfig: ipAutoConfig}; |
964 | 1031 |
965 if (data.ipconfig.value) { | 1032 if (data.ipconfig.value) { |
966 inetAddress.automatic = data.ipconfig.value.address; | 1033 inetAddress.automatic = data.ipconfig.value.address; |
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1037 nameServerModels.push({value: nameServersUser[i] || ''}); | 1104 nameServerModels.push({value: nameServersUser[i] || ''}); |
1038 | 1105 |
1039 $(data.nameServerType + '-dns-radio').checked = true; | 1106 $(data.nameServerType + '-dns-radio').checked = true; |
1040 configureAddressField($('ipconfig-dns1'), nameServerModels[0]); | 1107 configureAddressField($('ipconfig-dns1'), nameServerModels[0]); |
1041 configureAddressField($('ipconfig-dns2'), nameServerModels[1]); | 1108 configureAddressField($('ipconfig-dns2'), nameServerModels[1]); |
1042 configureAddressField($('ipconfig-dns3'), nameServerModels[2]); | 1109 configureAddressField($('ipconfig-dns3'), nameServerModels[2]); |
1043 configureAddressField($('ipconfig-dns4'), nameServerModels[3]); | 1110 configureAddressField($('ipconfig-dns4'), nameServerModels[3]); |
1044 | 1111 |
1045 DetailsInternetPage.updateNameServerDisplay(data.nameServerType); | 1112 DetailsInternetPage.updateNameServerDisplay(data.nameServerType); |
1046 | 1113 |
1047 if (data.MacAddress) { | 1114 var macAddress = getActiveValue(data, 'MacAddress'); |
1048 $('hardware-address').textContent = data.MacAddress; | 1115 if (macAddress) { |
1116 $('hardware-address').textContent = macAddress; | |
1049 $('hardware-address-row').style.display = 'table-row'; | 1117 $('hardware-address-row').style.display = 'table-row'; |
1050 } else { | 1118 } else { |
1051 // This is most likely a device without a hardware address. | 1119 // This is most likely a device without a hardware address. |
1052 $('hardware-address-row').style.display = 'none'; | 1120 $('hardware-address-row').style.display = 'none'; |
1053 } | 1121 } |
1054 | 1122 |
1123 var setOrHideEntry = function(field, property) { | |
1124 var fieldEntryName = field + '-entry'; | |
pneubeck (no reviews)
2014/07/30 20:12:45
Please consider this very thoroughly.
I usually pr
stevenjb
2014/07/30 21:57:48
I generally agree with you on the importance of se
| |
1125 if (property) { | |
1126 $(field).textContent = property; | |
1127 $(fieldEntryName).hidden = false; | |
1128 } else { | |
1129 $(fieldEntryName).hidden = true; | |
1130 } | |
1131 }; | |
1132 | |
1133 var setOrHideParent = function(field, property) { | |
1134 if (property) { | |
1135 $(field).textContent = property; | |
1136 $(field).parentElement.hidden = false; | |
1137 } else { | |
1138 $(field).parentElement.hidden = true; | |
1139 } | |
1140 }; | |
1141 | |
1142 var networkName = getNetworkName(data); | |
1143 | |
1055 // Signal strength as percentage (for WiFi and Wimax). | 1144 // Signal strength as percentage (for WiFi and Wimax). |
1056 var signalStrength = | 1145 var signalStrength; |
1057 (data.WiFi && data.WiFi.SignalStrength) ? data.WiFi.SignalStrength : 0; | 1146 if (data.type == 'WiFi' || data.type == 'Wimax') { |
1147 signalStrength = | |
1148 getActiveDictionaryValue(data, data.type, 'SignalStrength'); | |
1149 } | |
1150 if (!signalStrength) | |
1151 signalStrength = 0; | |
1058 var strengthFormat = loadTimeData.getString('inetSignalStrengthFormat'); | 1152 var strengthFormat = loadTimeData.getString('inetSignalStrengthFormat'); |
1059 strengthFormat = strengthFormat.replace('$1', signalStrength); | 1153 var strengthString = strengthFormat.replace('$1', signalStrength); |
1060 | 1154 |
1061 if (data.Type == 'WiFi') { | 1155 detailsPage.type = data.type; |
1156 if (data.type == 'WiFi') { | |
1157 assert(data.WiFi, 'WiFi network has no WiFi object' + networkName); | |
1062 OptionsPage.showTab($('wifi-network-nav-tab')); | 1158 OptionsPage.showTab($('wifi-network-nav-tab')); |
1063 detailsPage.wireless = true; | |
1064 detailsPage.vpn = false; | |
1065 detailsPage.ethernet = false; | |
1066 detailsPage.cellular = false; | |
1067 detailsPage.gsm = false; | 1159 detailsPage.gsm = false; |
1068 detailsPage.wimax = false; | |
1069 detailsPage.shared = data.shared; | 1160 detailsPage.shared = data.shared; |
1070 $('wifi-connection-state').textContent = connectionStateString; | 1161 $('wifi-connection-state').textContent = connectionStateString; |
1071 $('wifi-ssid').textContent = data.WiFi ? data.WiFi.SSID : data.Name; | 1162 var ssid = getActiveDictionaryValue(data, 'WiFi', 'SSID'); |
1072 if (data.WiFi && data.WiFi.BSSID) { | 1163 $('wifi-ssid').textContent = ssid ? ssid : networkName; |
1073 $('wifi-bssid').textContent = data.WiFi.BSSID; | 1164 setOrHideEntry('wifi-bssid', |
1074 $('wifi-bssid-entry').hidden = false; | 1165 getActiveDictionaryValue(data, 'WiFi', 'BSSID')); |
1075 } else { | 1166 var security = getActiveDictionaryValue(data, 'WiFi', 'Security'); |
1076 $('wifi-bssid-entry').hidden = true; | 1167 if (security == 'None') |
1077 } | 1168 security = undefined; |
1078 $('wifi-ip-address').textContent = inetAddress.value; | 1169 setOrHideEntry('wifi-security', security); |
1079 $('wifi-netmask').textContent = inetNetmask.value; | |
1080 $('wifi-gateway').textContent = inetGateway.value; | |
1081 $('wifi-name-servers').textContent = inetNameServers; | |
1082 var hasSecurity = isSecureWiFiNetwork(data); | |
1083 if (hasSecurity) { | |
1084 $('wifi-security').textContent = data.WiFi.Security; | |
1085 $('wifi-security-entry').hidden = false; | |
1086 } else { | |
1087 $('wifi-security-entry').hidden = true; | |
1088 } | |
1089 // Frequency is in MHz. | 1170 // Frequency is in MHz. |
1090 var frequency = | 1171 var frequency = getActiveDictionaryValue(data, 'WiFi', 'Frequency'); |
1091 data.WiFi && data.WiFi.Frequency ? data.WiFi.Frequency : 0; | 1172 if (!frequency) |
1173 frequency = 0; | |
1092 var frequencyFormat = loadTimeData.getString('inetFrequencyFormat'); | 1174 var frequencyFormat = loadTimeData.getString('inetFrequencyFormat'); |
1093 frequencyFormat = frequencyFormat.replace('$1', frequency); | 1175 frequencyFormat = frequencyFormat.replace('$1', frequency); |
1094 $('wifi-frequency').textContent = frequencyFormat; | 1176 $('wifi-frequency').textContent = frequencyFormat; |
1095 $('wifi-signal-strength').textContent = strengthFormat; | 1177 $('wifi-signal-strength').textContent = strengthString; |
1096 if (data.MacAddress) { | 1178 setOrHideEntry('wifi-hardware-address', |
1097 $('wifi-hardware-address').textContent = data.MacAddress; | 1179 getActiveValue(data, 'MacAddress')); |
1098 $('wifi-hardware-address-entry').hidden = false; | |
1099 } else { | |
1100 $('wifi-hardware-address-entry').hidden = true; | |
1101 } | |
1102 detailsPage.showPreferred = data.remembered; | 1180 detailsPage.showPreferred = data.remembered; |
1103 $('prefer-network-wifi').checked = data.preferred.value; | 1181 $('prefer-network-wifi').checked = data.preferred.value; |
1104 $('prefer-network-wifi').disabled = !data.remembered; | 1182 $('prefer-network-wifi').disabled = !data.remembered; |
1105 $('auto-connect-network-wifi').checked = data.autoConnect.value; | 1183 $('auto-connect-network-wifi').checked = |
1184 getActiveValue(data, 'AutoConnect'); | |
1106 $('auto-connect-network-wifi').disabled = !data.remembered; | 1185 $('auto-connect-network-wifi').disabled = !data.remembered; |
1107 detailsPage.hasSecurity = hasSecurity; | 1186 detailsPage.hasSecurity = security != undefined; |
1108 } else if (data.Type == 'Wimax') { | 1187 } else if (data.type == 'Wimax') { |
1188 assert(data.Wimax, 'Wimax network has no Wimax object' + networkName); | |
1109 OptionsPage.showTab($('wimax-network-nav-tab')); | 1189 OptionsPage.showTab($('wimax-network-nav-tab')); |
1110 detailsPage.wimax = true; | |
1111 detailsPage.wireless = false; | |
1112 detailsPage.vpn = false; | |
1113 detailsPage.ethernet = false; | |
1114 detailsPage.cellular = false; | |
1115 detailsPage.gsm = false; | 1190 detailsPage.gsm = false; |
1116 detailsPage.shared = data.shared; | 1191 detailsPage.shared = data.shared; |
1117 detailsPage.showPreferred = data.remembered; | 1192 detailsPage.showPreferred = data.remembered; |
1118 $('wimax-connection-state').textContent = connectionStateString; | 1193 $('wimax-connection-state').textContent = connectionStateString; |
1119 $('auto-connect-network-wimax').checked = data.autoConnect.value; | 1194 $('auto-connect-network-wimax').checked = |
1195 getActiveValue(data, 'AutoConnect'); | |
1120 $('auto-connect-network-wimax').disabled = !data.remembered; | 1196 $('auto-connect-network-wimax').disabled = !data.remembered; |
1121 if (data.identity) { | 1197 var identity; |
1122 $('wimax-eap-identity').textContent = data.identity; | 1198 if (data.Wimax.EAP) |
1123 $('wimax-eap-identity-entry').hidden = false; | 1199 identity = getActiveValue(data.Wimax.EAP, 'Identity'); |
1124 } else { | 1200 setOrHideEntry('wifi-eap-identity', identity); |
pneubeck (no reviews)
2014/07/30 20:12:46
could actually be setOrHideParent in this case.
stevenjb
2014/07/30 21:57:47
So, this should actually be wimax-eap-identity, oo
| |
1125 $('wimax-eap-identity-entry').hidden = true; | 1201 $('wimax-signal-strength').textContent = strengthString; |
1126 } | 1202 } else if (data.type == 'Cellular') { |
1127 $('wimax-signal-strength').textContent = strengthFormat; | 1203 assert(data.Cellular, |
1128 } else if (data.Type == 'Cellular') { | 1204 'Cellular network has no Cellular object' + networkName); |
1129 OptionsPage.showTab($('cellular-conn-nav-tab')); | 1205 OptionsPage.showTab($('cellular-conn-nav-tab')); |
1130 detailsPage.ethernet = false; | |
1131 detailsPage.wireless = false; | |
1132 detailsPage.wimax = false; | |
1133 detailsPage.vpn = false; | |
1134 detailsPage.cellular = true; | |
1135 if (data.showCarrierSelect && data.currentCarrierIndex != -1) { | 1206 if (data.showCarrierSelect && data.currentCarrierIndex != -1) { |
1136 var carrierSelector = $('select-carrier'); | 1207 var carrierSelector = $('select-carrier'); |
1137 carrierSelector.onchange = DetailsInternetPage.handleCarrierChanged; | 1208 carrierSelector.onchange = DetailsInternetPage.handleCarrierChanged; |
1138 carrierSelector.options.length = 0; | 1209 carrierSelector.options.length = 0; |
1139 for (var i = 0; i < data.carriers.length; ++i) { | 1210 for (var i = 0; i < data.carriers.length; ++i) { |
1140 var option = document.createElement('option'); | 1211 var option = document.createElement('option'); |
1141 option.textContent = data.carriers[i]; | 1212 option.textContent = data.carriers[i]; |
1142 carrierSelector.add(option); | 1213 carrierSelector.add(option); |
1143 } | 1214 } |
1144 carrierSelector.selectedIndex = data.currentCarrierIndex; | 1215 carrierSelector.selectedIndex = data.currentCarrierIndex; |
1145 } else { | 1216 } else { |
1146 $('service-name').textContent = getNetworkName(data); | 1217 $('service-name').textContent = networkName; |
1147 } | 1218 } |
1148 | 1219 |
1149 $('network-technology').textContent = data.Cellular.NetworkTechnology; | 1220 $('network-technology').textContent = |
1221 getActiveDictionaryValue(data, 'Cellular', 'NetworkTechnology'); | |
1150 $('activation-state').textContent = data.activationState; | 1222 $('activation-state').textContent = data.activationState; |
1151 $('roaming-state').textContent = data.roamingState; | 1223 $('roaming-state').textContent = data.roamingState; |
1152 $('restricted-pool').textContent = data.restrictedPool; | 1224 $('restricted-pool').textContent = data.restrictedPool; |
1153 $('error-state').textContent = data.errorState; | 1225 $('error-state').textContent = data.errorMessage; |
1154 $('manufacturer').textContent = data.Cellular.Manufacturer; | 1226 $('manufacturer').textContent = |
1155 $('model-id').textContent = data.Cellular.ModelID; | 1227 getActiveDictionaryValue(data, 'Cellular', 'Manufacturer'); |
1156 $('firmware-revision').textContent = data.Cellular.FirmwareRevision; | 1228 $('model-id').textContent = |
1157 $('hardware-revision').textContent = data.Cellular.HardwareRevision; | 1229 getActiveDictionaryValue(data, 'Cellular', 'ModelID'); |
1158 $('mdn').textContent = data.Cellular.MDN; | 1230 $('firmware-revision').textContent = |
1231 getActiveDictionaryValue(data, 'Cellular', 'FirmwareRevision'); | |
1232 $('hardware-revision').textContent = | |
1233 getActiveDictionaryValue(data, 'Cellular', 'HardwareRevision'); | |
1234 $('mdn').textContent = getActiveDictionaryValue(data, 'Cellular', 'MDN'); | |
1159 | 1235 |
1160 // Show ServingOperator properties only if available. | 1236 // Show ServingOperator properties only if available. |
1237 var servingOperator; | |
stevenjb
2014/07/29 23:21:11
Removed locally.
stevenjb
2014/07/30 21:57:47
Done.
| |
1161 if (data.Cellular.ServingOperator) { | 1238 if (data.Cellular.ServingOperator) { |
1162 $('operator-name').textContent = data.Cellular.ServingOperator.Name; | 1239 $('operator-name').textContent = |
1163 $('operator-code').textContent = data.Cellular.ServingOperator.Code; | 1240 getActiveValue(data.Cellular.ServingOperator, 'Name'); |
1241 $('operator-code').textContent = | |
1242 getActiveValue(data.Cellular.ServingOperator, 'Code'); | |
1164 } else { | 1243 } else { |
1165 $('operator-name').parentElement.hidden = true; | 1244 $('operator-name').parentElement.hidden = true; |
1166 $('operator-code').parentElement.hidden = true; | 1245 $('operator-code').parentElement.hidden = true; |
1167 } | 1246 } |
1168 // Make sure that GSM/CDMA specific properties that shouldn't be hidden | 1247 // Make sure that GSM/CDMA specific properties that shouldn't be hidden |
1169 // are visible. | 1248 // are visible. |
1170 updateHidden('#details-internet-page .gsm-only', false); | 1249 updateHidden('#details-internet-page .gsm-only', false); |
1171 updateHidden('#details-internet-page .cdma-only', false); | 1250 updateHidden('#details-internet-page .cdma-only', false); |
1172 | 1251 |
1173 // Show IMEI/ESN/MEID/MIN/PRL only if they are available. | 1252 // Show IMEI/ESN/MEID/MIN/PRL only if they are available. |
1174 (function() { | 1253 setOrHideParent('esn', getActiveDictionaryValue(data, 'Cellular', 'ESN')); |
1175 var setContentOrHide = function(field, value) { | 1254 setOrHideParent( |
1176 if (value) | 1255 'imei', getActiveDictionaryValue(data, 'Cellular', 'IMEI')); |
1177 $(field).textContent = value; | 1256 setOrHideParent( |
1178 else | 1257 'meid', getActiveDictionaryValue(data, 'Cellular', 'MEID')); |
1179 $(field).parentElement.hidden = true; | 1258 setOrHideParent('min', getActiveDictionaryValue(data, 'Cellular', 'MIN')); |
1180 }; | 1259 setOrHideParent( |
1181 setContentOrHide('esn', data.Cellular.ESN); | 1260 'prl-version', |
1182 setContentOrHide('imei', data.Cellular.IMEI); | 1261 getActiveDictionaryValue(data, 'Cellular', 'PRLVersion')); |
1183 setContentOrHide('meid', data.Cellular.MEID); | 1262 |
1184 setContentOrHide('min', data.Cellular.MIN); | 1263 var family = getActiveDictionaryValue(data, 'Cellular', 'GSM'); |
1185 setContentOrHide('prl-version', data.Cellular.PRLVersion); | 1264 detailsPage.gsm = family == 'GSM'; |
1186 })(); | |
1187 detailsPage.gsm = data.Cellular.Family == 'GSM'; | |
1188 if (detailsPage.gsm) { | 1265 if (detailsPage.gsm) { |
1189 $('iccid').textContent = data.Cellular.ICCID; | 1266 $('iccid').textContent = |
1190 $('imsi').textContent = data.Cellular.IMSI; | 1267 getActiveDictionaryValue(data, 'Cellular', 'ICCID'); |
1268 $('imsi').textContent = | |
1269 getActiveDictionaryValue(data, 'Cellular', 'IMSI'); | |
1191 | 1270 |
1192 var apnSelector = $('select-apn'); | 1271 var apnSelector = $('select-apn'); |
1193 // Clear APN lists, keep only last element that "other". | 1272 // Clear APN lists, keep only last element that "other". |
1194 while (apnSelector.length != 1) | 1273 while (apnSelector.length != 1) |
1195 apnSelector.remove(0); | 1274 apnSelector.remove(0); |
1196 var otherOption = apnSelector[0]; | 1275 var otherOption = apnSelector[0]; |
1197 data.selectedApn = -1; | 1276 data.selectedApn = -1; |
1198 data.userApnIndex = -1; | 1277 data.userApnIndex = -1; |
1199 var apnList = data.providerApnList.value; | 1278 var apnList = data.providerApnList.value; |
1200 for (var i = 0; i < apnList.length; i++) { | 1279 for (var i = 0; i < apnList.length; i++) { |
(...skipping 28 matching lines...) Expand all Loading... | |
1229 data.userApnIndex = data.selectedApn; | 1308 data.userApnIndex = data.selectedApn; |
1230 } | 1309 } |
1231 apnSelector.selectedIndex = data.selectedApn; | 1310 apnSelector.selectedIndex = data.selectedApn; |
1232 updateHidden('.apn-list-view', false); | 1311 updateHidden('.apn-list-view', false); |
1233 updateHidden('.apn-details-view', true); | 1312 updateHidden('.apn-details-view', true); |
1234 // TODO(stevenjb): Used managed properties for policy controlled value. | 1313 // TODO(stevenjb): Used managed properties for policy controlled value. |
1235 var lockEnabled = data.simCardLockEnabled.value; | 1314 var lockEnabled = data.simCardLockEnabled.value; |
1236 $('sim-card-lock-enabled').checked = lockEnabled; | 1315 $('sim-card-lock-enabled').checked = lockEnabled; |
1237 $('change-pin').hidden = !lockEnabled; | 1316 $('change-pin').hidden = !lockEnabled; |
1238 } | 1317 } |
1239 $('auto-connect-network-cellular').checked = data.autoConnect.value; | 1318 $('auto-connect-network-cellular').checked = |
1319 getActiveValue(data, 'AutoConnect'); | |
1240 $('auto-connect-network-cellular').disabled = false; | 1320 $('auto-connect-network-cellular').disabled = false; |
1241 | 1321 |
1242 $('buyplan-details').hidden = !data.showBuyButton; | 1322 $('buyplan-details').hidden = !data.showBuyButton; |
1243 $('view-account-details').hidden = !data.showViewAccountButton; | 1323 $('view-account-details').hidden = !data.showViewAccountButton; |
1244 $('activate-details').hidden = !data.showActivateButton; | 1324 $('activate-details').hidden = !data.showActivateButton; |
1245 if (data.showActivateButton) { | 1325 if (data.showActivateButton) { |
1246 $('details-internet-login').hidden = true; | 1326 $('details-internet-login').hidden = true; |
1247 } | 1327 } |
1248 } else if (data.Type == 'VPN') { | 1328 } else if (data.type == 'VPN') { |
1249 OptionsPage.showTab($('vpn-nav-tab')); | 1329 OptionsPage.showTab($('vpn-nav-tab')); |
1250 detailsPage.wireless = false; | |
1251 detailsPage.wimax = false; | |
1252 detailsPage.vpn = true; | |
1253 detailsPage.ethernet = false; | |
1254 detailsPage.cellular = false; | |
1255 detailsPage.gsm = false; | 1330 detailsPage.gsm = false; |
1256 $('inet-service-name').textContent = getNetworkName(data); | 1331 $('inet-service-name').textContent = networkName; |
1257 $('inet-provider-type').textContent = data.providerType; | 1332 $('inet-provider-type').textContent = data.providerType; |
1258 $('inet-username').textContent = data.username; | 1333 $('inet-username').textContent = data.username; |
1259 var inetServerHostname = $('inet-server-hostname'); | 1334 var inetServerHostname = $('inet-server-hostname'); |
1260 inetServerHostname.value = data.serverHostname.value; | 1335 inetServerHostname.value = data.serverHostname.value; |
1261 inetServerHostname.resetHandler = function() { | 1336 inetServerHostname.resetHandler = function() { |
1262 OptionsPage.hideBubble(); | 1337 OptionsPage.hideBubble(); |
1263 inetServerHostname.value = data.serverHostname.recommendedValue; | 1338 inetServerHostname.value = data.serverHostname.recommendedValue; |
1264 }; | 1339 }; |
1265 $('auto-connect-network-vpn').checked = data.autoConnect.value; | 1340 $('auto-connect-network-vpn').checked = |
1341 getActiveValue(data, 'AutoConnect'); | |
1266 $('auto-connect-network-vpn').disabled = false; | 1342 $('auto-connect-network-vpn').disabled = false; |
1267 } else { | 1343 } else { |
1268 OptionsPage.showTab($('internet-nav-tab')); | 1344 OptionsPage.showTab($('internet-nav-tab')); |
1269 detailsPage.ethernet = true; | |
1270 detailsPage.wireless = false; | |
1271 detailsPage.wimax = false; | |
1272 detailsPage.vpn = false; | |
1273 detailsPage.cellular = false; | |
1274 detailsPage.gsm = false; | |
1275 } | 1345 } |
1276 | 1346 |
1277 // Update controlled option indicators. | 1347 // Update controlled option indicators. |
1278 indicators = cr.doc.querySelectorAll( | 1348 var indicators = cr.doc.querySelectorAll( |
1279 '#details-internet-page .controlled-setting-indicator'); | 1349 '#details-internet-page .controlled-setting-indicator'); |
1280 for (var i = 0; i < indicators.length; i++) { | 1350 for (var i = 0; i < indicators.length; i++) { |
1281 var propName = indicators[i].getAttribute('data'); | 1351 var prop = indicators[i].hasAttribute('managed') ? 'managed' : 'data'; |
pneubeck (no reviews)
2014/07/30 20:12:45
prop -> attributeName or managedType ?
"prop" ind
stevenjb
2014/07/30 21:57:48
Done.
| |
1352 var propName = indicators[i].getAttribute(prop); | |
1282 if (!propName || !data[propName]) | 1353 if (!propName || !data[propName]) |
1283 continue; | 1354 continue; |
1284 var propData = data[propName]; | 1355 var event; |
1285 // Create a synthetic pref change event decorated as | 1356 if (prop == 'managed') |
1286 // CoreOptionsHandler::CreateValueForPref() does. | 1357 event = detailsPage.createManagedEvent_(propName, data[propName]); |
1287 var event = new Event(name); | 1358 else |
1288 event.value = { | 1359 event = detailsPage.createControlledEvent_(propName, data[propName]); |
1289 value: propData.value, | |
1290 controlledBy: propData.controlledBy, | |
1291 recommendedValue: propData.recommendedValue | |
1292 }; | |
1293 indicators[i].handlePrefChange(event); | 1360 indicators[i].handlePrefChange(event); |
1294 var forElement = $(indicators[i].getAttribute('for')); | 1361 var forElement = $(indicators[i].getAttribute('for')); |
1295 if (forElement) { | 1362 if (forElement) { |
1296 if (propData.controlledBy == 'policy') | 1363 if (event.value.controlledBy == 'policy') |
1297 forElement.disabled = true; | 1364 forElement.disabled = true; |
1298 if (forElement.resetHandler) | 1365 if (forElement.resetHandler) |
1299 indicators[i].resetHandler = forElement.resetHandler; | 1366 indicators[i].resetHandler = forElement.resetHandler; |
1300 } | 1367 } |
1301 } | 1368 } |
1302 | 1369 |
1303 detailsPage.updateControls(); | 1370 detailsPage.updateControls(); |
1304 | 1371 |
1305 // Don't show page name in address bar and in history to prevent people | 1372 // Don't show page name in address bar and in history to prevent people |
1306 // navigate here by hand and solve issue with page session restore. | 1373 // navigate here by hand and solve issue with page session restore. |
1307 OptionsPage.showPageByName('detailsInternetPage', false); | 1374 OptionsPage.showPageByName('detailsInternetPage', false); |
1308 }; | 1375 }; |
1309 | 1376 |
1310 return { | 1377 return { |
1311 DetailsInternetPage: DetailsInternetPage | 1378 DetailsInternetPage: DetailsInternetPage |
1312 }; | 1379 }; |
1313 }); | 1380 }); |
OLD | NEW |