From: Mitch Jackson Date: Fri, 29 Jun 2018 18:04:33 +0000 (-0500) Subject: RT# 30783 Clean up json code for free_addrs X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=commitdiff_plain;h=0327c04ef25a6879a85b7a4a352147f4746703ee RT# 30783 Clean up json code for free_addrs --- diff --git a/FS/FS/svc_IP_Mixin.pm b/FS/FS/svc_IP_Mixin.pm index 19c7e05fc..56165dce5 100644 --- a/FS/FS/svc_IP_Mixin.pm +++ b/FS/FS/svc_IP_Mixin.pm @@ -132,7 +132,7 @@ sub _used_addresses { # parameter to bypass FS::Record objects creation and just # return hashrefs from DBI. 200,000 hashrefs are many seconds faster # than 200,000 FS::Record objects - my %qsearch = ( + my %qsearch_param = ( table => $class->table, select => $ip_field, hashref => \%qsearch, @@ -140,7 +140,8 @@ sub _used_addresses { ); if ( $octets ) { my $block_str = join('.', (split(/\D/, $block_na->first))[0..$octets-1]); - $qsearch{extra_sql} .= " AND $ip_field LIKE ".dbh->quote("${block_str}.%"); + $qsearch_param{extra_sql} + .= " AND $ip_field LIKE ".dbh->quote("${block_str}.%"); } if ( $block->ip_netmask % 8 ) { @@ -154,7 +155,7 @@ sub _used_addresses { return map { $_->$ip_field } - qsearch( \%qsearch ); + qsearch( \%qsearch_param ); } sub _is_used { diff --git a/httemplate/elements/tr-select-router_block_ip.html b/httemplate/elements/tr-select-router_block_ip.html index 535e953c4..eac41cfad 100644 --- a/httemplate/elements/tr-select-router_block_ip.html +++ b/httemplate/elements/tr-select-router_block_ip.html @@ -71,7 +71,7 @@ function populate_ip_select() { % } if ( blocknum && $.isNumeric(blocknum) && ! e.is(':hidden')) { $.getJSON( - '<% $p %>json/free_addresses_in_block.json.html', + '<% $p %>misc/xmlhttp-free_addresses_in_block.json.html', {blocknum: blocknum}, function(ip_json) { $.each( ip_json, function(idx, val) { diff --git a/httemplate/json/free_addresses_in_block.json.html b/httemplate/json/free_addresses_in_block.json.html deleted file mode 100644 index 6785aac6b..000000000 --- a/httemplate/json/free_addresses_in_block.json.html +++ /dev/null @@ -1,18 +0,0 @@ -<%doc> - Return a json array containing all free ip addresses within a given block - Unless block is larger than /24 - Does somebody really want to populate - 65k addresses into a HTML selectbox? - -<% encode_rest($json) %>\ -<%init> - -my $json = []; - -my $blocknum = $cgi->param('blocknum'); - -my $addr_block = qsearchs( addr_block => { blocknum => $blocknum }); - -$json = $addr_block->free_addrs - if ref $addr_block && $addr_block->ip_netmask >= 24; - - diff --git a/httemplate/misc/xmlhttp-free_addresses_in_block.json.html b/httemplate/misc/xmlhttp-free_addresses_in_block.json.html new file mode 100644 index 000000000..801718d35 --- /dev/null +++ b/httemplate/misc/xmlhttp-free_addresses_in_block.json.html @@ -0,0 +1,18 @@ +<%doc> + Return a json array containing all free ip addresses within a given block + Unless block is larger than /24 - Does somebody really want to populate + 65k addresses into a HTML selectbox? + +<% encode_json($json) %>\ +<%init> + +my $json = []; + +my $blocknum = $cgi->param('blocknum'); + +my $addr_block = qsearchs( addr_block => { blocknum => $blocknum }); + +$json = $addr_block->free_addrs + if ref $addr_block && $addr_block->ip_netmask >= 24; + +