add ability to view/edit access groups of an agent
[freeside.git] / httemplate / edit / agent.cgi
index b4508da..215542d 100755 (executable)
-<%
-#
-# $Id: agent.cgi,v 1.1 2001-07-30 07:36:04 ivan Exp $
-#
-# ivan@sisd.com 97-dec-12
-#
-# Changes to allow page to work at a relative position in server
-# Changed 'type' to 'atype' because Pg6.3 reserves the type word
-#      bmccane@maxbaud.net     98-apr-3
-#
-# use FS::CGI, added inline documentation ivan@sisd.com 98-jul-12
-#
-# $Log: agent.cgi,v $
-# Revision 1.1  2001-07-30 07:36:04  ivan
-# templates!!!
-#
-# Revision 1.7  1999/04/07 11:27:50  ivan
-# avoid perl's silly arguement not numeric error
-#
-# Revision 1.6  1999/01/25 12:09:50  ivan
-# yet more mod_perl stuff
-#
-# Revision 1.5  1999/01/19 05:13:31  ivan
-# for mod_perl: no more top-level my() variables; use vars instead
-# also the last s/create/new/;
-#
-# Revision 1.4  1999/01/18 09:41:21  ivan
-# all $cgi->header calls now include ( '-expires' => 'now' ) for mod_perl
-# (good idea anyway)
-#
-# Revision 1.3  1998/12/17 06:16:57  ivan
-# fix double // in relative URLs, s/CGI::Base/CGI/;
-#
-# Revision 1.2  1998/11/23 07:52:08  ivan
-# *** empty log message ***
-#
-
-use strict;
-use vars qw ( $cgi $agent $action $hashref $p $agent_type );
-use CGI;
-use CGI::Carp qw(fatalsToBrowser);
-use FS::UID qw(cgisuidsetup);
-use FS::CGI qw(header menubar popurl);
-use FS::Record qw(qsearch qsearchs fields);
-use FS::agent;
-use FS::agent_type;
-
-$cgi = new CGI;
-
-&cgisuidsetup($cgi);
+<% include("/elements/header.html","$action Agent", menubar(
+  'View all agents' => $p. 'browse/agent.cgi',
+)) %>
+
+<% include('/elements/error.html') %>
+
+<FORM ACTION="<%popurl(1)%>process/agent.cgi" METHOD=POST>
+<INPUT TYPE="hidden" NAME="agentnum" VALUE="<% $agent->agentnum %>">
+Agent #<% $agent->agentnum ? $agent->agentnum : "(NEW)" %>
+
+<% &ntable("#cccccc", 2, '') %>
+
+  <TR>
+    <TH ALIGN="right">Agent</TH>
+    <TD><INPUT TYPE="text" NAME="agent" SIZE=32 VALUE="<% $agent->agent %>"></TD>
+  </TR>
+
+  <TR>
+    <TH ALIGN="right">Agent type</TH>
+    <TD>
+      <SELECT NAME="typenum" SIZE=1>
+%       foreach my $agent_type (qsearch('agent_type',{})) { 
+
+          <OPTION VALUE="<% $agent_type->typenum %>"<% ( $agent->typenum && ( $agent->typenum == $agent_type->typenum ) ) ? ' SELECTED' : '' %>>
+    <% $agent_type->getfield('typenum') %>: <% $agent_type->getfield('atype') %>
+%       } 
+  
+      </SELECT>
+    </TD>
+  </TR>
+
+  <TR>
+    <TH ALIGN="right">Master customer</TH>
+    <TD>
+      <% include('/elements/search-cust_main.html',
+                   'field_name'  => 'agent_custnum',
+                   'curr_value'  => $agent->agent_custnum,
+                   'find_button' => 1,
+                )
+      %>
+    </TD>
+  </TR>
+
+  <TR>
+    <TD ALIGN="right">Disable</TD>
+    <TD><INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $agent->disabled eq 'Y' ? ' CHECKED' : '' %>></TD>
+  </TR>
+
+  <% include('/elements/tr-select-invoice_template.html',
+               'label'      => 'Invoice template',
+               'field'      => 'invoice_template',
+               'curr_value' => $agent->invoice_template,
+            )
+  %>
+  
+% if ( $conf->config('ticket_system') ) {
+%    my $default_queueid = $conf->config('ticket_system-default_queueid');
+%    my $default_queue = FS::TicketSystem->queue($default_queueid);
+%    $default_queue = "(default) $default_queueid: $default_queue"
+%      if $default_queueid;
+%    my %queues = FS::TicketSystem->queues();
+%    my @queueids = sort { $a <=> $b } keys %queues;
+%  
+
+    <TR>
+      <TD ALIGN="right">Ticketing queue</TD>
+      <TD>
+        <SELECT NAME="ticketing_queueid">
+          <OPTION VALUE=""><% $default_queue %>
+% foreach my $queueid ( @queueids ) { 
+
+            <OPTION VALUE="<% $queueid %>" <% $agent->ticketing_queueid == $queueid ? ' SELECTED' : '' %>><% $queueid %>: <% $queues{$queueid} %>
+% } 
+
+        </SELECT>
+      </TD>
+    </TR>
+% } 
 
