use service-def specific labels, at least for service pages that use {view,edit}...
[freeside.git] / httemplate / edit / elements / svc_Common.html
index 0b64120..ef04bd0 100644 (file)
@@ -3,7 +3,7 @@
                  'menubar' => [],
 
                  'error_callback' => sub {
-                   my( $cgi, $svc_x ) = @_;
+                   my( $cgi, $svc_x, $fields, $opt ) = @_;
                    #$svcnum = $svc_x->svcnum;
                    $pkgnum  = $cgi->param('pkgnum');
                    $svcpart = $cgi->param('svcpart');
                    $part_svc = qsearchs( 'part_svc', { svcpart=>$svcpart });
                    die "No part_svc entry!" unless $part_svc;
 
+                   label_fixup($part_svc, $opt);
+
                    $svc_x->setfield('svcpart', $svcpart);
                  },
 
                  'edit_callback' => sub {
-                   my( $cgi, $svc_x ) = @_;
+                   my( $cgi, $svc_x, $fields, $opt ) = @_;
                    #$svcnum = $svc_x->svcnum;
                    my $cust_svc = $svc_x->cust_svc
                      or die "Unknown (cust_svc) svcnum!";
@@ -25,6 +27,8 @@
   
                    $part_svc = qsearchs ('part_svc', { svcpart=>$svcpart });
                    die "No part_svc entry!" unless $part_svc;
+
+                   label_fixup($part_svc, $opt);
                  },
 
                  'new_hashref_callback' => sub {
                  },
 
                  'new_callback' => sub {
-                    my( $cgi, $svc_x ) = @_;;
+                    my( $cgi, $svc_x, $fields, $opt ) = @_;;
 
                     $part_svc = qsearchs( 'part_svc', { svcpart=>$svcpart });
                     die "No part_svc entry!" unless $part_svc;
 
+                    label_fixup($part_svc, $opt);
+
                     #$svcnum='';
 
                     $svc_x->set_default_and_fixed;
                  %opt #pass through/override params
              )
 %>
+<%once>
+
+sub label_fixup {
+  my( $part_svc, $opt ) = @_;
+
+  #false laziness w/view/svc_Common.html
+  #override default labels with service-definition labels if applicable
+  my $labels = $opt->{labels}; # with -> here
+  foreach my $field ( keys %$labels ) {
+    my $col = $part_svc->part_svc_column($field);
+    $labels->{$field} = $col->columnlabel if $col->columnlabel !~ /^\S*$/;
+  }
+
+}
+
+</%once>
 <%init>
 
 my %opt = @_;