[Koha-patches] [PATCH] bug 6372: moved background-job.inc to background-job-progressbar.js
Srdjan
srdjan at catalyst.net.nz
Fri Mar 23 01:13:43 CET 2012
Check for div 0 when calculating percentage
---
.../prog/en/includes/background-job.inc | 91 --------------------
.../prog/en/js/background-job-progressbar.js | 84 ++++++++++++++++++
.../prog/en/modules/offline_circ/process_koc.tt | 2 +-
.../prog/en/modules/test/progressbar.tt | 2 +-
.../prog/en/modules/tools/batchMod-del.tt | 2 +-
.../prog/en/modules/tools/batchMod-edit.tt | 2 +-
.../prog/en/modules/tools/manage-marc-import.tt | 2 +-
.../prog/en/modules/tools/stage-marc-import.tt | 2 +-
.../prog/en/modules/tools/upload-images.tt | 2 +-
tools/batchMod.pl | 10 --
10 files changed, 91 insertions(+), 108 deletions(-)
delete mode 100644 koha-tmpl/intranet-tmpl/prog/en/includes/background-job.inc
create mode 100644 koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js
diff --git a/koha-tmpl/intranet-tmpl/prog/en/includes/background-job.inc b/koha-tmpl/intranet-tmpl/prog/en/includes/background-job.inc
deleted file mode 100644
index b18d5ce..0000000
--- a/koha-tmpl/intranet-tmpl/prog/en/includes/background-job.inc
+++ /dev/null
@@ -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>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js b/koha-tmpl/intranet-tmpl/prog/en/js/background-job-progressbar.js
new file mode 100644
index 0000000..27ecfcd
--- /dev/null
+++ b/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;
+}
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/process_koc.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/process_koc.tt
index 80ef54f..f85ddba 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/process_koc.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/offline_circ/process_koc.tt
@@ -2,7 +2,7 @@
<title>Koha › Circulation › 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(){
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/test/progressbar.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/test/progressbar.tt
index e4cedc8..e63627d 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/test/progressbar.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/test/progressbar.tt
@@ -2,7 +2,7 @@
<title>Koha › Tools › 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; }
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt
index c71ab9a..b88401c 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-del.tt
@@ -1,7 +1,7 @@
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Tools › 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>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt
index a1b63d9..bc6b7c6 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/batchMod-edit.tt
@@ -1,7 +1,7 @@
[% INCLUDE 'doc-head-open.inc' %]
<title>Koha › Tools › 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>
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt
index 0750b2c..d11a5ec 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/manage-marc-import.tt
+++ b/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(){
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/stage-marc-import.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/stage-marc-import.tt
index af15194..62ff618 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/stage-marc-import.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/stage-marc-import.tt
@@ -2,7 +2,7 @@
<title>Koha › Tools › 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; }
diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload-images.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload-images.tt
index b909cc8..a4f431d 100644
--- a/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload-images.tt
+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/tools/upload-images.tt
@@ -2,7 +2,7 @@
<title>Koha › Tools › 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; }
diff --git a/tools/batchMod.pl b/tools/batchMod.pl
index 9d59e3a..5469496 100755
--- a/tools/batchMod.pl
+++ b/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);
- }
-}
--
1.7.5.4
More information about the Koha-patches
mailing list