mirror of
https://github.com/chibicitiberiu/ytsm.git
synced 2024-02-24 05:43:31 +00:00
Merge pull request #88 from cyberjacob/task-status-on-video-page
Fix task statuses on the video and other pages
This commit is contained in:
commit
89499c75ad
@ -198,6 +198,85 @@ function ajaxLink_Clicked() {
|
||||
return false;
|
||||
}
|
||||
|
||||
///
|
||||
/// Notifications
|
||||
///
|
||||
const JOB_QUERY_INTERVAL = 1500;
|
||||
|
||||
|
||||
function get_and_process_running_jobs()
|
||||
{
|
||||
$.get("{% url 'ajax_get_running_jobs' %}")
|
||||
.done(function(data) {
|
||||
|
||||
let progress = $('#status-progress');
|
||||
let jobPanel = $('#job_panel');
|
||||
let jobTitle = jobPanel.find('#job_panel_title');
|
||||
let jobTitleNoJobs = jobPanel.find('#job_panel_no_jobs_title');
|
||||
let jobTemplate = jobPanel.find('#job_panel_item_template');
|
||||
|
||||
if (data.length > 0) {
|
||||
|
||||
// Update status bar
|
||||
if (data.length > 1) {
|
||||
$('#status-message').text(`Running ${data.length} jobs...`);
|
||||
}
|
||||
else {
|
||||
$('#status-message').text(`${data[0].description} | ${data[0].message}`);
|
||||
}
|
||||
|
||||
// Update global progress bar
|
||||
let combinedProgress = 0;
|
||||
for (let entry of data) {
|
||||
combinedProgress += entry.progress;
|
||||
}
|
||||
|
||||
let percent = 100 * combinedProgress / data.length;
|
||||
|
||||
progress.removeClass('invisible');
|
||||
let bar = progress.find('.progress-bar');
|
||||
bar.width(percent + '%');
|
||||
bar.text(`${percent.toFixed(0)}%`);
|
||||
|
||||
// Update entries in job list
|
||||
jobTitle.removeClass('collapse');
|
||||
jobTitleNoJobs.addClass('collapse');
|
||||
|
||||
data.sort(function (a, b) { return a.id - b.id });
|
||||
jobPanel.find('.job_entry').remove();
|
||||
|
||||
for (let entry of data) {
|
||||
let jobEntry = jobTemplate.clone();
|
||||
jobEntry.attr('id', `job_${entry.id}`);
|
||||
jobEntry.addClass('job_entry');
|
||||
jobEntry.removeClass('collapse');
|
||||
jobEntry.find('#job_panel_item_title').text(entry.description);
|
||||
jobEntry.find('#job_panel_item_subtitle').text(entry.message);
|
||||
|
||||
let entryPercent = 100 * entry.progress;
|
||||
let jobEntryProgress = jobEntry.find('#job_panel_item_progress');
|
||||
jobEntryProgress.width(entryPercent + '%');
|
||||
jobEntryProgress.text(`${entryPercent.toFixed(0)}%`);
|
||||
|
||||
jobEntry.appendTo(jobPanel);
|
||||
}
|
||||
|
||||
$('#btn_toggle_job_panel').dropdown('update');
|
||||
}
|
||||
else {
|
||||
progress.addClass('invisible');
|
||||
$('#status-message').text("");
|
||||
|
||||
jobTitle.addClass('collapse');
|
||||
jobTitleNoJobs.removeClass('collapse');
|
||||
jobPanel.find('.job_entry').remove();
|
||||
|
||||
$('#btn_toggle_job_panel').dropdown('update');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
///
|
||||
/// Initialization
|
||||
///
|
||||
@ -205,4 +284,9 @@ $(document).ready(function ()
|
||||
{
|
||||
$(".ajax-link").on("click", ajaxLink_Clicked);
|
||||
$("#btn_sync_now").on("click", syncNow);
|
||||
$('[data-toggle="tooltip"]').tooltip()
|
||||
|
||||
// Notifications
|
||||
get_and_process_running_jobs();
|
||||
setInterval(get_and_process_running_jobs, JOB_QUERY_INTERVAL);
|
||||
});
|
||||
|
@ -175,84 +175,6 @@ function videos_Submit(e)
|
||||
e.preventDefault();
|
||||
}
|
||||
|
||||
///
|
||||
/// Notifications
|
||||
///
|
||||
const JOB_QUERY_INTERVAL = 1500;
|
||||
|
||||
|
||||
function get_and_process_running_jobs()
|
||||
{
|
||||
$.get("{% url 'ajax_get_running_jobs' %}")
|
||||
.done(function(data) {
|
||||
|
||||
let progress = $('#status-progress');
|
||||
let jobPanel = $('#job_panel');
|
||||
let jobTitle = jobPanel.find('#job_panel_title');
|
||||
let jobTitleNoJobs = jobPanel.find('#job_panel_no_jobs_title');
|
||||
let jobTemplate = jobPanel.find('#job_panel_item_template');
|
||||
|
||||
if (data.length > 0) {
|
||||
|
||||
// Update status bar
|
||||
if (data.length > 1) {
|
||||
$('#status-message').text(`Running ${data.length} jobs...`);
|
||||
}
|
||||
else {
|
||||
$('#status-message').text(`${data[0].description} | ${data[0].message}`);
|
||||
}
|
||||
|
||||
// Update global progress bar
|
||||
let combinedProgress = 0;
|
||||
for (let entry of data) {
|
||||
combinedProgress += entry.progress;
|
||||
}
|
||||
|
||||
let percent = 100 * combinedProgress / data.length;
|
||||
|
||||
progress.removeClass('invisible');
|
||||
let bar = progress.find('.progress-bar');
|
||||
bar.width(percent + '%');
|
||||
bar.text(`${percent.toFixed(0)}%`);
|
||||
|
||||
// Update entries in job list
|
||||
jobTitle.removeClass('collapse');
|
||||
jobTitleNoJobs.addClass('collapse');
|
||||
|
||||
data.sort(function (a, b) { return a.id - b.id });
|
||||
jobPanel.find('.job_entry').remove();
|
||||
|
||||
for (let entry of data) {
|
||||
let jobEntry = jobTemplate.clone();
|
||||
jobEntry.attr('id', `job_${entry.id}`);
|
||||
jobEntry.addClass('job_entry');
|
||||
jobEntry.removeClass('collapse');
|
||||
jobEntry.find('#job_panel_item_title').text(entry.description);
|
||||
jobEntry.find('#job_panel_item_subtitle').text(entry.message);
|
||||
|
||||
let entryPercent = 100 * entry.progress;
|
||||
let jobEntryProgress = jobEntry.find('#job_panel_item_progress');
|
||||
jobEntryProgress.width(entryPercent + '%');
|
||||
jobEntryProgress.text(`${entryPercent.toFixed(0)}%`);
|
||||
|
||||
jobEntry.appendTo(jobPanel);
|
||||
}
|
||||
|
||||
$('#btn_toggle_job_panel').dropdown('update');
|
||||
}
|
||||
else {
|
||||
progress.addClass('invisible');
|
||||
$('#status-message').text("");
|
||||
|
||||
jobTitle.addClass('collapse');
|
||||
jobTitleNoJobs.removeClass('collapse');
|
||||
jobPanel.find('.job_entry').remove();
|
||||
|
||||
$('#btn_toggle_job_panel').dropdown('update');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
///
|
||||
/// Initialization
|
||||
///
|
||||
@ -292,8 +214,4 @@ $(document).ready(function ()
|
||||
filters_form.find('select[name=results_per_page]').on('change', videos_ResetPageAndReloadWithTimer);
|
||||
|
||||
videos_Reload();
|
||||
|
||||
// Notifications
|
||||
get_and_process_running_jobs();
|
||||
setInterval(get_and_process_running_jobs, JOB_QUERY_INTERVAL);
|
||||
});
|
||||
|
Loading…
Reference in New Issue
Block a user