✨ feat(Customer): Ajoute la fonction de clonage d'entité Customer. ✨ feat(SignClient): Utilise Docuseal avec PDF pour la signature des devis. ✨ feat(AvatarController): Ajoute un endpoint pour le verrouillage de l'application. ✨ feat(IpWall): Ajoute un composant web pour bloquer l'accès basé sur l'IP. 🎨 style(admin.scss): Ajoute des styles pour le modal de paiement et les murs de sécurité. ✨ feat(RegisterPayment): Ajoute un composant pour enregistrer les paiements. 🐛 fix(DevisPdf): Corrige l'alignement des totaux dans le PDF du devis. 🔥 chore: Ajoute discord_bot/node_modules au .gitignore. ✨ feat(ExportComptable): Ajoute une commande pour exporter les données comptables. ✨ feat(LockdownWall): Ajoute un composant web pour le verrouillage de l'application. 🐛 fix(CustomerController): Corrige la copie des contacts lors du clonage du client. ✨ feat(SecurityWall): Ajoute un composant web pour activer/désactiver le filtre de confidentialité.
41 lines
1.3 KiB
JavaScript
41 lines
1.3 KiB
JavaScript
export class SecurityWall extends HTMLElement {
|
|
connectedCallback() {
|
|
this.render();
|
|
|
|
// Ecoute globale pour Alt+P
|
|
window.addEventListener('keydown', (event) => {
|
|
if (event.altKey && event.key.toLowerCase() === 'p') {
|
|
this.toggleWall();
|
|
}
|
|
});
|
|
}
|
|
|
|
render() {
|
|
const isEnabled = localStorage.getItem('mainframe-wallsecurity') === 'true';
|
|
if (!isEnabled) {
|
|
// Retirer si déjà présent
|
|
const existing = document.querySelector('security-wall-item');
|
|
if (existing) existing.remove();
|
|
return;
|
|
}
|
|
|
|
// Ajouter seulement si pas déjà présent
|
|
if (!document.querySelector('security-wall-item')) {
|
|
let wall = document.createElement('security-wall-item');
|
|
wall.innerHTML = `
|
|
<div class="content">
|
|
<h2><warn>/!\\ </warn> - Protection MAINFRAME - <warn>/!\\ </warn></h2>
|
|
<span>Filtre de confidentialité activée</span>
|
|
</div>
|
|
`;
|
|
document.body.appendChild(wall);
|
|
}
|
|
}
|
|
|
|
toggleWall() {
|
|
const current = localStorage.getItem('mainframe-wallsecurity') === 'true';
|
|
localStorage.setItem('mainframe-wallsecurity', current ? 'false' : 'true');
|
|
this.render();
|
|
}
|
|
}
|