slightly more cautious fix for sorting the reason selector, #31702
authorMark Wells <mark@freeside.biz>
Sat, 6 Dec 2014 17:50:32 +0000 (09:50 -0800)
committerMark Wells <mark@freeside.biz>
Sat, 6 Dec 2014 17:50:32 +0000 (09:50 -0800)
httemplate/elements/select-table.html
httemplate/elements/tr-select-reason.html

index 5f36a36..3f6c880 100644 (file)
@@ -9,6 +9,7 @@ Example:
     ##
     'table'          => 'table_name',
     'name_col'       => 'name_column', #or method if you pass an order_by
+                                       # order_by is currently broken, though
    
     #strongly recommended (you want your forms to be "sticky" on errors, right?)
     'curr_value'     => 'current_value',
@@ -89,14 +90,13 @@ Example:
     <OPTION VALUE=""><% $opt{'empty_label'} || 'all' %>
 % }
 
-%# foreach my $record ( sort {    $a->$name_col() cmp $b->$name_col()
-%#                             || $a->$key()      <=> $b->$key()
-%#                           }
-%#                           @records
-%#                    )
-%# {
-% # show records in query order, or preserve the order they were given
-% foreach my $record (@records) {
+% # XXX fix this eventually, when we have time to test it
+% foreach my $record ( sort {    $a->$name_col() cmp $b->$name_col()
+%                             || $a->$key()      <=> $b->$key()
+%                           }
+%                           @records
+%                    )
+% {
 %   my $recvalue = $record->$key();
 %   my $selected;
 %   if ( $opt{'all_selected'} ) {
index 2dce9ef..52dc956 100755 (executable)
@@ -70,8 +70,7 @@ Example:
   'id'              => $id,
   'table'           => 'reason',
   'records'         => \@reasons,
-  'label_callback'  => sub { my $reason = shift;
-                             $reason->type . ' : ' .  $reason->reason },
+  'name_col'        => 'label',
   'disable_empty'   => 1,
   'pre_options'     => [ 0 => 'Select reason...' ],
   'post_options'    => \@post_options,
@@ -177,11 +176,11 @@ if ($class eq 'C') {
 
 my @reasons = qsearch({
   'table'           => 'reason',
+  'select'          => "reason.*, (type || ' : ' || reason) AS label",
   'addl_from'       => ' LEFT JOIN reason_type'.
                        ' ON (reason.reason_type = reason_type.typenum)',
   'hashref'         => { disabled => '' },
   'extra_sql'       => " AND reason_type.class = '$class'",
-  'order_by'        => ' ORDER BY type, reason',
 });
 
 my %all_hints;