-<%
- my( $agentnum, %opt ) = @_;
+<%doc>
- my @agents;
- if ( $opt{'agents'} ) {
- #@agents = @{ $opt{'agents'} };
- #here is the agent virtualization
- my $agentnums_href = $FS::CurrentUser::CurrentUser->agentnums_href;
- @agents = grep $agentnums_href->{$_->agentnum}, @{ $opt{'agents'} };
- } else {
- @agents = qsearch( {
- 'table' => 'agent',
- 'hashref' => { disabled=>'' },
- 'extra_sql' => ' AND '. $FS::CurrentUser::CurrentUser->agentnums_sql,
- });
- }
+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>
+% 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>
+ <TD ALIGN="right"><% $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,
- )
- %>
+ <TD ALIGN="right"><% $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 @agents =
+ $opt{'agents'}
+ ? @{ $opt{'agents'} }
+ : $FS::CurrentUser::CurrentUser->agents(
+ 'viewall_right' => $opt{'viewall_right'},
+ );
+
+my $colspan = $opt{'colspan'} ? 'COLSPAN="'.$opt{'colspan'}.'"' : '';
+
+</%init>