X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=tools%2Fscheduler.pl;h=4d732db3a575fe895044297d0c540673fe06434e;hb=32c5ef613d8805304c1b7f97e597116226b7bbe8;hp=779098bd8ee1cf4e3c19a2fb12ff92ba2af2ff54;hpb=fc6ccb1a616c96e8cddf57efd2195a0bec7bc976;p=koha.git diff --git a/tools/scheduler.pl b/tools/scheduler.pl index 779098bd8e..4d732db3a5 100755 --- a/tools/scheduler.pl +++ b/tools/scheduler.pl @@ -13,74 +13,104 @@ # WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR # A PARTICULAR PURPOSE. See the GNU General Public License for more details. # -# You should have received a copy of the GNU General Public License along with -# Koha; if not, write to the Free Software Foundation, Inc., 59 Temple Place, -# Suite 330, Boston, MA 02111-1307 USA +# You should have received a copy of the GNU General Public License along +# with Koha; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. use strict; +#use warnings; FIXME - Bug 2505 use C4::Context; use C4::Scheduler; -use C4::Reports; -use C4::Auth; -use CGI; -use C4::Output; +use C4::Reports::Guided; +use C4::Auth; +use CGI; +use C4::Output; +use C4::Dates; + +use vars qw($debug); + +BEGIN { + $debug = $ENV{DEBUG} || 0; +} my $input = new CGI; -my $base = C4::Context->config('intranetdir'); -my $CONFIG_NAME="/home/crc/koha/etc/koha-production.xml"; +my $base = C4::Context->config('intranetdir'); +my $CONFIG_NAME = $ENV{'KOHA_CONF'}; my ( $template, $borrowernumber, $cookie ) = get_template_and_user( - { - template_name => "tools/scheduler.tmpl", - query => $input, - type => "intranet", - authnotrequired => 0, - flagsrequired => { tools => 'schedule_tasks' }, - debug => 1, - } - ); - -my $mode=$input->param('mode'); - -if ($mode eq 'job_add') { - my $startday = $input->param('startday'); - my $startmonth = $input->param('startmonth'); - my $startyear = $input->param('startyear'); - my $starttime = $input->param('starttime'); - my $recurring = $input->param('recurring'); - $starttime =~ s/\://g; - my $start = $startyear . $startmonth . $startday . $starttime; - my $report=$input->param('report'); - my $format=$input->param('format'); - my $email=$input->param('email'); - my $command = "EXPORT KOHA_CONF=\"$CONFIG_NAME\"; ".$base."/tools/runreport.pl $report $format $email"; - if ($recurring){ - my $frequency = $input->param('frequency'); - add_cron_job($start,$command); - } - else { - add_at_job($start,$command); - } + { + template_name => "tools/scheduler.tmpl", + query => $input, + type => "intranet", + authnotrequired => 0, + flagsrequired => { tools => 'schedule_tasks' }, + debug => 1, + } +); + +my $mode = $input->param('mode'); +my $id = $input->param('id'); + +if ( $mode eq 'job_add' ) { + + # Retrieving the date according to the dateformat syspref + my $c4date = C4::Dates->new($input->param('startdate')); + + # Formatting it for Schedule::At + my $startdate = join('', (split /-/, $c4date->output("iso"))); + + my $starttime = $input->param('starttime'); + my $recurring = $input->param('recurring'); + $starttime =~ s/\://g; + my $start = $startdate . $starttime; + my $report = $input->param('report'); + my $format = $input->param('format'); + my $email = $input->param('email'); + my $command = + "EXPORT KOHA_CONF=\"$CONFIG_NAME\"; " . $base + . "/tools/runreport.pl $report $format $email"; + + if ($recurring) { + my $frequency = $input->param('frequency'); + add_cron_job( $start, $command ); + } + else { + unless ( add_at_job( $start, $command ) ) { + $template->param( job_add_failed => 1 ); + } + } } -if ($mode eq 'job_change'){ - my $jobid = $input->param('jobid'); - if ($input->param('delete')){ - remove_at_job($jobid); - } +if ( $mode eq 'job_change' ) { + my $jobid = $input->param('jobid'); + if ( $input->param('delete') ) { + remove_at_job($jobid); + } } my $jobs = get_jobs(); my @jobloop; - foreach my $job (values %$jobs) { - push @jobloop,$job; +foreach my $job ( values %$jobs ) { + push @jobloop, $job; +} + +@jobloop = sort { $a->{TIME} cmp $b->{TIME} } @jobloop; + +my $reports = get_saved_reports(); +if ( defined $id ) { + foreach my $report (@$reports) { + $report->{'selected'} = 1 if $report->{'id'} eq $id; + } } -@jobloop = sort {$a->{TIME} cmp $b->{TIME}} @jobloop; -my $reports = get_saved_reports(); -$template->param( 'savedreports' => $reports ); -$template->param(JOBS => \@jobloop); +$template->param( 'savedreports' => $reports ); +$template->param( JOBS => \@jobloop ); my $time = localtime(time); -$template->param('time' => $time); +$template->param( 'time' => $time ); +$template->param( + DHTMLcalendar_dateformat => C4::Dates->DHTMLcalendar(), + dateformat => C4::Dates->new()->format(), + debug => $debug, +); output_html_with_http_headers $input, $cookie, $template->output;