This commit was generated by cvs2svn to compensate for changes in r8690,
[freeside.git] / httemplate / search / queue.html
1 <% include( 'elements/search.html',
2                  'title'       => 'Job Queue',
3                  'name'        => 'jobs',
4                  'html_form'   => qq!<FORM NAME="jobForm" ACTION="$p/misc/queue.cgi" METHOD="POST">!,
5                  'query'       => { 'table'     => 'queue',
6                                     'hashref'   => $hashref,
7                                     'extra_sql' => 'ORDER BY jobnum',
8                                   },
9                  'count_query' => $count_query,
10                  'header' => [ '#',
11                                'Job',
12                                'Args',
13                                'Date',
14                                'Status',
15                                'Account', # unless $hashref->{'svcnum'}
16                                '', # checkbox column
17                              ],
18                  'fields' => [
19                                'jobnum',
20                                'job',
21                                sub {
22                                  my $queue = shift;
23                                  if (    $dangerous
24                                       || $queue->job !~ /^FS::part_export::/
25                                       || !$noactions
26                                     )
27                                  {
28                                    encode_entities( join(' ', $queue->args) );
29                                  } else {
30                                    '';
31                                  }
32                                },
33                                sub {
34                                  time2str( "%a %b %e %T %Y", shift->_date );
35                                },
36                                sub {
37                                  my $queue = shift;
38                                  my $jobnum = $queue->jobnum;
39                                  my $status = $queue->status;
40                                  $status .= ': '. $queue->statustext
41                                    if $queue->statustext;
42                                  my @queue_depend = $queue->queue_depend;
43                                  $status .= ' (waiting for '.
44                                             join(', ', map { $_->depend_jobnum }
45                                                            @queue_depend
46                                                 ). 
47                                             ')'
48                                    if @queue_depend;
49                                  my $changable = $dangerous
50                                                  || ( ! $noactions
51                                                       && $status =~ /^failed/
52                                                       || $status =~ /^locked/
53                                                     );
54                                  if ( $changable ) {
55                                    $status .=
56                                      qq! (&nbsp;<A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=new">retry</A>&nbsp;|!.
57                                      qq!&nbsp;<A HREF="$p/misc/queue.cgi?jobnum=$jobnum&action=del">remove</A>&nbsp;)!;
58                                  }
59                                  $status;
60                                },
61                                sub {
62                                  my $queue = shift;
63                                  # return '' if $hashref->{'svcnum'}
64                                  my $cust_svc = $queue->cust_svc;
65                                  my $account;
66                                  if ( $cust_svc ) {
67                                    my $table = $cust_svc->part_svc->svcdb;
68                                    my $label = ( $cust_svc->label )[1];
69                                    qq!<A HREF="../view/$table.cgi?!. $queue->svcnum.
70                                    qq!">$label</A>!;
71                                  } else {
72                                    '';
73                                  }
74                                },
75                                sub {
76                                  my $queue = shift;
77                                  my $jobnum = $queue->jobnum;
78                                  my $status = $queue->status;
79                                  my $changable = $dangerous
80                                                  || ( ! $noactions
81                                                       && $status eq 'failed'
82                                                       || $status eq 'locked'
83                                                     );
84                                  if ( $changable ) {
85                                    $areboxes = 1;
86                                    qq!<INPUT NAME="jobnum$jobnum" TYPE="checkbox" VALUE="1">!;
87                                  } else {
88                                    '';
89                                  }
90                                },
91                              ],
92                  #'links' =>  [
93                  #              '',
94                  #              '',
95                  #              '',
96                  #              '',
97                  #              '',
98                  #              '', #$acct_link,
99                  #              '',
100                  #            ],
101                  'html_foot' => sub {
102                                   if ( $areboxes ) {
103                                     '<BR><INPUT TYPE="button" VALUE="select all" onClick="setAll(true)">'.
104                                     '<INPUT TYPE="button" VALUE="unselect all" onClick="setAll(false)">'.
105                                     '<BR><INPUT TYPE="submit" NAME="action" VALUE="retry selected">'.
106                                     '<INPUT TYPE="submit" NAME="action" VALUE="remove selected"><BR>'.
107                                     '<SCRIPT TYPE="text/javascript">'.
108                                     '  function setAll(setTo) { '.
109                                     '    theForm = document.jobForm;'.
110                                     '    for (i=0,n=theForm.elements.length;i<n;i++)'.
111                                     '      if (theForm.elements[i].name.indexOf("jobnum") != -1)'.
112                                     '        theForm.elements[i].checked = setTo;'.
113                                     '  }'.
114                                     '</SCRIPT>';
115                                   } else {
116                                     '';
117                                   }
118                                 },
119              )
120
121 %>
122 <%init>
123
124 die "access denied"
125   unless $FS::CurrentUser::CurrentUser->access_right('Job queue');
126
127 my $hashref = {};
128
129 my $conf = new FS::Conf;
130 my $dangerous = $conf->exists('queue_dangerous_controls');
131
132 my $noactions = 0;
133
134 my $count_query = 'SELECT COUNT(*) FROM queue'; # + $hashref
135
136 my $areboxes = 0;
137
138 </%init>