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

Side by Side Diff: chrome/browser/resources/options/chromeos/internet_detail.js

Issue 427903004: Support Managed NetworkState format dictionaries for controlled settings. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: . Created 6 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 | Annotate | Revision Log
OLDNEW
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
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
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
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
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
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
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
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
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
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 });
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698