Bugzilla – Attachment 8144 Details for
Bug 6372
Batch progress bar does not check for 0 size jobs; should be in separate js too
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
bug 6372: moved background-job.inc to background-job-progressbar.js
bug-6372-moved-background-jobinc-to-background-job.patch (text/plain), 12.87 KB, created by
Jared Camins-Esakov
on 2012-03-10 16:20:43 UTC
(
hide
)
Description:
bug 6372: moved background-job.inc to background-job-progressbar.js
Filename:
MIME Type:
Creator:
Jared Camins-Esakov
Created:
2012-03-10 16:20:43 UTC
Size:
12.87 KB
patch
obsolete
>From 4840389ac79f13cdb5847309fea07540c77767e5 Mon Sep 17 00:00:00 2001 >From: Srdjan Jankovic <srdjan@catalyst.net.nz> >Date: Thu, 19 May 2011 19:28:58 +1200 >Subject: [PATCH] bug 6372: moved background-job.inc to background-job-progressbar.js >Content-Type: text/plain; charset="UTF-8" > >Check for div 0 when calculating percentage. > >Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com> >The batch item modification tool now handles zero-size batches properly, and >staging MARC records still works. >--- > .../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 +- > tools/batchMod.pl | 10 -- > 9 files changed, 90 insertions(+), 107 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..2804182 >--- /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 6a66b6a..d5e7918 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 af2a239..0fab1de 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 540b141..f531f88 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 3890efe..3f83d0d 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 0f9568e..e5acf3c 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/tools/batchMod.pl b/tools/batchMod.pl >index 440e516..b0f7904 100755 >--- a/tools/batchMod.pl >+++ b/tools/batchMod.pl >@@ -124,12 +124,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 >@@ -615,13 +613,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.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 6372
:
4183
|
7607
|
8144
|
8549
|
9076