--- /dev/null
+#!/usr/bin/perl
+
+# Script for testing progressbar, part 2 - json submit handler
+# and Z39.50 lookups
+
+# Koha library project www.koha.org
+
+# Licensed under the GPL
+
+# Copyright 2000-2002 Katipo Communications
+#
+# 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 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.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+use strict;
+#use warnings; FIXME - Bug 2505
+
+# standard or CPAN modules used
+use CGI;
+use CGI::Cookie;
+
+# Koha modules used
+use C4::Context;
+use C4::Auth;
+use C4::Output;
+use C4::BackgroundJob;
+
+my $input = new CGI;
+
+my $submitted=$input->param('submitted');
+my $runinbackground = $input->param('runinbackground');
+my $jobID = $input->param('jobID');
+my $completedJobID = $input->param('completedJobID');
+
+my ($template, $loggedinuser, $cookie)
+ = get_template_and_user({template_name => "test/progressbar.tmpl",
+ query => $input,
+ type => "intranet",
+ debug => 1,
+ });
+
+my %cookies = parse CGI::Cookie($cookie);
+my $sessionID = $cookies{'CGISESSID'}->value;
+if ($completedJobID) {
+} elsif ($submitted) {
+ my $job = undef;
+ if ($runinbackground) {
+ my $job_size = 100;
+ $job = C4::BackgroundJob->new($sessionID, undef, $ENV{'SCRIPT_NAME'}, $job_size);
+ $jobID = $job->id();
+
+ # fork off
+ if (my $pid = fork) {
+ # parent
+ # return job ID as JSON
+
+ # prevent parent exiting from
+ # destroying the kid's database handle
+ # FIXME: according to DBI doc, this may not work for Oracle
+
+ my $reply = CGI->new("");
+ print $reply->header(-type => 'text/html');
+ print "{ jobID: '$jobID' }";
+ exit 0;
+ } elsif (defined $pid) {
+ # if we get here, we're a child that has detached
+ # itself from Apache
+
+ # close STDOUT to signal to Apache that
+ # we're now running in the background
+ close STDOUT;
+ close STDERR;
+
+ foreach (1..100) {
+ sleep 1;
+ $job->progress( $_ );
+ }
+ $job->finish();
+ } else {
+ # fork failed, so exit immediately
+ die "fork failed while attempting to run $ENV{'SCRIPT_NAME'} as a background job";
+ }
+
+ }
+} else {
+ # initial form
+ die "We should not be here";
+}
+
+exit 0;
+
+