svc_broadband merge
[freeside.git] / httemplate / edit / ac.cgi
1 <!-- mason kludge -->
2 <%
3
4 my($ac);
5 if ( $cgi->param('error') ) {
6   $ac = new FS::ac ( {
7     map { $_, scalar($cgi->param($_)) } fields('ac')
8   } );
9 } elsif ( $cgi->keywords ) { #editing
10   my( $query ) = $cgi->keywords;
11   $query =~ /^(\d+)$/;
12   $ac=qsearchs('ac',{'acnum'=>$1});
13 } else { #adding
14   $ac = new FS::ac {};
15 }
16 my $action = $ac->acnum ? 'Edit' : 'Add';
17 my $hashref = $ac->hashref;
18
19 print header("$action Access Concentrator", menubar(
20   'Main Menu' => "$p",
21   'View all access concentrators' => "${p}browse/ac.cgi",
22 ));
23
24 print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
25       "</FONT>"
26   if $cgi->param('error');
27
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)";
31
32 print <<END;
33
34 <TABLE COLOR="#cccccc">
35   <TR>
36     <TH ALIGN="RIGHT">Access Concentrator</TH>
37     <TD>
38       <INPUT TYPE="text" NAME="acname" SIZE=15 VALUE="$hashref->{acname}">
39     </TD>
40   </TD>
41 END
42
43
44 if (! $ac->acnum) {
45   print <<END;
46   <TR>
47     <TH ALIGN="RIGHT">Access Concentrator Type</TH>
48     <TD><SELECT NAME="actypenum" SIZE="1"><OPTION VALUE=""></OPTION>
49 END
50
51   foreach (qsearch('ac_type', {})) {
52     my $narf = $_->hashref;
53     print qq!<OPTION! .
54           ($narf->{actypenum} eq $hashref->{actypenum} ? ' SELECTED' : '') .
55           qq! VALUE="$narf->{actypenum}">$narf->{actypenum}: $narf->{actypename}! .
56           qq!</OPTION>!;
57   }
58
59   print '</TD></TR></TABLE>';
60 } else {
61   print '</TABLE>';
62   print qq!<INPUT TYPE="hidden" NAME="actypenum" VALUE="$hashref->{actypenum}">!;
63 }
64
65 print qq!</TABLE><BR><BR><INPUT TYPE="submit" VALUE="!,
66       $hashref->{acnum} ? "Apply changes" : "Add access concentrator",
67       qq!"></FORM>!;
68
69 if ($hashref->{acnum}) {
70   print table();
71   print <<END;
72     Additional Fields:<BR>
73     <TH>
74       <TD>Field Name</TD>
75       <TD COLSPAN=2>Field Value</TD>
76     </TH>
77 END
78
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>';
87     print "\n";
88   }
89
90   print '<FORM ACTION="', popurl(1), 'process/ac_field.cgi" METHOD=POST>';
91   print <<END;
92     <TR>
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}">
96           <SMALL>(NEW)</SMALL>
97       </TD>
98       <TD><SELECT NAME="acfieldpart"><OPTION></OPTION>
99 END
100
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>';
108   }
109
110   print <<END;
111         </SELECT>
112       </TD>
113       <TD><INPUT TYPE="text" SIZE="15" NAME="value"></TD>
114       <TD><INPUT TYPE="submit" VALUE="Add"></TD>
115     </TR>
116     </FORM>
117   </TABLE>
118 END
119
120 }
121
122 if ($hashref->{acnum}) {
123
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!;
127
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>!;
133
134     print qq!<TD>! . $_->getfield('ip_gateway') . qq!</TD>\n! .
135           qq!<TD>! . $_->getfield('ip_netmask') . qq!</TD></TR>!;
136
137   }
138
139   print '<FORM ACTION="', popurl(1), 'process/ac_block.cgi" METHOD=POST>';
140   print <<END;
141   <TR>
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}">
145        <SMALL>(NEW)</SMALL>
146     </TD>
147     <TD></TD>
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>
151   </TR>
152   </FORM>
153 </TABLE>
154 END
155
156 }
157
158 print <<END;
159   </BODY>
160 </HTML>
161 END
162
163 %>