-%
-% my %opt = @_;
-%
-% #my( $svcnum, $pkgnum, $svcpart, $part_svc );
-% my( $pkgnum, $svcpart, $part_svc );
-%
-% #get & untaint pkgnum & svcpart
-% if ( ! $cgi->param('error')
-% && $cgi->param('pkgnum') && $cgi->param('svcpart')
-% )
-% {
-% $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum';
-% $pkgnum = $1;
-% $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart';
-% $svcpart = $1;
-% #$cgi->delete_all(); #so edit.html treats this correctly as new??
-% }
-%
<% include( 'edit.html',
'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!";
$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;
my $columndef = $part_svc->part_svc_column($f->{'field'});
my $flag = $columndef->columnflag;
if ( $flag eq 'F' ) {
- $f->{'type'} = 'fixed';
+ $f->{'type'} = length($columndef->columnvalue)
+ ? 'fixed'
+ : 'hidden';
$f->{'value'} = $columndef->columnvalue;
}
},
%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 = @_;
+
+#my( $svcnum, $pkgnum, $svcpart, $part_svc );
+my( $pkgnum, $svcpart, $part_svc );
+
+#get & untaint pkgnum & svcpart
+if ( ! $cgi->param('error')
+ && $cgi->param('pkgnum') && $cgi->param('svcpart')
+ )
+{
+ $cgi->param('pkgnum') =~ /^(\d+)$/ or die 'unparsable pkgnum';
+ $pkgnum = $1;
+ $cgi->param('svcpart') =~ /^(\d+)$/ or die 'unparsable svcpart';
+ $svcpart = $1;
+ #$cgi->delete_all(); #so edit.html treats this correctly as new??
+}
+
+</%init>