5 if ( $cgi->param('error') ) {
7 map { $_, scalar($cgi->param($_)) } fields('ac')
9 } elsif ( $cgi->keywords ) { #editing
10 my( $query ) = $cgi->keywords;
12 $ac=qsearchs('ac',{'acnum'=>$1});
16 my $action = $ac->acnum ? 'Edit' : 'Add';
17 my $hashref = $ac->hashref;
19 print header("$action Access Concentrator", menubar(
21 'View all access concentrators' => "${p}browse/ac.cgi",
24 print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
26 if $cgi->param('error');
28 print '<FORM ACTION="', popurl(1), 'process/ac.cgi" METHOD=POST>',
29 qq!<INPUT TYPE="hidden" NAME="acnum" VALUE="$hashref->{acnum}">!,
30 "Access Concentrator #", $hashref->{acnum} ? $hashref->{acnum} : "(NEW)";
34 <TABLE COLOR="#cccccc">
36 <TH ALIGN="RIGHT">Access Concentrator</TH>
38 <INPUT TYPE="text" NAME="acname" SIZE=15 VALUE="$hashref->{acname}">
47 <TH ALIGN="RIGHT">Access Concentrator Type</TH>
48 <TD><SELECT NAME="actypenum" SIZE="1"><OPTION VALUE=""></OPTION>
51 foreach (qsearch('ac_type', {})) {
52 my $narf = $_->hashref;
54 ($narf->{actypenum} eq $hashref->{actypenum} ? ' SELECTED' : '') .
55 qq! VALUE="$narf->{actypenum}">$narf->{actypenum}: $narf->{actypename}! .
59 print '</TD></TR></TABLE>';
62 print qq!<INPUT TYPE="hidden" NAME="actypenum" VALUE="$hashref->{actypenum}">!;
65 print qq!</TABLE><BR><BR><INPUT TYPE="submit" VALUE="!,
66 $hashref->{acnum} ? "Apply changes" : "Add access concentrator",
69 if ($hashref->{acnum}) {
72 Additional Fields:<BR>
75 <TD COLSPAN=2>Field Value</TD>
79 #my @ac_fields = qsearch('ac_field', { acnum => $hashref->{acnum} });
80 my @ac_fields = $ac->ac_field;
81 foreach (@ac_fields) {
82 print qq!\n<TR><TD></TD>!;
83 my $part_ac_field = qsearchs('part_ac_field',
84 { acfieldpart => $_->getfield('acfieldpart') });
85 print '<TD>' . $part_ac_field->getfield('name') .
86 '</TD><TD>' . $_->getfield('value') . '</TD></TR>';
90 print '<FORM ACTION="', popurl(1), 'process/ac_field.cgi" METHOD=POST>';
93 <TD><INPUT TYPE="hidden" NAME="acnum" VALUE="$hashref->{acnum}">
94 <INPUT TYPE="hidden" NAME="acname" VALUE="$hashref->{acname}">
95 <INPuT TYPE="hidden" NAME="actypenum" VALUE="$hashref->{actypenum}">
98 <TD><SELECT NAME="acfieldpart"><OPTION></OPTION>
101 my @part_ac_fields = qsearch('part_ac_field',
102 { actypenum => $hashref->{actypenum} });
103 foreach my $part_ac_field (@part_ac_fields) {
104 my $acfieldpart = $part_ac_field->getfield('acfieldpart');
105 if (grep {$_->getfield('acfieldpart') eq $acfieldpart} @ac_fields) {next;}
106 print qq!<OPTION VALUE="${acfieldpart}">! .
107 $part_ac_field->getfield('name') . '</OPTION>';
113 <TD><INPUT TYPE="text" SIZE="15" NAME="value"></TD>
114 <TD><INPUT TYPE="submit" VALUE="Add"></TD>
122 if ($hashref->{acnum}) {
124 print qq!<BR><BR>IP Address Blocks:<BR>! . table() .
125 qq!<TR><TH></TH><TH>Network/Mask</TH>! .
126 qq!<TH>Gateway Address</TH><TH>Mask length</TH></TR>\n!;
128 foreach (qsearch('ac_block', { acnum => $hashref->{acnum} })) {
129 my $ip_addr = new NetAddr::IP($_->getfield('ip_gateway'),
130 $_->getfield('ip_netmask'));
131 print qq!<TR><TD></TD><TD>! . $ip_addr->network->addr() . '/' .
132 $ip_addr->network->mask() . qq!</TD>!;
134 print qq!<TD>! . $_->getfield('ip_gateway') . qq!</TD>\n! .
135 qq!<TD>! . $_->getfield('ip_netmask') . qq!</TD></TR>!;
139 print '<FORM ACTION="', popurl(1), 'process/ac_block.cgi" METHOD=POST>';
142 <TD><INPUT TYPE="hidden" NAME="acnum" VALUE="$hashref->{acnum}">
143 <INPUT TYPE="hidden" NAME="acname" VALUE="$hashref->{acname}">
144 <INPuT TYPE="hidden" NAME="actypenum" VALUE="$hashref->{actypenum}">
148 <TD><INPUT TYPE="text" NAME="ip_gateway" SIZE="15"></TD>
149 <TD><INPUT TYPE="text" NAME="ip_netmask" SIZE="2"></TD>
150 <TD><INPUT TYPE="submit" VALUE="Add"></TD>