summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjeff <jeff>2007-02-14 23:32:22 +0000
committerjeff <jeff>2007-02-14 23:32:22 +0000
commitc193fc003020c040668cd801fca6447939c07e6c (patch)
treeeb2db187abde6afcb42709c1f16977f7b1fe5267
parentebd4a44b502b55a883ee1c7179f38d45318ef2ae (diff)
selectable domain on first package in edit/cust_main
-rwxr-xr-xhttemplate/edit/cust_main.cgi36
-rw-r--r--httemplate/edit/cust_main/select-domain.html66
-rw-r--r--httemplate/misc/svc_acct-domains.cgi25
3 files changed, 116 insertions, 11 deletions
diff --git a/httemplate/edit/cust_main.cgi b/httemplate/edit/cust_main.cgi
index 83eda7fcd..a843772d2 100755
--- a/httemplate/edit/cust_main.cgi
+++ b/httemplate/edit/cust_main.cgi
@@ -15,7 +15,7 @@
%#get record
%
%my $error = '';
-%my($custnum, $username, $password, $popnum, $cust_main, $saved_pkgpart);
+%my($custnum, $username, $password, $popnum, $cust_main, $saved_pkgpart, $saved_domsvc);
%my(@invoicing_list);
%my $payinfo;
%my $same = '';
@@ -25,6 +25,12 @@
% map { $_, scalar($cgi->param($_)) } fields('cust_main')
% } );
% $custnum = $cust_main->custnum;
+% $saved_domsvc = $cgi->param('domsvc') || '';
+% if ( $saved_domsvc =~ /^(\d+)$/ ) {
+% $saved_domsvc = $1;
+% } else {
+% $saved_domsvc = '';
+% }
% $saved_pkgpart = $cgi->param('pkgpart_svcpart') || '';
% if ( $saved_pkgpart =~ /^(\d+)_/ ) {
% $saved_pkgpart = $1;
@@ -50,6 +56,7 @@
% $cust_main->paycvv($paycvv);
% }
% $saved_pkgpart = 0;
+% $saved_domsvc = 0;
% $username = '';
% $password = '';
% $popnum = 0;
@@ -61,6 +68,7 @@
% $cust_main->otaker( &getotaker );
% $cust_main->referral_custnum( $cgi->param('referral_custnum') );
% $saved_pkgpart = 0;
+% $saved_domsvc = 0;
% $username = '';
% $password = '';
% $popnum = 0;
@@ -427,7 +435,7 @@ function copyelement(from, to) {
% #eslaf
%
% my @part_pkg = grep { $_->svcpart('svc_acct') && $pkgpart->{ $_->pkgpart } }
-% qsearch( 'part_pkg', { 'disabled' => '' },'','ORDER BY pkg' ); # case?
+% qsearch( 'part_pkg', { 'disabled' => '' }, '', 'ORDER BY pkg' ); # case?
%
% if ( @part_pkg ) {
%
@@ -441,15 +449,12 @@ function copyelement(from, to) {
<TR>
<TD COLSPAN=2>
- <SELECT NAME="pkgpart_svcpart">
- <OPTION VALUE="">(none)
-% foreach my $part_pkg ( @part_pkg ) {
-
-
- <OPTION VALUE="<% $part_pkg->pkgpart. "_". $part_pkg->svcpart('svc_acct') %>"<% ( $saved_pkgpart && $part_pkg->pkgpart == $saved_pkgpart ) ? ' SELECTED' : '' %>><% $part_pkg->pkg. " - ". $part_pkg->comment %>
-% }
-
- </SELECT>
+ <% include('cust_main/select-domain.html',
+ 'pkgparts' => \@part_pkg,
+ 'saved_pkgpart' => $saved_pkgpart,
+ 'saved_domsvc' => $saved_domsvc,
+ )
+ %>
</TD>
</TR>
%
@@ -470,6 +475,15 @@ function copyelement(from, to) {
</TR>
<TR>
+ <TD ALIGN="right">Domain</TD>
+ <TD>
+ <SELECT NAME="domsvc">
+ <OPTION>(none)</OPTION>
+ </SELECT>
+ </TD>
+ </TR>
+
+ <TR>
<TD ALIGN="right">Password</TD>
<TD>
<INPUT TYPE="text" NAME="_password" VALUE="<% $password %>" SIZE=<% $pmax2 %> MAXLENGTH=<% $passwordmax %>>
diff --git a/httemplate/edit/cust_main/select-domain.html b/httemplate/edit/cust_main/select-domain.html
new file mode 100644
index 000000000..3d42eb8b1
--- /dev/null
+++ b/httemplate/edit/cust_main/select-domain.html
@@ -0,0 +1,66 @@
+
+<% include('/elements/xmlhttp.html',
+ 'url' => $p.'misc/svc_acct-domains.cgi',
+ 'subs' => [ $opt{'prefix'}. 'get_domains' ],
+ )
+%>
+
+<SCRIPT TYPE="text/javascript">
+
+ function selopt(what,value,text,selected) {
+ var optionName = new Option(text, value, false, selected);
+ var length = what.length;
+ what.options[length] = optionName;
+ }
+
+ function <% $opt{'prefix'} %>pkgpart_svcpart_changed(what,selected) {
+
+ pkgpart_svcpart = what.options[what.selectedIndex].value;
+
+ function <% $opt{'prefix'} %>update_domains(domains) {
+
+ // blank the current domain list
+ for ( var i = what.form.<% $opt{'prefix'} %>domsvc.length; i >= 0; i-- )
+ what.form.<% $opt{'prefix'} %>domsvc.options[i] = null;
+
+ // add the new domains
+ var domainArray = eval('(' + domains + ')' );
+ for ( var s = 0; s < domainArray.length; s=s+2 ) {
+ var domainLabel = domainArray[s+1];
+ if ( domainLabel == "" )
+ domainLabel = '(n/a)';
+ selopt(what.form.<% $opt{'prefix'} %>domsvc, domainArray[s], domainLabel, (domainArray[s] == selected) ? true : false);
+ }
+
+ }
+
+ // go get the new domains
+ <% $opt{'prefix'} %>get_domains( pkgpart_svcpart, <% $opt{'prefix'} %>update_domains );
+
+ }
+
+</SCRIPT>
+
+<SELECT NAME="<% $opt{'prefix'} %>pkgpart_svcpart" onchange="<% $opt{'prefix'} %>pkgpart_svcpart_changed(this,0);" >
+
+% foreach my $part_pkg ( @part_pkg ) {
+
+ <OPTION VALUE="<% $part_pkg->pkgpart. "_". $part_pkg->svcpart('svc_acct') %>"<% ( $opt{saved_pkgpart} && $part_pkg->pkgpart == $opt{saved_pkgpart} ) ? ' SELECTED' : '' %>><% $part_pkg->pkg. " - ". $part_pkg->comment %>
+
+% }
+
+</SELECT>
+<SCRIPT>
+ pkgpart_svcpart_changed(document.bottomform.pkgpart_svcpart, <% $opt{saved_domsvc} %>);
+</SCRIPT>
+
+<%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 @part_pkg = @{$opt{'pkgparts'}};
+
+</%init>
+
diff --git a/httemplate/misc/svc_acct-domains.cgi b/httemplate/misc/svc_acct-domains.cgi
new file mode 100644
index 000000000..5e96b8d71
--- /dev/null
+++ b/httemplate/misc/svc_acct-domains.cgi
@@ -0,0 +1,25 @@
+%
+%
+% my $pkgpart_svcpart = $cgi->param('arg');
+% $pkgpart_svcpart =~ /^\d+_(\d+)$/;
+% my $part_svc = qsearchs('part_svc', { 'svcpart' => $1 }) if $1;
+% my $part_svc_column = $part_svc->part_svc_column('domsvc');
+%
+% my @output = split /,/, $part_svc_column->columnvalue;
+% my @svc_domain = ();
+% my %seen = ();
+%
+% foreach (@output) {
+% my $svc_domain = qsearchs('svc_domain', { 'svcnum' => $_ })
+% or warn "unknown svc_domain.svcnum $_ for part_svc_column domsvc; ".
+% "svcpart = " . $part_svc->svcpart;
+% push @svc_domain, [ $_ => $svc_domain->domain ];
+% $seen{$_}++;
+% }
+% if ($part_svc_column->columnflag eq 'D' || $part_svc_column->columnflag eq '') {
+% foreach (grep { $_->svcnum ne $output[0] } qsearch('svc_domain', {}) ){
+% push @svc_domain, [ $_->svcnum => $_->domain ];
+% }
+% }
+%
+[ <% join(', ', map { qq("$_->[0]", "$_->[1]") } @svc_domain) %> ]