Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
19 lines
No EOL
8.7 KiB
JavaScript
19 lines
No EOL
8.7 KiB
JavaScript
;'use strict';var ConfigManager=window.parent.ConfigManager;var CostControl=window.parent.CostControl;var SimManager=window.parent.SimManager;var Common=window.parent.Common;var NetworkUsageAlarm=window.parent.NetworkUsageAlarm;var addNetworkUsageAlarm=window.parent.addNetworkUsageAlarm;var resetTelephony=window.parent.resetTelephony;navigator.mozL10n=window.parent.navigator.mozL10n;var DEBUGGING=window.parent.DEBUGGING;var debug=window.parent.debug;var Settings=(function(){var costcontrol,vmanager,initialized,endLoadSettingsNotified;var plantypeSelector,phoneActivityTitle,phoneActivitySettings;var balanceTitle,balanceSettings,reportsTitle;var balanceView,resetMenuDialog,confirmDialog;function configureUI(){CostControl.getInstance(function _onCostControl(instance){costcontrol=instance;if(DEBUGGING){loadDeveloperAids();}
|
|
vmanager=new ViewManager();plantypeSelector=document.getElementById('plantype-settings');phoneActivityTitle=document.getElementById('phone-activity-settings');phoneActivitySettings=document.querySelector('#phone-activity-settings + .settings');balanceTitle=document.getElementById('balance-settings');balanceSettings=document.querySelector('#balance-settings + .settings');reportsTitle=document.getElementById('phone-internet-settings');var balanceConfig=ConfigManager.configuration.balance;balanceView=new BalanceView(document.getElementById('balance'),document.querySelector('#balance + .meta'),balanceConfig?balanceConfig.minimum_delay:undefined);var resetDialog=document.getElementById('reset-dialog');var resetDataDialog=document.getElementById('reset-data-dialog');resetMenuDialog=new ResetMenuDialog(resetDataDialog,vmanager);confirmDialog=new ConfirmDialog(resetDialog,vmanager);resetMenuDialog.initializeResetModes(confirmDialog);AutoSettings.addType('data-limit',dataLimitConfigurer);AutoSettings.initialize(ConfigManager,vmanager,'#settings-view');configureTelephonyReset();configureDataResets();addDoneConstrains();ConfigManager.observe('dataLimit',function _onDataLimitChange(value,old,key,settings){SimManager.requestDataSimIcc(function(dataSim){var iccId=dataSim.iccId;var currentDataInterface=Common.getDataSIMInterface(iccId);if(!value){NetworkUsageAlarm.clearAlarms(currentDataInterface);}else{addNetworkUsageAlarm(currentDataInterface,Common.getDataLimit(settings));}});},true);ConfigManager.observe('plantype',updateUI,true);ConfigManager.observe('lastTelephonyActivity',function _updateTelephony(activity,old,key,settings){updateTelephony(activity,settings.lastTelephonyReset);},true);ConfigManager.observe('lastDataUsage',function _updateDataUsage(stats,old,key,settings){updateDataUsage(stats,settings.lastCompleteDataReset);},true);ConfigManager.observe('lastBalance',function _updateBalance(balance){updateBalance(balance,balance.currency);},true);var close=document.getElementById('close-settings');close.addEventListener('click',function(){closeSettings();});function _setResetTimeToDefault(value,old,key,settings){var today=new Date();var defaultResetTime=(settings.trackingPeriod==='weekly')?today.getDay():today.getDate();if(settings.resetTime!==defaultResetTime){ConfigManager.setOption({resetTime:defaultResetTime});}else{Common.updateNextReset(settings.trackingPeriod,settings.resetTime);}}
|
|
function _updateNextReset(value,old,key,settings){Common.updateNextReset(settings.trackingPeriod,settings.resetTime);}
|
|
ConfigManager.observe('resetTime',_updateNextReset,true);ConfigManager.observe('trackingPeriod',_setResetTimeToDefault,true);initialized=true;Settings.updateUI();});}
|
|
function closeSettings(){window.parent.location.hash='#';}
|
|
function loadDeveloperAids(){var xhr=new XMLHttpRequest();xhr.overrideMimeType('text/plain');xhr.open('GET','/debug.html',false);xhr.send();if(xhr.status===200){var src=document.createElement('DIV');src.innerHTML=xhr.responseText;var reference=document.getElementById('plantype-settings');var parent=reference.parentNode;[].forEach.call(src.childNodes,function(node){reference=parent.insertBefore(node,reference.nextSibling);});}}
|
|
function configureTelephonyReset(){var resetTelephonyButton=document.getElementById('reset-telephony');resetTelephonyButton.addEventListener('click',function(){confirmDialog.setMessage('reset-telephony-confirmation-warning',{});function resetAction(){resetTelephony();updateUI();confirmDialog.closeConfirmDialog();}
|
|
confirmDialog.updateAcceptAction(resetAction);confirmDialog.showConfirmDialog();});}
|
|
function configureDataResets(){var resetDataUsage=document.getElementById('reset-data-usage');resetDataUsage.addEventListener('click',function _onDataReset(){var currentTotals={mobile:costcontrol.lastDataResults.mobile.total,wifi:costcontrol.lastDataResults.wifi.total};resetMenuDialog.showResetMenuDialog(currentTotals);});}
|
|
var balanceLowLimitView;function addDoneConstrains(){var closeButton=document.getElementById('close-settings');balanceLowLimitView=new BalanceLowLimitView(document.getElementById('low-limit'),document.getElementById('low-limit-input'));balanceLowLimitView.onvalidation=function(evt){closeButton.disabled=!evt.isValid;};}
|
|
window.addEventListener('localized',function _onLocalize(){if(initialized){updateUI();}});var currentMode;function updateUI(){ConfigManager.requestAll(function _onInfo(configuration,settings){Common.localizeWeekdaySelector(document.getElementById('select-weekday'));var mode=ConfigManager.getApplicationMode();if(currentMode!==mode){currentMode=mode;var hidePlantypeSelector=(mode==='DATA_USAGE_ONLY');var hidePhoneActivity=(mode!=='POSTPAID');var hideBalance=(mode!=='PREPAID');var hideReportsTitle=(mode==='PREPAID');var textReportsTitle=(mode==='POSTPAID')?'phone-and-internet-data-report':'internet-data-report';reportsTitle.querySelector('span').setAttribute('data-l10n-id',textReportsTitle);balanceLowLimitView.disabled=(mode!=='PREPAID');plantypeSelector.hidden=hidePlantypeSelector;phoneActivityTitle.hidden=hidePhoneActivity;phoneActivitySettings.hidden=hidePhoneActivity;balanceTitle.hidden=hideBalance;balanceSettings.hidden=hideBalance;reportsTitle.hidden=hideReportsTitle;}
|
|
var requestObj={type:'datausage'};costcontrol.request(requestObj,function _onDataStats(result){var stats=result.data;updateDataUsage(stats,settings.lastCompleteDataReset);});switch(mode){case'PREPAID':updateBalance(settings.lastBalance,configuration.credit.currency);break;case'POSTPAID':updateTelephony(settings.lastTelephonyActivity,settings.lastTelephonyReset);break;}
|
|
if(endLoadSettingsNotified){window.performance.measure('loadSettings','loadSettingsStart');endLoadSettingsNotified=true;}});}
|
|
function updateDataUsage(datausage,lastCompleteDataReset){var mobileUsage=document.querySelector('#mobile-data-usage > span');var data=Formatting.roundData(datausage.mobile.total);mobileUsage.textContent=Formatting.formatData(data);var wifiUsage=document.querySelector('#wifi-data-usage > span');data=Formatting.roundData(datausage.wifi.total);wifiUsage.textContent=Formatting.formatData(data);updateDataUsageTimestamp(lastCompleteDataReset,datausage.timestamp);}
|
|
var dataUsagePeriod={begin:null,end:null};function updateDataUsageTimestamp(begin,end){dataUsagePeriod.begin=begin;dataUsagePeriod.end=end;var timestamp=document.querySelector('#wifi-data-usage + .meta');timestamp.innerHTML='';timestamp.appendChild(Formatting.formatTimeHTML(begin,end));}
|
|
function updateBalance(lastBalance,currency){var limitCurrency=document.getElementById('settings-low-limit-currency');limitCurrency.textContent=currency;balanceView.update(lastBalance);}
|
|
function updateTelephony(activity,lastTelephonyReset){var calltimeSpan=document.getElementById('calltime');var smscountSpan=document.getElementById('smscount');Common.localize(calltimeSpan,'magnitude',{value:Formatting.computeTelephonyMinutes(activity),unit:'min.'});Common.localize(smscountSpan,'magnitude',{value:activity.smscount,unit:'SMS'});updateTelephonyTimestamp(lastTelephonyReset,activity.timestamp);}
|
|
var telephonyPeriod={begin:null,end:null};function updateTelephonyTimestamp(begin,end){telephonyPeriod.begin=begin;telephonyPeriod.end=end;var timestamp=document.getElementById('telephony-timestamp');timestamp.innerHTML='';timestamp.appendChild(Formatting.formatTimeHTML(begin,end));}
|
|
window.addEventListener('timeformatchange',function(){updateTelephonyTimestamp(telephonyPeriod.begin,telephonyPeriod.end);updateDataUsageTimestamp(dataUsagePeriod.begin,dataUsagePeriod.end);});return{initialize:function(){var SCRIPTS_NEEDED=['js/utils/toolkit.js','shared/js/date_time_helper.js','js/utils/formatting.js','js/views/BalanceLowLimitView.js','js/settings/limitdialog.js','js/settings/autosettings.js','js/view_manager.js','js/views/BalanceView.js','js/views/ResetMenuDialog.js','js/views/ConfirmDialog.js'];LazyLoader.load(SCRIPTS_NEEDED,function(){if(!Common.allNetworkInterfaceLoaded){Common.loadNetworkInterfaces(configureUI);}else{configureUI();}});},updateUI:updateUI};}());Settings.initialize(); |