<% $cgi->param('action') =~ /^(new|del|(retry|remove) selected)$/ or die "Illegal action"; my $action = $1; my $job; if ( $action eq 'new' || $action eq 'del' ) { $cgi->param('jobnum') =~ /^(\d+)$/ or die "Illegal jobnum"; my $jobnum = $1; $job = qsearchs('queue', { 'jobnum' => $1 }) or die "unknown jobnum $jobnum - ". "it probably completed normally or was removed by another user"; } if ( $action eq 'new' ) { my %hash = $job->hash; $hash{'status'} = 'new'; $hash{'statustext'} = ''; my $new = new FS::queue \%hash; my $error = $new->replace($job); die $error if $error; } elsif ( $action eq 'del' ) { my $error = $job->delete; die $error if $error; } elsif ( $action =~ /^(retry|remove) selected$/ ) { foreach my $jobnum ( map { /^jobnum(\d+)$/; $1; } grep /^jobnum\d+$/, $cgi->param ) { my $job = qsearchs('queue', { 'jobnum' => $jobnum }); if ( $action eq 'retry selected' && $job ) { #new my %hash = $job->hash; $hash{'status'} = 'new'; $hash{'statustext'} = ''; my $new = new FS::queue \%hash; my $error = $new->replace($job); die $error if $error; } elsif ( $action eq 'remove selected' && $job ) { #del my $error = $job->delete; die $error if $error; } } } print $cgi->redirect(popurl(2). "browse/queue.cgi"); %>