Add Veeam and NetBackup support to inventory and reporting
- Introduced Veeam and NetBackup version tracking in `Inventory.php` for backup validation. - Enhanced backup report in `Backups.php` with improved SQL queries and support for short hostname normalization. - Updated `navbar.html` and related navigation components for better usability and accessibility. - Refactored ActiveDirectory scripts for better modularity and event handling. - Added `AGENTS.md` and `modele.php` as templates for documentation and new page creation.
This commit is contained in:
@@ -1223,12 +1223,6 @@
|
||||
true
|
||||
);
|
||||
|
||||
} else {
|
||||
|
||||
$table.bootstrapTable(
|
||||
'resetView'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -1236,8 +1230,9 @@
|
||||
|
||||
|
||||
/*
|
||||
* Laisse Bootstrap Table construire son DOM
|
||||
* avant de mesurer la hauteur disponible.
|
||||
* Laisse Bootstrap Table construire (ou reconstruire)
|
||||
* son DOM avant de mesurer la hauteur disponible.
|
||||
* updateTableHeight fait lui-même le resetView avec la hauteur.
|
||||
*/
|
||||
setTimeout(
|
||||
function () {
|
||||
@@ -1280,87 +1275,54 @@
|
||||
}
|
||||
|
||||
|
||||
const $table =
|
||||
$(target).find('table.report-table');
|
||||
|
||||
|
||||
/*
|
||||
* On laisse Bootstrap terminer complètement
|
||||
* l'affichage de l'onglet avant de toucher à Bootstrap Table.
|
||||
* IMPORTANT : on cible la table par son id.
|
||||
* En mode hauteur fixe, Bootstrap Table clone le thead dans une
|
||||
* seconde <table> à laquelle il recopie la classe d'origine
|
||||
* (report-table). Sélectionner par classe renverrait donc AUSSI ce
|
||||
* clone (placé avant l'originale dans le DOM), et .data('bt-initialized')
|
||||
* lirait le clone -> fausse "première init" -> double init -> tableau vidé.
|
||||
* Le clone ne reçoit jamais d'id : [id] ne matche que la vraie table.
|
||||
*/
|
||||
setTimeout(
|
||||
function () {
|
||||
const $table =
|
||||
$(target).find('table.report-table[id]');
|
||||
|
||||
function initTable($table) {
|
||||
|
||||
if ($table.length === 0) {
|
||||
return;
|
||||
}
|
||||
if ($table.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Important :
|
||||
* ne jamais initialiser Bootstrap Table
|
||||
* pendant que la table est cachée.
|
||||
*/
|
||||
if (!$table.is(':visible')) {
|
||||
return;
|
||||
}
|
||||
if (!$table.data('bt-initialized')) {
|
||||
|
||||
/*
|
||||
* Première ouverture de l'onglet :
|
||||
* on initialise et on dimensionne pendant que la table est visible.
|
||||
*/
|
||||
initTable($table);
|
||||
|
||||
} else {
|
||||
|
||||
/*
|
||||
* Onglet déjà construit : display:none / show conserve tout le rendu
|
||||
* de Bootstrap Table. On ne refait PAS de resetView, qui viderait
|
||||
* le corps du tableau.
|
||||
*/
|
||||
syncTheme($table);
|
||||
|
||||
|
||||
if (!$table.data('bt-initialized')) {
|
||||
/*
|
||||
* Sauf si un resize a eu lieu pendant que l'onglet était masqué :
|
||||
* dans ce cas seulement, on recalcule la hauteur maintenant.
|
||||
*/
|
||||
if ($table.data('needs-resize')) {
|
||||
|
||||
/*
|
||||
* Première ouverture de l'onglet :
|
||||
* Bootstrap Table construit son DOM.
|
||||
*/
|
||||
$table.bootstrapTable();
|
||||
$table.data('needs-resize', false);
|
||||
|
||||
$table.data(
|
||||
'bt-initialized',
|
||||
true
|
||||
);
|
||||
updateTableHeight($table);
|
||||
|
||||
} else {
|
||||
}
|
||||
|
||||
/*
|
||||
* Table déjà initialisée :
|
||||
* on force Bootstrap Table à recalculer son affichage.
|
||||
*/
|
||||
$table.bootstrapTable(
|
||||
'resetView'
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
|
||||
syncTheme($table);
|
||||
|
||||
|
||||
/*
|
||||
* Une fois le DOM Bootstrap Table construit,
|
||||
* calcul de la hauteur disponible.
|
||||
*/
|
||||
setTimeout(
|
||||
function () {
|
||||
|
||||
$table.bootstrapTable(
|
||||
'resetView'
|
||||
);
|
||||
|
||||
updateTableHeight(
|
||||
$table
|
||||
);
|
||||
|
||||
},
|
||||
50
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
},
|
||||
10
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
);
|
||||
@@ -1377,7 +1339,7 @@
|
||||
setTimeout(
|
||||
function () {
|
||||
|
||||
$('table.report-table').each(
|
||||
$('table.report-table[id]').each(
|
||||
function () {
|
||||
|
||||
syncTheme(
|
||||
@@ -1518,19 +1480,32 @@
|
||||
debounce(
|
||||
function () {
|
||||
|
||||
$('table.report-table:visible').each(
|
||||
$('table.report-table[id]').each(
|
||||
function () {
|
||||
|
||||
const $table =
|
||||
$(this);
|
||||
|
||||
|
||||
if ($table.data('bt-initialized')) {
|
||||
if (!$table.data('bt-initialized')) {
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if ($table.is(':visible')) {
|
||||
|
||||
updateTableHeight(
|
||||
$table
|
||||
);
|
||||
|
||||
} else {
|
||||
|
||||
/*
|
||||
* On ne peut pas mesurer un onglet masqué :
|
||||
* on marque la table pour recalcul à sa prochaine ouverture.
|
||||
*/
|
||||
$table.data('needs-resize', true);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -1550,7 +1525,7 @@
|
||||
setTimeout(
|
||||
function () {
|
||||
|
||||
$('table.report-table:visible').each(
|
||||
$('table.report-table[id]:visible').each(
|
||||
function () {
|
||||
|
||||
const $table =
|
||||
|
||||
Reference in New Issue
Block a user