1 <% include('/elements/xmlhttp.html',
2 'url' => $url_prefix.'misc/svc_acct-domains.cgi',
3 'subs' => [ $opt{'prefix'}. 'get_domains' ],
7 <% include('/elements/xmlhttp.html',
8 'url' => $url_prefix.'misc/part_svc-columns.cgi',
9 'subs' => [ $opt{'prefix'}. 'get_part_svc' ],
13 <INPUT TYPE="hidden" NAME="svcdb" VALUE="">
15 <SCRIPT TYPE="text/javascript">
17 function selopt(what,value,text,selected) {
18 var optionName = new Option(text, value, false, selected);
19 var length = what.length;
20 what.options[length] = optionName;
23 var pkgpart_svcpart2svcdb = {
24 % foreach my $pkgpart ( map $_->pkgpart, @part_pkg ) {
25 "<% $pkgpart_svcpart{$pkgpart} %>":"<% $svcdb{$pkgpart} %>",
30 function <% $opt{'prefix'} %>pkgpart_svcpart_changed_too(what,selected) {
32 <% $opt{'onchange'} %>;
34 pkgpart_svcpart = what.options[what.selectedIndex].value;
36 var svcdb = pkgpart_svcpart2svcdb[pkgpart_svcpart];
38 what.form.svcdb.value = svcdb;
40 if ( svcdb == 'svc_acct' ) {
42 // go get the new domains
43 function <% $opt{'prefix'} %>update_domains(domains) {
45 // blank the current domain list
46 for ( var i = what.form.<% $opt{'prefix'} %>domsvc.length; i >= 0; i-- )
47 what.form.<% $opt{'prefix'} %>domsvc.options[i] = null;
49 // add the new domains
50 var domainArray = eval('(' + domains + ')' );
51 for ( var s = 0; s < domainArray.length; s=s+2 ) {
52 var domainLabel = domainArray[s+1];
53 if ( domainLabel == "" )
54 domainLabel = '(n/a)';
55 selopt( what.form.<% $opt{'prefix'} %>domsvc,
58 (domainArray[s] == selected) ? true : false
64 <% $opt{'prefix'} %>get_domains( pkgpart_svcpart,
65 <% $opt{'prefix'} %>update_domains
68 } else if ( svcdb == 'svc_phone' ) {
70 function <% $opt{'prefix'} %>update_svc_phone(part_svc_column) {
71 var colArray = eval('(' + part_svc_column + ')' );
72 for ( var s = 0; s < colArray.length; s=s+3 ) {
73 var name = colArray[s];
74 var flag = colArray[s+1];
75 var value = colArray[s+2];
76 var td_label = document.getElementById(name+'_label_td');
77 var td = document.getElementById(name+'_td');
78 var input = document.getElementById(name);
80 if ( ! input.value ) { input.value = value; }
81 td_label.style.display = ''
83 } else if ( flag == 'F' ) {
85 td_label.style.display = 'none'
86 td.style.display = 'none'
88 td_label.style.display = ''
94 <% $opt{'prefix'} %>get_part_svc( pkgpart_svcpart,
95 <% $opt{'prefix'} %>update_svc_phone
104 <% include( '/elements/selectlayers.html',
105 'field' => $opt{'prefix'}. 'pkgpart_svcpart',
106 'curr_value' => $opt{pkgpart_svcpart},
107 'options' => \@options,
108 'labels' => \%labels,
109 'html_between' => '</TD></TR></TABLE>',
110 #'onchange' => $opt{'prefix'}. 'pkgpart_svcpart_changed(this,0);',
111 'onchange' => $opt{'prefix'}. 'pkgpart_svcpart_changed_too(what,0)',
113 'layer_callback' => $layer_callback,
114 'layermap' => \%layermap,
118 <SCRIPT TYPE="text/javascript">
119 pkgpart_svcpart_changed_too( document.CustomerForm.pkgpart_svcpart,
120 <% $opt{saved_domsvc} %>
128 foreach my $opt (qw( svc_part pkgparts saved_pkgpart saved_domsvc prefix)) {
129 $opt{$_} = '' unless exists($opt{$_}) && defined($opt{$_});
131 $opt{saved_domsvc} = 0 unless $opt{saved_domsvc};
133 my $url_prefix = $opt{'relurls'} ? '' : $p;
135 my @part_pkg = @{$opt{'part_pkg'}};
137 my @first_svc = ( 'svc_acct', 'svc_phone' );
139 my %pkgpart_svcpart = ();
142 foreach my $part_pkg ( @part_pkg ) {
143 my $pkgpart = $part_pkg->pkgpart;
144 my $pkgpart_svcpart = $pkgpart. "_". $part_pkg->svcpart(\@first_svc);
145 $pkgpart_svcpart{$pkgpart} = $pkgpart_svcpart;
146 $svcdb{$pkgpart} = $part_pkg->part_svc(\@first_svc)->svcdb;
147 $layermap{$pkgpart_svcpart} = $svcdb{$pkgpart};
150 my @options = ( '', map $pkgpart_svcpart{ $_->pkgpart }, @part_pkg );
151 my %labels = ( '' => ( $opt{'empty_label'} || '(none)' ),
152 map { $pkgpart_svcpart{ $_->pkgpart } => $_->pkg_comment }
156 my $layer_callback = sub {
158 #$layer_fields, $layer_values, $layer_prefix
160 # my( $pkgpart, $svcpart ) = split('_', $layer);
161 # my $svcdb = $svcdb{$pkgpart};
164 return '' unless $svcdb; #'<BR><BR><BR><BR><BR>'
166 #full path cause we're being slung around as a coderef (mason closures?)
167 include("/edit/cust_main/first_pkg/$svcdb.html", %opt, );