motorbike/app/Views/templates/footer.php
andrymodeste a195d24e78 feat: refonte gestion commandes, sécurité, impressions et notifications
## Gestion Moto & Commandes
- Correction des notifications pour la Caissière
- Le bouton "Enregistrer" changé en "Payer"
- La moto commandée reste visible dans la liste jusqu'à livraison par la sécurité

## Espace Sécurité
- Ajout des notifications de livraison
- Transfert vers l'espace commande après livraison

## Espace SuperAdmin
- Rejet de commande : le produit redevient disponible en stock automatiquement
- Correction de la gestion des rôles (permissions inversées)
- Avance complète : s'affiche directement chez la Caissière

## Historique des Actions
- Ajout de l'historique des actions pour SuperAdmin (traçabilité)

## Dashboard
- Filtre par date ajouté (par défaut : aujourd'hui)
- Affichage uniquement des données du site concerné

## Espace Commercial
- Liste des produits disponibles sur la liste déroulante dans l'ajout des commandes
- Le bouton "+" se cache après le premier clic pour les clients particuliers

## Impression Documents
- Refonte facture, bon de livraison, facture d'acompte (QR codes, infos dynamiques)

## Sidebar
- Correction des animations et du logo dynamique

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-31 07:28:05 +02:00

106 lines
3.5 KiB
PHP

<footer class="main-footer" style="display: flex;align-items: center;justify-content: space-between;">
<div>
<strong>Copyright &copy;<?php echo date('Y') ?>.</strong> All rights reserved.
</div>
<div class="pull-right hidden-xs"><h5 style="font-family: tahoma;">Designed and Managed by <strong>COMPANY FOR MADAGASCAR</strong>
</footer>
<!-- Add the sidebar's background. This div must be placed
immediately after the control sidebar -->
<div class="control-sidebar-bg"></div>
</div>
<!-- ./wrapper -->
<!-- <a href="#" class="sidebar-toggle" onclick="toggleSidebar()" role="button"> -->
<script>
function toggleSidebar() {
document.body.classList.toggle('sidebar-collapsed');
}
$(document).ready(function() {
// Supprimer TOUS les handlers AdminLTE sur le menu
$('.sidebar-menu').off();
$(document).off('click', '.sidebar-menu li a');
$(document).off('click', '.treeview > a');
// Aussi tenter de détruire le widget tree AdminLTE
try { $('.sidebar-menu').tree('destroy'); } catch(e) {}
// Re-supprimer après un court délai (AdminLTE peut rebind)
setTimeout(function() {
$('.sidebar-menu').off();
bindSidebarMenu();
}, 100);
function bindSidebarMenu() {
// Clic sur un treeview
$('.sidebar-menu .treeview > a').on('click', function(e) {
e.preventDefault();
e.stopPropagation();
e.stopImmediatePropagation();
var $li = $(this).parent();
var menuId = $li.attr('id') || $('.sidebar-menu .treeview').index($li);
// Fermer les autres
$('.sidebar-menu .treeview').not($li).removeClass('menu-open')
.children('.treeview-menu').slideUp(200);
// Toggle
if ($li.hasClass('menu-open')) {
$li.removeClass('menu-open');
$li.children('.treeview-menu').slideUp(200);
localStorage.removeItem('openMenu');
} else {
$li.addClass('menu-open');
$li.children('.treeview-menu').slideDown(200);
localStorage.setItem('openMenu', String(menuId));
}
return false;
});
}
// Restaurer le menu ouvert au survol de la sidebar
var restored = false;
$('.main-sidebar').on('mouseenter', function() {
if (!restored && $('body').hasClass('sidebar-collapsed')) {
var openMenu = localStorage.getItem('openMenu');
if (openMenu !== null) {
var $target = $('#' + openMenu);
if (!$target.length) {
$target = $('.sidebar-menu .treeview').eq(parseInt(openMenu));
}
if ($target.length) {
$target.addClass('menu-open');
$target.children('.treeview-menu').slideDown(200);
}
}
restored = true;
}
});
// Quand la souris quitte : fermer visuellement mais garder en mémoire
var closeTimer = null;
$('.main-sidebar').on('mouseleave', function() {
if ($('body').hasClass('sidebar-collapsed')) {
closeTimer = setTimeout(function() {
$('.sidebar-menu .treeview').removeClass('menu-open');
$('.sidebar-menu .treeview-menu').slideUp(200);
restored = false;
}, 400);
}
});
$('.main-sidebar').on('mouseenter', function() {
if (closeTimer) {
clearTimeout(closeTimer);
closeTimer = null;
}
});
});
</script>
</body>
</html>