[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 &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(){
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 &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; }
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 &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>
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 &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>
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 &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; }
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 &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; }
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