diff options
author | Renato Botelho <renato@netgate.com> | 2015-08-25 08:08:24 -0300 |
---|---|---|
committer | Renato Botelho <renato@netgate.com> | 2015-08-25 14:49:54 -0300 |
commit | 46bc6e545a17e77202aaf01ec0cd8d5a46567525 (patch) | |
tree | 32d18dda436ec739c67c489ceb771e8629cd926f /src/usr/local/www/javascript/interfaces_ppps_edit/ppps_edit.js | |
parent | 4d9801c2dbd2b3e54a39578ee62b93af66607227 (diff) | |
download | pfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.zip pfsense-46bc6e545a17e77202aaf01ec0cd8d5a46567525.tar.gz |
Move main pfSense content to src/
Diffstat (limited to 'src/usr/local/www/javascript/interfaces_ppps_edit/ppps_edit.js')
-rw-r--r-- | src/usr/local/www/javascript/interfaces_ppps_edit/ppps_edit.js | 253 |
1 files changed, 253 insertions, 0 deletions
diff --git a/src/usr/local/www/javascript/interfaces_ppps_edit/ppps_edit.js b/src/usr/local/www/javascript/interfaces_ppps_edit/ppps_edit.js new file mode 100644 index 0000000..45b529b --- /dev/null +++ b/src/usr/local/www/javascript/interfaces_ppps_edit/ppps_edit.js @@ -0,0 +1,253 @@ +/*jslint white: true, sloppy: true, vars: true, eqeq: true */ +/*jslint browser: true, devel: true */ +/*global show_hide_linkfields, jQuery, country_list */ + +function update_select_list(new_options, select_list){ + var option_array = new_options.split("|"); + var i = 0; + var j; + select_list.length = 0; + for(j=0; j < option_array.length-1; j++){ + var option = option_array[j].split(","); + var selected = Boolean(parseInt(option[2], 10)); + select_list[j] = new Option(option[0], option[1], false, selected); + //for testing and debugging + //select_list.options[option_array.length-1+j] = new Option(option[2].toString() +" "+ selected.toString()); + //select_list.options[option_array.length-1+j] = new Option("Link Label: " + linklabel + " Label Text:" + label_text); + } + show_hide_linkfields(select_list); +} + +function show_advanced(hide){ + var select_list = document.iform["interfaces[]"].options; + var adv_rows = parseInt(jQuery('#adv_rows').html(), 10); + var adv_show = Boolean(parseInt(jQuery('#adv_show').html(), 10)); + var status = Boolean(parseInt(hide, 10)); + var j, advanced; + if (status){ + jQuery('#advanced_').hide(); + for(j=0; j < adv_rows; j++){ + advanced = "#advanced_" + j.toString(); + jQuery(advanced).show(); + } + jQuery('#adv_show').html("1"); + show_hide_linkfields(select_list); + } else { + jQuery('#advanced_').show(); + for(j=0; j < adv_rows; j++){ + advanced = "#advanced_" + j.toString(); + jQuery(advanced).hide(); + } + jQuery('#adv_show').html("0"); + show_hide_linkfields(select_list); + } +} + +function show_hide_linkfields(options){ + var i = 0; + var port_count = parseInt(jQuery('#port_count').html(), 10); + var adv_show = Boolean(parseInt(jQuery('#adv_show').html(), 10)); + var j, count, type, link, lnklabel, bw, bwlabel, mtu, mru, mrru, ipfields, gwfields, localip, + localiplabel, subnet, gateway, gatewaylabel; + for(j=0; j < port_count; j++){ + count = j.toString(); + type = jQuery('#type').val(); + link = "#link" + count; + lnklabel = "#linklabel" + count; + bw = "#bandwidth" + count; + bwlabel = "#bwlabel" + count; + mtu = "#mtu" + count; + mru = "#mru" + count; + mrru = "#mrru" + count; + ipfields = "#ip_fields" + count; + gwfields = "#gw_fields" + count; + localip = "#localip" + count; + localiplabel = "#localiplabel" + count; + subnet = "#subnet" + count; + gateway = "#gateway" + count; + gatewaylabel = "#gatewaylabel" + count; + + jQuery(ipfields + ',' + gwfields + ',' + link).hide(); + jQuery(subnet).prop('disabled',true); + + jQuery(bw).attr("name","bandwidth[]"); + jQuery(mtu).attr("name","mtu[]"); + jQuery(mru).attr("name","mru[]"); + jQuery(mrru).attr("name","mrru[]"); + jQuery(localip).attr("name","localip[]"); + jQuery(subnet).attr("name","subnet[]"); + jQuery(gateway).attr("name","gateway[]"); + + while(i < options.length){ + if (options[i].selected ){ + jQuery(lnklabel).html("Link Parameters (" + options[i].value + ")"); + jQuery(bwlabel).html("Bandwidth (" + options[i].value + ")"); + jQuery(bw).attr("name","bandwidth[" + options[i].value + "]"); + jQuery(mtu).attr("name","mtu[" + options[i].value + "]"); + jQuery(mru).attr("name","mru[" + options[i].value + "]"); + jQuery(mrru).attr("name","mrru[" + options[i].value + "]"); + jQuery(localiplabel).html("Local IP (" + options[i].value + ")"); + jQuery(gatewaylabel).html("Gateway (" + options[i].value + ")"); + jQuery(localip).attr("name","localip[" + options[i].value + "]"); + jQuery(subnet).attr("name","subnet[" + options[i].value + "]"); + jQuery(gateway).attr("name","gateway[" + options[i].value + "]"); + if (type == 'ppp' && adv_show){ + jQuery(ipfields + ',' + gwfields).show(); + } + if (type == 'pptp' || type == 'l2tp'){ + jQuery(subnet).prop("disabled",false); + jQuery(ipfields + ',' + gwfields).show(); + } + if (adv_show){ + jQuery(link).show(); + } + i++; + break; + } + i++; + } + } +} + + +function updateType(t){ + var serialports = jQuery('#serialports').html(); + var ports = jQuery('#ports').html(); + var select_list = document.iform["interfaces[]"].options; + jQuery('#adv_show').html("0"); + show_advanced('0'); + jQuery("#select").show(); + switch(t) { + case "select": + jQuery('#ppp,#pppoe,#ppp_provider,#phone_num,#apn_').hide(); + select_list.length = 0; + select_list[0] = new Option("Select Link Type First",""); + break; + case "ppp": + update_select_list(serialports, select_list); + jQuery('#select,#pppoe').hide(); + jQuery('#ppp_provider,#phone_num,#apn_').show(); + country_list(); + break; + case "pppoe": + update_select_list(ports, select_list); + jQuery('#select,#ppp,#ppp_provider,#phone_num,#apn_').hide(); + break; + case "l2tp": + case "pptp": + update_select_list(ports, select_list); + jQuery('#select,#ppp,#pppoe,#ppp_provider,#phone_num,#apn_').hide(); + break; + default: + select_list.length = 0; + select_list[0] = new Option("Select Link Type First",""); + break; + } + if (t == "pppoe" || t == "ppp"){ + jQuery("#" + t).show(); + } +} + +function show_reset_settings(reset_type) { + if (reset_type == 'preset') { + jQuery('#pppoepresetwrap').show(0); + jQuery('#pppoecustomwrap').hide(0); + } + else if (reset_type == 'custom') { + jQuery('#pppoecustomwrap').show(0); + jQuery('#pppoepresetwrap').hide(0); + } else { + jQuery('#pppoecustomwrap').hide(0); + jQuery('#pppoepresetwrap').hide(0); + } +} + +function country_list() { + jQuery('#country option').remove(); + jQuery('#provider option').remove(); + jQuery('#providerplan option').remove(); + jQuery('#country').append(new Option('', '')); + jQuery.ajax("getserviceproviders.php",{ + success: function(responseText) { + var responseTextArr = responseText.split("\n"); + var value, i, country; + responseTextArr.sort(); + for (i = 0; i < responseTextArr.length; i += 1) { + value = responseTextArr[i]; + if (/\S/.test(value)) { + country = value.split(":"); + jQuery('#country').append(new Option(country[0],country[1])); + } + } + } + }); + jQuery('#trcountry').css("display","table-row"); +} + +function providers_list() { + jQuery('#provider option').remove(); + jQuery('#providerplan option').remove(); + jQuery('#provider').append(new Option('', '')); + jQuery.ajax("getserviceproviders.php",{ + type: 'POST', + data: {country : jQuery('#country').val()}, + success: function(responseText) { + var responseTextArr = responseText.split("\n"); + var value, i; + responseTextArr.sort(); + for (i = 0; i < responseTextArr.length; i += 1) { + value = responseTextArr[i]; + if (/\S/.test(value)) { + jQuery('#provider').append(new Option(value, value)); + } + } + } + }); + jQuery('#trprovider').css("display","table-row"); + jQuery('#trproviderplan').css("display","none"); +} + +function providerplan_list() { + jQuery('#providerplan option').remove(); + jQuery('#providerplan').append( new Option('','') ); + jQuery.ajax("getserviceproviders.php",{ + type: 'POST', + data: {country : jQuery('#country').val(), provider : jQuery('#provider').val()}, + success: function(responseText) { + var responseTextArr = responseText.split("\n"); + var value, providerplan, i; + responseTextArr.sort(); + for (i = 0; i < responseTextArr.length; i += 1) { + value = responseTextArr[i]; + if (/\S/.test(value)) { + providerplan = value.split(":"); + jQuery('#providerplan').append(new Option(providerplan[0] + " - " + providerplan[1], + providerplan[1])); + } + } + } + }); + jQuery('#trproviderplan').css("display","table-row"); +} + +function prefill_provider() { + jQuery.ajax("getserviceproviders.php",{ + type: "POST", + data: {country : jQuery('#country').val(), provider : jQuery('#provider').val(), plan : jQuery('#providerplan').val()}, + success: function(responseXML) { + var xmldoc = responseXML; + var provider = xmldoc.getElementsByTagName('connection')[0]; + jQuery('#username').val(''); + jQuery('#password').val(''); + if(provider.getElementsByTagName('apn')[0].firstChild.data == "CDMA") { + jQuery('#phone').val('#777'); + jQuery('#apn').val(''); + } else { + jQuery('#phone').val('*99#'); + jQuery('#apn').val(provider.getElementsByTagName('apn')[0].firstChild.data); + } + jQuery('#username').val(provider.getElementsByTagName('username')[0].firstChild.data); + jQuery('#password').val(provider.getElementsByTagName('password')[0].firstChild.data); + } + }); +} |