Excluded virtual fields weren't being properly masked on errors.
[freeside.git] / httemplate / edit / svc_broadband.cgi
index f017d7a..9e064c5 100644 (file)
@@ -11,11 +11,11 @@ use Tie::IxHash;
 my( $svcnum,  $pkgnum, $svcpart, $part_svc, $svc_broadband );
 if ( $cgi->param('error') ) {
   $svc_broadband = new FS::svc_broadband ( {
-    map { $_, scalar($cgi->param($_)) } fields('svc_broadband')
+    map { $_, scalar($cgi->param($_)) } fields('svc_broadband'), qw(svcpart)
   } );
   $svcnum = $svc_broadband->svcnum;
   $pkgnum = $cgi->param('pkgnum');
-  $svcpart = $cgi->param('svcpart');
+  $svcpart = $svc_broadband->svcpart;
   $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
   die "No part_svc entry!" unless $part_svc;
 } else {
@@ -36,8 +36,6 @@ if ( $cgi->param('error') ) {
 
   } else { #adding
 
-    $svc_broadband = new FS::svc_broadband({});
-
     foreach $_ (split(/-/,$query)) { #get & untaint pkgnum & svcpart
       $pkgnum=$1 if /^pkgnum(\d+)$/;
       $svcpart=$1 if /^svcpart(\d+)$/;
@@ -45,7 +43,7 @@ if ( $cgi->param('error') ) {
     $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
     die "No part_svc entry!" unless $part_svc;
 
-    $svc_broadband->setfield('svcpart', $svcpart);
+    $svc_broadband = new FS::svc_broadband({ svcpart => $svcpart });
 
     $svcnum='';
 
@@ -96,10 +94,18 @@ Service #<B><%=$svcnum ? $svcnum : "(NEW)"%></B><BR><BR>
   <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">IP Address</TD>
+      <TD BGCOLOR="#ffffff">
+<% if ( $part_svc->part_svc_column('ip_addr')->columnflag eq 'F' ) { %>
+        <INPUT TYPE="hidden" NAME="ip_addr" VALUE="<%=$ip_addr%>"><%=$ip_addr%>
+<% } else { %>
+        <INPUT TYPE="text" NAME="ip_addr" VALUE="<%=$ip_addr%>">
+<% } %>
+      </TD>
+    </TR>
     <TR>
       <TD ALIGN="right">Download speed</TD>
       <TD BGCOLOR="#ffffff">
@@ -126,7 +132,9 @@ Service #<B><%=$svcnum ? $svcnum : "(NEW)"%></B><BR><BR>
       <TD BGCOLOR="#ffffff">
         <SELECT NAME="blocknum">
 <%
+  warn $svc_broadband->svcpart;
   foreach my $router ($svc_broadband->allowed_routers) {
+    warn $router->routername;
     foreach my $addr_block ($router->addr_block) {
 %>
         <OPTION VALUE="<%=$addr_block->blocknum%>"<%=($addr_block->blocknum eq $blocknum) ? ' SELECTED' : ''%>>
@@ -151,30 +159,13 @@ Service #<B><%=$svcnum ? $svcnum : "(NEW)"%></B><BR><BR>
 <% } %>
 
 <%
-
-  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>
-<% } %>
+foreach my $field ($svc_broadband->virtual_fields) {
+  if ( $part_svc->part_svc_column($field)->columnflag ne 'F' &&
+       $part_svc->part_svc_column($field)->columnflag ne 'X') {
+    print $svc_broadband->pvf($field)->widget('HTML', 'edit',
+        $svc_broadband->getfield($field));
+  }
+} %>
   </TABLE>
   <BR>
   <INPUT TYPE="submit" NAME="submit" VALUE="Submit">