<h1>MARC staging</h1>
<div class="dialog message">
<p>The job has been enqueued! It will be processed as soon as possible.</p>
+ [% INCLUDE "job_progress.inc" job_id=job_id %]
<p><a class="job_details" href="/cgi-bin/koha/admin/background_jobs.pl?op=view&id=[% job_id | uri %]" title="View detail of the enqueued job">View detail of the enqueued job</a>
</div>
[% ELSE %]
[% Asset.js("js/tools-menu.js") | $raw %]
[% Asset.js("lib/jquery/plugins/humanmsg.js") | $raw %]
[% Asset.js("js/file-upload.js") | $raw %]
+
+ [% INCLUDE 'str/job_progess.inc' job_id=job_id %]
+ [% Asset.js("js/job_progess.js") | $raw %]
<script>
var xhr;
var PROFILE_SAVE_MSG = _("Profile saved");
})
});
[% IF job_enqueued %]
- setTimeout(
- function() { window.location.href=$('a.job_details').attr('href'); },
- 5000, // 5 secs to read
- );
+ updateProgress([% job_id %]);
[% END %]
});
--- /dev/null
+function updateProgress(job_id) {
+ $.getJSON('/api/v1/jobs/' + job_id, function(job){
+ let recheck = true;
+
+ if ( job.status == "new" ) {
+ $(`#job-percent-${job_id}`).text(0);
+ $(`#job-status-${job_id}`).text(JOB_PROGRESS_NOT_STARTED);
+ $(`#progress-bar-${job_id}`).attr('aria-valuenow', 0).css("width", "100%");
+ } else if ( job.status == "started" ) {
+ const progress = job["progress"];
+ const size = job["size"];
+ const percent = progress > 0 ? ( progress / size ) * 100 : 0;
+ $(`#job-percent-${job_id}`).text(percent.toFixed(2));
+ $(`#job-status-${job_id}`).text(JOB_PROGRESS_STARTED);
+ $(`#progress-bar-${job_id}`).attr('aria-valuenow', percent).css("width", `${percent}%`);
+ } 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;
+ } else if ( job.status == "failed" ) {
+ $(`#job-percent-${job_id}`).text(0);
+ $(`#job-status-${job_id}`).text(JOB_PROGRESS_FAILED);
+ $(`#progress-bar-${job_id}`).addClass("progress-bar-danger");
+ $(`#progress-bar-${job_id}`).attr('aria-valuenow', 0).css("width", "100%");
+ recheck = false;
+ }
+
+ if ( recheck ) {
+ setTimeout(function(){updateProgress(job_id)}, 1 * 1000);
+ }
+ });
+}