dv
This commit is contained in:
parent
a6df5f64f1
commit
0f89ee4dd3
|
|
@ -1,21 +1,22 @@
|
|||
<?php
|
||||
// Versioning automatique pour le cache navigateur
|
||||
$version = date('YmdHi'); // Ou utilise une constante APP_VERSION définie ailleurs
|
||||
$version = date('YmdHi');
|
||||
// Définir la racine absolue du projet
|
||||
$racineWeb = '/nom_de_ton_dossier/'; // À adapter selon ton installation
|
||||
?>
|
||||
<meta charset="UTF-8"/>
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<base href="<?= $racineWeb ?>" >
|
||||
<base href="<?= $racineWeb ?>">
|
||||
|
||||
<!-- Favicon -->
|
||||
<!-- Favicon - chemin absolu depuis la base -->
|
||||
<link rel="icon" href="Bootstrap_new/images/favicon.ico"/>
|
||||
|
||||
<!-- Google Fonts : Inter et Poppins en fallback -->
|
||||
<!-- Google Fonts -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:opsz@14..32&display=swap" rel="stylesheet">
|
||||
<link href="https://fonts.gstatic.com" rel="preconnect">
|
||||
|
||||
<!-- Vendor CSS Files (Bootstrap et ses icônes) -->
|
||||
<!-- Vendor CSS Files - chemins absolus depuis la base -->
|
||||
<link href="Bootstrap/vendor/bootstrap/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link href="Bootstrap/vendor/bootstrap-icons/bootstrap-icons.css" rel="stylesheet">
|
||||
<link href="Bootstrap/vendor/boxicons/css/boxicons.min.css" rel="stylesheet">
|
||||
|
|
@ -24,14 +25,14 @@ $version = date('YmdHi'); // Ou utilise une constante APP_VERSION définie aille
|
|||
<link href="Bootstrap_new/datatables/datatable.min.css" rel="stylesheet">
|
||||
<link href="https://cdn.jsdelivr.net/npm/sweetalert2@11.14.1/dist/sweetalert2.min.css" rel="stylesheet">
|
||||
|
||||
<!-- Font Awesome 6 (via CDN pour la simplicité) -->
|
||||
<!-- Font Awesome 6 -->
|
||||
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.0/css/all.min.css">
|
||||
|
||||
<!-- Thème principal : Notre nouveau fichier de style moderne -->
|
||||
<!-- Thème principal -->
|
||||
<link href="Bootstrap_new/css/theme-modern.css?ver=<?= $version ?>" rel="stylesheet">
|
||||
|
||||
<title><?= $_SESSION['descriptionVue'] ?? 'INTER SANTE' ?></title>
|
||||
|
||||
<!-- Scripts de bibliothèques globales (placés ici pour une disponibilité précoce si besoin) -->
|
||||
<!-- Chart.js -->
|
||||
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/chartjs-plugin-datalabels@2.0.0"></script>
|
||||
|
|
@ -1,57 +1,164 @@
|
|||
<!-- jQuery first -->
|
||||
<script src="Bootstrap/js/jquery.min.js"></script>
|
||||
<script src="Bootstrap/js/jquery-ui.js"></script>
|
||||
<script src="Bootstrap/js/timer.jquery.js"></script>
|
||||
<?php
|
||||
// Version pour le cache
|
||||
$version = date('YmdHi');
|
||||
?>
|
||||
|
||||
<!-- Vendor JS -->
|
||||
<script src="Bootstrap/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="Bootstrap_new/js/select2.min.js"></script>
|
||||
<script src="Bootstrap_new/select/js/bootstrap-select.min.js"></script>
|
||||
<script src="Bootstrap_new/datatables/datatable.min.js"></script>
|
||||
<!-- ================================================= -->
|
||||
<!-- CHARGEMENT SÉQUENTIEL DES SCRIPTS -->
|
||||
<!-- ================================================= -->
|
||||
|
||||
<!-- Template Main JS -->
|
||||
<script src="Bootstrap/js/main.js"></script>
|
||||
<script src="Js/html2pdf.js"></script>
|
||||
<script src="Js/fonctions.js?ver=<?= date('YmdHi') ?>"></script>
|
||||
<!-- 1. jQuery en premier (TOUJOURS en premier) -->
|
||||
<script src="/Bootstrap/js/jquery.min.js"></script>
|
||||
<script src="/Bootstrap/js/jquery-ui.js"></script>
|
||||
<script src="/Bootstrap/js/timer.jquery.js"></script>
|
||||
|
||||
<!-- Internationalisation -->
|
||||
<!-- 2. Bootstrap et ses dépendances -->
|
||||
<script src="/Bootstrap/vendor/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||
|
||||
<!-- 3. Plugins jQuery (Select2, etc.) -->
|
||||
<script src="/Bootstrap_new/js/select2.min.js"></script>
|
||||
<script src="/Bootstrap_new/select/js/bootstrap-select.min.js"></script>
|
||||
<script src="/Bootstrap_new/datatables/datatable.min.js"></script>
|
||||
|
||||
<!-- 4. Scripts principaux de l'application -->
|
||||
<script src="/Bootstrap/js/main.js"></script>
|
||||
<script src="/Js/html2pdf.js"></script>
|
||||
|
||||
<!-- 5. FONCTIONS.JS - Contient raffraichir_messagerie et autres fonctions critiques -->
|
||||
<script src="/Js/fonctions.js?ver=<?= $version ?>"></script>
|
||||
|
||||
<!-- 6. Internationalisation (dépend de fonctions.js pour certaines fonctions) -->
|
||||
<?php if (est_anglophone()): ?>
|
||||
<script src="Js/datepicker-eng.js"></script>
|
||||
<script src="/Js/datepicker-eng.js"></script>
|
||||
<?php else: ?>
|
||||
<script src="Js/datepicker-fr.js"></script>
|
||||
<script src="/Js/datepicker-fr.js"></script>
|
||||
<?php endif; ?>
|
||||
|
||||
<!-- Librairies tierces -->
|
||||
<!-- 7. Librairies tierces -->
|
||||
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js"></script>
|
||||
<script src="https://cdn.jsdelivr.net/npm/sweetalert2@11.14.1/dist/sweetalert2.all.min.js"></script>
|
||||
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
|
||||
|
||||
<!-- Scripts d'initialisation -->
|
||||
<script src="<?= $_SESSION['dossierSociete'] . '/Js/societe.js' ?>"></script>
|
||||
<!-- 8. Script spécifique à la société -->
|
||||
<script src="/<?= $_SESSION['dossierSociete'] ?>/Js/societe.js"></script>
|
||||
|
||||
<!-- Inputs cachés essentiels -->
|
||||
<input type="hidden" id="vue" value="<?= $_SESSION['vue'] ?? '' ?>">
|
||||
<input type="hidden" id="racineWeb" value="<?= $racineWeb ?>">
|
||||
<input type="hidden" id="dureeSession" value="<?= $_SESSION['dureeSession'] ?>">
|
||||
<input type="hidden" id="codeLangue" value="<?= $_SESSION['lang'] ?? 'fr_FR' ?>">
|
||||
<!-- ================================================= -->
|
||||
<!-- INPUTS CACHÉS ESSENTIELS -->
|
||||
<!-- ================================================= -->
|
||||
<div style="display: none;">
|
||||
<input type="hidden" id="vue" value="<?= $_SESSION['vue'] ?? '' ?>">
|
||||
<input type="hidden" id="racineWeb" value="<?= $racineWeb ?? '/' ?>">
|
||||
<input type="hidden" id="dureeSession" value="<?= $_SESSION['dureeSession'] ?? '' ?>">
|
||||
<input type="hidden" id="codeLangue" value="<?= $_SESSION['lang'] ?? 'fr_FR' ?>">
|
||||
<input type="hidden" id="timer" value="0">
|
||||
<input type="hidden" id="msgNonLus" value="0">
|
||||
</div>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- DIV POUR AJAX -->
|
||||
<!-- ================================================= -->
|
||||
<div id="div_ajaxgabarit"></div>
|
||||
|
||||
<!-- ================================================= -->
|
||||
<!-- SCRIPT D'INITIALISATION (APRÈS TOUS LES CHARGEMENTS) -->
|
||||
<!-- ================================================= -->
|
||||
<script>
|
||||
$(document).ready(function() {
|
||||
// Gestion du drawer de contexte
|
||||
$('#showSideNav').on('click', function() {
|
||||
$('#barre_laterale_d').addClass('show');
|
||||
});
|
||||
$('#hideSideNav').on('click', function() {
|
||||
$('#barre_laterale_d').removeClass('show');
|
||||
// Attendre que le DOM soit complètement chargé et que toutes les fonctions soient disponibles
|
||||
(function() {
|
||||
// Fonction pour initialiser l'application
|
||||
function initApp() {
|
||||
console.log('Initialisation de l\'application...');
|
||||
|
||||
// Vérifier que jQuery est chargé
|
||||
if (typeof jQuery === 'undefined') {
|
||||
console.error('jQuery n\'est pas chargé !');
|
||||
setTimeout(initApp, 100);
|
||||
return;
|
||||
}
|
||||
|
||||
// Vérifier que nos fonctions sont chargées
|
||||
if (typeof raffraichir_messagerie === 'undefined') {
|
||||
console.warn('raffraichir_messagerie pas encore disponible, nouvelle tentative dans 300ms...');
|
||||
setTimeout(initApp, 300);
|
||||
return;
|
||||
}
|
||||
|
||||
// Une fois que tout est prêt, on initialise
|
||||
$(document).ready(function() {
|
||||
console.log('Tous les scripts sont chargés, initialisation...');
|
||||
|
||||
// Gestion du drawer de contexte
|
||||
$('#showSideNav').on('click', function() {
|
||||
$('#barre_laterale_d').addClass('show');
|
||||
});
|
||||
|
||||
$('#hideSideNav').on('click', function() {
|
||||
$('#barre_laterale_d').removeClass('show');
|
||||
});
|
||||
|
||||
// Initialisation du timer pour la messagerie
|
||||
if ($('#timer').length) {
|
||||
try {
|
||||
$('#timer').timer({
|
||||
duration: '60s',
|
||||
callback: function() {
|
||||
console.log('Timer callback - rafraîchissement messagerie');
|
||||
if (typeof raffraichir_messagerie === 'function') {
|
||||
raffraichir_messagerie();
|
||||
}
|
||||
},
|
||||
repeat: true
|
||||
});
|
||||
console.log('Timer initialisé avec succès');
|
||||
} catch(e) {
|
||||
console.error('Erreur lors de l\'initialisation du timer:', e);
|
||||
}
|
||||
}
|
||||
|
||||
// Initialisation des tooltips Bootstrap
|
||||
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
|
||||
tooltipTriggerList.map(function(tooltipTriggerEl) {
|
||||
return new bootstrap.Tooltip(tooltipTriggerEl);
|
||||
});
|
||||
|
||||
// Appel initial pour rafraîchir la messagerie
|
||||
if (typeof raffraichir_messagerie === 'function') {
|
||||
setTimeout(function() {
|
||||
raffraichir_messagerie();
|
||||
}, 1000); // Attendre 1 seconde avant le premier appel
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Démarrer l'initialisation
|
||||
initApp();
|
||||
})();
|
||||
</script>
|
||||
|
||||
// Timer de rafraîchissement
|
||||
$('#timer').timer({
|
||||
duration: '60s',
|
||||
callback: raffraichir_messagerie,
|
||||
repeat: true
|
||||
<!-- ================================================= -->
|
||||
<!-- SCRIPT DE SECOURS SI FONCTIONS.JS N'EST PAS CHARGÉ -->
|
||||
<!-- ================================================= -->
|
||||
<script>
|
||||
// Définition des fonctions critiques si elles n'existent pas (fallback)
|
||||
window.raffraichir_messagerie = window.raffraichir_messagerie || function() {
|
||||
console.log('Fallback: raffraichir_messagerie appelée');
|
||||
// Faire un appel AJAX simple pour récupérer les messages
|
||||
if (typeof jQuery !== 'undefined') {
|
||||
$.ajax({
|
||||
url: '/ajax/messagerie.php',
|
||||
method: 'GET',
|
||||
success: function(data) {
|
||||
$('#span_notification').text(data.nbNonLus || '0');
|
||||
},
|
||||
error: function() {
|
||||
console.error('Erreur lors du rafraîchissement de la messagerie');
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
window.pop_messagerie = window.pop_messagerie || function() {
|
||||
console.log('Fallback: pop_messagerie appelée');
|
||||
$('#btn_pop_messagerie').click();
|
||||
};
|
||||
</script>
|
||||
Loading…
Reference in New Issue
Block a user