& /elements/xmlhttp.html,
'url' => $url_prefix.'misc/svc_acct-domains.cgi',
'subs' => [ $opt{'prefix'}. 'get_domains' ],
&>
<& /elements/xmlhttp.html,
'url' => $url_prefix.'misc/part_svc-columns.cgi',
'subs' => [ $opt{'prefix'}. 'get_part_svc' ],
&>
<& /elements/selectlayers.html,
'field' => $opt{'prefix'}. 'pkgpart_svcpart',
'curr_value' => $opt{pkgpart_svcpart},
'options' => \@options,
'labels' => \%labels,
'html_between' => '',
'onchange' => $opt{'prefix'}. 'pkgpart_svcpart_changed_too(what,0)',
'layer_callback' => $layer_callback,
'layermap' => \%layermap,
&>
<%init>
my %opt = @_;
foreach my $opt (qw( svc_part pkgparts saved_pkgpart saved_domsvc prefix)) {
$opt{$_} = '' unless exists($opt{$_}) && defined($opt{$_});
}
$opt{saved_domsvc} = 0 unless $opt{saved_domsvc};
my $url_prefix = $opt{'relurls'} ? '' : $p;
my @part_pkg = @{ $opt{'part_pkg'} };
my @first_svc = @{ $opt{'first_svc'} || [] };
my %pkgpart_svcpart = ();
my %svcdb = ();
my %layermap = ();
foreach my $part_pkg ( @part_pkg ) {
my $pkgpart = $part_pkg->pkgpart;
my $pkgpart_svcpart = $pkgpart. "_". $part_pkg->svcpart(\@first_svc);
$pkgpart_svcpart{$pkgpart} = $pkgpart_svcpart;
$svcdb{$pkgpart} = $part_pkg->part_svc(\@first_svc)->svcdb;
$layermap{$pkgpart_svcpart} = $svcdb{$pkgpart};
}
my @options = ();
push @options, '' unless $opt{'disable_empty'};
push @options, map $pkgpart_svcpart{ $_->pkgpart }, @part_pkg;
my $label_method = $opt{no_comment} ? 'pkg_price_info' : 'pkg_comment' ;
my %labels = ( '' => ( $opt{'empty_label'} || '(none)' ),
map { $pkgpart_svcpart{ $_->pkgpart } => $_->$label_method() }
@part_pkg
);
my $layer_callback = sub {
my $layer = shift;
my $svcdb = $layer;
return '' unless $svcdb;
#full path cause we're being slung around as a coderef (mason closures?)
include("/edit/cust_main/first_pkg/$svcdb.html", %opt, );
};
%init>