fix custnum display on domain view
[freeside.git] / httemplate / view / svc_domain.cgi
index 5728e7d..36577d3 100755 (executable)
-<%
-#
-# $Id: svc_domain.cgi,v 1.2 2001-08-19 15:53:36 jeff Exp $
-#
-# Usage: svc_domain svcnum
-#        http://server.name/path/svc_domain.cgi?svcnum
-#
-# ivan@voicenet.com 97-jan-6
-#
-# rewrite ivan@sisd.com 98-mar-14
-#
-# Changes to allow page to work at a relative position in server
-#       bmccane@maxbaud.net     98-apr-3
-#
-# $Log: svc_domain.cgi,v $
-# Revision 1.2  2001-08-19 15:53:36  jeff
-# added user interface for svc_forward and vpopmail support
-#
-# Revision 1.1  2001/07/30 07:36:04  ivan
-# templates!!!
-#
-# Revision 1.11  2000/12/03 15:14:00  ivan
-# bugfixes from Jeff Finucane <jeff@cmh.net>, thanks!
-#
-# Revision 1.10  1999/08/27 22:18:44  ivan
-# point to patrick instead of internic!
-#
-# Revision 1.9  1999/04/08 12:00:19  ivan
-# aesthetic update
-#
-# Revision 1.8  1999/02/28 00:04:04  ivan
-# removed misleading comments
-#
-# Revision 1.7  1999/02/23 08:09:25  ivan
-# beginnings of one-screen new customer entry and some other miscellania
-#
-# Revision 1.6  1999/01/19 05:14:23  ivan
-# for mod_perl: no more top-level my() variables; use vars instead
-# also the last s/create/new/;
-#
-# Revision 1.5  1999/01/18 09:41:47  ivan
-# all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
-# (good idea anyway)
-#
-# Revision 1.4  1998/12/23 03:10:19  ivan
-# $cgi->keywords instead of $cgi->query_string
-#
-# Revision 1.3  1998/12/17 09:57:25  ivan
-# s/CGI::(Base|Request)/CGI.pm/;
-#
-# Revision 1.2  1998/11/13 09:56:50  ivan
-# change configuration file layout to support multiple distinct databases (with
-# own set of config files, export, etc.)
-#
-
-use strict;
-use vars qw( $cgi $query $svcnum $svc_domain $domain $cust_svc $pkgnum 
-             $cust_pkg $custnum $part_svc $p $svc_acct $email);
-use CGI;
-use FS::UID qw(cgisuidsetup);
-use FS::CGI qw(header menubar popurl menubar);
-use FS::Record qw(qsearchs);
-use FS::svc_domain;
-use FS::cust_svc;
-use FS::cust_pkg;
-use FS::part_svc;
-
-$cgi = new CGI;
-cgisuidsetup($cgi);
-
-($query) = $cgi->keywords;
+<% include("/elements/header.html",'Domain View', menubar(
+  ( ( $pkgnum || $custnum )
+    ? ( "View this customer (#$display_custnum)" => "${p}view/cust_main.cgi?$custnum",
+      )
+    : ( "Delete this (unaudited) domain" =>
+          "javascript:areyousure('${p}misc/cancel-unaudited.cgi?$svcnum', 'Delete $domain and all records?' )" )
+  )
+)) %>
+
+Service #<% $svcnum %>
+<BR>Service: <B><% $part_svc->svc %></B>
+<BR>Domain name: <B><% $domain %></B>
+% if ( $FS::CurrentUser::CurrentUser->access_right('Edit domain catchall') ) {
+    <BR>Catch all email <A HREF="<% ${p} %>misc/catchall.cgi?<% $svcnum %>">(change)</A>:
+% } else {
+    <BR>Catch all email:
+% }
+
+<% $email ? "<B>$email</B>" : "<I>(none)<I>" %>
+<BR><BR><A HREF="<% ${p} %>misc/whois.cgi?custnum=<%$custnum%>;svcnum=<%$svcnum%>;domain=<%$domain%>">View whois information.</A>
+<BR><BR>
+<SCRIPT>
+  function areyousure(href, message) {
+    if ( confirm(message) == true )
+      window.location.href = href;
+  }
+  function slave_areyousure() {
+    return confirm("Remove all records and slave from " + document.SlaveForm.recdata.value + "?");
+  }
+</SCRIPT>
+
+% my @records; if ( @records = $svc_domain->domain_record ) { 
+
+  <% include('/elements/table-grid.html') %>
+
+% my $bgcolor1 = '#eeeeee';
+%     my $bgcolor2 = '#ffffff';
+%     my $bgcolor = $bgcolor2;
+
+  <tr>
+    <th CLASS="grid" BGCOLOR="#cccccc">Zone</th>
+    <th CLASS="grid" BGCOLOR="#cccccc">Type</th>
+    <th CLASS="grid" BGCOLOR="#cccccc">Data</th>
+  </tr>
+
+% foreach my $domain_record ( @records ) {
+%       my $type = $domain_record->rectype eq '_mstr'
+%                    ? "(slave)"
+%                    : $domain_record->recaf. ' '. $domain_record->rectype;
+
+
+    <tr>
+      <td CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $domain_record->reczone %></td>
+      <td CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $type %></td>
+      <td CLASS="grid" BGCOLOR="<% $bgcolor %>"><% $domain_record->recdata %>
+
+% unless ( $domain_record->rectype eq 'SOA'
+%          || ! $FS::CurrentUser::CurrentUser->access_right('Edit domain nameservice')
+%        ) { 
+%   ( my $recdata = $domain_record->recdata ) =~ s/"/\\'\\'/g;
+      (<A HREF="javascript:areyousure('<%$p%>misc/delete-domain_record.cgi?<%$domain_record->recnum%>', 'Delete \'<% $domain_record->reczone %> <% $type %> <% $recdata %>\' ?' )">delete</A>)
+% } 
+      </td>
+    </tr>
+
+
+%   if ( $bgcolor eq $bgcolor1 ) {
+%      $bgcolor = $bgcolor2;
+%    } else {
+%      $bgcolor = $bgcolor1;
+%    }
+
+% } 
+
+  </table>
+% } 
+
+% if ( $FS::CurrentUser::CurrentUser->access_right('Edit domain nameservice') ) {
+    <BR>
+    <FORM METHOD="POST" ACTION="<%$p%>edit/process/domain_record.cgi">
+      <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%$svcnum%>">
+      <INPUT TYPE="text" NAME="reczone"> 
+      <INPUT TYPE="hidden" NAME="recaf" VALUE="IN"> IN 
+      <SELECT NAME="rectype">
+%       foreach (qw( A NS CNAME MX PTR TXT) ) { 
+          <OPTION VALUE="<%$_%>"><%$_%></OPTION>
+%       } 
+      </SELECT>
+      <INPUT TYPE="text" NAME="recdata">
+      <INPUT TYPE="submit" VALUE="Add record">
+    </FORM>
+
+    <BR><BR>
+    or
+    <BR><BR>
+
+    <FORM NAME="SlaveForm" METHOD="POST" ACTION="<%$p%>edit/process/domain_record.cgi">
+      <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%$svcnum%>">
+%     if ( @records ) { 
+         Delete all records and 
+%     } 
+      Slave from nameserver IP 
+      <INPUT TYPE="hidden" NAME="svcnum" VALUE="<%$svcnum%>">
+      <INPUT TYPE="hidden" NAME="reczone" VALUE="@"> 
+      <INPUT TYPE="hidden" NAME="recaf" VALUE="IN">
+      <INPUT TYPE="hidden" NAME="rectype" VALUE="_mstr">
+      <INPUT TYPE="text" NAME="recdata">
+      <INPUT TYPE="submit" VALUE="Slave domain" onClick="return slave_areyousure()">
+    </FORM>
+
+% }
+
+<BR><BR>
+
+<% joblisting({'svcnum'=>$svcnum}, 1) %>
+
+<% include('/elements/footer.html') %>
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('View customer services');
+
+my($query) = $cgi->keywords;
 $query =~ /^(\d+)$/;
