diff options
Diffstat (limited to 'httemplate/edit/cust_main/first_pkg')
-rw-r--r-- | httemplate/edit/cust_main/first_pkg/select-part_pkg.html | 170 | ||||
-rw-r--r-- | httemplate/edit/cust_main/first_pkg/svc_acct.html | 88 | ||||
-rw-r--r-- | httemplate/edit/cust_main/first_pkg/svc_phone.html | 82 |
3 files changed, 340 insertions, 0 deletions
diff --git a/httemplate/edit/cust_main/first_pkg/select-part_pkg.html b/httemplate/edit/cust_main/first_pkg/select-part_pkg.html new file mode 100644 index 000000000..871e1cdee --- /dev/null +++ b/httemplate/edit/cust_main/first_pkg/select-part_pkg.html @@ -0,0 +1,170 @@ +<% include('/elements/xmlhttp.html', + 'url' => $url_prefix.'misc/svc_acct-domains.cgi', + 'subs' => [ $opt{'prefix'}. 'get_domains' ], + ) +%> + +<% include('/elements/xmlhttp.html', + 'url' => $url_prefix.'misc/part_svc-columns.cgi', + 'subs' => [ $opt{'prefix'}. 'get_part_svc' ], + ) +%> + +<INPUT TYPE="hidden" NAME="svcdb" VALUE=""> + +<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; + } + + var pkgpart_svcpart2svcdb = { +% foreach my $pkgpart ( map $_->pkgpart, @part_pkg ) { + "<% $pkgpart_svcpart{$pkgpart} %>":"<% $svcdb{$pkgpart} %>", +% } + '':'' + }; + + function <% $opt{'prefix'} %>pkgpart_svcpart_changed_too(what,selected) { + + <% $opt{'onchange'} %>; + + pkgpart_svcpart = what.options[what.selectedIndex].value; + + var svcdb = pkgpart_svcpart2svcdb[pkgpart_svcpart]; + + what.form.svcdb.value = svcdb; + + if ( svcdb == 'svc_acct' ) { + + // go get the new domains + 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 + ); + } + + } + + <% $opt{'prefix'} %>get_domains( pkgpart_svcpart, + <% $opt{'prefix'} %>update_domains + ); + + } else if ( svcdb == 'svc_phone' ) { + + function <% $opt{'prefix'} %>update_svc_phone(part_svc_column) { + var colArray = eval('(' + part_svc_column + ')' ); + for ( var s = 0; s < colArray.length; s=s+3 ) { + var name = colArray[s]; + var flag = colArray[s+1]; + var value = colArray[s+2]; + var td_label = document.getElementById(name+'_label_td'); + var td = document.getElementById(name+'_td'); + var input = document.getElementById(name); + if ( flag == 'D' ) { + if ( ! input.value ) { input.value = value; } + td_label.style.display = '' + td.style.display = '' + } else if ( flag == 'F' ) { + input.value = value; + td_label.style.display = 'none' + td.style.display = 'none' + } else { + td_label.style.display = '' + td.style.display = '' + } + } + } + + <% $opt{'prefix'} %>get_part_svc( pkgpart_svcpart, + <% $opt{'prefix'} %>update_svc_phone + ); + + } + + } + +</SCRIPT> + +<% include( '/elements/selectlayers.html', + 'field' => $opt{'prefix'}. 'pkgpart_svcpart', + 'curr_value' => $opt{pkgpart_svcpart}, + 'options' => \@options, + 'labels' => \%labels, + 'html_between' => '</TD></TR></TABLE>', + #'onchange' => $opt{'prefix'}. 'pkgpart_svcpart_changed(this,0);', + 'onchange' => $opt{'prefix'}. 'pkgpart_svcpart_changed_too(what,0)', + + 'layer_callback' => $layer_callback, + 'layermap' => \%layermap, + ) +%> + +<SCRIPT TYPE="text/javascript"> + pkgpart_svcpart_changed_too( document.CustomerForm.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 $url_prefix = $opt{'relurls'} ? '' : $p; + +my @part_pkg = @{$opt{'part_pkg'}}; + +my @first_svc = ( 'svc_acct', 'svc_phone' ); + +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 = ( '', map $pkgpart_svcpart{ $_->pkgpart }, @part_pkg ); +my %labels = ( '' => ( $opt{'empty_label'} || '(none)' ), + map { $pkgpart_svcpart{ $_->pkgpart } => $_->pkg_comment } + @part_pkg + ); + +my $layer_callback = sub { + my $layer = shift; + #$layer_fields, $layer_values, $layer_prefix + +# my( $pkgpart, $svcpart ) = split('_', $layer); +# my $svcdb = $svcdb{$pkgpart}; + my $svcdb = $layer; + + return '' unless $svcdb; #'<BR><BR><BR><BR><BR>' + + #full path cause we're being slung around as a coderef (mason closures?) + include("/edit/cust_main/first_pkg/$svcdb.html", %opt, ); +}; + +</%init> diff --git a/httemplate/edit/cust_main/first_pkg/svc_acct.html b/httemplate/edit/cust_main/first_pkg/svc_acct.html new file mode 100644 index 000000000..150d4c043 --- /dev/null +++ b/httemplate/edit/cust_main/first_pkg/svc_acct.html @@ -0,0 +1,88 @@ +<% ntable("#cccccc") %> + + <TR> + <TD ALIGN="right">Username</TD> + <TD> + <INPUT TYPE = "text" + NAME = "username" + VALUE = "<% $opt{'username'} %>" + SIZE = <% $ulen2 %> + MAXLENGTH = <% $ulen %> + > + </TD> + </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 = "<% $opt{'password'} %>" + SIZE = <% $pmax2 %> + MAXLENGTH = <% $passwordmax %>> +% unless ( $opt{'password_verify'} ) { + (blank to generate) +% } + </TD> + </TR> + +% if ( $opt{'password_verify'} ) { + <TR> + <TD ALIGN="right">Re-enter Password</TD> + <TD> + <INPUT TYPE = "text" + NAME = "_password2" + VALUE = "<% $opt{'password2'} %>" + SIZE = <% $pmax2 %> + MAXLENGTH = <% $passwordmax %>> + </TD> + </TR> +% } + +% if ( $conf->exists('security_phrase') ) { + <TR> + <TD ALIGN="right">Security Phrase</TD> + <TD><INPUT TYPE="text" NAME="sec_phrase" VALUE="<% $opt{'sec_phrase'} %>"> + </TD> + </TR> +% } else { + <INPUT TYPE="hidden" NAME="sec_phrase" VALUE=""> +% } + +% if ( $conf->exists('svc_acct-disable_access_number') ) { + <INPUT TYPE="hidden" NAME="popnum" VALUE=""> +% } else { + <TR> + <TD ALIGN="right">Access number</TD> +%# XXX should gain "area code" selection and labels on the dropdowns + <TD><% FS::svc_acct_pop::popselector($opt{'popnum'}) %></TD> + </TR> +% } + +</TABLE> + +<%init> + +#use FS::svc_acct_pop; + +my( %opt ) = @_; + +my $conf = new FS::Conf; + +#false laziness: (mostly) copied from edit/svc_acct.cgi +#$ulen = $svc_acct->dbdef_table->column('username')->length; +my $ulen = dbdef->table('svc_acct')->column('username')->length; +my $ulen2 = $ulen+2; +my $passwordmax = $conf->config('passwordmax') || 8; +my $pmax2 = $passwordmax + 2; + +</%init> diff --git a/httemplate/edit/cust_main/first_pkg/svc_phone.html b/httemplate/edit/cust_main/first_pkg/svc_phone.html new file mode 100644 index 000000000..70e013ece --- /dev/null +++ b/httemplate/edit/cust_main/first_pkg/svc_phone.html @@ -0,0 +1,82 @@ +<% ntable("#cccccc") %> + +%#XXX this should be hidden or something in most/all cases + <TR> + <TD ALIGN="right" ID="countrycode_label_td">Country code</TD> + <TD ID="countrycode_td"> + <INPUT TYPE = "text" + NAME = "countrycode" + ID = "countrycode" + VALUE = "<% $opt{'countrycode'} %>" + SIZE = 4 + MAXLENGTH = 3 + > + </TD> + </TR> + +%#we don't know the svcpart until the dropdown is changed :/ +%#<% include('/elements/tr-select-did.html', +%# 'label' => 'Phone number', +%# 'curr_value' => $opt{'phonenum'}, +%# ) +%#%> + <TR> + <TD ALIGN="right" ID="phonenum_label_td">Phone Number</TD> + <TD ID="phonenum_td"> + <INPUT TYPE = "text" + NAME = "phonenum" + ID = "phonenum" + VALUE = "<% $opt{'phonenum'} %>" + SIZE = 21 + MAXLENGTH = 20 + > + </TD> + </TR> + + <TR> + <TD ALIGN="right" ID="sip_password_label_td">SIP password</TD> + <TD ID="sip_password_td"> + <INPUT TYPE = "text" + NAME = "sip_password" + ID = "sip_password" + VALUE = "<% $opt{'sip_password'} %>" + MAXLENGTH = 80 + > + </TD> + </TR> + + <TR> + <TD ALIGN="right" ID="pin_label_td">Voicemail PIN</TD> + <TD ID="pin_td"> + <INPUT TYPE = "text" + NAME = "pin" + ID = "pin" + VALUE = "<% $opt{'pin'} %>" + SIZE = 5 + MAXLENGTH = 4 + > + </TD> + </TR> + +%#XXX this should be hidden or something in most/all cases + <TR> + <TD ALIGN="right" ID="phone_name_label_td">Name</TD> + <TD ID="phone_name_td"> + <INPUT TYPE = "text" + NAME = "phone_name" + ID = "phone_name" + VALUE = "<% $opt{'phone_name'} %>" + MAXLENGTH = 80 + > + </TD> + </TR> + +</TABLE> + +<%init> + +my( %opt ) = @_; + +#my $conf = new FS::Conf; + +</%init> |