diff options
author | khoff <khoff> | 2003-02-05 23:17:17 +0000 |
---|---|---|
committer | khoff <khoff> | 2003-02-05 23:17:17 +0000 |
commit | 0354f39ed0e74fd2eae1d9da13906625b4f56591 (patch) | |
tree | 730b2ac862f4c47c661d91a91ccb8167a4a0ee8f /httemplate/edit/svc_broadband.cgi | |
parent | c89aa83639038cc1946fec07a2dda252f64e5144 (diff) |
svc_broadband rewrite
Diffstat (limited to 'httemplate/edit/svc_broadband.cgi')
-rw-r--r-- | httemplate/edit/svc_broadband.cgi | 251 |
1 files changed, 108 insertions, 143 deletions
diff --git a/httemplate/edit/svc_broadband.cgi b/httemplate/edit/svc_broadband.cgi index d8a1f7a2a..f017d7a6e 100644 --- a/httemplate/edit/svc_broadband.cgi +++ b/httemplate/edit/svc_broadband.cgi @@ -1,6 +1,13 @@ <!-- mason kludge --> <% +# If it's stupid but it works, it's still stupid. +# -Kristian + + +use HTML::Widgets::SelectLayers; +use Tie::IxHash; + my( $svcnum, $pkgnum, $svcpart, $part_svc, $svc_broadband ); if ( $cgi->param('error') ) { $svc_broadband = new FS::svc_broadband ( { @@ -38,6 +45,8 @@ if ( $cgi->param('error') ) { $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart}); die "No part_svc entry!" unless $part_svc; + $svc_broadband->setfield('svcpart', $svcpart); + $svcnum=''; #set fixed and default fields from part_svc @@ -53,12 +62,9 @@ if ( $cgi->param('error') ) { } my $action = $svc_broadband->svcnum ? 'Edit' : 'Add'; -my @ac_list; - if ($pkgnum) { - unless ($svc_broadband->actypenum) {die "actypenum must be set fixed";}; - @ac_list = qsearch('ac', { actypenum => $svc_broadband->getfield('actypenum') }); + #Nothing? } elsif ( $action eq 'Edit' ) { @@ -68,152 +74,111 @@ if ($pkgnum) { die "\$action eq Add, but \$pkgnum is null!\n"; } - my $p1 = popurl(1); -print header("Broadband Service $action", ''); - -print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'), - "</FONT>" - if $cgi->param('error'); - -print qq!<FORM ACTION="${p1}process/svc_broadband.cgi" METHOD=POST>!; - -#display - - - -#svcnum -print qq!<INPUT TYPE="hidden" NAME="svcnum" VALUE="$svcnum">!; -print qq!Service #<B>!, $svcnum ? $svcnum : "(NEW)", "</B><BR><BR>"; - -#pkgnum -print qq!<INPUT TYPE="hidden" NAME="pkgnum" VALUE="$pkgnum">!; - -#svcpart -print qq!<INPUT TYPE="hidden" NAME="svcpart" VALUE="$svcpart">!; - -#actypenum -print '<INPUT TYPE="hidden" NAME="actypenum" VALUE="' . - $svc_broadband->actypenum . '">'; - - -print &ntable("#cccccc",2) . qq!<TR><TD ALIGN="right">AC</TD><TD>!; - -#acnum -if (( $part_svc->part_svc_column('acnum')->columnflag eq 'F' ) or - ( !$pkgnum )) { - - my $ac = qsearchs('ac', { acnum => $svc_broadband->acnum }); - my ($acnum, $acname) = ($ac->acnum, $ac->acname); - - print qq!<INPUT TYPE="hidden" NAME="acnum" VALUE="${acnum}">! . - qq!${acnum}: ${acname}</TD></TR>!; - -} else { - - my @ac_list = qsearch('ac', { actypenum => $svc_broadband->actypenum }); - print qq!<SELECT NAME="acnum" SIZE="1"><OPTION VALUE=""></OPTION>!; - - foreach ( @ac_list ) { - my ($acnum, $acname) = ($_->acnum, $_->acname); - print qq!<OPTION VALUE="${acnum}"! . - ($acnum == $svc_broadband->acnum ? ' SELECTED>' : '>') . - qq!${acname}</OPTION>!; - } - print '</TD></TR>'; - -} - -#speed_up & speed_down -my ($speed_up, $speed_down) = ($svc_broadband->speed_up, - $svc_broadband->speed_down); -print '<TR><TD ALIGN="right">Download speed</TD><TD>'; -if ( $part_svc->part_svc_column('speed_down')->columnflag eq 'F' ) { - print qq!<INPUT TYPE="hidden" NAME="speed_down" VALUE="${speed_down}">! . - qq!${speed_down}Kbps</TD></TR>!; -} else { - print qq!<INPUT TYPE="text" NAME="speed_down" SIZE=5 VALUE="${speed_down}">! . - qq!Kbps</TD></TR>!; -} - -print '<TR><TD ALIGN="right">Upload speed</TD><TD>'; -if ( $part_svc->part_svc_column('speed_up')->columnflag eq 'F' ) { - print qq!<INPUT TYPE="hidden" NAME="speed_up" VALUE="${speed_up}">! . - qq!${speed_up}Kbps</TD></TR>!; -} else { - print qq!<INPUT TYPE="text" NAME="speed_up" SIZE=5 VALUE="${speed_up}">! . - qq!Kbps</TD></TR>!; -} +my ($ip_addr, $speed_up, $speed_down, $blocknum) = + ($svc_broadband->ip_addr, + $svc_broadband->speed_up, + $svc_broadband->speed_down, + $svc_broadband->blocknum); -#ip_addr & ip_netmask -#We're assuming that ip_netmask is fixed if ip_addr is fixed. -#If it isn't, well, <shudder> what the heck are you doing!?!? - -my ($ip_addr, $ip_netmask) = ($svc_broadband->ip_addr, - $svc_broadband->ip_netmask); - -print '<TR><TD ALIGN="right">IP address/Mask</TD><TD>'; -if ( $part_svc->part_svc_column('ip_addr')->columnflag eq 'F' ) { - print qq!<INPUT TYPE="hidden" NAME="ip_addr" VALUE="${ip_addr}">! . - qq!<INPUT TYPE="hidden" NAME="ip_netmask" VALUE="${ip_netmask}">! . - qq!${ip_addr}/${ip_netmask}</TD></TR>!; -} else { - $ip_addr =~ /^(\d+)\.(\d+)\.(\d+)\.(\d+)$/; - print <<END; - <INPUT TYPE="text" NAME="ip_addr_a" SIZE="3" MAXLENGTH="3" VALUE="${1}">. - <INPUT TYPE="text" NAME="ip_addr_b" SIZE="3" MAXLENGTH="3" VALUE="${2}">. - <INPUT TYPE="text" NAME="ip_addr_c" SIZE="3" MAXLENGTH="3" VALUE="${3}">. - <INPUT TYPE="text" NAME="ip_addr_d" SIZE="3" MAXLENGTH="3" VALUE="${4}">/ - <INPUT TYPE="text" NAME="ip_netmask" SIZE="2" MAXLENGTH="2" VALUE="${ip_netmask}"> -</TD></TR> -<TR><TD COLSPAN="2" WIDTH="300"> -<P><SMALL>Leave the IP address and netmask blank for automatic assignment of a /32 address. Specifing the netmask and not the address will force assignment of a larger block.</SMALL></P> -</TD></TR> -END -} - -#mac_addr -my $mac_addr = $svc_broadband->mac_addr; - -unless (( $part_svc->part_svc_column('mac_addr')->columnflag eq 'F' ) and - ( $mac_addr eq '' )) { - print '<TR><TD ALIGN="right">MAC Address</TD><TD>'; - if ( $part_svc->part_svc_column('mac_addr')->columnflag eq 'F' ) { #Why? - print qq!<INPUT TYPE="hidden" NAME="mac_addr" VALUE="${mac_addr}">! . - qq!${mac_addr}</TD></TR>!; - } else { - #Ewwww - $mac_addr =~ /^([a-f0-9]{2}):([a-f0-9]{2}):([a-f0-9]{2}):([a-f0-9]{2}):([a-f0-9]{2}):([a-f0-9]{2})$/i; - print <<END; - <INPUT TYPE="text" NAME="mac_addr_a" SIZE="2" MACLENGTH="2" VALUE="${1}">: - <INPUT TYPE="text" NAME="mac_addr_b" SIZE="2" MACLENGTH="2" VALUE="${2}">: - <INPUT TYPE="text" NAME="mac_addr_c" SIZE="2" MACLENGTH="2" VALUE="${3}">: - <INPUT TYPE="text" NAME="mac_addr_d" SIZE="2" MACLENGTH="2" VALUE="${4}">: - <INPUT TYPE="text" NAME="mac_addr_e" SIZE="2" MACLENGTH="2" VALUE="${5}">: - <INPUT TYPE="text" NAME="mac_addr_f" SIZE="2" MACLENGTH="2" VALUE="${6}"> -</TD></TR> -END +%> +<%=header("Broadband Service $action", '')%> + +<% if ($cgi->param('error')) { %> +<FONT SIZE="+1" COLOR="#ff0000">Error: <%=$cgi->param('error')%></FONT><BR> +<% } %> + +Service #<B><%=$svcnum ? $svcnum : "(NEW)"%></B><BR><BR> + +<FORM ACTION="<%=${p1}%>process/svc_broadband.cgi" METHOD=POST> + <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%=$svcnum%>"> + <INPUT TYPE="hidden" NAME="pkgnum" VALUE="<%=$pkgnum%>"> + <INPUT TYPE="hidden" NAME="svcpart" VALUE="<%=$svcpart%>"> + <INPUT TYPE="hidden" NAME="ip_addr" VALUE="<%=$ip_addr%>"> + + <%=&ntable("#cccccc",2)%> + + <TR> + <TD ALIGN="right">Download speed</TD> + <TD BGCOLOR="#ffffff"> +<% if ( $part_svc->part_svc_column('speed_down')->columnflag eq 'F' ) { %> + <INPUT TYPE="hidden" NAME="speed_down" VALUE="<%=$speed_down%>"><%=$speed_down%>Kbps +<% } else { %> + <INPUT TYPE="text" NAME="speed_down" SIZE=5 VALUE="<%=$speed_down%>">Kbps +<% } %> + </TD> + </TR> + <TR> + <TD ALIGN="right">Upload speed</TD> + <TD BGCOLOR="#ffffff"> +<% if ( $part_svc->part_svc_column('speed_up')->columnflag eq 'F' ) { %> + <INPUT TYPE="hidden" NAME="speed_up" VALUE="<%=$speed_up%>"><%=$speed_up%>Kbps +<% } else { %> + <INPUT TYPE="text" NAME="speed_up" SIZE=5 VALUE="<%=$speed_up%>">Kbps +<% } %> + </TD> + </TR> +<% if ($action eq 'Add') { %> + <TR> + <TD ALIGN="right">Router/Block</TD> + <TD BGCOLOR="#ffffff"> + <SELECT NAME="blocknum"> +<% + foreach my $router ($svc_broadband->allowed_routers) { + foreach my $addr_block ($router->addr_block) { +%> + <OPTION VALUE="<%=$addr_block->blocknum%>"<%=($addr_block->blocknum eq $blocknum) ? ' SELECTED' : ''%>> + <%=$router->routername%>:<%=$addr_block->ip_gateway%>/<%=$addr_block->ip_netmask%></OPTION> +<% + } } -} - -#location -my $location = $svc_broadband->location; +%> + </SELECT> + </TD> + </TR> +<% } else { %> -print '<TR><TD VALIGN="top" ALIGN="right">Location</TD><TD BGCOLOR="#e8e8e8">'; -if ( $part_svc->part_svc_column('location')->columnflag eq 'F' ) { - print qq!<PRE>${location}</PRE></TD></TR>!; -} else { - print qq!<TEXTAREA ROWS="4" COLS="30" NAME="location">${location}</TEXTAREA>!; -} + <TR> + <TD ALIGN="right">Router/Block</TD> + <TD BGCOLOR="#ffffff"> + <%=$svc_broadband->addr_block->router->routername%>:<%=$svc_broadband->addr_block->NetAddr%> + <INPUT TYPE="hidden" NAME="blocknum" VALUE="<%=$svc_broadband->blocknum%>"> + </TD> + </TR> -print '</TABLE><BR><INPUT TYPE="submit" VALUE="Submit">'; +<% } %> -print <<END; +<% - </FORM> - </BODY> + my @part_sb_field = qsearch('part_sb_field', { svcpart => $svcpart }); + my $sbf_hashref = $svc_broadband->sb_field_hashref($svcpart); + foreach (sort { $a->name cmp $b->name } @part_sb_field) { + %> + <TR> + <TD ALIGN="right"><%=$_->name%></TD> + <TD><% + if(my @opts = $_->list_values) { + %> + <SELECT NAME="sbf_<%=$_->sbfieldpart%>" SIZE=1> <% + foreach $opt (@opts) { %> + <OPTION VALUE="<%=$opt%>"<%= + ($opt eq $sbf_hashref->{$_->name}) ? ' SELECTED' : ''%>> + <%=$opt%></OPTION><% + } %></SELECT> + <% } else { %> + <INPUT NAME="sbf_<%=$_->sbfieldpart%>" + VALUE="<%=$sbf_hashref->{$_->name}%>" + <%=$_->length ? 'SIZE="'.$_->length.'"' : ''%>> + <% } %> + </TD> + </TR> +<% } %> + </TABLE> + <BR> + <INPUT TYPE="submit" NAME="submit" VALUE="Submit"> +</FORM> +</BODY> </HTML> -END -%> + |