155 lines
7.1 KiB
JavaScript
155 lines
7.1 KiB
JavaScript
// Tableau recap notes
|
|
$(function () {
|
|
$(function () {
|
|
// Les boutons dépendent du mode BUT ou classique:
|
|
let buttons = [
|
|
{
|
|
name: "toggle_ident",
|
|
text: "Civ/Nom/Prénom",
|
|
action: function (e, dt, node, config) {
|
|
let visible = dt.columns(".identite_detail").visible()[0];
|
|
dt.columns(".identite_detail").visible(!visible);
|
|
dt.columns(".identite_court").visible(visible);
|
|
dt.buttons('toggle_ident:name').text(visible ? "Civ/Nom/Prénom" : "Nom");
|
|
}
|
|
},
|
|
{
|
|
name: "toggle_partitions",
|
|
text: "Toutes les partitions",
|
|
action: function (e, dt, node, config) {
|
|
let visible = dt.columns(".partition_aux").visible()[0];
|
|
dt.columns(".partition_aux").visible(!visible);
|
|
dt.buttons('toggle_partitions:name').text(visible ? "Toutes les partitions" : "Cacher les partitions");
|
|
}
|
|
}];
|
|
if (!$('table.table_recap').hasClass("jury")) {
|
|
buttons.push(
|
|
$('table.table_recap').hasClass("apc") ?
|
|
{
|
|
name: "toggle_res",
|
|
text: "Cacher les ressources",
|
|
action: function (e, dt, node, config) {
|
|
let visible = dt.columns(".col_res").visible()[0];
|
|
dt.columns(".col_res").visible(!visible);
|
|
dt.columns(".col_ue_bonus").visible(!visible);
|
|
dt.columns(".col_malus").visible(!visible);
|
|
dt.buttons('toggle_res:name').text(visible ? "Montrer les ressources" : "Cacher les ressources");
|
|
}
|
|
} : {
|
|
name: "toggle_mod",
|
|
text: "Cacher les modules",
|
|
action: function (e, dt, node, config) {
|
|
let visible = dt.columns(".col_mod:not(.col_empty)").visible()[0];
|
|
dt.columns(".col_mod:not(.col_empty)").visible(!visible);
|
|
dt.columns(".col_ue_bonus").visible(!visible);
|
|
dt.columns(".col_malus").visible(!visible);
|
|
dt.buttons('toggle_mod:name').text(visible ? "Montrer les modules" : "Cacher les modules");
|
|
visible = dt.columns(".col_empty").visible()[0];
|
|
dt.buttons('toggle_col_empty:name').text(visible ? "Cacher mod. vides" : "Montrer mod. vides");
|
|
}
|
|
}
|
|
);
|
|
if ($('table.table_recap').hasClass("apc")) {
|
|
buttons.push({
|
|
name: "toggle_sae",
|
|
text: "Cacher les SAÉs",
|
|
action: function (e, dt, node, config) {
|
|
let visible = dt.columns(".col_sae").visible()[0];
|
|
dt.columns(".col_sae").visible(!visible);
|
|
dt.buttons('toggle_sae:name').text(visible ? "Montrer les SAÉs" : "Cacher les SAÉs");
|
|
}
|
|
})
|
|
}
|
|
buttons.push({
|
|
name: "toggle_col_empty",
|
|
text: "Montrer mod. vides",
|
|
action: function (e, dt, node, config) {
|
|
let visible = dt.columns(".col_empty").visible()[0];
|
|
dt.columns(".col_empty").visible(!visible);
|
|
dt.buttons('toggle_col_empty:name').text(visible ? "Montrer mod. vides" : "Cacher mod. vides");
|
|
}
|
|
})
|
|
}
|
|
buttons.push({
|
|
name: "toggle_admission",
|
|
text: "Montrer infos admission",
|
|
action: function (e, dt, node, config) {
|
|
let visible = dt.columns(".admission").visible()[0];
|
|
dt.columns(".admission").visible(!visible);
|
|
dt.buttons('toggle_admission:name').text(visible ? "Montrer infos admission" : "Cacher infos admission");
|
|
}
|
|
})
|
|
$('table.table_recap').DataTable(
|
|
{
|
|
paging: false,
|
|
searching: true,
|
|
info: false,
|
|
autoWidth: false,
|
|
fixedHeader: {
|
|
header: true,
|
|
footer: false
|
|
},
|
|
orderCellsTop: true, // cellules ligne 1 pour tri
|
|
aaSorting: [], // Prevent initial sorting
|
|
colReorder: true,
|
|
"columnDefs": [
|
|
{
|
|
// cache les codes, le détail de l'identité, les groupes, les colonnes admission et les vides
|
|
targets: ["codes", "identite_detail", "partition_aux", "admission", "col_empty"],
|
|
visible: false,
|
|
},
|
|
{
|
|
// Elimine les 0 à gauche pour les exports excel et les "copy"
|
|
targets: ["col_mod", "col_moy_gen", "col_ue", "col_res", "col_sae"],
|
|
render: function (data, type, row) {
|
|
return type === 'export' ? data.replace(/0(\d\..*)/, '$1') : data;
|
|
}
|
|
},
|
|
{
|
|
// Elimine les décorations (fleches bonus/malus) pour les exports
|
|
targets: ["col_ue_bonus", "col_malus"],
|
|
render: function (data, type, row) {
|
|
return type === 'export' ? data.replace(/.*(\d\d\.\d\d)/, '$1').replace(/0(\d\..*)/, '$1') : data;
|
|
}
|
|
},
|
|
],
|
|
dom: 'Bfrtip',
|
|
buttons: [
|
|
{
|
|
extend: 'copyHtml5',
|
|
text: 'Copier',
|
|
exportOptions: { orthogonal: 'export' }
|
|
},
|
|
{
|
|
extend: 'excelHtml5',
|
|
exportOptions: { orthogonal: 'export' },
|
|
title: document.querySelector('table.table_recap').dataset.filename
|
|
},
|
|
{
|
|
extend: 'collection',
|
|
text: 'Colonnes affichées',
|
|
autoClose: true,
|
|
buttons: buttons,
|
|
},
|
|
]
|
|
}
|
|
);
|
|
|
|
});
|
|
$('table.table_recap tbody').on('click', 'tr', function () {
|
|
if ($(this).hasClass('selected')) {
|
|
$(this).removeClass('selected');
|
|
}
|
|
else {
|
|
$('table.table_recap tr.selected').removeClass('selected');
|
|
$(this).addClass('selected');
|
|
}
|
|
});
|
|
// Pour montrer et highlihter l'étudiant sélectionné:
|
|
$(function () {
|
|
document.querySelector("#row_selected").scrollIntoView();
|
|
window.scrollBy(0, -50);
|
|
document.querySelector("#row_selected").classList.add("selected");
|
|
});
|
|
});
|