+  <TR>
+    <TD ALIGN="right">Access Groups</TD>
+    <TD><% include('/elements/checkboxes-table.html',
+                     'source_obj'   => $agent,
+                     'link_table'   => 'access_groupagent',
+                     'target_table' => 'access_group',
+                     'name_col'     => 'groupname',
+                     'target_link'  => $p. 'edit/access_group.html?',
+                  )
+        %>
+    </TD>
+  </TR>
+
+</TABLE>
+
+<BR>
+<INPUT TYPE="submit" VALUE="<% $agent->agentnum ? "Apply changes" : "Add agent" %>">
+
+</FORM>
+
+<% include('/elements/footer.html') %>
+
+<%init>
+
+die "access denied"
+  unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
+
+my $agent;
 if ( $cgi->param('error') ) {
   $agent = new FS::agent ( {
     map { $_, scalar($cgi->param($_)) } fields('agent')
@@ -60,53 +116,8 @@ if ( $cgi->param('error') ) {
 } else { #adding
   $agent = new FS::agent {};
 }
-$action = $agent->agentnum ? 'Edit' : 'Add';
-$hashref = $agent->hashref;
-
-$p = popurl(2);
-
-print $cgi->header( '-expires' => 'now' ), header("$action Agent", menubar(
-  'Main Menu' => $p,
-  'View all agents' => $p. 'browse/agent.cgi',
-));
-
-print qq!<FONT SIZE="+1" COLOR="#ff0000">Error: !, $cgi->param('error'),
-      "</FONT>"
-  if $cgi->param('error');
-
-print '<FORM ACTION="', popurl(1), 'process/agent.cgi" METHOD=POST>',
-      qq!<INPUT TYPE="hidden" NAME="agentnum" VALUE="$hashref->{agentnum}">!,
-      "Agent #", $hashref->{agentnum} ? $hashref->{agentnum} : "(NEW)";
-
-print <<END;
-<PRE>
-Agent                     <INPUT TYPE="text" NAME="agent" SIZE=32 VALUE="$hashref->{agent}">
-Agent type                <SELECT NAME="typenum" SIZE=1>
-END
-
-foreach $agent_type (qsearch('agent_type',{})) {
-  print "<OPTION VALUE=". $agent_type->typenum;
-  print " SELECTED"
-    if $hashref->{typenum} && ( $hashref->{typenum} == $agent_type->typenum );
-  print ">", $agent_type->getfield('typenum'), ": ",
-        $agent_type->getfield('atype'),"\n";
-}
-
-print <<END;
-</SELECT>
-Frequency (unimplemented) <INPUT TYPE="text" NAME="freq" VALUE="$hashref->{freq}">
-Program (unimplemented)   <INPUT TYPE="text" NAME="prog" VALUE="$hashref->{prog}">
-</PRE>
-END
-
-print qq!<BR><INPUT TYPE="submit" VALUE="!,
-      $hashref->{agentnum} ? "Apply changes" : "Add agent",
-      qq!">!;
+my $action = $agent->agentnum ? 'Edit' : 'Add';
 
-print <<END;
-    </FORM>
-  </BODY>
-</HTML>
-END
+my $conf = new FS::Conf;
 
-%>
+</%init>