From 6ac589911baf5daec58e764428919e79727b7a15 Mon Sep 17 00:00:00 2001 From: Pedro Amorim Date: Thu, 3 Aug 2023 10:11:39 +0000 Subject: [PATCH] Bug 34468: Add progress callback to job_progress.js These patches change the current updateProgress function to accept a progress callback (a function that is called every time the bar progresses) in addition to the already existing callback that is called when the progress bar finishes. It's not expected to change any current behavior in master because updateProgress is only used once in the stage marc import tool using the already existing callback, and these patches aim to keep that. Test Plan: 1) Apply this patch 2) Stage a marc batch ( preferrably a large one to show the progress updating ) 3) Note the new progess bar, verify it functions correctly. Signed-off-by: Owen Leonard Signed-off-by: Martin Renvoize --- koha-tmpl/intranet-tmpl/prog/js/job_progress.js | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/koha-tmpl/intranet-tmpl/prog/js/job_progress.js b/koha-tmpl/intranet-tmpl/prog/js/job_progress.js index dfe03e60e0b..acd75e3d2a3 100644 --- a/koha-tmpl/intranet-tmpl/prog/js/job_progress.js +++ b/koha-tmpl/intranet-tmpl/prog/js/job_progress.js @@ -1,4 +1,4 @@ -function updateProgress(job_id, callback) { +function updateProgress(job_id, callbacks) { $.getJSON('/api/v1/jobs/' + job_id, function(job){ let recheck = true; @@ -14,13 +14,14 @@ function updateProgress(job_id, callback) { $('#job-status-' + job_id).text(JOB_PROGRESS_STARTED); $('#progress-bar-' + job_id).attr('aria-valuenow', percent); $('#progress-bar-' + job_id).width(Math.floor(percent) +"%"); + typeof callbacks.progress_callback === 'function' && callbacks.progress_callback(); } else if ( job.status == "finished" ) { $('#job-percent-' + job_id).text(100); $('#job-status-' + job_id).text(JOB_PROGRESS_FINISHED); $('#progress-bar-' + job_id).addClass("progress-bar-success"); $('#progress-bar-' + job_id).attr('aria-valuenow', 100).css("width", "100%"); recheck = false; - callback(); + typeof callbacks.finish_callback === 'function' && callbacks.finish_callback(); } else if ( job.status == "failed" ) { $('#job-percent-' + job_id).text(0); $('#job-status-' + job_id).text(JOB_PROGRESS_FAILED); @@ -30,7 +31,7 @@ function updateProgress(job_id, callback) { } if ( recheck ) { - setTimeout(function(){updateProgress(job_id, callback)}, 1 * 1000); + setTimeout(function(){updateProgress(job_id, callbacks)}, 1 * 1000); } }); } -- 2.41.0