package FS::queue;
use strict;
-use vars qw( @ISA @EXPORT_OK );
+use vars qw( @ISA @EXPORT_OK $conf );
use Exporter;
+use FS::UID;
+use FS::Conf;
use FS::Record qw( qsearch qsearchs dbh );
#use FS::queue;
use FS::queue_arg;
@ISA = qw(FS::Record);
@EXPORT_OK = qw( joblisting );
+$FS::UID::callback{'FS::queue'} = sub {
+ $conf = new FS::Conf;
+};
+
=head1 NAME
FS::queue - Object methods for queue records
=cut
+#false laziness w/part_export.pm
sub insert {
my $self = shift;
|| $self->ut_enum('status',['', qw( new locked failed )])
|| $self->ut_textn('statustext')
|| $self->ut_numbern('svcnum')
- || $self->ut_foreign_keyn('svcnum', 'cust_svc', 'svcnum')
;
return $error if $error;
+ $error = $self->ut_foreign_keyn('svcnum', 'cust_svc', 'svcnum');
+ $self->svcnum('') if $error;
+
$self->status('new') unless $self->status;
$self->_date(time) unless $self->_date;
qsearchs('cust_svc', { 'svcnum' => $self->svcnum } );
}
-=item joblisting HASHREF
+=item joblisting HASHREF NOACTIONS
=cut
use Date::Format;
use FS::CGI;
+ my @queue = qsearch( 'queue', $hashref );
+ return '' unless scalar(@queue);
+
my $html = FS::CGI::table(). <<END;
<TR>
<TH COLSPAN=2>Job</TH>
<TH>Args</TH>
<TH>Date</TH>
<TH>Status</TH>
- <TH>Account</TH>
- </TR>
END
+ $html .= '<TH>Account</TH>' unless $hashref->{svcnum};
+ $html .= '</TR>';
+
+ my $dangerous = $conf->exists('queue_dangerous_controls');
my $p = FS::CGI::popurl(2);
foreach my $queue ( sort {
$a->getfield('jobnum') <=> $b->getfield('jobnum')
- } qsearch( 'queue', $hashref ) ) {
- my $hashref = $queue->hashref;
+ } @queue ) {
+ my $queue_hashref = $queue->hashref;
my $jobnum = $queue->jobnum;
- my $args = join(' ', $queue->args);
+
+ my $args;
+ if ( $dangerous || $queue->job !~ /^FS::part_export::/ || !$noactions ) {
+ $args = join(' ', $queue->args);
+ } else {
+ $args = '';
+ }
+
my $date = time2str( "%a %b %e %T %Y", $queue->_date );
my $status = $queue->status;
$status .= ': '. $queue->statustext if $queue->statustext;
- if ( ! $noactions && $status =~ /^failed/ || $status =~ /^locked/ ) {
+ if ( $dangerous
+ || ( ! $noactions && $status =~ /^failed/ || $status =~ /^locked/ ) ) {
$status .=
- qq! ( <A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=new">retry</A> |!.
- qq! <A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=del">remove </A> )!;
+ qq! ( <A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=new">retry</A> |!.
+ qq! <A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=del">remove</A> )!;
}
my $cust_svc = $queue->cust_svc;
- my $account;
- if ( $cust_svc ) {
- my $table = $cust_svc->part_svc->svcdb;
- my $label = ( $cust_svc->label )[1];
- $account = qq!<A HREF="../view/$table.cgi?!. $queue->svcnum.
- qq!">$label</A>!;
- } else {
- $account = '';
- }
+
$html .= <<END;
<TR>
<TD>$jobnum</TD>
- <TD>$hashref->{job}</TD>
+ <TD>$queue_hashref->{job}</TD>
<TD>$args</TD>
<TD>$date</TD>
<TD>$status</TD>
- <TD>$account</TD>
- </TR>
END
+ unless ( $hashref->{svcnum} ) {
+ my $account;
+ if ( $cust_svc ) {
+ my $table = $cust_svc->part_svc->svcdb;
+ my $label = ( $cust_svc->label )[1];
+ $account = qq!<A HREF="../view/$table.cgi?!. $queue->svcnum.
+ qq!">$label</A>!;
+ } else {
+ $account = '';
+ }
+ $html .= "<TD>$account</TD>";
+ }
+
+ $html .= '</TR>';
+
}
$html .= '</TABLE>';
=head1 VERSION
-$Id: queue.pm,v 1.4 2002-02-20 01:03:09 ivan Exp $
+$Id: queue.pm,v 1.10 2002-03-27 07:08:08 ivan Exp $
=head1 BUGS