backout browse changes until 1.7.4
authorjeff <jeff>
Fri, 18 Apr 2008 16:27:44 +0000 (16:27 +0000)
committerjeff <jeff>
Fri, 18 Apr 2008 16:27:44 +0000 (16:27 +0000)
httemplate/browse/addr_block.cgi
httemplate/browse/router.cgi
httemplate/edit/process/addr_block/allocate.cgi

index d597ee1..7a93519 100644 (file)
-<% include('elements/browse.html',
-                'title'         => 'Address Blocks',
-                'name'          => 'address block',
-                'html_init'     => $html_init,
-                'html_form'     => $html_form,
-                'query'         => { 'table'     => 'addr_block',
-                                     'hashref'   => {},
-                                     'extra_sql' => $extra_sql,
-                                     'order_by'  => $order_by,
-                                   },
-                'count_query'   => "SELECT count(*) from addr_block $extra_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 ? '' : '<FONT SIZE="-2">(split)</FONT>' },
-                                   ],
-                'links'         => [ '',
-                                     '',
-                                     [ 'javascript:void(0)', '' ],
-                                     $split_link,
-                                   ],
-                'link_onclicks' => [ '',
-                                     '',
-                                     $allocate_link,
-                                     '',
-                                   ],
-                'cell_styles'   => [ '',
-                                     '',
-                                     'border-right:none;',
-                                     'border-left:none;',
-                                   ],
-          )
-%>
+<% include('/elements/header.html', 'Address Blocks') %>
+
+<% include('/elements/error.html') %>
+
+<% include('/elements/table-grid.html') %>
+% my $bgcolor1 = '#eeeeee';
+%   my $bgcolor2 = '#ffffff';
+%   my $bgcolor = '';
+
+  <TR>
+    <TH CLASS="grid" BGCOLOR="#cccccc">Address block(s)</TH>
+    <TH CLASS="grid" BGCOLOR="#cccccc">Router</TH>
+    <TH CLASS="grid" BGCOLOR="#cccccc">Action(s)</TH>
+  </TR>
+
+% foreach $block (sort {$a->NetAddr cmp $b->NetAddr} @addr_block) { 
+%    if ( $bgcolor eq $bgcolor1 ) {
+%      $bgcolor = $bgcolor2;
+%    } else {
+%      $bgcolor = $bgcolor1;
+%    }
+
+    <TR>
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>"><%$block->NetAddr%></TD>
+
+%   if (my $router = $block->router) { 
+%
+%     if (scalar($block->svc_broadband) == 0) { 
+
+        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+          <%$router->routername%>
+        </TD>
+        <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+          <FORM ACTION="<%$path%>/deallocate.cgi" METHOD="POST">
+            <INPUT TYPE="hidden" NAME="blocknum" VALUE="<%$block->blocknum%>">
+            <INPUT TYPE="submit" NAME="submit" VALUE="Deallocate">
+          </FORM>
+        </TD>
+%     } else { 
+
+        <TD COLSPAN="2" CLASS="grid" BGCOLOR="<% $bgcolor %>">
+        <%$router->routername%>
+        </TD>
+%     } 
+%
+%   } else { 
+
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+        <FORM ACTION="<%$path%>/allocate.cgi" METHOD="POST">
+          <INPUT TYPE="hidden" NAME="blocknum" VALUE="<%$block->blocknum%>">
+          <SELECT NAME="routernum" SIZE="1">
+%           foreach (@router) { 
+              <OPTION VALUE="<%$_->routernum %>"><%$_->routername%></OPTION>
+%           } 
+          </SELECT>
+          <INPUT TYPE="submit" NAME="submit" VALUE="Allocate">
+        </FORM>
+      </TD>
+      <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+        <FORM ACTION="<%$path%>/split.cgi" METHOD="POST">
+          <INPUT TYPE="hidden" NAME="blocknum" VALUE="<%$block->blocknum%>">
+          <INPUT TYPE="submit" NAME="submit" VALUE="Split">
+        </FORM>
+      </TD>
+
+%   }
+
+  </TR>
+% } 
+
+</TABLE>
+
+<BR><BR>
+<FORM ACTION="<%$path%>/add.cgi" METHOD="POST">
+Gateway/Netmask: 
+<INPUT TYPE="text" NAME="ip_gateway" SIZE="15">/<INPUT TYPE="text" NAME="ip_netmask" SIZE="2">
+<INPUT TYPE="submit" NAME="submit" VALUE="Add">
+
+<% include('/elements/footer.html') %>
 <%init>
 
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('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 $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(
-<SCRIPT>
-  function addr_block_areyousure(href, word) {
-    if(confirm("Are you sure you want to "+word+" this address block?") == true)
-      window.location.href = href;
-  }
-</SCRIPT>
-);
-
-$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_form = qq(
-  <FORM ACTION="$path/add.cgi" METHOD="POST">
-  Gateway/Netmask: 
-  <INPUT TYPE="text" NAME="ip_gateway" SIZE="15">/<INPUT TYPE="text" NAME="ip_netmask" SIZE="2">
-  <INPUT TYPE="submit" NAME="submit" VALUE="Add">
-  </FORM>
-);
-
-my $allocate_text = sub { my $block = shift;
-                          my $router = $block->router;
-                          my $result = '';
-                          if ($router) {
-                            $result = '<FONT SIZE="-2">(deallocate)</FONT>'
-                              unless scalar($block->svc_broadband);
-                          }else{
-                            $result .= '<FONT SIZE="-2">(allocate)</FONT>'
-                          }
-                          $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;
-}; 
-
 </%init>