-$svcnum = $1;
-$svc_domain = qsearchs('svc_domain',{'svcnum'=>$svcnum});
+my $svcnum = $1;
+my $svc_domain = qsearchs({
+  'select'    => 'svc_domain.*',
+  'table'     => 'svc_domain',
+  'addl_from' => ' LEFT JOIN cust_svc  USING ( svcnum  ) '.
+                 ' LEFT JOIN cust_pkg  USING ( pkgnum  ) '.
+                 ' LEFT JOIN cust_main USING ( custnum ) ',
+  'hashref'   => {'svcnum'=>$svcnum},
+  'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
+});
 die "Unknown svcnum" unless $svc_domain;
 
-$cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum});
-$pkgnum = $cust_svc->getfield('pkgnum');
+my $cust_svc = qsearchs('cust_svc',{'svcnum'=>$svcnum});
+my $pkgnum = $cust_svc->getfield('pkgnum');
+my($cust_pkg, $custnum, $display_custnum);
 if ($pkgnum) {
-  $cust_pkg=qsearchs('cust_pkg',{'pkgnum'=>$pkgnum});
-  $custnum=$cust_pkg->getfield('custnum');
+  $cust_pkg = qsearchs('cust_pkg', {'pkgnum'=>$pkgnum} );
+  $custnum = $cust_pkg->custnum;
+  $display_custnum = $cust_pkg->cust_main->display_custnum;
 } else {
   $cust_pkg = '';
   $custnum = '';
 }
 
-$part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
+my $part_svc = qsearchs('part_svc',{'svcpart'=> $cust_svc->svcpart } );
 die "Unknown svcpart" unless $part_svc;
 
+my $email = '';
 if ($svc_domain->catchall) {
-  $svc_acct = qsearchs('svc_acct',{'svcnum'=> $svc_domain->catchall } );
+  my $svc_acct = qsearchs('svc_acct',{'svcnum'=> $svc_domain->catchall } );
   die "Unknown svcpart" unless $svc_acct;
   $email = $svc_acct->email;
 }
 
-$domain = $svc_domain->domain;
+my $domain = $svc_domain->domain;
 
-$p = popurl(2);
-print $cgi->header( '-expires' => 'now' ), header('Domain View', menubar(
-  ( ( $pkgnum || $custnum )
-    ? ( "View this package (#$pkgnum)" => "${p}view/cust_pkg.cgi?$pkgnum",
-        "View this customer (#$custnum)" => "${p}view/cust_main.cgi?$custnum",
-      )
-    : ( "Cancel this (unaudited) account" =>
-          "${p}misc/cancel-unaudited.cgi?$svcnum" )
-  ),
-  "Main menu" => $p,
-)),
-      "Service #$svcnum",
-      "<BR>Service: <B>", $part_svc->svc, "</B>",
-      "<BR>Domain name: <B>$domain</B>.",
-      qq!<BR>Catch all email <A HREF="${p}misc/catchall.cgi?$svcnum">(change)</A>:!,
-      $email ? "<B>$email</B>." : "<I>(none)<I>",
-      qq!<BR><BR><A HREF="http://www.geektools.com/cgi-bin/proxy.cgi?query=$domain;targetnic=auto">View whois information.</A>!,
-      '</BODY></HTML>',
-;
-%>
+</%init>