pastafari2/templates/admin/multiprogress.phtml

118 lines
4 KiB
PHTML

<%inherit file="dashboard.phtml"/>
<%block name="content">
<p><a href="${url_for('.pastafari2_dashboard')}">${lang('pastafari2', 'servers', 'Servers')}</a> &gt;&gt; ${lang('pastafari2', 'task_progress', 'Task progress')}</p>
<h2>${name_task}</h2>
<p>${description_task}</p>
<hr />
<p>${lang('pastafari2', 'num_servers', 'Number of servers')}: <span id="num_servers">${num_servers}</span></p>
<p>${lang('pastafari2', 'completed_tasks', 'Completed tasks')}: <span id="num_completed">0</span></p>
<p id="detecting_servers" style="display:none;">${lang('pastafari2', 'loading_servers', 'Loading servers...')} <i class="fa fa-cog fa-spin fa-fw"></i></p>
<table class="table_servers" style="width:100%;">
<tr class="row_server" id="father_server" style="display:none;">
<td class="hostname">Hostname</td>
<td class="progress"><span class="progress_text">In progress</span> <i class="fa fa-cog fa-spin fa-fw"></i></td>
<td><a href="#" class="server_log">${lang('pastafari2', 'server_log', 'Server log')}</a></td>
</tr>
</table>
<div id="finished" style="display:none;">
<p><strong>All tasks were finished.</strong></p>
</div>
<p><a href="${url_for('.pastafari2_dashboard')}">${lang('pastafari2', 'servers', 'Servers')}</a> &gt;&gt; ${lang('pastafari2', 'task_progress', 'Task progress')}</p>
</%block>
<%block name="jscript_block">
<script>
ids=[];
task_completed=0;
position=0;
//Get all tasks, next process 50 next progress.
$.ajax({
url: "${url_for('.pastafari2_get_servers_task')}",
data: {task_id: ${task_id}},
success: function (data) {
for(i in data) {
//console.log(data[i]);
new_row=$(father_server).clone().appendTo('.table_servers');
new_row.prop('id', 'task_'+data[i].id);
//console.log(data[i]);
new_row.children('.hostname').html(data[i].hostname);
new_row.find('.server_log').attr('href', "${url_for('.pastafari2_progress')}?task_id="+data[i].id);
new_row.show();
ids.push(data[i].id);
//console.log($('#father_server').attr('id'));
}
get_log();
setInterval(get_log, 1000);
},
dataType: 'json'
});
function get_log() {
$.ajax({
url: "${url_for('.pastafari2_get_multiprogress')}?position="+position,
data: {ids: JSON.stringify(ids)},
success: function (data) {
/*$('.row_server').each(function () {
console.log($(this).attr('id'));
});*/
for(i in data) {
//console.log(data[i]);
//If is no_progress then show message.
if(!data[i].no_progress) {
//console.log('#server_'+data[i].server);
$('#task_'+data[i].task_id).find('.progress_text').html(data[i].message);
if(data[i].status==1) {
task_completed++;
$('#num_completed').html(task_completed);
console.log('Task completed '+data[i].task_id);
if(data[i].error==0) {
$('#task_'+data[i].task_id).find('i').removeClass('fa-cog fa-spin fa-fw').addClass('fa-check');
}
else {
$('#task_'+data[i].task_id).find('i').removeClass('fa-cog fa-spin fa-fw').addClass('fa-times');
}
}
}
position++;
}
},
dataType: 'json'
});
}
</script>
</%block>