Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
12 lines
No EOL
6.6 KiB
JavaScript
12 lines
No EOL
6.6 KiB
JavaScript
|
|
define(['require','shared/wifi_helper'],function(require){'use strict';var WifiHelper=require('shared/wifi_helper');var wifiManager=WifiHelper.getWifiManager();var WifiUtils={newExplanationItem:function(message){var li=document.createElement('li');li.className='explanation';li.setAttribute('data-l10n-id',message);return li;},newListItem:function(options){var network=options.network;var showNotInRange=options.showNotInRange||false;var onClick=options.onClick||function(){};var icon=document.createElement('aside');icon.classList.add('pack-end');icon.classList.add('wifi-icon');var level=Math.min(Math.floor(network.relSignalStrength/20),4);icon.classList.add('level-'+level);var ssid=document.createElement('span');ssid.dir='auto';ssid.textContent=network.ssid;var small=document.createElement('small');var keys=WifiHelper.getSecurity(network);var networkNotInRange=(network.known&&level===0);var hasSecurity=(keys&&keys.length);if(hasSecurity){if(showNotInRange&&networkNotInRange){small.setAttribute('data-l10n-id','notInRange');}else{document.l10n.setAttributes(small,'securedBy',{capabilities:keys.join(', ')});}
|
|
icon.classList.add('secured');}else{if(showNotInRange&&networkNotInRange){small.setAttribute('data-l10n-id','notInRange');}else{small.setAttribute('data-l10n-id','securityOpen');}}
|
|
var a=document.createElement('a');a.appendChild(ssid);a.appendChild(small);var li=document.createElement('li');li.dataset.ssid=network.ssid;li.appendChild(icon);li.appendChild(a);icon.classList.add('wifi-signal');var networkStatus=WifiHelper.getNetworkStatus(network);var kActiveStatuses=['associated','connecting','connected'];if(-1!==kActiveStatuses.indexOf(networkStatus)){li.classList.add('active');if('connected'===networkStatus){icon.classList.add('connected');}else{icon.classList.add('connecting');}
|
|
small.setAttribute('data-l10n-id','short-status-'+networkStatus);}
|
|
li.onclick=function(){onClick(network);};return li;},changeDisplay:function(panel,security){var eap=panel.querySelector('li.eap select');var identity=panel.querySelector('input[name=identity]');var password=panel.querySelector('input[name=password]');var authPhase2=panel.querySelector('li.auth-phase2 select');var certificate=panel.querySelector('li.server-certificate select');var description=panel.querySelector('li.server-certificate-description');if(security==='WEP'||security==='WPA-PSK'){identity.parentNode.style.display='none';password.parentNode.style.display='block';authPhase2.parentNode.parentNode.style.display='none';certificate.parentNode.parentNode.style.display='none';description.style.display='none';}else if(security==='WPA-EAP'){if(eap){switch(eap.value){case'SIM':identity.parentNode.style.display='none';password.parentNode.style.display='none';authPhase2.parentNode.parentNode.style.display='none';certificate.parentNode.parentNode.style.display='none';description.style.display='none';break;case'PEAP':case'TLS':case'TTLS':identity.parentNode.style.display='block';password.parentNode.style.display='block';authPhase2.parentNode.parentNode.style.display='block';certificate.parentNode.parentNode.style.display='block';description.style.display='block';break;default:break;}}}else{identity.parentNode.style.display='none';password.parentNode.style.display='none';}},initializeAuthFields:function(panel,network){var ssid=panel.querySelector('input[name=ssid]');var identity=panel.querySelector('input[name=identity]');var password=panel.querySelector('input[name=password]');var showPassword=panel.querySelector('gaia-checkbox[name=show-pwd]');var eap=panel.querySelector('li.eap select');var certificate=panel.querySelector('li.server-certificate select');var submitButton=panel.querySelector('button[type=submit]');this.loadImportedCertificateOptions(certificate);identity.value=network.identity||'';password.type='password';password.value=network.password||'';showPassword.checked=false;showPassword.onchange=function(){password.type=this.checked?'text':'password';};var checkPassword=function(){var key=WifiHelper.getKeyManagement(network);var isDisabled=!WifiHelper.isValidInput(key,password.value,identity.value,eap.value);if(ssid){isDisabled=isDisabled||!WifiHelper.isSSIDValid(ssid.value);}
|
|
submitButton.disabled=isDisabled;};eap.onchange=function(){var key=WifiHelper.getKeyManagement(network);checkPassword();WifiUtils.changeDisplay(panel,key);};if(ssid){ssid.oninput=checkPassword;}
|
|
password.oninput=checkPassword;identity.oninput=checkPassword;checkPassword();},loadImportedCertificateOptions:function(select){if(!wifiManager.getImportedCerts){return;}
|
|
var certRequest=wifiManager.getImportedCerts();certRequest.onsuccess=function(){var i;var certList=certRequest.result;var certificateList=certList.ServerCert;var originLengthOfOptions=select.options.length;for(i=0;i<originLengthOfOptions-1;i++){select.remove(1);}
|
|
for(i=0;i<certificateList.length;i++){var option=document.createElement('option');option.text=certificateList[i];option.value=certificateList[i];select.add(option,null);}};certRequest.onerror=function(){console.warn('getImportedCerts failed');};},updateNetworkSignal:function(network,networkSignal){var li=document.querySelector('li[data-ssid="'+network.ssid+'"]');var icon=li.querySelector('aside');icon.className=icon.className.replace(/level-\w*/,'');var level=Math.min(Math.floor(networkSignal/20),4);icon.classList.add('level-'+level);},getNetworkKey:function(network){if(!network){return'';}else{var key=network.ssid+'+'+WifiHelper.getSecurity(network).join('+');return key;}},updateListItemStatus:function(options){options=options||{};var listItems=options.listItems;var activeItemDOM=options.activeItemDOM;var network=options.network;var networkStatus=options.networkStatus;if(!network||!networkStatus||!listItems){console.log('Please check passing options for updateListItemStatus');return;}
|
|
var key=this.getNetworkKey(network);var listItemDOM=listItems[key];if(activeItemDOM&&activeItemDOM!=listItemDOM){activeItemDOM.classList.remove('active');activeItemDOM.querySelector('small').setAttribute('data-l10n-id','short-status-disconnected');activeItemDOM.querySelector('aside').classList.remove('connecting');activeItemDOM.querySelector('aside').classList.remove('connected');}
|
|
if(listItemDOM){listItemDOM.classList.add('active');listItemDOM.querySelector('small').setAttribute('data-l10n-id','short-status-'+networkStatus);if(networkStatus==='connecting'||networkStatus==='associated'){listItemDOM.querySelector('aside').classList.remove('connected');listItemDOM.querySelector('aside').classList.add('connecting');}else if(networkStatus==='connected'){listItemDOM.querySelector('aside').classList.remove('connecting');listItemDOM.querySelector('aside').classList.add('connected');}}}};return WifiUtils;}); |