Files
e-cosplay/assets/class/SecurityWall.js
Serreau Jovann 506302a91a ```
 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é.
2025-09-27 12:03:00 +02:00

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();
}
}