2 <P><FONT Color="red"><% $@ %></FONT></P>
\r
6 <FORM Action="index.html" Method="POST">
\r
8 % foreach my $class (qw( Search Condition Action )) {
\r
12 <SELECT NAME="<% $class %>">
\r
13 % require File::Find;
\r
15 % File::Find::find(sub {
\r
16 % push @modules, $1 if /^(?!Generic|UserDefined)(\w+)\.pm$/i;
\r
17 % }, grep -d, map "$_/RT/$class", @INC);
\r
18 <OPTION <% $ARGS{$class} ? '' : 'SELECTED' %>></OPTION>
\r
19 % foreach my $module (sort @modules) {
\r
20 % my $fullname = "RT::$class\::$module";
\r
21 <OPTION VALUE="<% $fullname %>" <% ($fullname eq $ARGS{$class}) ? 'SELECTED' : '' %>><% $module %></OPTION>
\r
25 <&|/l&>Parameter</&>
\r
27 <INPUT NAME="<% $class %>Arg" VALUE="<% $ARGS{$class.'Arg'} %>">
\r
31 <TD COLSPAN="4" ALIGN="Right">
\r
33 <INPUT TYPE="CheckBox" NAME="Verbose" <% $Verbose ? 'CHECKED' : '' %>><&|/l&>Verbose</&>
\r
35 <INPUT TYPE="Submit" VALUE="<&|/l&>Run</&>">
\r
42 $m->print("<H1>", loc("Web CronTool"), "</H1>");
\r
44 my $load_module = sub {
\r
45 my $modname = $_[0];
\r
46 $modname =~ s{::}{/}g;
\r
47 require "$modname.pm" or die (
\r
48 loc( "Failed to load module [_1]. ([_2])", $_[0], $@ ) . "\n"
\r
51 $m->print(loc("Starting..."), "<UL>");
\r
53 $load_module->($Search);
\r
54 $load_module->($Action) if $Action;
\r
55 $load_module->($Condition) if $Condition;
\r
57 if ($TemplateId and !$TemplateObj) {
\r
58 $TemplateObj = RT::Template->new($RT::Nobody);
\r
59 $TemplateObj->LoadById($TemplateId);
\r
62 my $tickets = RT::Tickets->new($RT::SystemUser);
\r
63 my $search = $Search->new( TicketsObj => $tickets, Argument => $SearchArg );
\r
65 my $tickets_found = $search->TicketsObj;
\r
67 #for each ticket we've found
\r
68 while ( my $ticket = $tickets_found->Next ) {
\r
69 $m->print("<LI>" . $ticket->Id . ": ") if $Verbose;
\r
70 $m->print(loc("Checking...")) if $Verbose;
\r
72 # perform some more advanced check
\r
74 my $ConditionObj = $Condition->new(
\r
75 TicketObj => $ticket,
\r
76 Argument => $ConditionArg
\r
79 # if the condition doesn't apply, get out of here
\r
80 next unless ( $ConditionObj->IsApplicable );
\r
81 $m->print(loc("Condition matches...")) if $Verbose;
\r
86 my $ActionObj = $Action->new(
\r
87 TicketObj => $ticket,
\r
88 TemplateObj => $TemplateObj,
\r
89 Argument => $ActionArg
\r
92 #if our preparation, move onto the next ticket
\r
93 next unless ( $ActionObj->Prepare );
\r
94 $m->print(loc("Action prepared...")) if $Verbose;
\r
97 next unless ( $ActionObj->Commit );
\r
98 $m->print(loc("Action committed.")) if $Verbose;
\r
102 $m->print('</UL>', loc("Finished."));
\r
107 $SearchArg => undef
\r
108 $Condition => undef
\r
109 $ConditionArg => undef
\r
111 $ActionArg => undef
\r
112 $TemplateId => undef
\r
113 $TemplateObj => undef
\r