Bug 10963: Simplified creation - CF framework
[koha.git] / test / progressbarsubmit.pl
blob0a4a4974ae7641d42048bf01aac5c190ebb4e176
1 #!/usr/bin/perl
3 # Script for testing progressbar, part 2 - json submit handler
4 # and Z39.50 lookups
6 # Koha library project www.koha-community.org
8 # Licensed under the GPL
10 # Copyright 2010 Catalyst IT, Ltd
12 # This file is part of Koha.
14 # Koha is free software; you can redistribute it and/or modify it
15 # under the terms of the GNU General Public License as published by
16 # the Free Software Foundation; either version 3 of the License, or
17 # (at your option) any later version.
19 # Koha is distributed in the hope that it will be useful, but
20 # WITHOUT ANY WARRANTY; without even the implied warranty of
21 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22 # GNU General Public License for more details.
24 # You should have received a copy of the GNU General Public License
25 # along with Koha; if not, see <http://www.gnu.org/licenses>.
27 use strict;
28 use warnings;
30 # standard or CPAN modules used
31 use CGI qw ( -utf8 );
32 use CGI::Cookie;
34 # Koha modules used
35 use C4::Context;
36 use C4::Auth;
37 use C4::Output;
38 use C4::BackgroundJob;
40 my $input = new CGI;
42 my $submitted=$input->param('submitted');
43 my $runinbackground = $input->param('runinbackground');
44 my $jobID = $input->param('jobID');
45 my $completedJobID = $input->param('completedJobID');
47 my ($template, $loggedinuser, $cookie)
48 = get_template_and_user({template_name => "test/progressbar.tt",
49 query => $input,
50 type => "intranet",
51 debug => 1,
52 });
54 my %cookies = parse CGI::Cookie($cookie);
55 my $sessionID = $cookies{'CGISESSID'}->value;
56 if ($completedJobID) {
57 } elsif ($submitted) {
58 my $job = undef;
59 if ($runinbackground) {
60 my $job_size = 100;
61 $job = C4::BackgroundJob->new($sessionID, undef, $ENV{'SCRIPT_NAME'}, $job_size);
62 $jobID = $job->id();
64 # fork off
65 if (my $pid = fork) {
66 # parent
67 # return job ID as JSON
69 # prevent parent exiting from
70 # destroying the kid's database handle
71 # FIXME: according to DBI doc, this may not work for Oracle
73 my $reply = CGI->new("");
74 print $reply->header(-type => 'text/html');
75 print '{"jobID":"' . $jobID . '"}';
76 exit 0;
77 } elsif (defined $pid) {
78 # if we get here, we're a child that has detached
79 # itself from Apache
81 # close STDOUT to signal to Apache that
82 # we're now running in the background
83 close STDOUT;
84 close STDERR;
86 foreach (1..100) {
87 $job->progress( $_ );
88 sleep 1;
90 $job->finish();
91 } else {
92 # fork failed, so exit immediately
93 die "fork failed while attempting to run $ENV{'SCRIPT_NAME'} as a background job";
97 } else {
98 # initial form
99 die "We should not be here";
102 exit 0;