-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathjobs_of_project_tab.ejs
More file actions
96 lines (88 loc) · 3.27 KB
/
Copy pathjobs_of_project_tab.ejs
File metadata and controls
96 lines (88 loc) · 3.27 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
<div class="card shadow mb-4">
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary">Jobs du projet</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered table-striped" id="dataTableJobs" cellspacing="0">
</table>
</div>
</div>
</div>
<script>
$(document).ready(function() {
const data = JSON.parse('<%- jobs_data %>');
const columns = JSON.parse('<%- jobs_columns %>');
var table = $('#dataTableJobs').DataTable( {
"language": {
"lengthMenu": "Afficher _MENU_ par page",
"zeroRecords": "Aucun éléments",
"info": "Page _PAGE_ sur _PAGES_",
"infoEmpty": "Aucun enregistrement disponible",
"infoFiltered": "(filtered from _MAX_ total records)",
"search": "Rechercher",
"paginate": {
"first": "Premier",
"previous": "Précédent",
"next": "Suivant",
"last": "Dernier"
}
},
"order": [[ 0, "asc" ]],
"lengthMenu": [[10, 25, 50, 100, -1], [10, 25, 50, 100, "Tous"]],
"pageLength": 10,
"dom": '<"d-flex m-1"<"mr-auto"l><f>><"d-flex m-1"<"mr-auto toolbar_tab2"><p>>t<"d-flex m-1"<"mr-auto"i><p>>',
"data": data,
"columns": columns,
"autoWidth": false,
"createdRow": function( row, data, dataIndex, cells ) {
if (data.job_status !== 'failed')
$('button', cells[8])[0].style.visibility = "hidden";
},
"rowCallback": function( row, data, index ) {
var job_id = $('td:eq(0)', row);
job_id.html('<a href="<%= base %>/job/'+data.job_id+'">'+data.job_id+'</a>')
var job_name = $('td:eq(1)', row);
job_name.html('<a href="<%= base %>/job/'+data.job_id+'">'+data.job_name+'</a>')
var status = data.job_status;
switch(status){
case "failed":
$('td, a', row).addClass('text-danger');
break;
case "running":
$('td, a', row).addClass('text-warning');
break;
case "waiting":
$('td, a', row).addClass('text-secondary');
break;
case "done":
$('td, a', row).addClass('text-success');
break;
case "ready":
$('td, a', row).addClass('text-primary');
break;
}
}
}
);
// Add event listener for actions
$('#dataTableJobs tbody').on('click', 'button.reinit_job', function () {
var tr = $(this).closest('tr');
var row = table.row( tr );
if (row.data().job_status == 'failed')
reinitJobs({"ids":[row.data().job_id]});
} );
// Add btn Réinitialiser les jobs en échecs
var i = jQuery('<i></i>');
i.addClass('fas fa-sync-alt fa-1x')
var button = jQuery('<button></button>');
button.addClass('btn btn-warning');
button.attr('type', 'button')
.attr('data-toggle', "tooltip")
.attr('title', 'Réinitialise tous les jobs en échecs visibles')
.attr('onclick', 'reinitFilteredJobs($("#dataTableJobs").DataTable())')
.append(i)
.append(' Réinitialiser les jobs en échecs visibles');
$("div.toolbar_tab2").append(button);
} );
</script>