index 9d856f6..a52f609 100644 (file)
@@ -1,43 +1,76 @@
-<% include('elements/browse.html',
-                'title'           => 'Routers',
-                'menubar'         => [ @menubar ],
-                'name_singular'   => 'router',
-                'query'           => { 'table'     => 'router',
-                                       'hashref'   => {},
-                                       'extra_sql' => $extra_sql,
-                                     },
-                'count_query'     => "SELECT count(*) from router $extra_sql",
-                'header'          => [ 'Router name',
-                                       'Address block(s)',
-                                     ],
-                'fields'          => [ 'routername',
-                                       sub { join( '<BR>', map { $_->NetAddr }
-                                                               shift->addr_block
-                                                 );
-                                           },
-                                     ],
-                'links'           => [ [ "${p2}edit/router.cgi?", 'routernum' ],
-                                       '',
-                                     ],
-          )
-%>
+<% include('/elements/header.html', 'Routers') %>
+
+<% include('/elements/error.html') %>
+
+%my $hidecustomerrouters = 0;
+%my $hideurl = '';
+%if ($cgi->param('hidecustomerrouters') eq '1') {
+%  $hidecustomerrouters = 1;
+%  $cgi->param('hidecustomerrouters', 0);
+%  $hideurl = '<A HREF="' . $cgi->self_url() . '">Show customer routers</A>';
+%} else {
+%  $hidecustomerrouters = 0;
+%  $cgi->param('hidecustomerrouters', 1);
+%  $hideurl = '<A HREF="' . $cgi->self_url() . '">Hide customer routers</A>';
+%}
+
+<A HREF="<%$p2%>edit/router.cgi">Add a new router</A>&nbsp;|&nbsp;<%$hideurl%>
+
+<% include('/elements/table-grid.html') %>
+% my $bgcolor1 = '#eeeeee';
+%   my $bgcolor2 = '#ffffff';
+%   my $bgcolor = '';
+
+  <TR>
+    <TH CLASS="grid" BGCOLOR="#cccccc">Router name</TH>
+    <TH CLASS="grid" BGCOLOR="#cccccc">Address block(s)</TH>
+  </TR>
+
+% foreach my $router (sort {$a->routernum <=> $b->routernum} @router) {
+%     next if $hidecustomerrouters && $router->svcnum;
+%     my @addr_block = $router->addr_block;
+%     if (scalar(@addr_block) == 0) {
+%       push @addr_block, '&nbsp;';
+%     }
+%
+%    if ( $bgcolor eq $bgcolor1 ) {
+%      $bgcolor = $bgcolor2;
+%    } else {
+%      $bgcolor = $bgcolor1;
+%    }
+
+  <TR>
+
+    <TD CLASS="grid" BGCOLOR="<% $bgcolor %>">
+      <A HREF="<%$p2%>edit/router.cgi?<%$router->routernum%>"><%$router->routername%></A>
+    </TD>
+
+    <TD CLASS="inv" BGCOLOR="<% $bgcolor %>">
+      <TABLE CLASS="inv" CELLSPACING=0 CELLPADDING=0>
+
+%       foreach my $block ( @addr_block ) { 
+
+          <TR>
+            <TD><%UNIVERSAL::isa($block, 'FS::addr_block') ? $block->NetAddr : '&nbsp;'%></TD>
+          </TR>
+%       } 
+      </TABLE>
+    </TD>
+
+  </TR>
+
+% } 
+
+</TABLE>
+
+<% include('/elements/footer.html') %>
+
 <%init>
 
 die "access denied"
   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
 
+my @router = qsearch('router', {});
 my $p2 = popurl(2);
-my $extra_sql = '';
-
-my @menubar = ( 'Add a new router', "${p2}edit/router.cgi" );
-
-if ($cgi->param('hidecustomerrouters') eq '1') {
-  $extra_sql = 'WHERE svcnum > 0';
-  $cgi->param('hidecustomerrouters', 0);
-  push @menubar, 'Show customer routers', $cgi->self_url();
-} else {
-  $cgi->param('hidecustomerrouters', 1);
-  push @menubar, 'Hide customer routers', $cgi->self_url();
-}
 
 </%init>
index d1bd73f..fb361b0 100755 (executable)
@@ -1,10 +1,29 @@
-<% include( '../elements/process.html',
-            'table'          => 'addr_block',
-            'copy_on_empty'  => [ fields 'addr_block' ],
-            'error_redirect' => popurl(3). 'allocate.html?',
-            'popup_reload'   => 'Block allocated',
-          )
-%>
+%
+%my $error = '';
+%my $blocknum = $cgi->param('blocknum');
+%my $routernum = $cgi->param('routernum');
+%
+%my $addr_block = qsearchs('addr_block', { blocknum => $blocknum });
+%my $router = qsearchs('router', { routernum => $routernum });
+%
+%if($addr_block) {
+%  if ($router) {
+%    $error = $addr_block->allocate($router);
+%  } else {
+%    $error = "Cannot find router with routernum $routernum";
+%  }
+%} else {
+%  $error = "Cannot find block with blocknum $blocknum";
+%}
+%
+%if ( $error ) {
+%  $cgi->param('error', $error);
+%  print $cgi->redirect(popurl(4). "browse/addr_block.cgi?" . $cgi->query_string);
+%} else { 
+%  print $cgi->redirect(popurl(4). "browse/addr_block.cgi");
+%}
+%
+
 <%init>
 
 my $conf = new FS::Conf;