localize CDR column headings during rendering, #71331
authorMark Wells <mark@freeside.biz>
Mon, 27 Jun 2016 23:39:23 +0000 (16:39 -0700)
committerMark Wells <mark@freeside.biz>
Mon, 27 Jun 2016 23:39:23 +0000 (16:39 -0700)
FS/FS/TemplateItem_Mixin.pm
FS/FS/detail_format.pm
httemplate/edit/msgcat.html

index 248da3c..28fbd59 100644 (file)
@@ -258,14 +258,25 @@ sub details {
     $sth->execute or die $sth->errstr;
 
     #avoid the fetchall_arrayref and loop for less memory usage?
     $sth->execute or die $sth->errstr;
 
     #avoid the fetchall_arrayref and loop for less memory usage?
-
-    map { (defined($_->[0]) && $_->[0] eq 'C')
-            ? &{$format_sub}(      $_->[1] )
-            : &{$escape_function}( $_->[1] );
+    # probably should use a cursor...
+
+    my @return;
+    my $head = 1;
+    map {
+      my $row = $_;
+      if (defined($row->[0]) and $row->[0] eq 'C') {
+        if ($head) {
+          # first CSV row = the format header; localize it but not the others
+          $row->[1] = $self->mt($row->[1]);
+          $head = 0;
         }
         }
-      @{ $sth->fetchall_arrayref };
+        &{$format_sub}($row->[1]);
+      } else {
+        &{$escape_function}($row->[1]);
+      }
+    } @{ $sth->fetchall_arrayref };
 
 
-  }
+  } #!$opt{format_function}
 
 }
 
 
 }
 
index be84680..d032100 100644 (file)
@@ -168,7 +168,7 @@ sub header {
   my $self = shift;
 
   FS::cust_bill_pkg_detail->new(
   my $self = shift;
 
   FS::cust_bill_pkg_detail->new(
-    { 'format' => 'C', 'detail' => $self->mt($self->header_detail) }
+    { 'format' => 'C', 'detail' => $self->header_detail }
   )
 }
 
   )
 }
 
@@ -270,10 +270,7 @@ sub time2str_local {
   $self->{_dh}->time2str(@_);
 }
 
   $self->{_dh}->time2str(@_);
 }
 
-sub mt {
-  my $self = shift;
-  $self->{_lh}->maketext(@_);
-}
+# header strings are now localized in FS::TemplateItem_Mixin::detail
 
 #imitate previous behavior for now
 
 
 #imitate previous behavior for now
 
index 4e2edd6..5ca118a 100644 (file)
@@ -3,7 +3,7 @@
      table         => 'msgcat',
      fields        => [ { field=>'msgcode', type=>'fixed' },
                         { field=>'locale',  type=>'fixed' },
      table         => 'msgcat',
      fields        => [ { field=>'msgcode', type=>'fixed' },
                         { field=>'locale',  type=>'fixed' },
-                        'msg',
+                        { field => 'msg', type => 'text', size => 60 },
                       ],
      labels        => { 'msgnum'  => 'String',
                         'msgcode' => 'Code',
                       ],
      labels        => { 'msgnum'  => 'String',
                         'msgcode' => 'Code',