import torrus 1.0.9
[freeside.git] / httemplate / edit / svc_forward.cgi
index 2b9d35a..73f6465 100755 (executable)
@@ -1,5 +1,88 @@
-<!-- mason kludge -->
-<%
+<% include('/elements/header.html', "Mail Forward $action") %>
+
+<% include('/elements/error.html') %>
+
+Service #<% $svcnum ? "<B>$svcnum</B>" : " (NEW)" %><BR>
+Service: <B><% $part_svc->svc %></B><BR><BR>
+
+<FORM ACTION="process/svc_forward.cgi" METHOD="POST">
+<INPUT TYPE="hidden" NAME="svcnum" VALUE="<% $svcnum %>">
+<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<% $pkgnum %>">
+<INPUT TYPE="hidden" NAME="svcpart" VALUE="<% $svcpart %>">
+
+<SCRIPT TYPE="text/javascript">
+function srcchanged(what) {
+  if ( what.options[what.selectedIndex].value == 0 ) {
+    what.form.src.disabled = false;
+    what.form.src.style.backgroundColor = "white";
+  } else {
+    what.form.src.disabled = true;
+    what.form.src.style.backgroundColor = "lightgrey";
+  }
+}
+function dstchanged(what) {
+  if ( what.options[what.selectedIndex].value == 0 ) {
+    what.form.dst.disabled = false;
+    what.form.dst.style.backgroundColor = "white";
+  } else {
+    what.form.dst.disabled = true;
+    what.form.dst.style.backgroundColor = "lightgrey";
+  }
+}
+</SCRIPT>
+
+<% ntable("#cccccc",2) %>
+
+<TR>
+  <TD ALIGN="right">Email to</TD>
+  <TD>
+%   if ( $conf->exists('svc_forward-no_srcsvc') ) {
+      <INPUT NAME="srcsrc" TYPE="hidden" VALUE="0">
+%   } else {
+      <SELECT NAME="srcsvc" SIZE=1 onChange="srcchanged(this)">
+%       foreach $_ (keys %email) { 
+          <OPTION VALUE="<% $_ %>"
+                  <% $_ eq $srcsvc ? 'SELECTED' : '' %>
+          ><% $email{$_} %></OPTION>
+%       } 
+        <OPTION VALUE="0" <% $src ? 'SELECTED' : '' %>
+        >(other email address)</OPTION>
+      </SELECT>
+%   }
+
+%   my $src_disabled =    $src
+%                      || $conf->exists('svc_forward-no_srcsvc')
+%                      || !scalar(%email);
+    <INPUT NAME  = "src"
+           TYPE  = "text"
+           VALUE = "<% $src %>"
+           <% $src_disabled ? '' : 'DISABLED STYLE="background-color: lightgrey"' %>
+    >
+
+  </TD>
+</TR>
+
+<TR><TD ALIGN="right">Forwards to</TD>
+<TD><SELECT NAME="dstsvc" SIZE=1 onChange="dstchanged(this)">
+% foreach $_ (keys %email) { 
+
+  <OPTION<% $_ eq $dstsvc ? " SELECTED" : "" %> VALUE="<% $_ %>"><% $email{$_} %></OPTION>
+% } 
+
+<OPTION <% $dst ? 'SELECTED' : '' %> VALUE="0">(other email address)</OPTION>
+</SELECT>
+<INPUT TYPE="text" NAME="dst" VALUE="<% $dst %>" <% ( $dst || !scalar(%email) ) ? '' : 'DISABLED STYLE="background-color: lightgrey"' %>>
+</TD></TR>
+    </TABLE>
+<BR><INPUT TYPE="submit" VALUE="Submit">
+</FORM>
+
+<% include('/elements/footer.html') %>
+
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Provision customer service'); #something else more specific?
 
 my $conf = new FS::Conf;
 
