RT# 83179 - set agent num to use default agentnum if configured, and fixed adding...
[freeside.git] / httemplate / elements / tr-select-agent.html
index 2227262..986bbc0 100644 (file)
@@ -1,29 +1,80 @@
-<%
-  my( $agentnum, %opt ) = @_;
+<%doc>
 
-  my @agents;
-  if ( $opt{'agents'} ) {
-    @agents = @{ $opt{'agents'} };
-  } else {
-    @agents = qsearch( 'agent', { disabled=>'' } );
-  }
+Example:
 
-%>
+  include( '/elements/tr-select-agent.html',
 
-<% if ( scalar(@agents) == 1 ) { %>
+    #recommended to keep things "sticky" on errors
+    'curr_value'    => $curr_value,
 
-  <INPUT TYPE="hidden" NAME="agentnum" VALUE="<%= $agents[0]->agentnum %>">
+    ##
+    # optional
+    ##
 
-<% } else { %>
+    'label'         => 'Agent for this thing',
+    'empty_label'   => 'Select agent', #override default 
+    'disable_empty' => 1,
+
+    #set to 'None' or something to override default of showing all agents
+    #for employees w/ 'View customers of all agents' right
+    viewall_right   => 'None',
+
+  );
+
+</%doc>
+
+% $required = '<FONT COLOR="red">*</FONT>' if $opt{'required'};
+
+% if ( scalar(@agents) == 1 || $opt{'fixed'} ) { 
+
+  <INPUT TYPE  = "hidden"
+         NAME  = "<% $opt{'field'} || 'agentnum' %>"
+         ID    = "<% $opt{'field'} || 'agentnum' %>"
+         VALUE = "<% $agents[0]->agentnum %>"
+  >
+
+%   if ( scalar(@agents) != 1 ) {
+      <TR>
+        <TH ALIGN="right"><% $required %> <% $opt{'label'} || emt('Agent') %></TD>
+        <TD BGCOLOR="#dddddd" <% $colspan %>>
+%         my $agent = qsearchs('agent', { 'agentnum' => $agentnum });
+          <% $agent ? $agent->agent : '(all)' |h %>
+        </TD>
+      </TR>
+
+%   } else { # YUCK.  empty row so we don't throw g_row in edit.html off :/
+      <TR>
+      </TR>
+%   }
+%
+% } else { 
 
   <TR>
-    <TD ALIGN="right"><%= $opt{'label'} || 'Agent: ' %></TD>
-    <TD>
-      <%= include( '/elements/select-agent.html', $agentnum,
-                     'agents' => \@agents,
-                 )
-      %>
+    <TH ALIGN="right"><% $required %> <% $opt{'label'} || emt('Agent') %></TD>
+    <TD <% $colspan %>>
+      <& /elements/select-agent.html,
+                     'curr_value' => $agentnum,
+                     'agents'     => \@agents,
+                     %opt,
+      &>
     </TD>
   </TR>
 
-<% } %>
+% } 
+
+<%init>
+
+my %opt = @_;
+my $agentnum = $opt{'curr_value'} || $opt{'value'};
+my $required;
+
+my @agents =
+  $opt{'agents'}
+    ? @{ $opt{'agents'} }
+    : $FS::CurrentUser::CurrentUser->agents(
+        'viewall_right' => $opt{'viewall_right'},
+      );
+
+my $colspan = $opt{'colspan'} ? 'COLSPAN="'.$opt{'colspan'}.'"' : '';
+
+</%init>