Admin backoffice : rubriques General/Evenement + videos situation + surprise + rembobinage ruban
- Reorganisation menu admin en 2 rubriques (General / Evenement) - Destinations deplace dans Evenement - Nouveau panneau Videos : upload par situation (montage, depannage, bourrage, rechargement) - Nouveau panneau Surprise : photo/video affichee ~1s avant capture pour provoquer sourire - Toggle rembobinage ruban Mitsubishi (StpiDecklist) pour economiser le ruban sur petits formats - Historique email cloisonne par evenement - Memoire projet consolidee dans memoire.md Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -7,7 +7,7 @@
|
||||
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
|
||||
<meta name="google" content="notranslate">
|
||||
<meta http-equiv="Content-Language" content="fr">
|
||||
<link rel="stylesheet" href="/css/style.css?v=12">
|
||||
<link rel="stylesheet" href="/css/style.css?v=13">
|
||||
<link rel="stylesheet" href="/css/themes.css?v=2">
|
||||
</head>
|
||||
<body>
|
||||
@@ -98,6 +98,7 @@
|
||||
<span id="chiffre-car">3</span>
|
||||
</div>
|
||||
<div id="flash-blanc" class="flash-blanc cache"></div>
|
||||
<div id="surprise-overlay" class="surprise-overlay cache"></div>
|
||||
<div id="capture-en-cours" class="capture-en-cours cache">
|
||||
<div class="capture-spinner"></div>
|
||||
<span>Capture en cours...</span>
|
||||
@@ -371,18 +372,26 @@
|
||||
<button class="btn-fermer" onclick="allerA('accueil')">×</button>
|
||||
</div>
|
||||
<div class="admin-contenu">
|
||||
<div class="admin-onglets">
|
||||
<div class="admin-rubriques">
|
||||
<button class="rubrique actif" data-rubrique="general" onclick="changerRubrique('general')">General</button>
|
||||
<button class="rubrique" data-rubrique="evenement" onclick="changerRubrique('evenement')">Evenement</button>
|
||||
</div>
|
||||
<div class="admin-onglets" id="onglets-general">
|
||||
<button class="onglet actif" data-onglet="materiel">Materiel</button>
|
||||
<button class="onglet" data-onglet="compteur-admin">Compteur</button>
|
||||
<button class="onglet" data-onglet="destinations-admin">Destinations</button>
|
||||
<button class="onglet" data-onglet="personnalisation">Personnalisation</button>
|
||||
<button class="onglet" data-onglet="evenement">Evenement</button>
|
||||
<button class="onglet" data-onglet="fonctions">Fonctions</button>
|
||||
<button class="onglet" data-onglet="admin-galerie" onclick="chargerAdminGalerie()">Galerie</button>
|
||||
<button class="onglet" data-onglet="personnalisation">Personnalisation</button>
|
||||
<button class="onglet" data-onglet="videos-admin" onclick="chargerVideosAdmin()">Videos</button>
|
||||
<button class="onglet" data-onglet="eclairage" onclick="demarrerEclairageLive()">Eclairage</button>
|
||||
<button class="onglet" data-onglet="wifi" onclick="chargerWifi()">WiFi</button>
|
||||
<button class="onglet" data-onglet="infos" onclick="chargerInfosSysteme()">Infos</button>
|
||||
</div>
|
||||
<div class="admin-onglets cache" id="onglets-evenement">
|
||||
<button class="onglet" data-onglet="evenement">Config</button>
|
||||
<button class="onglet" data-onglet="destinations-admin">Destinations</button>
|
||||
<button class="onglet" data-onglet="surprise-admin">Surprise</button>
|
||||
<button class="onglet" data-onglet="admin-galerie" onclick="chargerAdminGalerie()">Galerie</button>
|
||||
</div>
|
||||
|
||||
<!-- Panneau Materiel (Camera + Imprimante) -->
|
||||
<div class="admin-panneau actif" id="panneau-materiel">
|
||||
@@ -429,6 +438,9 @@
|
||||
<label>Nombre max d'exemplaires</label>
|
||||
<input type="number" id="admin-copies-max" min="1" max="20" value="5">
|
||||
</div>
|
||||
<div class="champ">
|
||||
<label class="toggle"><input type="checkbox" id="tog-rembobinage-ruban"><span class="toggle-slider"></span> Rembobinage ruban (economise le ruban sur les petits formats)</label>
|
||||
</div>
|
||||
<button class="btn-action" onclick="sauvegarderMateriel()">Sauvegarder</button>
|
||||
<div class="champ" style="margin-top:1rem;display:flex;gap:0.8rem;flex-wrap:wrap">
|
||||
<button class="btn-danger" onclick="evacuerBourrage()">⚠ Annuler jobs</button>
|
||||
@@ -846,6 +858,76 @@
|
||||
<div id="diag-camera-contenu" style="font-family:monospace;font-size:0.75rem;background:#111;color:#0f0;padding:0.75rem;border-radius:6px;white-space:pre-wrap;max-height:300px;overflow-y:auto">
|
||||
Appuyer sur Tester...
|
||||
</div>
|
||||
<div class="admin-panneau" id="panneau-videos-admin">
|
||||
<h3>Videos de situation</h3>
|
||||
<p class="aide">Uploadez des videos pour chaque situation. Elles seront jouees automatiquement sur l'ecran du booth.</p>
|
||||
<div class="video-situations" id="video-situations-liste">
|
||||
<div class="video-situation-bloc" data-situation="montage">
|
||||
<h4>Montage / Installation</h4>
|
||||
<div class="video-situation-current" id="video-sit-montage">Aucune video</div>
|
||||
<input type="file" id="input-video-montage" accept=".mp4,.webm,.mov" class="input-fichier">
|
||||
<button class="btn-secondaire btn-petit" onclick="uploaderVideoSituation('montage')">Importer</button>
|
||||
<button class="btn-danger btn-petit" onclick="supprimerVideoSituation('montage')">Supprimer</button>
|
||||
</div>
|
||||
<div class="video-situation-bloc" data-situation="depannage_imprimante">
|
||||
<h4>Depannage imprimante</h4>
|
||||
<div class="video-situation-current" id="video-sit-depannage_imprimante">Aucune video</div>
|
||||
<input type="file" id="input-video-depannage_imprimante" accept=".mp4,.webm,.mov" class="input-fichier">
|
||||
<button class="btn-secondaire btn-petit" onclick="uploaderVideoSituation('depannage_imprimante')">Importer</button>
|
||||
<button class="btn-danger btn-petit" onclick="supprimerVideoSituation('depannage_imprimante')">Supprimer</button>
|
||||
</div>
|
||||
<div class="video-situation-bloc" data-situation="bourrage">
|
||||
<h4>Bourrage papier</h4>
|
||||
<div class="video-situation-current" id="video-sit-bourrage">Aucune video</div>
|
||||
<input type="file" id="input-video-bourrage" accept=".mp4,.webm,.mov" class="input-fichier">
|
||||
<button class="btn-secondaire btn-petit" onclick="uploaderVideoSituation('bourrage')">Importer</button>
|
||||
<button class="btn-danger btn-petit" onclick="supprimerVideoSituation('bourrage')">Supprimer</button>
|
||||
</div>
|
||||
<div class="video-situation-bloc" data-situation="rechargement">
|
||||
<h4>Rechargement papier/ruban</h4>
|
||||
<div class="video-situation-current" id="video-sit-rechargement">Aucune video</div>
|
||||
<input type="file" id="input-video-rechargement" accept=".mp4,.webm,.mov" class="input-fichier">
|
||||
<button class="btn-secondaire btn-petit" onclick="uploaderVideoSituation('rechargement')">Importer</button>
|
||||
<button class="btn-danger btn-petit" onclick="supprimerVideoSituation('rechargement')">Supprimer</button>
|
||||
</div>
|
||||
</div>
|
||||
<h4 style="margin-top:1.5rem">Apercu</h4>
|
||||
<video id="video-situation-preview" style="width:100%;max-height:300px;border-radius:8px;background:#111" controls></video>
|
||||
</div>
|
||||
|
||||
<div class="admin-panneau" id="panneau-surprise-admin">
|
||||
<h3>Photo / Video surprise</h3>
|
||||
<p class="aide">Media affiche sur l'ecran ~1 seconde avant la prise de photo pour surprendre et provoquer un sourire.</p>
|
||||
<div class="champ">
|
||||
<label class="toggle"><input type="checkbox" id="tog-surprise-actif"><span class="toggle-slider"></span> Surprise active</label>
|
||||
</div>
|
||||
<div class="champ">
|
||||
<label>Type de surprise</label>
|
||||
<div class="radio-group">
|
||||
<label><input type="radio" name="surprise-type" value="photo" checked> Photo</label>
|
||||
<label><input type="radio" name="surprise-type" value="video"> Video</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="champ">
|
||||
<label>Media actuel</label>
|
||||
<div id="surprise-current">Aucun media configure</div>
|
||||
</div>
|
||||
<div class="champ">
|
||||
<input type="file" id="input-surprise-media" accept=".jpg,.jpeg,.png,.gif,.mp4,.webm" class="input-fichier">
|
||||
<button class="btn-action" onclick="uploaderSurprise()">Importer</button>
|
||||
<button class="btn-danger btn-petit" onclick="supprimerSurprise()">Supprimer</button>
|
||||
</div>
|
||||
<div class="champ">
|
||||
<label>Delai avant capture (ms)</label>
|
||||
<input type="number" id="admin-surprise-delai" min="500" max="3000" value="1000" step="100">
|
||||
</div>
|
||||
<button class="btn-action" onclick="sauvegarderSurprise()">Sauvegarder</button>
|
||||
<h4 style="margin-top:1.5rem">Apercu</h4>
|
||||
<div id="surprise-preview" style="width:100%;max-height:300px;border-radius:8px;background:#111;display:flex;align-items:center;justify-content:center;min-height:150px;color:#666">
|
||||
Aucun apercu
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
@@ -930,11 +1012,11 @@
|
||||
</style>
|
||||
|
||||
<script src="/js/websocket.js?v=16"></script>
|
||||
<script src="/js/app.js?v=18"></script>
|
||||
<script src="/js/camera.js?v=17"></script>
|
||||
<script src="/js/app.js?v=19"></script>
|
||||
<script src="/js/camera.js?v=18"></script>
|
||||
<script src="/js/effects.js?v=4"></script>
|
||||
<script src="/js/gallery.js?v=4"></script>
|
||||
<script src="/js/share.js?v=8"></script>
|
||||
<script src="/js/admin.js?v=9"></script>
|
||||
<script src="/js/admin.js?v=10"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user