UX partage : masquer Recommencer pendant impression/email, detail pellicule, reset copies

- Ecran partage : boutons bas masqués quand formulaire impression ou email ouvert
- "Terminer" remplacé par "Recommencer" (retour mode, pas accueil)
- Reset photoImpression/formatImpression/nbExemplaires dans recommencer()
- Bouton Pellicule affiche "N poses = 2 tirages" pour expliquer le strip dupliqué
- CSS .mode-detail pour sous-titre discret sur bouton mode
- Bump cache versions (style v18, app v27, share v11)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-09-20 20:32:42 +02:00
parent 4931a29d45
commit 61b9a72f10
4 changed files with 36 additions and 6 deletions

View File

@@ -386,6 +386,13 @@ html, body {
font-size: 8rem;
}
.mode-detail {
font-size: 0.85rem;
opacity: 0.6;
font-weight: 400;
margin-top: -0.3rem;
}
/* === Booth info (code + QR sur accueil) === */
.booth-info {
position: absolute;

View File

@@ -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=17">
<link rel="stylesheet" href="/css/style.css?v=18">
<link rel="stylesheet" href="/css/themes.css?v=2">
</head>
<body>
@@ -104,6 +104,7 @@
<button class="btn-mode" data-mode="multi" id="btn-multi">
<div class="mode-icone mode-icone-large">&#127902;</div>
<span>Pellicule</span>
<span class="mode-detail" id="pellicule-detail"></span>
</button>
</div>
<button class="btn-retour" onclick="allerA('accueil')">Retour</button>
@@ -278,8 +279,7 @@
</div>
<div id="statut-partage" class="statut-partage cache"></div>
<div class="partage-bas">
<button class="btn-action" id="btn-terminer" onclick="allerA('accueil')">Terminer</button>
<button class="btn-secondaire" onclick="recommencer()">Nouvelle photo</button>
<button class="btn-action" id="btn-terminer" onclick="recommencer()">Recommencer</button>
</div>
</section>
@@ -1177,11 +1177,11 @@
</style>
<script src="/js/websocket.js?v=16"></script>
<script src="/js/app.js?v=26"></script>
<script src="/js/app.js?v=27"></script>
<script src="/js/camera.js?v=26"></script>
<script src="/js/effects.js?v=4"></script>
<script src="/js/gallery.js?v=5"></script>
<script src="/js/share.js?v=10"></script>
<script src="/js/share.js?v=11"></script>
<script src="/js/admin.js?v=17"></script>
</body>
</html>

View File

@@ -147,6 +147,9 @@ function arreterTimeoutAdmin() {}
function recommencer() {
photosSession = [];
photoFinale = null;
photoImpression = null;
formatImpression = null;
nbExemplaires = 1;
allerA('mode');
}
@@ -281,6 +284,14 @@ function setupModes() {
allerA('capture');
});
});
majDetailPellicule();
}
function majDetailPellicule() {
const el = document.getElementById('pellicule-detail');
if (!el) return;
const nb = config.multi_shot?.nombre_photos || 4;
el.textContent = `${nb} poses = 2 tirages`;
}
async function chargerCadresChoix() {

View File

@@ -3,11 +3,17 @@
let nbExemplaires = 1;
let copiesMax = 2;
function _masquerBoutonsBas(masquer) {
const bas = document.querySelector('#ecran-partage .partage-bas');
if (bas) bas.style.display = masquer ? 'none' : '';
}
async function ouvrirImpression() {
copiesMax = config.impression?.copies_max || 2;
nbExemplaires = 1;
document.getElementById('nb-exemplaires').textContent = nbExemplaires;
cadreChoisi = null;
_masquerBoutonsBas(true);
if (modeActuel === 'multi') {
document.getElementById('form-impression').classList.remove('cache');
@@ -25,6 +31,7 @@ async function ouvrirImpression() {
function fermerImpression() {
document.getElementById('form-impression').classList.add('cache');
cadreChoisi = null;
_masquerBoutonsBas(false);
}
function confirmerCadreImpression() {
@@ -35,6 +42,7 @@ function confirmerCadreImpression() {
function annulerCadreImpression() {
document.getElementById('popup-cadre-impression').classList.add('cache');
cadreChoisi = null;
_masquerBoutonsBas(false);
}
async function chargerCadresChoixImpression() {
@@ -105,7 +113,8 @@ function changerExemplaires(delta) {
async function lancerImpression() {
if (!photoFinale) return;
fermerImpression();
document.getElementById('form-impression').classList.add('cache');
cadreChoisi = null;
const btnTerminer = document.getElementById('btn-terminer');
if (btnTerminer) { btnTerminer.disabled = true; btnTerminer.style.opacity = '0.4'; }
// Pour les strips, imprimer la version 2 bandes sur 10x15
@@ -118,6 +127,7 @@ async function lancerImpression() {
format_papier: formatImpression || undefined,
});
if (btnTerminer) { btnTerminer.disabled = false; btnTerminer.style.opacity = ''; }
_masquerBoutonsBas(false);
if (resultat.attente) {
afficherStatutEco('⏳', resultat.message || 'Votre photo sortira avec la suivante !', 'attente-eco');
} else if (resultat.jumeau && resultat.succes) {
@@ -134,12 +144,14 @@ async function lancerImpression() {
async function ouvrirEmail() {
document.getElementById('form-email').classList.remove('cache');
document.getElementById('input-email').value = '';
_masquerBoutonsBas(true);
await chargerSuggestionsEmail();
}
function fermerEmail() {
document.getElementById('form-email').classList.add('cache');
document.getElementById('input-email').value = '';
_masquerBoutonsBas(false);
}
async function chargerSuggestionsEmail() {