add ability to view/edit access groups of an agent
[freeside.git] / httemplate / edit / agent.cgi
1 <% include("/elements/header.html","$action Agent", menubar(
2   'View all agents' => $p. 'browse/agent.cgi',
3 )) %>
4
5 <% include('/elements/error.html') %>
6
7 <FORM ACTION="<%popurl(1)%>process/agent.cgi" METHOD=POST>
8 <INPUT TYPE="hidden" NAME="agentnum" VALUE="<% $agent->agentnum %>">
9 Agent #<% $agent->agentnum ? $agent->agentnum : "(NEW)" %>
10
11 <% &ntable("#cccccc", 2, '') %>
12
13   <TR>
14     <TH ALIGN="right">Agent</TH>
15     <TD><INPUT TYPE="text" NAME="agent" SIZE=32 VALUE="<% $agent->agent %>"></TD>
16   </TR>
17
18   <TR>
19     <TH ALIGN="right">Agent type</TH>
20     <TD>
21       <SELECT NAME="typenum" SIZE=1>
22 %       foreach my $agent_type (qsearch('agent_type',{})) { 
23
24           <OPTION VALUE="<% $agent_type->typenum %>"<% ( $agent->typenum && ( $agent->typenum == $agent_type->typenum ) ) ? ' SELECTED' : '' %>>
25     <% $agent_type->getfield('typenum') %>: <% $agent_type->getfield('atype') %>
26 %       } 
27   
28       </SELECT>
29     </TD>
30   </TR>
31
32   <TR>
33     <TH ALIGN="right">Master customer</TH>
34     <TD>
35       <% include('/elements/search-cust_main.html',
36                    'field_name'  => 'agent_custnum',
37                    'curr_value'  => $agent->agent_custnum,
38                    'find_button' => 1,
39                 )
40       %>
41     </TD>
42   </TR>
43
44   <TR>
45     <TD ALIGN="right">Disable</TD>
46     <TD><INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $agent->disabled eq 'Y' ? ' CHECKED' : '' %>></TD>
47   </TR>
48
49   <% include('/elements/tr-select-invoice_template.html',
50                'label'      => 'Invoice template',
51                'field'      => 'invoice_template',
52                'curr_value' => $agent->invoice_template,
53             )
54   %>
55   
56 % if ( $conf->config('ticket_system') ) {
57 %    my $default_queueid = $conf->config('ticket_system-default_queueid');
58 %    my $default_queue = FS::TicketSystem->queue($default_queueid);
59 %    $default_queue = "(default) $default_queueid: $default_queue"
60 %      if $default_queueid;
61 %    my %queues = FS::TicketSystem->queues();
62 %    my @queueids = sort { $a <=> $b } keys %queues;
63 %  
64
65     <TR>
66       <TD ALIGN="right">Ticketing queue</TD>
67       <TD>
68         <SELECT NAME="ticketing_queueid">
69           <OPTION VALUE=""><% $default_queue %>
70 % foreach my $queueid ( @queueids ) { 
71
72             <OPTION VALUE="<% $queueid %>" <% $agent->ticketing_queueid == $queueid ? ' SELECTED' : '' %>><% $queueid %>: <% $queues{$queueid} %>
73 % } 
74
75         </SELECT>
76       </TD>
77     </TR>
78 % } 
79
80   <TR>
81     <TD ALIGN="right">Access Groups</TD>
82     <TD><% include('/elements/checkboxes-table.html',
83                      'source_obj'   => $agent,
84                      'link_table'   => 'access_groupagent',
85                      'target_table' => 'access_group',
86                      'name_col'     => 'groupname',
87                      'target_link'  => $p. 'edit/access_group.html?',
88                   )
89         %>
90     </TD>
91   </TR>
92
93 </TABLE>
94
95 <BR>
96 <INPUT TYPE="submit" VALUE="<% $agent->agentnum ? "Apply changes" : "Add agent" %>">
97
98 </FORM>
99
100 <% include('/elements/footer.html') %>
101
102 <%init>
103
104 die "access denied"
105   unless $FS::CurrentUser::CurrentUser->access_right('Configuration');
106
107 my $agent;
108 if ( $cgi->param('error') ) {
109   $agent = new FS::agent ( {
110     map { $_, scalar($cgi->param($_)) } fields('agent')
111   } );
112 } elsif ( $cgi->keywords ) {
113   my($query) = $cgi->keywords;
114   $query =~ /^(\d+)$/;
115   $agent = qsearchs( 'agent', { 'agentnum' => $1 } );
116 } else { #adding
117   $agent = new FS::agent {};
118 }
119 my $action = $agent->agentnum ? 'Edit' : 'Add';
120
121 my $conf = new FS::Conf;
122
123 </%init>