VulpesOS/assets/webapps/wappush.gaiamobile.org/js/cp_screen_helper.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

37 lines
No EOL
8.8 KiB
JavaScript

;'use strict';var CpScreenHelper=(function(){var cpScreen=null;var pinScreen=null;var apnScreen=null;var detailsScreen=null;var quitButton=null;var cancelQuitButton=null;var acceptInstallCfgButton=null;var cancelInstallCfgButton=null;var finishButton=null;var pin=null;var quitAppConfirmDialog=null;var installCfgConfirmDialog=null;var authFailureMessage=null;var pinHelp=null;var finishConfirmDialog=null;var showPINInput=false;var authenticated=false;var isDocumentValid=false;var processed=false;var messageTag=null;var authInfo=null;var provisioningDoc=null;var apns=null;var iccCardIndex=0;var acceptApnButton=null;var acceptPinButton=null;var acceptDetailsButton=null;var titleApn=null;var titleDetails=null;var titlePin=null;var multipleApns=false;var headerDetails=null;function cpsh_init(){processed=false;titleApn=document.getElementById('title-apn');titleDetails=document.getElementById('title-details');titlePin=document.getElementById('title-pin');quitAppConfirmDialog=document.getElementById('cp-quit-app-confirm');quitButton=quitAppConfirmDialog.querySelector('.quit');cancelQuitButton=quitAppConfirmDialog.querySelector('.cancel');installCfgConfirmDialog=document.getElementById('cp-install-configuration-confirm');acceptInstallCfgButton=installCfgConfirmDialog.querySelector('.accept');cancelInstallCfgButton=installCfgConfirmDialog.querySelector('.cancel');authFailureMessage=document.getElementById('cp-auth-failure');pinHelp=document.getElementById('cp-done-help');finishConfirmDialog=document.getElementById('cp-finish-confirm');finishButton=finishConfirmDialog.querySelector('button');cpScreen=document.getElementById('cp-screen');pinScreen=document.getElementById('cp-pin-screen');pin=pinScreen.querySelector('input');apnScreen=document.getElementById('cp-apn-screen');detailsScreen=document.getElementById('cp-details-screen');acceptApnButton=document.getElementById('apn-accept');acceptPinButton=document.getElementById('pin-accept');acceptDetailsButton=document.getElementById('details-accept');var headerApnList=document.getElementById('header-apn-list');headerDetails=document.getElementById('header-details');var headerPin=document.getElementById('header-pin');quitButton.addEventListener('click',cpsh_onQuit);cancelQuitButton.addEventListener('click',cpsh_onCancelQuit);finishButton.addEventListener('click',cpsh_onFinish);pin.addEventListener('keyup',cpsh_onPinInput);acceptApnButton.addEventListener('click',cpsh_onApnAccept);acceptPinButton.addEventListener('click',cpsh_onPinAccept);acceptDetailsButton.addEventListener('click',cpsh_onDetailsAccept);headerApnList.addEventListener('action',cpsh_onClose);headerDetails.addEventListener('action',cpsh_closeDetails);headerPin.addEventListener('action',cpsh_closePin);}
function cpsh_hide(){cpScreen.hidden=true;finishConfirmDialog.hidden=true;installCfgConfirmDialog.hidden=true;quitAppConfirmDialog.hidden=true;}
function cpsh_showConfirmInstallationDialog(message){installCfgConfirmDialog.hidden=false;acceptInstallCfgButton.addEventListener('click',cpsh_onAcceptInstallCfg.bind(null,message));cancelInstallCfgButton.addEventListener('click',cpsh_onCancelInstallCfg);}
function cpsh_populateScreen(message){cpScreen.hidden=false;var title=Utils.prepareMessageTitle(message);navigator.mozL10n.setAttributes(titleApn,title.id,title.args);navigator.mozL10n.setAttributes(titleDetails,title.id,title.args);navigator.mozL10n.setAttributes(titlePin,title.id,title.args);iccCardIndex=message.serviceId;messageTag=message.timestamp;authInfo=message.provisioning.authInfo;provisioningDoc=message.provisioning.provisioningDoc;var parsedProvisioningDoc=ParsedProvisioningDoc.from(provisioningDoc);apns=parsedProvisioningDoc.getApns();if(apns.length===0){message=finishConfirmDialog.querySelector('strong');navigator.mozL10n.setAttributes(message,'cp-finish-confirm-dialog-message-no-apns');finishConfirmDialog.hidden=false;return;}
showPINInput=(authInfo.sec!=='NETWPIN');authenticated=authInfo.checked;isDocumentValid=authInfo.pass;if(showPINInput){navigator.mozL10n.setAttributes(pinHelp,'cp-accept-help-pin');pin.type='number';acceptPinButton.disabled=true;}else{navigator.mozL10n.setAttributes(pinHelp,'cp-done-help');pin.type='hidden';pin.blur();acceptPinButton.disabled=false;}
if(apns.length>1){multipleApns=true;cpsh_showApnList();return;}
multipleApns=false;cpsh_showDetails(0);}
function cpsh_showApnList(){var fragment=document.createDocumentFragment();for(var i=0;i<apns.length;i++){var list=document.createElement('li');var a=document.createElement('a');a.addEventListener('click',cpsh_showDetails.bind(null,i));var aside=document.createElement('aside');aside.className='pack-end';aside.setAttribute('data-icon','forward');aside.setAttribute('aria-hidden',true);var p=document.createElement('p');p.textContent=apns[i].carrier;a.appendChild(aside);a.appendChild(p);list.appendChild(a);fragment.appendChild(list);}
var content=apnScreen.querySelector('.message');content.innerHTML='';content.appendChild(fragment);}
function cpsh_onApnAccept(){if(showPINInput){pinScreen.addEventListener('transitionend',cpsh_setPinFocus);}
apnScreen.classList.add('left');pinScreen.classList.remove('right');}
function cpsh_showDetails(index){if(multipleApns){acceptDetailsButton.style.visibility='hidden';headerDetails.setAttribute('action','back');}
var details=detailsScreen.querySelector('.message');details.innerHTML='';cpsh_createNode(details,'Name',apns[index].carrier);cpsh_createNode(details,'APN',apns[index].apn);cpsh_createNode(details,'Proxy',apns[index].proxy);cpsh_createNode(details,'Port',apns[index].port);cpsh_createNode(details,'Username',apns[index].user);cpsh_createNode(details,'Password',apns[index].password);cpsh_createNode(details,'MMSC',apns[index].mmsc);cpsh_createNode(details,'MMS Proxy',apns[index].mmsproxy);cpsh_createNode(details,'MMS Port',apns[index].mmsport);cpsh_createNode(details,'Authentication Type',apns[index].authType);cpsh_createNode(details,'APN Type',apns[index].types);detailsScreen.classList.remove('right');apnScreen.classList.add('left');}
function cpsh_closeDetails(evt){if(!multipleApns){cpsh_onClose(evt);return;}
detailsScreen.classList.add('right');apnScreen.classList.remove('left');}
function cpsh_onDetailsAccept(){if(showPINInput){pinScreen.addEventListener('transitionend',cpsh_setPinFocus);}
detailsScreen.classList.add('left');pinScreen.classList.remove('right');}
function cpsh_createNode(rootNode,key,value){if(!value){return;}
var element=document.createElement('li');var nodeKey=document.createElement('p');var nodeValue=document.createElement('p');nodeKey.textContent=key;nodeValue.textContent=value;element.appendChild(nodeKey);element.appendChild(nodeValue);rootNode.appendChild(element);}
function cpsh_setPinFocus(){pin.focus();pinScreen.removeEventListener('transitionend',cpsh_setPinFocus);}
function cpsh_closePin(){pin.blur();if(!multipleApns){pinScreen.classList.add('right');detailsScreen.classList.remove('left');return;}
pinScreen.classList.add('right');apnScreen.classList.remove('left');}
function cpsh_onClose(evt){if(processed){WapPushManager.close();return;}
quitAppConfirmDialog.hidden=false;}
function cpsh_onQuit(evt){evt.preventDefault();MessageDB.deleteByTimestamp(messageTag).then(function(){WapPushManager.close();},function(){console.error('Could not delete message from the database');WapPushManager.close();});}
function cpsh_onCancelQuit(evt){evt.preventDefault();quitAppConfirmDialog.hidden=true;}
function cpsh_onCancelInstallCfg(evt){evt.preventDefault();WapPushManager.close();}
function cpsh_onAcceptInstallCfg(message,evt){evt.preventDefault();cpsh_populateScreen(message);installCfgConfirmDialog.hidden=true;}
function cpsh_onPinAccept(){var message=null;if(!authenticated){if(!pin.value){cpsh_pinError();return;}
try{isDocumentValid=ProvisioningAuthentication.isDocumentValid(pin.value,authInfo);}catch(e){message=finishConfirmDialog.querySelector('strong');navigator.mozL10n.setAttributes(message,e.message);finishConfirmDialog.hidden=false;return;}
authenticated=true;if(!isDocumentValid){authenticated=false;cpsh_pinError();return;}}
processed=true;StoreProvisioning.provision(apns,iccCardIndex);MessageDB.deleteByTimestamp(messageTag).then(function(){finishConfirmDialog.hidden=false;},function(e){console.error('Could not delete message from the database: ',e);finishConfirmDialog.hidden=false;});}
function cpsh_pinError(){authFailureMessage.hidden=false;pinHelp.hidden=true;pin.focus();pin.setAttribute('max',-1);pin.addEventListener('keyup',cpsh_onPinErrorRestore);}
function cpsh_onPinErrorRestore(){authFailureMessage.hidden=true;pinHelp.hidden=false;pin.removeAttribute('max');pin.addEventListener('keyup',cpsh_onPinInput);}
function cpsh_onFinish(evt){evt.preventDefault();WapPushManager.close();}
function cpsh_onPinInput(evt){acceptPinButton.disabled=(pin.value.length===0);}
return{init:cpsh_init,hide:cpsh_hide,showConfirmInstallationDialog:cpsh_showConfirmInstallationDialog};})();