X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;f=httemplate%2Fbrowse%2Faddr_block.cgi;h=1bbcdcbc1daf7fa6c17215c95026c82c68ac6214;hb=63a268637b2d51a8766412617724b9436439deb6;hp=06ac556cfb89b9f6740a659cff11e7ff15b7767e;hpb=eb9668a6f3181ee02cb335272c5ee4616e61fd09;p=freeside.git diff --git a/httemplate/browse/addr_block.cgi b/httemplate/browse/addr_block.cgi index 06ac556cf..1bbcdcbc1 100644 --- a/httemplate/browse/addr_block.cgi +++ b/httemplate/browse/addr_block.cgi @@ -1,76 +1,145 @@ -<%= header('Address Blocks', menubar('Main Menu' => $p)) %> -<% +<% include('elements/browse.html', + 'title' => 'Address Blocks', + 'name' => 'address block', + 'html_init' => $html_init, + 'html_foot' => $html_foot, + 'query' => { 'table' => 'addr_block', + 'hashref' => {}, + 'extra_sql' => $extra_sql, + 'order_by' => $order_by, + }, + 'count_query' => "SELECT count(*) from addr_block $count_sql", + 'header' => [ 'Address Block', + 'Router', + 'Action(s)', + '', + '', + ], + 'fields' => [ 'NetAddr', + sub { my $block = shift; + my $router = $block->router; + my $result = ''; + if ($router) { + $result .= $router->routername. ' ('; + $result .= scalar($block->svc_broadband). ' services)'; + } + $result; + }, + $allocate_text, + sub { shift->router ? '' : '(split)' }, + sub { '('. (shift->manual_flag ? 'allow' : 'prevent'). ' automatic ip assignment)' }, + ], + 'links' => [ '', + '', + [ 'javascript:void(0)', '' ], + $split_link, + $autoassign_link, + ], + 'link_onclicks' => [ '', + '', + $allocate_link, + '', + ], + 'cell_styles' => [ '', + '', + 'border-right:none;', + 'border-left:none;', + ], + 'agent_virt' => 1, + 'agent_null_right' => 'Broadband global configuration', + 'agent_pos' => 1, + ) +%> +<%init> -use NetAddr::IP; +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Broadband configuration') + || $FS::CurrentUser::CurrentUser->access_right('Broadband global configuration'); -my @addr_block = qsearch('addr_block', {}); -my @router = qsearch('router', {}); -my $block; my $p2 = popurl(2); my $path = $p2 . "edit/process/addr_block"; -%> +my $extra_sql = ""; + +my $count_sql = "WHERE ". $FS::CurrentUser::CurrentUser->agentnums_sql( + 'null_right' => 'Broadband global configuration', +); + +my $order_by = "ORDER BY "; +$order_by .= "inet(ip_gateway), " if driver_name =~ /^Pg/i; +$order_by .= "inet_aton(ip_gateway), " if driver_name =~ /^mysql/i; +$order_by .= "ip_netmask"; + +my $html_init = qq( + +); + +$html_init .= include('/elements/error.html'); + +my $confirm = sub { + my ($verb, $num) = (shift, shift); + "javascript:addr_block_areyousure('$path/$verb.cgi?blocknum=$num', '$verb')"; +}; + +my $html_foot = qq( +
+); + +my $allocate_text = sub { my $block = shift; + my $router = $block->router; + my $result = ''; + if ($router) { + $result = '(deallocate)' + unless scalar($block->svc_broadband); + }else{ + $result .= '(allocate)' + } + $result; +}; -<% if ($cgi->param('error')) { %> - Error: <%=$cgi->param('error')%> -