X-Git-Url: http://git.rot13.org/?a=blobdiff_plain;f=tools%2Fscheduler.pl;h=3cf6b7e7fc4c5482eae2236a0839a4f50ad4a3e8;hb=8f84ef2483cba072373b80c1941de6244f810f2b;hp=4d655803ccd81ebd3196fa747dbd8ef9fcd10ff1;hpb=f2c8126866641d9b1dab7559113f7a5ee91277b8;p=koha.git diff --git a/tools/scheduler.pl b/tools/scheduler.pl index 4d655803cc..3cf6b7e7fc 100755 --- a/tools/scheduler.pl +++ b/tools/scheduler.pl @@ -4,69 +4,120 @@ # # This file is part of Koha. # -# Koha is free software; you can redistribute it and/or modify it under the -# terms of the GNU General Public License as published by the Free Software -# Foundation; either version 2 of the License, or (at your option) any later -# version. +# Koha is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 3 of the License, or +# (at your option) any later version. # -# Koha is distributed in the hope that it will be useful, but WITHOUT ANY -# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR -# A PARTICULAR PURPOSE. See the GNU General Public License for more details. +# Koha is distributed in the hope that it will be useful, but +# WITHOUT ANY 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, see . -use strict; +use Modern::Perl; +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 qw ( -utf8 ); +use C4::Output; +use Koha::DateUtils;; + +use vars qw($debug); + +BEGIN { + $debug = $ENV{DEBUG} || 0; +} my $input = new CGI; +my $base; + +if ( C4::Context->config('supportdir') ) { + $base = C4::Context->config('supportdir'); +} +else { + $base = "/usr/share/koha/bin"; +} + +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 => { editcatalogue => 1 }, - 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'); - $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 $base = "/nzkoha/intranet"; # EDIT THIS - my $command = "EXPORT KOHA_CONF=\"/nzkoha/etc/koha-kapiti.conf\"; ".$base."/tools/runreport.pl $report $format $email"; # EDIT THIS - add_job($start,$command); + { + template_name => "tools/scheduler.tt", + 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 = output_pref({ dt => dt_from_string( scalar $input->param('startdate') ), dateformat => 'iso', dateonly => 1 }); + + # Formatting it for Schedule::At + my $startdate = join('', (split /-/, $c4date)); + + my $starttime = $input->param('starttime'); + $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/cronjobs/runreport.pl $report --format=$format --to=$email"; + +#FIXME commit ea899bc55933cd74e4665d70b1c48cab82cd1257 added recurring parameter (it is not in template) and call to add_cron_job (undefined) +# my $recurring = $input->param('recurring'); +# if ($recurring) { +# my $frequency = $input->param('frequency'); +# add_cron_job( $start, $command ); +# } +# else { +# #here was the the unless ( add_at_job +# } + + 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_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; - } -@jobloop = sort {$a->{TIME} cmp $b->{TIME}} @jobloop; -my $reports = get_saved_reports(); -$template->param( 'savedreports' => $reports ); -$template->param(JOBS => \@jobloop); +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; + } +} + +$template->param( 'savedreports' => $reports ); +$template->param( JOBS => \@jobloop ); my $time = localtime(time); -$template->param('time' => $time); +$template->param( 'time' => $time ); +$template->param( + debug => $debug, +); output_html_with_http_headers $input, $cookie, $template->output;