diff options
Diffstat (limited to 'httemplate/edit')
-rw-r--r-- | httemplate/edit/elements/part_svc_column.html | 5 | ||||
-rwxr-xr-x | httemplate/edit/part_pkg.cgi | 85 | ||||
-rwxr-xr-x | httemplate/edit/part_svc.cgi | 52 | ||||
-rw-r--r-- | httemplate/edit/process/elements/process.html | 21 | ||||
-rwxr-xr-x | httemplate/edit/process/part_pkg.cgi | 5 | ||||
-rw-r--r-- | httemplate/edit/process/quotation_convert.html | 7 | ||||
-rwxr-xr-x | httemplate/edit/svc_acct.cgi | 32 | ||||
-rw-r--r-- | httemplate/edit/svc_acct/communigate.html | 2 |
8 files changed, 93 insertions, 116 deletions
diff --git a/httemplate/edit/elements/part_svc_column.html b/httemplate/edit/elements/part_svc_column.html index 4e112c078..816f3428b 100644 --- a/httemplate/edit/elements/part_svc_column.html +++ b/httemplate/edit/elements/part_svc_column.html @@ -267,8 +267,9 @@ my %communigate_fields = ( <& /elements/progress-init.html, $svcdb, #form name [ # form fields to send - qw(svc svcpart classnum selfservice_access disabled preserve exportnum), - @fields + 'ALL' +# qw(svc svcpart classnum selfservice_access disabled preserve exportnum), +# @fields ], 'process/part_svc.cgi', # target $p.'browse/part_svc.cgi', # redirect landing diff --git a/httemplate/edit/part_pkg.cgi b/httemplate/edit/part_pkg.cgi index 80a61f813..7fe659f94 100755 --- a/httemplate/edit/part_pkg.cgi +++ b/httemplate/edit/part_pkg.cgi @@ -92,7 +92,7 @@ { type => 'columnstart' }, { field => 'pkg', - type => 'text', + type => 'input-locale-text', size => 40, #32 maxlength => 50, }, @@ -495,42 +495,6 @@ my $recur_show_zero_disabled = 1; my $pkgpart = ''; -my $splice_locale_fields = sub { - my( $fields, $pkey_value_callback, $pkg_value_callback ) = @_; - - my $n = 0; - my @locale_fields = ( - map { - my $pkey_value= $pkey_value_callback ? &$pkey_value_callback($_) : ''; - my $pkg_value = $pkg_value_callback - ? $pkg_value_callback eq 'cgiparam' - ? $cgi->param('pkgpartmsgnum'. $n. '_pkg') - : &$pkg_value_callback($_) - : ''; - ( - { field => 'pkgpartmsgnum'. $n, - type => 'hidden', - value => $pkey_value, - }, - { field => 'pkgpartmsgnum'. $n. '_locale', - type => 'hidden', - value => $_, - }, - { field => 'pkgpartmsgnum'. $n++. '_pkg', - type => 'text', - size => 40, - #maxlength => 50, - value => $pkg_value, - }, - ); - - } - @locales - ); - splice(@$fields, 7, 0, @locale_fields); #XXX 7 is arbitrary above - -}; - my $error_callback = sub { my($cgi, $object, $fields, $opt ) = @_; @@ -579,16 +543,6 @@ my $error_callback = sub { $pkgpart = $object->pkgpart; - &$splice_locale_fields( - $fields, - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkgpartmsgnum : ''; - }, - 'cgiparam' - ); - if ( $cgi->param('error') =~ / is suggested with / ) { #yeah, detection is a shitty kludge, but we don't have exception objects $opt->{form_init} = '<INPUT TYPE="checkbox" NAME="part_pkg_restrict_soft_override" VALUE="Y"> Override suggestion<BR><BR>'; @@ -665,20 +619,6 @@ my $edit_callback = sub { $pkgpart = $object->pkgpart; - &$splice_locale_fields( - $fields, - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkgpartmsgnum : ''; - }, - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkg : ''; - } - ); - }; my $new_callback = sub { @@ -692,8 +632,6 @@ my $new_callback = sub { $options{'suspend_bill'}=1 if $conf->exists('part_pkg-default_suspend_bill'); - &$splice_locale_fields($fields, '', ''); - }; my $clone_callback = sub { @@ -732,17 +670,6 @@ my $clone_callback = sub { foreach keys %part_pkg_currency; } - $recur_disabled = $object->freq ? 0 : 1; - - &$splice_locale_fields( - $fields, - '', - sub { - my $locale = shift; - my $part_pkg_msgcat = $object->part_pkg_msgcat($locale); - $part_pkg_msgcat ? $part_pkg_msgcat->pkg : ''; - } - ); }; my $discount_error_callback = sub { @@ -1061,6 +988,16 @@ my $html_bottom = sub { : '' ). '>'; + } elsif ( $href->{$field}{'type'} =~ /^select-rt-/ ) { + + $html .= include('/elements/'.$href->{$field}{'type'}.'.html', + 'name' => $layer.'__'.$field, + 'curr_value' => $options{$field}, + map { $_ => $href->{$field}{$_} } + grep { $_ !~ /^(name|type|parse)$/ } + keys %{ $href->{$field} } + ); + } elsif ( $href->{$field}{'type'} eq 'select-rate' ) { $html .= include('/elements/select-rate.html', diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index a07fc6005..fed21256f 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -36,9 +36,26 @@ } </STYLE> <SCRIPT TYPE="text/javascript"> +// copy all fields from the outer form (svc and its localizations, plus +// preserve, selfservice_access, etc.) into the inner form, creating hidden +// inputs if needed function fixup_submit(layer) { - document.forms[layer].submit.disabled = true; - fixup(document.forms[layer]); + var layer_form = $(document.forms[layer]); + var main_form = $(document.forms['SvcEditMain']); + var data = main_form.serializeArray(); + for (var i = 0; i < data.length; i++) { + var input = layer_form.children('[name=' + data[i].name + ']'); + if (input[0]) { + input.prop('value', data[i].value); + } else { + $( '<input type="hidden">' ) + .attr('name', data[i].name) + .prop('value', data[i].value) + .appendTo(layer_form); + } + } + layer_form[0]['submit'].disabled = true; + //fixup(document.forms[layer]); window[layer+'process'].call(); } @@ -141,19 +158,26 @@ window.onload = function() { </SCRIPT> -<FORM NAME="dummy"> +<FORM NAME="SvcEditMain"> <FONT CLASS="fsinnerbox-title">Service Part #<% $part_svc->svcpart ? $part_svc->svcpart : "(NEW)" %></FONT> <TABLE CLASS="fsinnerbox"> -<TR> - <TD ALIGN="right">Service</TD> - <TD><INPUT TYPE="text" NAME="svc" VALUE="<% $hashref->{svc} %>"></TD> -<TR> +<& /elements/tr-input-locale-text.html, + 'object' => $part_svc, + 'cgi' => $cgi, + 'field' => 'svc', + 'label' => 'Service', + 'curr_value' => $hashref->{svc}, +&> +%#<TR> +%# <TD ALIGN="right">Service</TD> +%# <TD><INPUT TYPE="text" NAME="svc" VALUE="<% $hashref->{svc} %>"></TD> +%#<TR> <& /elements/tr-select-part_svc_class.html, curr_value=>$hashref->{classnum} &> <TR> - <TD ALIGN="right">Self-service access</TD> + <TH ALIGN="right">Self-service access</TD> <TD> <SELECT NAME="selfservice_access"> % tie my %selfservice_access, 'Tie::IxHash', #false laziness w/browse/part_svc @@ -172,12 +196,12 @@ window.onload = function() { <TR> - <TD ALIGN="right">Disable new orders</TD> + <TH ALIGN="right">Disable new orders</TD> <TD><INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<% $hashref->{disabled} eq 'Y' ? ' CHECKED' : '' %>></TD> </TR> <TR> - <TD ALIGN="right">Preserve this service on package cancellation</TD> + <TH ALIGN="right">Preserve this service on package cancellation</TD> <TD><INPUT TYPE="checkbox" NAME="preserve" VALUE="Y"<% $hashref->{'preserve'} eq 'Y' ? ' CHECKED' : '' %>> </TD> </TR> @@ -240,12 +264,12 @@ my $widget = new HTML::Widgets::SelectLayers( #'selected_layer' => $p_svcdb, 'selected_layer' => $hashref->{svcdb} || 'svc_acct', 'options' => \%svcdb, - 'form_name' => 'dummy', + 'form_name' => 'SvcEditMain', #'form_action' => 'process/part_svc.cgi', 'form_action' => 'part_svc.cgi', #self - 'form_elements' => [qw( svc svcpart classnum selfservice_access - disabled preserve - )], +# 'form_elements' => [qw( svc svcpart classnum selfservice_access +# disabled preserve +# )], 'html_between' => $help, 'layer_callback' => sub { include('elements/part_svc_column.html', diff --git a/httemplate/edit/process/elements/process.html b/httemplate/edit/process/elements/process.html index fd12c61d9..60aaf749a 100644 --- a/httemplate/edit/process/elements/process.html +++ b/httemplate/edit/process/elements/process.html @@ -62,6 +62,8 @@ Example: 'fields' => [qw( fieldname fieldname2 )], }, + 'process_locale' => 'fieldname', # update entries in the _msgcat table + 'process_upload' => { 'process' => 'misc/mytable-import.html', # fields to pass to the back end job, besides the @@ -363,12 +365,21 @@ foreach my $value ( @values ) { } - if ( !$error && $opt{'process_o2m'} ) { - - my @process_o2m = ref($opt{'process_o2m'}) eq 'ARRAY' - ? @{ $opt{'process_o2m'} } - : ( $opt{'process_o2m'} ); + my @process_o2m; + if ( $opt{'process_o2m'} ) { + @process_o2m = ref($opt{'process_o2m'}) eq 'ARRAY' + ? @{ $opt{'process_o2m'} } + : ( $opt{'process_o2m'} ); + } + if ( $opt{'process_locale'} ) { + push @process_o2m, + { + 'table' => $table . '_msgcat', + 'fields' => [ 'locale', $opt{'process_locale'} ], + }; + } + if ( !$error ) { foreach my $process_o2m (@process_o2m) { diff --git a/httemplate/edit/process/part_pkg.cgi b/httemplate/edit/process/part_pkg.cgi index b8042026a..c4d150ba1 100755 --- a/httemplate/edit/process/part_pkg.cgi +++ b/httemplate/edit/process/part_pkg.cgi @@ -9,6 +9,7 @@ 'edit_ext' => 'cgi', 'precheck_callback' => $precheck_callback, 'args_callback' => $args_callback, + 'process_locale' => 'pkg', 'process_m2m' => \@process_m2m, 'process_o2m' => \@process_o2m, ) @@ -310,10 +311,6 @@ foreach my $amount_param ( grep /^usagepricepart(\d+)_amount$/, $cgi->param ) { my @process_o2m = ( { - 'table' => 'part_pkg_msgcat', - 'fields' => [qw( locale pkg )], - }, - { 'table' => 'part_pkg_usageprice', 'fields' => [qw( price currency action target amount )], diff --git a/httemplate/edit/process/quotation_convert.html b/httemplate/edit/process/quotation_convert.html index dc00a88d3..26b5294f7 100644 --- a/httemplate/edit/process/quotation_convert.html +++ b/httemplate/edit/process/quotation_convert.html @@ -10,9 +10,12 @@ my $quotation = qsearchs( 'quotation' => { quotationnum => scalar( $cgi->param('quotationnum') ), } ) or die 'unknown quotationnum'; +my $params = {}; +$$params{'onhold'} = $cgi->param('onhold') ? 1 : 0; + my $cust_main = $quotation->cust_main; if ( $cust_main ) { - my $error = $quotation->order; + my $error = $quotation->order(undef,$params); errorpage($error) if $error; #i should be part of the order transaction @@ -20,7 +23,7 @@ if ( $cust_main ) { $quotation->replace; } else { - $cust_main = $quotation->convert_cust_main; + $cust_main = $quotation->convert_cust_main( $params ); errorpage($cust_main) unless ref($cust_main);# eq 'FS::cust_main'; } diff --git a/httemplate/edit/svc_acct.cgi b/httemplate/edit/svc_acct.cgi index ca26c6cf0..7be5eabb7 100755 --- a/httemplate/edit/svc_acct.cgi +++ b/httemplate/edit/svc_acct.cgi @@ -31,7 +31,7 @@ </TR> <% include('/elements/tr-td-label.html', - 'label' => mt('Username'), + 'label' => $part_svc->part_svc_column('username')->columnlabel || mt('Username'), 'required' => $part_svc->part_svc_column('username')->required ) %> % if ( $svcnum && $conf->exists('svc_acct-no_edit_username') ) { <TD BGCOLOR="#eeeeee"><% $svc_acct->username() %></TD> @@ -46,7 +46,7 @@ %if ( $part_svc->part_svc_column('_password')->columnflag ne 'F' ) { % #XXX eventually should require "Edit Password" ACL <% include('/elements/tr-td-label.html', - 'label' => mt('Password'), + 'label' => $part_svc->part_svc_column('_password')->columnlabel || mt('Password'), 'required' => $part_svc->part_svc_column('_password')->required ) %> <TD> <INPUT TYPE="text" ID="clear_password" NAME="clear_password" VALUE="<% $password %>" SIZE=<% $pmax2 %> MAXLENGTH=<% $pmax %>> @@ -68,7 +68,7 @@ % && $part_svc->part_svc_column('sec_phrase')->columnflag ne 'F' ) { <% include('/elements/tr-td-label.html', - 'label' => mt('Security phrase'), + 'label' => $part_svc->part_svc_column('sec_phrase')->columnlabel || mt('Security phrase'), 'required' => $part_svc->part_svc_column('sec_phrase')->required ) %> <TD> <INPUT TYPE="text" NAME="sec_phrase" VALUE="<% $sec_phrase %>" SIZE=32> @@ -106,7 +106,7 @@ % ); <% include('/elements/tr-td-label.html', - 'label' => mt('Domain'), + 'label' => $part_svc->part_svc_column('domsvc')->columnlabel || mt('Domain'), 'required' => $part_svc->part_svc_column('domsvc')->required ) %> <TD> <SELECT NAME="domsvc" SIZE=1> @@ -142,6 +142,7 @@ 'curr_value' => $svc_acct->pbxsvc, 'part_svc' => $part_svc, 'cust_pkg' => $cust_pkg, + 'label' => $part_svc->part_svc_column('pbxsvc')->columnlabel || 'PBX', &> %#pop @@ -153,7 +154,7 @@ % } else { <% include('/elements/tr-td-label.html', - 'label' => mt('Access number'), + 'label' => $part_svc->part_svc_column('popnum')->columnlabel || mt('Access number'), 'required' => $part_svc->part_svc_column('popnum')->required ) %> <TD><% FS::svc_acct_pop::popselector($popnum) %></TD> </TR> @@ -167,6 +168,7 @@ #'part_svc' => $part_svc, #'cust_pkg' => $cust_pkg, 'required' => $part_svc->part_svc_column('sectornum')->required, + 'label' => $part_svc->part_svc_column('sectornum')->columnlabel || mt('Tower sector'), &> %} else { <INPUT TYPE="hidden" NAME="sectornum" VALUE="<% $svc_acct->sectornum %>"> @@ -188,10 +190,10 @@ % if ( length($svc_acct->$xid()) ) { <% include('/elements/tr-td-label.html', - 'label' => uc($xid), + 'label' => $part_svc->part_svc_column($xid)->columnlabel || uc($xid), 'required' => $part_svc->part_svc_column($xid)->required ) %> - <TR> - <TD ALIGN="right"><% uc($xid) %></TD> +%# <TR> +%# <TD ALIGN="right"><% uc($xid) %></TD> <TD BGCOLOR="#eeeeee"><% $svc_acct->$xid() %></TD> <TD> </TD> @@ -202,7 +204,7 @@ % } else { <% include('/elements/tr-td-label.html', - 'label' => uc($xid), + 'label' => $part_svc->part_svc_column($xid)->columnlabel || uc($xid), 'required' => $part_svc->part_svc_column($xid)->required ) %> <TD> <INPUT TYPE="text" NAME="<% $xid %>" SIZE=8 MAXLENGTH=6 VALUE="<% $svc_acct->$xid() %>"> @@ -221,7 +223,7 @@ <% include('/elements/tr-td-label.html', - 'label' => mt('Real Name'), + 'label' => $part_svc->part_svc_column('finger')->columnlabel || mt('Real Name'), 'required' => $part_svc->part_svc_column('finger')->required ) %> <TD> <INPUT TYPE="text" NAME="finger" VALUE="<% $svc_acct->finger %>"> @@ -240,7 +242,7 @@ <% include('/elements/tr-td-label.html', - 'label' => mt('Home directory'), + 'label' => $part_svc->part_svc_column('dir')->columnlabel || mt('Home directory'), 'required' => $part_svc->part_svc_column('dir')->required ) %> <TD><INPUT TYPE="text" NAME="dir" VALUE="<% $svc_acct->dir %>"></TD> </TR> @@ -258,7 +260,7 @@ <% include('/elements/tr-td-label.html', - 'label' => mt('Shell'), + 'label' => $part_svc->part_svc_column('shell')->columnlabel || mt('Shell'), 'required' => $part_svc->part_svc_column('shell')->required ) %> <TD> <SELECT NAME="shell" SIZE=1> @@ -289,7 +291,9 @@ 'object' => $svc_acct, 'ip_field' => 'slipip', 'required' => $part_svc->part_svc_column('routernum')->required, + 'label' => $part_svc->part_svc_column('routernum')->columnlabel, 'ip_addr_required' => $part_svc->part_svc_column('slipip')->required, + 'ip_addr_label' => $part_svc->part_svc_column('slipip')->columnlabel, &> % } else { % # don't expose these to the user--they're only useful in the other case @@ -299,7 +303,7 @@ <INPUT TYPE="hidden" NAME="slipip" VALUE="<% $svc_acct->slipip %>"> % } else { <% include('/elements/tr-td-label.html', - 'label' => mt('IP'), + 'label' => $part_svc->part_svc_column('slipip')->columnlabel || mt('IP'), 'required' => $part_svc->part_svc_column('slipip')->required ) %> <TD><INPUT TYPE="text" NAME="slipip" VALUE="<% $svc_acct->slipip %>"></TD> </TR> @@ -346,7 +350,7 @@ <% include('/elements/tr-td-label.html', - 'label' => mt('RADIUS groups'), + 'label' => $part_svc->part_svc_column('usergroup')->columnlabel || mt('RADIUS groups'), 'required' => $part_svc->part_svc_column('usergroup')->required ) %> % if ( $part_svc_usergroup->columnflag eq 'F' ) { <TD BGCOLOR="#eeeeee"><% join('<BR>', @groupnames) %></TD> diff --git a/httemplate/edit/svc_acct/communigate.html b/httemplate/edit/svc_acct/communigate.html index 370bfb0e7..544d00be3 100644 --- a/httemplate/edit/svc_acct/communigate.html +++ b/httemplate/edit/svc_acct/communigate.html @@ -46,7 +46,7 @@ % if ( $part_svc->part_svc_column('quota')->columnflag eq 'F' ) { <INPUT TYPE="hidden" NAME="quota" VALUE="<% $svc_acct->quota %>"> % } else { -% my $quota_label = $communigate ? 'Mail storage limit' : 'Quota'; +% my $quota_label = $communigate ? 'Mail storage limit' : ($part_svc->part_svc_column('quota')->columnlabel || 'Quota'); <% include('/elements/tr-td-label.html', 'label' => $quota_label, 'required' => $part_svc->part_svc_column('quota')->required ) %> |