Cadres : preview coin haut-gauche + compteur bloque impression pas capture
- Thumbnails cadres : positionnement coin haut-gauche au lieu du centre (le centre du cadre PNG est transparent = invisible) - Compteur photos : ne bloque plus la capture quand limite atteinte, masque le bouton imprimer sur l'ecran partage a la place Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -298,11 +298,6 @@ async def api_config_update(modifications: dict):
|
|||||||
@app.post("/api/capturer")
|
@app.post("/api/capturer")
|
||||||
async def api_capturer():
|
async def api_capturer():
|
||||||
global capture_en_cours, _preview_actif
|
global capture_en_cours, _preview_actif
|
||||||
# Verifier le compteur
|
|
||||||
etat = compteur_restant()
|
|
||||||
if etat["actif"] and etat["restantes"] <= 0:
|
|
||||||
return JSONResponse({"erreur": "Limite de photos atteinte"}, status_code=403)
|
|
||||||
|
|
||||||
capture_en_cours = True
|
capture_en_cours = True
|
||||||
_preview_actif = False # Eviter faux camera_erreur (race condition HTTP avant preview_stop)
|
_preview_actif = False # Eviter faux camera_erreur (race condition HTTP avant preview_stop)
|
||||||
log.info("Capture déclenchée — preview figé, thread en attente de lock")
|
log.info("Capture déclenchée — preview figé, thread en attente de lock")
|
||||||
|
|||||||
@@ -1356,13 +1356,12 @@ h3 {
|
|||||||
}
|
}
|
||||||
|
|
||||||
.cadre-choix-item .cadre-thumb-wrap img {
|
.cadre-choix-item .cadre-thumb-wrap img {
|
||||||
/* Image agrandie 2.5x et centrée — les bordures deviennent bien visibles */
|
/* Image agrandie 2.5x, coin haut-gauche visible pour montrer la bordure du cadre */
|
||||||
position: absolute;
|
position: absolute;
|
||||||
width: 350px;
|
width: 350px;
|
||||||
height: 525px;
|
height: 525px;
|
||||||
top: 50%;
|
top: 0;
|
||||||
left: 50%;
|
left: 0;
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
border-radius: 0;
|
border-radius: 0;
|
||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
@@ -1411,9 +1410,8 @@ h3 {
|
|||||||
.grille-cadres-popup .cadre-choix-item .cadre-thumb-wrap img {
|
.grille-cadres-popup .cadre-choix-item .cadre-thumb-wrap img {
|
||||||
width: 250%;
|
width: 250%;
|
||||||
height: 250%;
|
height: 250%;
|
||||||
top: 50%;
|
top: 0;
|
||||||
left: 50%;
|
left: 0;
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.grille-cadres-popup .cadre-choix-aucun .cadre-choix-vide {
|
.grille-cadres-popup .cadre-choix-aucun .cadre-choix-vide {
|
||||||
|
|||||||
@@ -110,6 +110,8 @@ function allerA(ecran) {
|
|||||||
majCompteurAccueil();
|
majCompteurAccueil();
|
||||||
} else if (ecran === 'capture') {
|
} else if (ecran === 'capture') {
|
||||||
lancerCapture();
|
lancerCapture();
|
||||||
|
} else if (ecran === 'partage') {
|
||||||
|
majBoutonImprimerCompteur();
|
||||||
} else if (ecran === 'galerie') {
|
} else if (ecran === 'galerie') {
|
||||||
chargerGalerie();
|
chargerGalerie();
|
||||||
} else if (ecran === 'admin') {
|
} else if (ecran === 'admin') {
|
||||||
|
|||||||
@@ -221,10 +221,6 @@ async function lancerCapture() {
|
|||||||
|
|
||||||
if (!resultat) {
|
if (!resultat) {
|
||||||
erreurReseau = true;
|
erreurReseau = true;
|
||||||
} else if (resultat.erreur === 'Limite de photos atteinte') {
|
|
||||||
captureEnCours = false;
|
|
||||||
afficherErreurCapture('Limite de photos atteinte', 'La session est terminee');
|
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (erreurReseau) {
|
if (erreurReseau) {
|
||||||
@@ -430,6 +426,15 @@ async function majCompteurAccueil() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async function majBoutonImprimerCompteur() {
|
||||||
|
const etat = await apiGet('/api/compteur');
|
||||||
|
const btn = document.getElementById('btn-imprimer');
|
||||||
|
if (!btn) return;
|
||||||
|
if (etat.actif && etat.restantes <= 0) {
|
||||||
|
btn.classList.add('cache');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
function pause(ms) {
|
function pause(ms) {
|
||||||
return new Promise(resolve => setTimeout(resolve, ms));
|
return new Promise(resolve => setTimeout(resolve, ms));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user