Chromium Code Reviews| Index: chrome/browser/resources/options/chromeos/internet_options.js |
| diff --git a/chrome/browser/resources/options/chromeos/internet_options.js b/chrome/browser/resources/options/chromeos/internet_options.js |
| index 0580add65a4c945733d7761d12824d24c17c1c6d..d26c850e845ff811d4f5caf38546b70d65d24491 100644 |
| --- a/chrome/browser/resources/options/chromeos/internet_options.js |
| +++ b/chrome/browser/resources/options/chromeos/internet_options.js |
| @@ -44,6 +44,8 @@ cr.define('options', function() { |
| options.internet.NetworkElement.decorate($('remembered-list')); |
| $('remembered-list').load(templateData.rememberedList); |
| + this.updatePolicyIndicatorVisibility_(); |
| + |
| options.internet.CellularPlanElement.decorate($('planList')); |
| $('wired-section').hidden = (templateData.wiredList.length == 0); |
| @@ -109,11 +111,11 @@ cr.define('options', function() { |
| data.userApnIndex = -1; |
| } |
| - if (data.providerApnList.length > 0) { |
| + if (data.providerApnList.value.length > 0) { |
| var iApn = 0; |
| - data.apn.apn = data.providerApnList[iApn].apn; |
| - data.apn.username = data.providerApnList[iApn].username; |
| - data.apn.password = data.providerApnList[iApn].password; |
| + data.apn.apn = data.providerApnList.value[iApn].apn; |
| + data.apn.username = data.providerApnList.value[iApn].username; |
| + data.apn.password = data.providerApnList.value[iApn].password; |
| chrome.send('setApn', [String(data.servicePath), |
| String(data.apn.apn), |
| String(data.apn.username), |
| @@ -184,10 +186,11 @@ cr.define('options', function() { |
| var data = $('connectionState').data; |
| var apnSelector = $('selectApn'); |
| if (apnSelector[apnSelector.selectedIndex].value != -1) { |
| + var apnList = data.providerApnList.value; |
| chrome.send('setApn', [String(data.servicePath), |
| - String(data.providerApnList[apnSelector.selectedIndex].apn), |
| - String(data.providerApnList[apnSelector.selectedIndex].username), |
| - String(data.providerApnList[apnSelector.selectedIndex].password) |
| + String(apnList[apnSelector.selectedIndex].apn), |
| + String(apnList[apnSelector.selectedIndex].username), |
| + String(apnList[apnSelector.selectedIndex].password) |
| ]); |
| data.selectedApn = apnSelector.selectedIndex; |
| } else if (apnSelector.selectedIndex == data.userApnIndex) { |
| @@ -261,6 +264,22 @@ cr.define('options', function() { |
| // is used in supporting infrastructure now. |
| if (accesslocked && DetailsInternetPage.getInstance().visible) |
| this.closeOverlay(); |
| + }, |
| + |
| + /** |
| + * Updates the policy indicator visibility. Space is only allocate for the |
|
James Hawkins
2011/11/28 21:38:06
s/allocate/allocated/
Mattias Nissler (ping if slow)
2011/11/29 14:48:50
Done.
|
| + * policy indicators if there is at least one visible. |
| + * @private. |
| + */ |
| + updatePolicyIndicatorVisibility_: function() { |
| + var page = $('internetPage'); |
| + if (page.querySelectorAll( |
| + '.network-item > .controlled-setting-indicator[controlled-by]') |
| + .length) { |
| + page.classList.remove('hide-indicators'); |
| + } else { |
| + page.classList.add('hide-indicators'); |
| + } |
| } |
| }; |
| @@ -372,6 +391,8 @@ cr.define('options', function() { |
| $('vpn-list').load(data.vpnList); |
| $('remembered-list').load(data.rememberedList); |
| + self.updatePolicyIndicatorVisibility_(); |
| + |
| $('wired-section').hidden = (data.wiredList.length == 0); |
| $('wireless-section').hidden = (data.wirelessList.length == 0); |
| $('vpn-section').hidden = (data.vpnList.length == 0); |
| @@ -433,17 +454,17 @@ cr.define('options', function() { |
| var inetGateway = ''; |
| var inetDns = ''; |
| $('ipTypeDHCP').checked = true; |
| - if (data.ipconfigStatic) { |
| - inetAddress = data.ipconfigStatic.address; |
| - inetSubnetAddress = data.ipconfigStatic.subnetAddress; |
| - inetGateway = data.ipconfigStatic.gateway; |
| - inetDns = data.ipconfigStatic.dns; |
| + if (data.ipconfigStatic.value) { |
| + inetAddress = data.ipconfigStatic.value.address; |
| + inetSubnetAddress = data.ipconfigStatic.value.subnetAddress; |
| + inetGateway = data.ipconfigStatic.value.gateway; |
| + inetDns = data.ipconfigStatic.value.dns; |
| $('ipTypeStatic').checked = true; |
| - } else if (data.ipconfigDHCP) { |
| - inetAddress = data.ipconfigDHCP.address; |
| - inetSubnetAddress = data.ipconfigDHCP.subnetAddress; |
| - inetGateway = data.ipconfigDHCP.gateway; |
| - inetDns = data.ipconfigDHCP.dns; |
| + } else if (data.ipconfigDHCP.value) { |
| + inetAddress = data.ipconfigDHCP.value.address; |
| + inetSubnetAddress = data.ipconfigDHCP.value.subnetAddress; |
| + inetGateway = data.ipconfigDHCP.value.gateway; |
| + inetDns = data.ipconfigDHCP.value.dns; |
| } |
| // Hide the dhcp/static radio if needed. |
| @@ -455,7 +476,9 @@ cr.define('options', function() { |
| $('change-proxy-section').hidden = !data.showProxy; |
| var ipConfigList = $('ipConfigList'); |
| - ipConfigList.disabled = $('ipTypeDHCP').checked || !data.showStaticIPConfig; |
| + ipConfigList.disabled = |
| + $('ipTypeDHCP').checked || data.ipconfigStatic.controlledBy || |
| + !data.showStaticIPConfig; |
| options.internet.IPConfigList.decorate(ipConfigList); |
| ipConfigList.autoExpands = true; |
| var model = new ArrayDataModel([]); |
| @@ -483,11 +506,12 @@ cr.define('options', function() { |
| $('ipTypeDHCP').addEventListener('click', function(event) { |
| // disable ipConfigList and switch back to dhcp values (if any) |
| - if (data.ipconfigDHCP) { |
| - ipConfigList.dataModel.item(0).value = data.ipconfigDHCP.address; |
| - ipConfigList.dataModel.item(1).value = data.ipconfigDHCP.subnetAddress; |
| - ipConfigList.dataModel.item(2).value = data.ipconfigDHCP.gateway; |
| - ipConfigList.dataModel.item(3).value = data.ipconfigDHCP.dns; |
| + if (data.ipconfigDHCP.value) { |
| + var config = data.ipconfigDHCP.value; |
| + ipConfigList.dataModel.item(0).value = config.address; |
| + ipConfigList.dataModel.item(1).value = config.subnetAddress; |
| + ipConfigList.dataModel.item(2).value = config.gateway; |
| + ipConfigList.dataModel.item(3).value = config.dns; |
| } |
| ipConfigList.dataModel.updateIndex(0); |
| ipConfigList.dataModel.updateIndex(1); |
| @@ -522,9 +546,9 @@ cr.define('options', function() { |
| detailsPage.shared = data.shared; |
| $('inetSsid').textContent = data.ssid; |
| detailsPage.showPreferred = data.showPreferred; |
| - $('preferNetworkWifi').checked = data.preferred; |
| + $('preferNetworkWifi').checked = data.preferred.value; |
| $('preferNetworkWifi').disabled = !data.remembered; |
| - $('autoConnectNetworkWifi').checked = data.autoConnect; |
| + $('autoConnectNetworkWifi').checked = data.autoConnect.value; |
| $('autoConnectNetworkWifi').disabled = !data.remembered; |
| detailsPage.password = data.encrypted; |
| } else if(data.type == options.internet.Constants.TYPE_CELLULAR) { |
| @@ -577,24 +601,25 @@ cr.define('options', function() { |
| var otherOption = apnSelector[0]; |
| data.selectedApn = -1; |
| data.userApnIndex = -1; |
| - for (var i = 0; i < data.providerApnList.length; i++) { |
| + var apnList = data.providerApnList.value; |
| + for (var i = 0; i < apnList.length; i++) { |
| var option = document.createElement('option'); |
| - var name = data.providerApnList[i].localizedName; |
| - if (name == '' && data.providerApnList[i].name != '') |
| - name = data.providerApnList[i].name; |
| + var name = apnList[i].localizedName; |
| + if (name == '' && apnList[i].name != '') |
| + name = apnList[i].name; |
| if (name == '') |
| - name = data.providerApnList[i].apn; |
| + name = apnList[i].apn; |
| else |
| - name = name + ' (' + data.providerApnList[i].apn + ')'; |
| + name = name + ' (' + apnList[i].apn + ')'; |
| option.textContent = name; |
| option.value = i; |
| - if ((data.apn.apn == data.providerApnList[i].apn && |
| - data.apn.username == data.providerApnList[i].username && |
| - data.apn.password == data.providerApnList[i].password) || |
| + if ((data.apn.apn == apnList[i].apn && |
| + data.apn.username == apnList[i].username && |
| + data.apn.password == apnList[i].password) || |
| (data.apn.apn == '' && |
| - data.lastGoodApn.apn == data.providerApnList[i].apn && |
| - data.lastGoodApn.username == data.providerApnList[i].username && |
| - data.lastGoodApn.password == data.providerApnList[i].password)) { |
| + data.lastGoodApn.apn == apnList[i].apn && |
| + data.lastGoodApn.username == apnList[i].username && |
| + data.lastGoodApn.password == apnList[i].password)) { |
| data.selectedApn = i; |
| } |
| // Insert new option before "other" option. |
| @@ -616,9 +641,9 @@ cr.define('options', function() { |
| cr.doc.querySelectorAll('.apn-details-view'), |
| true); |
| - InternetOptions.updateSecurityTab(data.simCardLockEnabled); |
| + InternetOptions.updateSecurityTab(data.simCardLockEnabled.value); |
| } |
| - $('autoConnectNetworkCellular').checked = data.autoConnect; |
| + $('autoConnectNetworkCellular').checked = data.autoConnect.value; |
| $('autoConnectNetworkCellular').disabled = false; |
| $('buyplanDetails').hidden = !data.showBuyButton; |
| @@ -655,6 +680,27 @@ cr.define('options', function() { |
| detailsPage.cellular = false; |
| detailsPage.gsm = false; |
| } |
| + |
| + // Update controlled option indicators. |
| + indicators = cr.doc.querySelectorAll( |
| + '#detailsInternetPage .controlled-setting-indicator'); |
| + for (var i = 0; i < indicators.length; i++) { |
| + var dataProperty = indicators[i].getAttribute('data'); |
| + if (dataProperty && data[dataProperty]) { |
| + var controlledBy = data[dataProperty].controlledBy; |
| + if (controlledBy) { |
| + indicators[i].controlledBy = controlledBy; |
| + var forElement = $(indicators[i].getAttribute('for')); |
| + if (forElement) |
| + forElement.disabled = true; |
| + if (forElement.type == 'radio' && !forElement.checked) |
| + indicators[i].hidden = true; |
| + } else { |
| + indicators[i].controlledBy = null; |
| + } |
| + } |
| + } |
| + |
| // Don't show page name in address bar and in history to prevent people |
| // navigate here by hand and solve issue with page session restore. |
| OptionsPage.showPageByName('detailsInternetPage', false); |