Browse Source

bug 6372: moved background-job.inc to background-job-progressbar.js

Check for div 0 when calculating percentage

Signed-off-by: Liz Rea <wizzyrea@gmail.com>
div0 no longer appears on 0 size jobs.
Passes t xt

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
3.10.x
Srdjan 12 years ago
committed by Paul Poulain
parent
commit
b9f4a8cac6
  1. 91
      koha-tmpl/intranet-tmpl/prog/en/includes/background-job.inc
  2. 84
      koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js
  3. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/process_koc.tt
  4. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/test/progressbar.tt
  5. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt
  6. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt
  7. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt
  8. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/stage-marc-import.tt
  9. 2
      koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload-images.tt
  10. 10
      tools/batchMod.pl

91
koha-tmpl/intranet-tmpl/prog/en/includes/background-job.inc

@ -1,91 +0,0 @@
<!-- Background job progress indicator -->
<script type="text/javascript">
//<![CDATA[
var backgroundJobProgressTimer = 0;
var jobID = '';
var savedForm;
var inBackgroundJobProgressTimer = false;
function updateJobProgress() {
if (inBackgroundJobProgressTimer) {
return;
}
inBackgroundJobProgressTimer = true;
$.getJSON("/cgi-bin/koha/tools/background-job-progress.pl?jobID=" + jobID, function(json) {
var percentage = Math.floor(100 * json.progress / json.job_size);
if (json.job_status == 'completed') {
percentage = 100;
}
var bgproperty = (parseInt(percentage/2)*3-300)+"px 0px";
$("#jobprogress").css("background-position",bgproperty);
$("#jobprogresspercent").text(percentage);
if (percentage == 100) {
clearInterval(backgroundJobProgressTimer); // just in case form submission fails
completeJob();
}
inBackgroundJobProgressTimer = false;
});
}
function completeJob() {
savedForm.completedJobID.value = jobID;
savedForm.submit();
}
// submit a background job with data
// supplied from form f and activate
// progress indicator
function submitBackgroundJob(f) {
// check for background field
if (f.runinbackground) {
// set value of this hidden field for
// use by CGI script
savedForm = f;
f.mainformsubmit.disabled = true;
f.runinbackground.value = 'true';
// gather up form submission
var inputs = [];
$(':input', f).each(function() {
if (this.type == 'radio' || this.type == 'checkbox') {
if (this.checked) {
inputs.push(this.name + '=' + escape(this.value));
}
} else if (this.type == 'button') {
; // do nothing
} else {
inputs.push(this.name + '=' + escape(this.value));
}
});
// and submit the request
$("#jobpanel").show();
$("#jobstatus").show();
$.ajax({
data: inputs.join('&'),
url: f.action,
dataType: 'json',
type: 'post',
success: function(json) {
jobID = json.jobID;
inBackgroundJobProgressTimer = false;
backgroundJobProgressTimer = setInterval("updateJobProgress()", 500);
},
error: function(xml, textStatus) {
alert(_('Failed to submit form: ') + textStatus);
}
});
} else {
// background job support not enabled,
// so just do a normal form submission
f.submit();
}
return false;
}
//]]>
</script>

84
koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js

@ -0,0 +1,84 @@
var backgroundJobProgressTimer = 0;
var jobID = '';
var savedForm;
var inBackgroundJobProgressTimer = false;
function updateJobProgress() {
if (inBackgroundJobProgressTimer) {
return;
}
inBackgroundJobProgressTimer = true;
$.getJSON("/cgi-bin/koha/tools/background-job-progress.pl?jobID=" + jobID, function(json) {
var percentage = json.job_status == 'completed' ? 100 :
json.job_size > 0 ? Math.floor(100 * json.progress / json.job_size) :
100;
var bgproperty = (parseInt(percentage/2)*3-300)+"px 0px";
$("#jobprogress").css("background-position",bgproperty);
$("#jobprogresspercent").text(percentage);
if (percentage == 100) {
clearInterval(backgroundJobProgressTimer); // just in case form submission fails
completeJob();
}
inBackgroundJobProgressTimer = false;
});
}
function completeJob() {
savedForm.completedJobID.value = jobID;
savedForm.submit();
}
// submit a background job with data
// supplied from form f and activate
// progress indicator
function submitBackgroundJob(f) {
// check for background field
if (f.runinbackground) {
// set value of this hidden field for
// use by CGI script
savedForm = f;
f.mainformsubmit.disabled = true;
f.runinbackground.value = 'true';
// gather up form submission
var inputs = [];
$(':input', f).each(function() {
if (this.type == 'radio' || this.type == 'checkbox') {
if (this.checked) {
inputs.push(this.name + '=' + escape(this.value));
}
} else if (this.type == 'button') {
; // do nothing
} else {
inputs.push(this.name + '=' + escape(this.value));
}
});
// and submit the request
$("#jobpanel").show();
$("#jobstatus").show();
$.ajax({
data: inputs.join('&'),
url: f.action,
dataType: 'json',
type: 'post',
success: function(json) {
jobID = json.jobID;
inBackgroundJobProgressTimer = false;
backgroundJobProgressTimer = setInterval("updateJobProgress()", 500);
},
error: function(xml, textStatus) {
alert('Failed to submit form: ' + textStatus);
}
});
} else {
// background job support not enabled,
// so just do a normal form submission
f.submit();
}
return false;
}

