X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=httemplate%2Fbrowse%2Faddr_block.cgi;h=9e7ef2af27d031bf70394688d0fa13c023b297bf;hp=408d5729884782688b276b42cd629aaed3df3ffa;hb=d2cc614910c251801564615a268c7ca3bdb2c954;hpb=15777da47bab33e8f0021e6dd9aa6b434fa9be30 diff --git a/httemplate/browse/addr_block.cgi b/httemplate/browse/addr_block.cgi index 408d57298..9e7ef2af2 100644 --- a/httemplate/browse/addr_block.cgi +++ b/httemplate/browse/addr_block.cgi @@ -1,86 +1,162 @@ -<% include("/elements/header.html",'Address Blocks', menubar('Main Menu' => $p)) %> -% -% -%use NetAddr::IP; -% -%my @addr_block = qsearch('addr_block', {}); -%my @router = qsearch('router', {}); -%my $block; -%my $p2 = popurl(2); -%my $path = $p2 . "edit/process/addr_block"; -% -% -% if ($cgi->param('error')) { +<& 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 $b = shift; + my $router = $b->router; + my $result = ''; + if ($router) { + $result .= $router->routername. ' ('. + scalar($b->svc_broadband). ' broadband, '. + scalar($b->svc_acct). ' account services)'; + } + $result; + }, + $allocate_text, + sub { shift->router ? '' : '(split)' }, + sub { '('. (shift->manual_flag ? 'allow' : 'prevent'). ' automatic ip assignment)' }, + sub { + my $block = shift; + if(!$block->router && scalar($block->svc_broadband) == 0) { + return '(delete)'; + } + ''; + }, + ], + 'sort_fields' => [], + 'links' => [ '', + '', + [ 'javascript:void(0)', '' ], + $split_link, + $autoassign_link, + sub { + my $block = shift; + if(!$block->router && scalar($block->svc_broadband) == 0) { + [ "${p}misc/delete-addr_block.html?", 'blocknum' ]; + } + }, + ], + '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> - Error: <%$cgi->param('error')%> -

-% } +die "access denied" + unless $FS::CurrentUser::CurrentUser->access_right('Broadband configuration') + || $FS::CurrentUser::CurrentUser->access_right('Broadband global configuration'); +my $p2 = popurl(2); +my $path = $p2 . "edit/process/addr_block"; -<%table()%> -% foreach $block (sort {$a->NetAddr cmp $b->NetAddr} @addr_block) { +my $extra_sql = ""; - - <%$block->NetAddr%> -% if (my $router = $block->router) { -% if (scalar($block->svc_broadband) == 0) { +my $count_sql = "WHERE ". $FS::CurrentUser::CurrentUser->agentnums_sql( + 'null_right' => 'Broadband global configuration', +); - - <%$router->routername%> - - -
- - -
- -% } else { +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"; - - <%$router->routername%> - -% } -% } else { +my $html_init = qq( + +); - -
- - - -
- - -
- - -
- - -% } -% } +my $html_foot = qq( +
+ Gateway/Netmask: + / +); +$html_foot .= include( '/elements/select-agent.html', + 'agent_null_right' => 'Broadband global configuration', + ); +$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; +}; + +my $allocate_link = sub { + my $block = shift; + if ($block->router) { + if (scalar($block->svc_broadband) == 0) { + &{$confirm}('deallocate', $block->blocknum); + } else { + ""; + } + } else { + include( '/elements/popup_link_onclick.html', + 'action' => "${p2}edit/allocate.html?blocknum=". $block->blocknum, + 'actionlabel' => 'Allocate block to router', + ); + } +}; + +my $split_link = sub { + my $block = shift; + my $ref = [ '', '' ]; + $ref = [ &{$confirm}('split', $block->blocknum), '' ] + unless ($block->router); + $ref; +}; + +my $autoassign_link = sub { + my $block = shift; + my $url = "$path/manual_flag.cgi?manual_flag="; + $url .= $block->manual_flag ? '' : 'Y'; + [ "$url;blocknum=", 'blocknum' ]; +}; -
- -
- Gateway/Netmask - - / - - - - -
- - - - -<%init> -die "access denied" - unless $FS::CurrentUser::CurrentUser->access_right('Configuration');