dns editing improvements: show an error from adding default records, redirect back...
[freeside.git] / httemplate / elements / tr-select-agent.html
index 37b1c1e..9f2f76a 100644 (file)
@@ -1,34 +1,60 @@
-%
-%  my( $agentnum, %opt ) = @_;
-%
-%  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'} };
-%    delete $opt{'agents'};
-%  } else {
-%    @agents = $FS::CurrentUser::CurrentUser->agents;
-%  }
-%
-%
+<%doc>
+
+Example:
+
+  include( '/elements/tr-select-agent.html',
+
+    #recommended to keep things "sticky" on errors
+    'curr_value'    => $curr_value,
+
+    ##
+    # optional
+    ##
+
+    '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 ) { 
 
+  <INPUT TYPE="hidden" NAME="<% $opt{'field'} || 'agentnum' %>" VALUE="<% $agents[0]->agentnum %>">
 
-  <INPUT TYPE="hidden" NAME="agentnum" VALUE="<% $agents[0]->agentnum %>">
+%# 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,
+      <% include( '/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'},
+      );
+
+</%init>