2
koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/process_koc.tt

@ -2,7 +2,7 @@
<title>Koha &rsaquo; Circulation &rsaquo; Offline circulation file upload</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'file-upload.inc' %]
[% INCLUDE 'background-job.inc' %]
<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
<script type="text/javascript">
//<![CDATA[
$(document).ready(function(){

2
koha-tmpl/intranet-tmpl/prog/en/modules/test/progressbar.tt

@ -2,7 +2,7 @@
<title>Koha &rsaquo; Tools &rsaquo; Stage MARC records for import</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'file-upload.inc' %]
[% INCLUDE 'background-job.inc' %]
<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
<style type="text/css">
#uploadpanel,#fileuploadstatus,#fileuploadfailed,#jobpanel,#jobstatus,#jobfailed { display : none; }
#fileuploadstatus,#jobstatus { margin:.4em; }

2
koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt

@ -1,7 +1,7 @@
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Tools &rsaquo; Batch item deletion</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'background-job.inc' %]
<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/pages/batchMod.css" />
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
<script src="[% themelang %]/lib/yui/cookie/cookie-min.js"></script>

2
koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt

@ -1,7 +1,7 @@
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha &rsaquo; Tools &rsaquo; Batch item modification</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'background-job.inc' %]
<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
<link rel="stylesheet" type="text/css" href="[% themelang %]/css/pages/batchMod.css" />
<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.tablesorter.min.js"></script>
<script src="[% themelang %]/lib/yui/cookie/cookie-min.js"></script>

2
koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt

@ -6,7 +6,7 @@
</title>
[% INCLUDE 'greybox.inc' %]
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'background-job.inc' %]
<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
<script type="text/JavaScript" language="JavaScript">
//<![CDATA[
$(document).ready(function(){

2
koha-tmpl/intranet-tmpl/prog/en/modules/tools/stage-marc-import.tt

@ -2,7 +2,7 @@
<title>Koha &rsaquo; Tools &rsaquo; Stage MARC records for import</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'file-upload.inc' %]
[% INCLUDE 'background-job.inc' %]
<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
<style type="text/css">
#uploadpanel,#fileuploadstatus,#fileuploadfailed,#jobpanel,#jobstatus,#jobfailed { display : none; }
#fileuploadstatus,#jobstatus { margin:.4em; }

2
koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload-images.tt

@ -2,7 +2,7 @@
<title>Koha &rsaquo; Tools &rsaquo; Upload images</title>
[% INCLUDE 'doc-head-close.inc' %]
[% INCLUDE 'file-upload.inc' %]
[% INCLUDE 'background-job.inc' %]
<script type="text/javascript" src="[% themelang %]/js/background-job-progressbar.js"></script>
<style type="text/css">
#uploadpanel,#fileuploadstatus,#fileuploadfailed,#jobpanel,#jobstatus,#jobfailed { display : none; }
#fileuploadstatus,#jobstatus { margin:.4em; }

10
tools/batchMod.pl

@ -126,12 +126,10 @@ if ($op eq "action") {
# Job size is the number of items we have to process
my $job_size = scalar(@itemnumbers);
my $job = undef;
my $callback = sub {};
# If we asked for background processing
if ($runinbackground) {
$job = put_in_background($job_size);
$callback = progress_callback($job, $dbh);
}
#initializing values for updates
@ -628,13 +626,5 @@ sub put_in_background {
return $job;
}
sub progress_callback {
my $job = shift;
my $dbh = shift;
return sub {
my $progress = shift;
$job->progress($progress);
}
}

Loading…
Cancel
Save