1 <& elements/browse.html,
2 'title' => 'Address Blocks',
3 'name' => 'address block',
4 'html_init' => $html_init,
5 'html_foot' => $html_foot,
6 'query' => { 'table' => 'addr_block',
8 'extra_sql' => $extra_sql,
9 'order_by' => $order_by,
11 'count_query' => "SELECT count(*) from addr_block $count_sql",
12 'header' => [ 'Address Block',
19 'fields' => [ 'NetAddr',
21 my $router = $b->router;
24 $result .= $router->routername. ' ('.
25 scalar($b->svc_broadband). ' broadband, '.
26 scalar($b->svc_acct). ' account services)';
31 sub { shift->router ? '' : '<FONT SIZE="-2">(split)</FONT>' },
32 sub { '<FONT SIZE="-2">('. (shift->manual_flag ? 'allow' : 'prevent'). ' automatic ip assignment)</FONT>' },
35 if(!$block->router && scalar($block->svc_broadband) == 0) {
36 return '<FONT SIZE="-2">(delete)</FONT>';
44 [ 'javascript:void(0)', '' ],
49 if(!$block->router && scalar($block->svc_broadband) == 0) {
50 [ "${p}misc/delete-addr_block.html?", 'blocknum' ];
54 'link_onclicks' => [ '',
60 'cell_styles' => [ '',
67 'agent_null_right' => 'Broadband global configuration',
73 unless $FS::CurrentUser::CurrentUser->access_right('Broadband configuration')
74 || $FS::CurrentUser::CurrentUser->access_right('Broadband global configuration');
77 my $path = $p2 . "edit/process/addr_block";
81 my $count_sql = "WHERE ". $FS::CurrentUser::CurrentUser->agentnums_sql(
82 'null_right' => 'Broadband global configuration',
85 my $order_by = "ORDER BY ";
86 $order_by .= "inet(ip_gateway), " if driver_name =~ /^Pg/i;
87 $order_by .= "inet_aton(ip_gateway), " if driver_name =~ /^mysql/i;
88 $order_by .= "ip_netmask";
92 function addr_block_areyousure(href, word) {
93 if(confirm("Are you sure you want to "+word+" this address block?") == true)
94 window.location.href = href;
99 $html_init .= include('/elements/error.html');
102 my ($verb, $num) = (shift, shift);
103 "javascript:addr_block_areyousure('$path/$verb.cgi?blocknum=$num', '$verb')";
107 <FORM ACTION="$path/add.cgi" METHOD="POST">
109 <INPUT TYPE="text" NAME="ip_gateway" SIZE="15">/<INPUT TYPE="text" NAME="ip_netmask" SIZE="2">
111 $html_foot .= include( '/elements/select-agent.html',
112 'agent_null_right' => 'Broadband global configuration',
115 <INPUT TYPE="submit" NAME="submit" VALUE="Add">
119 my $allocate_text = sub { my $block = shift;
120 my $router = $block->router;
123 $result = '<FONT SIZE="-2">(deallocate)</FONT>'
124 unless scalar($block->svc_broadband);
126 $result .= '<FONT SIZE="-2">(allocate)</FONT>'
131 my $allocate_link = sub {
133 if ($block->router) {
134 if (scalar($block->svc_broadband) == 0) {
135 &{$confirm}('deallocate', $block->blocknum);
140 include( '/elements/popup_link_onclick.html',
141 'action' => "${p2}edit/allocate.html?blocknum=". $block->blocknum,
142 'actionlabel' => 'Allocate block to router',
147 my $split_link = sub {
149 my $ref = [ '', '' ];
150 $ref = [ &{$confirm}('split', $block->blocknum), '' ]
151 unless ($block->router);
155 my $autoassign_link = sub {
157 my $url = "$path/manual_flag.cgi?manual_flag=";
158 $url .= $block->manual_flag ? '' : 'Y';
159 [ "$url;blocknum=", 'blocknum' ];