diff options
author | ivan <ivan> | 2005-02-24 14:24:07 +0000 |
---|---|---|
committer | ivan <ivan> | 2005-02-24 14:24:07 +0000 |
commit | 4d599c8ce382f51d7bfbb4172cdc73a2c8bd400d (patch) | |
tree | 495cce273f64cd9f7e791014b8cf50bc973a4869 /httemplate/edit | |
parent | 41a036e2d95b39e28eecc624203024e27b3f539b (diff) |
add progressbar to service definition add - duplicate checking can take a while, closes: Bug#1126
Diffstat (limited to 'httemplate/edit')
-rwxr-xr-x | httemplate/edit/part_svc.cgi | 79 | ||||
-rwxr-xr-x | httemplate/edit/process/part_svc.cgi | 4 |
2 files changed, 23 insertions, 60 deletions
diff --git a/httemplate/edit/part_svc.cgi b/httemplate/edit/part_svc.cgi index befd9b24a..bc38c34bd 100755 --- a/httemplate/edit/part_svc.cgi +++ b/httemplate/edit/part_svc.cgi @@ -1,52 +1,7 @@ <% my $part_svc; my $clone = ''; -my $error = ''; -if ( $cgi->param('magic') eq 'process' ) { - - my $svcpart = $cgi->param('svcpart'); - my $old = qsearchs('part_svc', { 'svcpart' => $svcpart }) if $svcpart; - - $cgi->param( 'svc_acct__usergroup', - join(',', $cgi->param('svc_acct__usergroup') ) ); - - my $new = new FS::part_svc ( { - map { - $_, scalar($cgi->param($_)); - # } qw(svcpart svc svcdb) - } ( fields('part_svc'), - map { my $svcdb = $_; - my @fields = fields($svcdb); - push @fields, 'usergroup' if $svcdb eq 'svc_acct'; #kludge - map { ( $svcdb.'__'.$_, $svcdb.'__'.$_.'_flag' ) } @fields; - } grep defined( $FS::Record::dbdef->table($_) ), - qw( svc_acct svc_domain svc_forward svc_www svc_broadband ) - ) - } ); - - my %exportnums = - map { $_->exportnum => ( $cgi->param('exportnum'.$_->exportnum) || '') } - qsearch('part_export', {} ); - - if ( $svcpart ) { - $error = $new->replace($old, '1.3-COMPAT', [ 'usergroup' ], \%exportnums ); - } else { - $error = $new->insert( [ 'usergroup' ], \%exportnums ); - $svcpart = $new->getfield('svcpart'); - } - - unless ( $error ) { #no error, redirect - #print $cgi->redirect(popurl(3)."browse/part_svc.cgi"); - print $cgi->redirect("${p}browse/part_svc.cgi"); - myexit; - } - - $part_svc = $new; #?? - #$part_svc = new FS::part_svc ( { - # map { $_, scalar($cgi->param($_)) } fields('part_svc') - #} ); - -} elsif ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {#clone +if ( $cgi->param('clone') && $cgi->param('clone') =~ /^(\d+)$/ ) {#clone #$cgi->param('clone') =~ /^(\d+)$/ or die "malformed query: $query"; $part_svc = qsearchs('part_svc', { 'svcpart'=>$1 } ) or die "unknown svcpart: $1"; @@ -76,17 +31,12 @@ my $hashref = $part_svc->hashref; ) %> -<% if ( $error ) { %> -<FONT SIZE="+1" COLOR="#ff0000">Error: <%= $error %></FONT> -<% } %> - <FORM NAME="dummy"> Service Part #<%= $part_svc->svcpart ? $part_svc->svcpart : "(NEW)" %> <BR><BR> Service <INPUT TYPE="text" NAME="svc" VALUE="<%= $hashref->{svc} %>"><BR> Disable new orders <INPUT TYPE="checkbox" NAME="disabled" VALUE="Y"<%= $hashref->{disabled} eq 'Y' ? ' CHECKED' : '' %>><BR> -<INPUT TYPE="hidden" NAME="magic" VALUE="process"> <INPUT TYPE="hidden" NAME="svcpart" VALUE="<%= $hashref->{svcpart} %>"> <BR> Services are items you offer to your customers. @@ -213,10 +163,11 @@ my %defs = ( 'form_name' => 'dummy', #'form_action' => 'process/part_svc.cgi', 'form_action' => 'part_svc.cgi', #self - 'form_text' => [ qw( magic svc svcpart ) ], + 'form_text' => [ qw( svc svcpart ) ], 'form_checkbox' => [ 'disabled' ], 'layer_callback' => sub { my $layer = shift; + my $html = qq!<INPUT TYPE="hidden" NAME="svcdb" VALUE="$layer">!; my $columns = 3; @@ -250,12 +201,8 @@ my %defs = ( $part_svc->svcpart($clone) if $clone; #haha, undone below foreach my $field (@fields) { my $part_svc_column = $part_svc->part_svc_column($field); - my $value = $error - ? $cgi->param("${layer}__${field}") - : $part_svc_column->columnvalue; - my $flag = $error - ? $cgi->param("${layer}__${field}_flag") - : $part_svc_column->columnflag; + my $value = $part_svc_column->columnvalue; + my $flag = $part_svc_column->columnflag; my $def = $defs{$layer}{$field}; my $desc = ref($def) ? $def->{desc} : $def; @@ -317,8 +264,20 @@ my %defs = ( $part_svc->svcpart('') if $clone; #undone $html .= "</TABLE>"; - $html .= '<BR><INPUT TYPE="submit" VALUE="'. - ($hashref->{svcpart} ? 'Apply changes' : 'Add service'). '">'; + $html .= include('/elements/progress-init.html', + $layer, #form name + [ qw(svc svcpart disabled exportnum), @fields ], + 'process/part_svc.cgi', + $p.'browse/part_svc.cgi', + $layer, + ); + $html .= '<BR><INPUT NAME="submit" TYPE="button" VALUE="'. + ($hashref->{svcpart} ? 'Apply changes' : 'Add service'). '" '. + ' onClick="document.'. "$layer.submit.disabled=true; ". + "fixup(document.$layer); $layer". 'process();">'; + + #$html .= '<BR><INPUT TYPE="submit" VALUE="'. + # ($hashref->{svcpart} ? 'Apply changes' : 'Add service'). '">'; $html; diff --git a/httemplate/edit/process/part_svc.cgi b/httemplate/edit/process/part_svc.cgi new file mode 100755 index 000000000..664e5212a --- /dev/null +++ b/httemplate/edit/process/part_svc.cgi @@ -0,0 +1,4 @@ +<% +my $server = new FS::UI::Web::JSRPC 'FS::part_svc::process'; +$server->process; +%> |