diff options
Diffstat (limited to 'httemplate/edit/ac.cgi')
-rwxr-xr-x | httemplate/edit/ac.cgi | 163 |
1 files changed, 163 insertions, 0 deletions
diff --git a/httemplate/edit/ac.cgi b/httemplate/edit/ac.cgi new file mode 100755 index 000000000..86b05a4a1 --- /dev/null +++ b/httemplate/edit/ac.cgi @@ -0,0 +1,163 @@ +<!-- mason kludge --> +<% + +my($ac); +if ( $cgi->param('error') ) { + $ac = new FS::ac ( { + map { $_, scalar($cgi->param($_)) } fields('ac') + } ); +} elsif ( $cgi->keywords ) { #editing + my( $query ) = $cgi->keywords; + $query =~ /^(\d+)$/; + $ac=qsearchs('ac',{'acnum'=>$1}); +} else { #adding + $ac = new FS::ac {}; +} +my $action = $ac->acnum ? 'Edit' : 'Add'; +my $hashref = $ac->hashref; + +print header("$action Access Concentrator", menubar( + 'Main Menu' => "$p", + 'View all access concentrators' => "${p}browse/ac.cgi", +)); + +print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'), + "</FONT>" + if $cgi->param('error'); + +print '<FORM ACTION="', popurl(1), 'process/ac.cgi" METHOD=POST>', + qq!<INPUT TYPE="hidden" NAME="acnum" VALUE="$hashref->{acnum}">!, + "Access Concentrator #", $hashref->{acnum} ? $hashref->{acnum} : "(NEW)"; + +print <<END; + +<TABLE COLOR="#cccccc"> + <TR> + <TH ALIGN="RIGHT">Access Concentrator</TH> + <TD> + <INPUT TYPE="text" NAME="acname" SIZE=15 VALUE="$hashref->{acname}"> + </TD> + </TD> +END + + +if (! $ac->acnum) { + print <<END; + <TR> + <TH ALIGN="RIGHT">Access Concentrator Type</TH> + <TD><SELECT NAME="actypenum" SIZE="1"><OPTION VALUE=""></OPTION> +END + + foreach (qsearch('ac_type', {})) { + my $narf = $_->hashref; + print qq!<OPTION! . + ($narf->{actypenum} eq $hashref->{actypenum} ? ' SELECTED' : '') . + qq! VALUE="$narf->{actypenum}">$narf->{actypenum}: $narf->{actypename}! . + qq!</OPTION>!; + } + + print '</TD></TR></TABLE>'; +} else { + print '</TABLE>'; + print qq!<INPUT TYPE="hidden" NAME="actypenum" VALUE="$hashref->{actypenum}">!; +} + +print qq!</TABLE><BR><BR><INPUT TYPE="submit" VALUE="!, + $hashref->{acnum} ? "Apply changes" : "Add access concentrator", + qq!"></FORM>!; + +if ($hashref->{acnum}) { + print table(); + print <<END; + Additional Fields:<BR> + <TH> + <TD>Field Name</TD> + <TD COLSPAN=2>Field Value</TD> + </TH> +END + + #my @ac_fields = qsearch('ac_field', { acnum => $hashref->{acnum} }); + my @ac_fields = $ac->ac_field; + foreach (@ac_fields) { + print qq!\n<TR><TD></TD>!; + my $part_ac_field = qsearchs('part_ac_field', + { acfieldpart => $_->getfield('acfieldpart') }); + print '<TD>' . $part_ac_field->getfield('name') . + '</TD><TD>' . $_->getfield('value') . '</TD></TR>'; + print "\n"; + } + + print '<FORM ACTION="', popurl(1), 'process/ac_field.cgi" METHOD=POST>'; + print <<END; + <TR> + <TD><INPUT TYPE="hidden" NAME="acnum" VALUE="$hashref->{acnum}"> + <INPUT TYPE="hidden" NAME="acname" VALUE="$hashref->{acname}"> + <INPuT TYPE="hidden" NAME="actypenum" VALUE="$hashref->{actypenum}"> + <SMALL>(NEW)</SMALL> + </TD> + <TD><SELECT NAME="acfieldpart"><OPTION></OPTION> +END + + my @part_ac_fields = qsearch('part_ac_field', + { actypenum => $hashref->{actypenum} }); + foreach my $part_ac_field (@part_ac_fields) { + my $acfieldpart = $part_ac_field->getfield('acfieldpart'); + if (grep {$_->getfield('acfieldpart') eq $acfieldpart} @ac_fields) {next;} + print qq!<OPTION VALUE="${acfieldpart}">! . + $part_ac_field->getfield('name') . '</OPTION>'; + } + + print <<END; + </SELECT> + </TD> + <TD><INPUT TYPE="text" SIZE="15" NAME="value"></TD> + <TD><INPUT TYPE="submit" VALUE="Add"></TD> + </TR> + </FORM> + </TABLE> +END + +} + +if ($hashref->{acnum}) { + + print qq!<BR><BR>IP Address Blocks:<BR>! . table() . + qq!<TR><TH></TH><TH>Network/Mask</TH>! . + qq!<TH>Gateway Address</TH><TH>Mask length</TH></TR>\n!; + + foreach (qsearch('ac_block', { acnum => $hashref->{acnum} })) { + my $ip_addr = new NetAddr::IP($_->getfield('ip_gateway'), + $_->getfield('ip_netmask')); + print qq!<TR><TD></TD><TD>! . $ip_addr->network->addr() . '/' . + $ip_addr->network->mask() . qq!</TD>!; + + print qq!<TD>! . $_->getfield('ip_gateway') . qq!</TD>\n! . + qq!<TD>! . $_->getfield('ip_netmask') . qq!</TD></TR>!; + + } + + print '<FORM ACTION="', popurl(1), 'process/ac_block.cgi" METHOD=POST>'; + print <<END; + <TR> + <TD><INPUT TYPE="hidden" NAME="acnum" VALUE="$hashref->{acnum}"> + <INPUT TYPE="hidden" NAME="acname" VALUE="$hashref->{acname}"> + <INPuT TYPE="hidden" NAME="actypenum" VALUE="$hashref->{actypenum}"> + <SMALL>(NEW)</SMALL> + </TD> + <TD></TD> + <TD><INPUT TYPE="text" NAME="ip_gateway" SIZE="15"></TD> + <TD><INPUT TYPE="text" NAME="ip_netmask" SIZE="2"></TD> + <TD><INPUT TYPE="submit" VALUE="Add"></TD> + </TR> + </FORM> +</TABLE> +END + +} + +print <<END; + </BODY> +</HTML> +END + +%> |