Viewing File: /usr/local/cpanel/whostmgr/docroot/js2-min/addipform.js

var CIDR_24=CPANEL.net.cidr_netmask_to_number(24);var CIDR_30=CPANEL.net.cidr_netmask_to_number(30);function whm_range_to_min_max(txt){if(/(?:^|[^\d.])127/.test(txt))return;if(/-.*\./.test(txt))return;var mask_match=/\/(.*)/.exec(txt);if(mask_match){var netmask=mask_match[1];if(/\./.test(netmask)){netmask=CPANEL.net.ipv4_to_number(netmask);if(netmask<CIDR_24)return;if(netmask>CIDR_30)return}else if(netmask<24||netmask>30){return}}return CPANEL.net.ipv4_range_to_min_max(txt)}function whm_validate_ip(txt){return!/^127/.test(txt)&&CPANEL.validate.ip(txt)}var _range;function _refresh_range(){var previous_range=_range;_range=whm_range_to_min_max(DOM.get("ip-range").value.replace(/\s+/,""));if(previous_range===undefined||!previous_range!==!_range){DOM.get("ip-range-exclusions").disabled=!_range}return _range}function ip_range_is_valid(){var range=_refresh_range();return!!range||whm_validate_ip(DOM.get("ip-range").value.trim())}function ip_range_fits_netmask(){var range=_refresh_range();if(range){var netmask_count=Math.pow(2,32)-CPANEL.net.ipv4_to_number(DOM.get("netmask-select").value);var min=range[0]-range[0]%netmask_count;var max=min+netmask_count-1;return range[1]<=max}else{return true}}function get_excludes(){var val=DOM.get("ip-range-exclusions").value.trim();return val&&val.replace(/[^\S\r\n]+/g,"").split(/[\r\n,;]+/)}function excludes_are_valid(){var range=_refresh_range();if(!range)return;var excl=get_excludes();if(!excl)return true;for(var e=excl.length-1;e>=0;e--){var cur_excl=excl[e];if(!cur_excl){excl.splice(e,1);continue}var this_range=whm_range_to_min_max(cur_excl);if(this_range){if(this_range[0]<range[0]||this_range[1]>range[1]){return false}}else{if(!whm_validate_ip(cur_excl))return false;var num=CPANEL.net.ipv4_to_number(cur_excl);if(num<range[0]||num>range[1])return false}}return true}function expand_range(range){var min_max=whm_range_to_min_max(range);if(!min_max)return;var ips=[];for(var n=min_max[0];n<=min_max[1];n++){ips.push(CPANEL.net.number_to_ipv4(n))}return ips}var ERROR_NOTICE;function save(form){form=DOM.get(form);var range=_refresh_range();var overlay=new CPANEL.ajax.Page_Progress_Overlay(null,{covers:form,show_status:true,status_html:range?LOCALE.maketext("Adding IP range …"):LOCALE.maketext("Adding IP …")});overlay.render(document.body);overlay.show();var form_values=YAHOO.widget.Dialog.prototype.getData.apply({form:form});var ip=form_values.new_ip_range.trim();var ipv4_mask_match=/\/(.*\..*)$/.exec(ip);if(ipv4_mask_match){var bits=CPANEL.net.ipv4_to_number(ipv4_mask_match[1]).toString(2).match(/^1+/)[0].length;ip=ip.replace(/\/.*$/,"/"+bits)}var ip_data={ips:ip,netmask:form_values.netmask};var range=_refresh_range();if(range){var excludes=get_excludes();for(var e=excludes.length-1;e>=0;e--){var expanded=expand_range(excludes[e]);if(expanded){excludes.splice.apply(excludes,[e,1].concat(expanded))}}if(excludes)ip_data.excludes=excludes.join(",")}CPANEL.api({func:"addips",data:ip_data,callback:CPANEL.ajax.build_page_callback((function(o){if(ERROR_NOTICE&&ERROR_NOTICE.element){var old_notice=ERROR_NOTICE;ERROR_NOTICE=null;CPANEL.animate.slide_up(old_notice.element).onComplete.subscribe(old_notice.destroy,old_notice,true)}new CPANEL.ajax.Dynamic_Notice({level:"success",content:LOCALE.maketext("Success!")})}),{hide_on_return:overlay})})}_refresh_range();var ip_validator=new CPANEL.validate.validator(LOCALE.maketext("IP Address/Range"));ip_validator.add("ip-range",ip_range_fits_netmask,LOCALE.maketext("The given IP range does not fit within the given subnet mask."));EVENT.on("netmask-select","change",(function(){ip_validator.verify()}));ip_validator.add("ip-range",ip_range_is_valid,LOCALE.maketext("The given IP address or range is invalid."));ip_validator.attach();var excludes_validator=new CPANEL.validate.validator(LOCALE.maketext("Excluded IP Addresses/Ranges"));excludes_validator.add("ip-range-exclusions",excludes_are_valid,LOCALE.maketext("All excluded IP addresses and IP ranges must be valid and within the given IP range."));excludes_validator.attach();CPANEL.validate.attach_to_form("submitter",[ip_validator,excludes_validator],undefined,true);
Back to Directory File Manager