Logo SikaPics local + QR 180px + clavier virtuel email + QR conditionnel booth

- Logo SikaPics servi localement (/assets/logos/sikapics.png)
- QR code accueil agrandi a 180px
- Clavier AZERTY virtuel integre pour saisie email (tactile)
- Raccourcis @gmail, @hotmail, .com, .fr
- QR partage: affiche seulement si booth actif, lien vers galerie live
- Bouton QR visible si booth OU qr_code active

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-07 18:50:01 +02:00
parent d2ae366e2f
commit 8b7a00b27e
6 changed files with 543 additions and 17 deletions

View File

@@ -39,7 +39,8 @@ function appliquerConfig() {
toggleVisible('btn-multi', fonc.multi_shot);
toggleVisible('btn-imprimer', fonc.impression);
toggleVisible('btn-email', fonc.email);
toggleVisible('btn-qr', fonc.qr_code);
const boothActif = config.booth?.actif;
toggleVisible('btn-qr', fonc.qr_code || boothActif);
// Media d'accueil (video/gif en boucle)
appliquerMediaAccueil(event.media_accueil);

View File

@@ -35,7 +35,7 @@ async function lancerImpression() {
function ouvrirEmail() {
document.getElementById('form-email').classList.remove('cache');
document.getElementById('input-email').focus();
document.getElementById('input-email').value = '';
}
function fermerEmail() {
@@ -43,6 +43,16 @@ function fermerEmail() {
document.getElementById('input-email').value = '';
}
function clavierTape(car) {
const input = document.getElementById('input-email');
input.value += car;
}
function clavierEffacer() {
const input = document.getElementById('input-email');
input.value = input.value.slice(0, -1);
}
async function envoyerEmail() {
const email = document.getElementById('input-email').value.trim();
if (!email || !photoFinale) return;
@@ -62,12 +72,20 @@ async function afficherQR() {
zone.classList.toggle('cache');
if (!zone.classList.contains('cache')) {
const resultat = await apiGet('/api/qr/galerie');
if (resultat.chemin) {
document.getElementById('img-qr').src = resultat.chemin;
const booth = config.booth || {};
if (booth.actif && booth.url) {
// QR vers la galerie live
const eventId = booth.event_id || 'default';
const qrUrl = `${booth.url}/${eventId}`;
document.getElementById('img-qr').src = `/api/qr?url=${encodeURIComponent(qrUrl)}`;
} else {
afficherStatut('QR Code non configure', 'erreur');
zone.classList.add('cache');
const resultat = await apiGet('/api/qr/galerie');
if (resultat.chemin) {
document.getElementById('img-qr').src = resultat.chemin;
} else {
afficherStatut('QR Code non configure', 'erreur');
zone.classList.add('cache');
}
}
}
}