2018-07-30 18:12:41 +00:00
|
|
|
{% extends "layout.html" %}
|
|
|
|
{% block header %}
|
2018-08-18 15:35:23 +00:00
|
|
|
<link href="{{ url_for('static', filename='css/libs/bootstrap-table.min.css') }}" rel="stylesheet">
|
2018-07-30 18:12:41 +00:00
|
|
|
{% endblock %}
|
|
|
|
{% block body %}
|
|
|
|
<div class="discover">
|
2020-02-03 03:22:00 +00:00
|
|
|
<h2>{{_('Tasks')}}</h2>
|
2019-07-13 18:45:48 +00:00
|
|
|
<table class="table table-no-bordered" id="table" data-url="{{ url_for('web.get_email_status_json') }}" data-sort-name="starttime" data-sort-order="asc">
|
2018-07-30 18:12:41 +00:00
|
|
|
<thead>
|
|
|
|
<tr>
|
|
|
|
{% if g.user.role_admin() %}
|
2018-08-12 07:29:57 +00:00
|
|
|
<th data-halign="right" data-align="right" data-field="user" data-sortable="true">{{_('User')}}</th>
|
2018-07-30 18:12:41 +00:00
|
|
|
{% endif %}
|
2018-10-03 19:58:37 +00:00
|
|
|
<th data-halign="right" data-align="right" data-field="taskMessage" data-sortable="true">{{_('Task')}}</th>
|
2018-08-12 07:29:57 +00:00
|
|
|
<th data-halign="right" data-align="right" data-field="status" data-sortable="true">{{_('Status')}}</th>
|
|
|
|
<th data-halign="right" data-align="right" data-field="progress" data-sortable="true" data-sorter="elementSorter">{{_('Progress')}}</th>
|
2020-02-03 03:22:00 +00:00
|
|
|
<th data-halign="right" data-align="right" data-field="runtime" data-sortable="true" data-sort-name="rt">{{_('Run Time')}}</th>
|
|
|
|
<th data-halign="right" data-align="right" data-field="starttime" data-sortable="true" data-sort-name="id">{{_('Start Time')}}</th>
|
2018-08-12 07:29:57 +00:00
|
|
|
<th data-field="id" data-visible="false"></th>
|
|
|
|
<th data-field="rt" data-visible="false"></th>
|
2018-07-30 18:12:41 +00:00
|
|
|
</tr>
|
|
|
|
</thead>
|
|
|
|
</table>
|
|
|
|
<!--div class="btn btn-default" id="tasks_delete">{{_('Delete finished tasks')}}</div>
|
|
|
|
<div class="btn btn-default" id="tasks_hide">{{_('Hide all tasks')}}</div-->
|
|
|
|
</div>
|
|
|
|
{% endblock %}
|
|
|
|
{% block js %}
|
2018-08-18 15:35:23 +00:00
|
|
|
<script src="{{ url_for('static', filename='js/libs/bootstrap-table/bootstrap-table.min.js') }}"></script>
|
2018-07-30 18:12:41 +00:00
|
|
|
<script>
|
2018-08-24 13:48:09 +00:00
|
|
|
// ToDo: Move to js file
|
2018-07-30 18:12:41 +00:00
|
|
|
$('#table').bootstrapTable({
|
|
|
|
formatNoMatches: function () {
|
|
|
|
return '';
|
|
|
|
},
|
|
|
|
striped: true
|
|
|
|
});
|
|
|
|
setInterval(function() {
|
|
|
|
$.ajax({
|
|
|
|
method:"get",
|
2019-07-13 18:45:48 +00:00
|
|
|
url: "{{ url_for('web.get_email_status_json')}}",
|
2018-07-30 18:12:41 +00:00
|
|
|
async: true,
|
|
|
|
timeout: 900,
|
|
|
|
success:function(data){
|
|
|
|
$('#table').bootstrapTable("load", data);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}, 1000);
|
2018-08-12 07:29:57 +00:00
|
|
|
function elementSorter(a, b) {
|
|
|
|
a = +a.slice(0, -2);
|
|
|
|
b = +b.slice(0, -2);
|
|
|
|
if (a > b) return 1;
|
|
|
|
if (a < b) return -1;
|
|
|
|
return 0;
|
|
|
|
}
|
2018-07-30 18:12:41 +00:00
|
|
|
</script>
|
|
|
|
|
|
|
|
{% endblock %}
|