@@ -13,46 +96,40 @@ if ( $cgi->param('error') ) {
   $svcpart = $cgi->param('svcpart');
   $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
   die "No part_svc entry!" unless $part_svc;
-} else {
 
-  my($query) = $cgi->keywords;
+} elsif ( $cgi->param('pkgnum') && $cgi->param('svcpart') ) { #adding
 
-  if ( $query =~ /^(\d+)$/ ) { #editing
-    $svcnum=$1;
-    $svc_forward=qsearchs('svc_forward',{'svcnum'=>$svcnum})
-      or die "Unknown (svc_forward) svcnum!";
+  $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum';
+  $pkgnum = $1;
+  $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart';
+  $svcpart = $1;
 
-    my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
-      or die "Unknown (cust_svc) svcnum!";
+  $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
+  die "No part_svc entry!" unless $part_svc;
 
-    $pkgnum=$cust_svc->pkgnum;
-    $svcpart=$cust_svc->svcpart;
-  
-    $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
-    die "No part_svc entry!" unless $part_svc;
+  $svc_forward = new FS::svc_forward({});
 
-  } else { #adding
+  $svcnum='';
 
-    $svc_forward = new FS::svc_forward({});
+  $svc_forward->set_default_and_fixed;
 
-    foreach $_ (split(/-/,$query)) { #get & untaint pkgnum & svcpart
-      $pkgnum=$1 if /^pkgnum(\d+)$/;
-      $svcpart=$1 if /^svcpart(\d+)$/;
-    }
-    $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
-    die "No part_svc entry!" unless $part_svc;
-
-    $svcnum='';
-
-    #set fixed and default fields from part_svc
-    foreach my $part_svc_column (
-      grep { $_->columnflag } $part_svc->all_part_svc_column
-    ) {
-      $svc_forward->setfield( $part_svc_column->columnname,
-                              $part_svc_column->columnvalue,
-                            );
-    }
-  }
+} else { #editing
+
+  my($query) = $cgi->keywords;
+
+  $query =~ /^(\d+)$/ or die "unparsable svcnum";
+  $svcnum=$1;
+  $svc_forward=qsearchs('svc_forward',{'svcnum'=>$svcnum})
+    or die "Unknown (svc_forward) svcnum!";
+
+  my($cust_svc)=qsearchs('cust_svc',{'svcnum'=>$svcnum})
+    or die "Unknown (cust_svc) svcnum!";
+
+  $pkgnum=$cust_svc->pkgnum;
+  $svcpart=$cust_svc->svcpart;
+  
+  $part_svc=qsearchs('part_svc',{'svcpart'=>$svcpart});
+  die "No part_svc entry!" unless $part_svc;
 
 }
 my $action = $svc_forward->svcnum ? 'Edit' : 'Add';
@@ -106,72 +183,4 @@ my($srcsvc,$dstsvc,$dst)=(
 );
 my $src = $svc_forward->dbdef_table->column('src') ? $svc_forward->src : '';
 
-#display
-
-%>
-
-<%= header("Mail Forward $action") %>
-
-<% if ( $cgi->param('error') ) { %>
-  <FONT SIZE="+1" COLOR="#ff0000">Error: <%= $cgi->param('error') %></FONT>
-  <BR><BR>
-<% } %>
-
-Service #<%= $svcnum ? "<B>$svcnum</B>" : " (NEW)" %><BR>
-Service: <B><%= $part_svc->svc %></B><BR><BR>
-
-<FORM ACTION="process/svc_forward.cgi" METHOD="POST">
-<INPUT TYPE="hidden" NAME="svcnum" VALUE="<%= $svcnum %>">
-<INPUT TYPE="hidden" NAME="pkgnum" VALUE="<%= $pkgnum %>">
-<INPUT TYPE="hidden" NAME="svcpart" VALUE="<%= $svcpart %>">
-
-<SCRIPT TYPE="text/javascript">
-function srcchanged(what) {
-  if ( what.options[what.selectedIndex].value == 0 ) {
-    what.form.src.disabled = false;
-    what.form.src.style.backgroundColor = "white";
-  } else {
-    what.form.src.disabled = true;
-    what.form.src.style.backgroundColor = "lightgrey";
-  }
-}
-function dstchanged(what) {
-  if ( what.options[what.selectedIndex].value == 0 ) {
-    what.form.dst.disabled = false;
-    what.form.dst.style.backgroundColor = "white";
-  } else {
-    what.form.dst.disabled = true;
-    what.form.dst.style.backgroundColor = "lightgrey";
-  }
-}
-</SCRIPT>
-
-<%= ntable("#cccccc",2) %>
-<TR><TD ALIGN="right">Email to</TD>
-<TD><SELECT NAME="srcsvc" SIZE=1 onChange="srcchanged(this)">
-<% foreach $_ (keys %email) { %>
-  <OPTION<%= $_ eq $srcsvc ? " SELECTED" : "" %> VALUE="<%= $_ %>"><%= $email{$_} %></OPTION>
-<% } %>
-<% if ( $svc_forward->dbdef_table->column('src') ) { %>
-  <OPTION <%= $src ? 'SELECTED' : '' %> VALUE="0">(other email address)</OPTION>
-<% } %>
-</SELECT>
-<% if ( $svc_forward->dbdef_table->column('src') ) { %>
-<INPUT TYPE="text" NAME="src" VALUE="<%= $src %>" <%= ( $src || !scalar(%email) ) ? '' : 'DISABLED STYLE="background-color: lightgrey"' %>>
-<% } %>
-</TD></TR>
-
-<TR><TD ALIGN="right">Forwards to</TD>
-<TD><SELECT NAME="dstsvc" SIZE=1 onChange="dstchanged(this)">
-<% foreach $_ (keys %email) { %>
-  <OPTION<%= $_ eq $dstsvc ? " SELECTED" : "" %> VALUE="<%= $_ %>"><%= $email{$_} %></OPTION>
-<% } %>
-<OPTION <%= $dst ? 'SELECTED' : '' %> VALUE="0">(other email address)</OPTION>
-</SELECT>
-<INPUT TYPE="text" NAME="dst" VALUE="<%= $dst %>" <%= ( $dst || !scalar(%email) ) ? '' : 'DISABLED STYLE="background-color: lightgrey"' %>>
-</TD></TR>
-    </TABLE>
-<BR><INPUT TYPE="submit" VALUE="Submit">
-</FORM>
-  </BODY>
-</HTML>
+</%init>