diff --git a/_preview.png b/_preview.png deleted file mode 100644 index a06d491..0000000 Binary files a/_preview.png and /dev/null differ diff --git a/_preview_wide.png b/_preview_wide.png deleted file mode 100644 index 6f5525b..0000000 Binary files a/_preview_wide.png and /dev/null differ diff --git a/contacts.php b/contacts.php index 1b50508..0275b77 100644 --- a/contacts.php +++ b/contacts.php @@ -123,6 +123,18 @@ try { exit; } + // Comptage seul (?compte=1), ajouté le 2 septembre 2026 pour la + // pastille du classeur "Contacts" sur l'écran de fond (voir + // journal section 28) : le nombre de contacts actifs, sans + // charger la liste complète juste pour ça. Volontairement + // indépendant des filtres f_* (le classeur affiche le total réel + // de la table, pas le résultat d'une recherche en cours). + if (isset($_GET['compte'])) { + $total = (int)$pdo->query('SELECT COUNT(*) FROM ASP_Contacts WHERE CNT_Actif = 1')->fetchColumn(); + echo json_encode(['total' => $total]); + exit; + } + $tri = $_GET['tri'] ?? 'CNT_Nom'; if (!in_array($tri, COLONNES_TRI_AUTORISEES, true)) { $tri = 'CNT_Nom'; diff --git a/ecran_fond.html b/ecran_fond.html index 853da27..c737bfc 100644 --- a/ecran_fond.html +++ b/ecran_fond.html @@ -177,6 +177,47 @@ opaque (au lieu d'une transparence à 62%) à la demande de Jean-Marc — reste plus sobre que les objets fonctionnels, mais plus affirmée qu'avant. */ + /* Pastille "nombre de contacts" sur le classeur Contacts (2 septembre + 2026, essai). Idée de Jean-Marc : au fur et à mesure que chaque classeur + sera branché à sa table, afficher une petite pastille collée dessous le + trou cerclé de métal, avec un chiffre — pour donner une indication + immédiate du contenu sans avoir à ouvrir le classeur. Couleur de fond + mesurée sur ecran_fond.jpg (teinte réelle du classeur "Contacts", + rgb≈3,79,99, plus sombre en photo qu'à l'écran) puis assombrie d'un + facteur ~0.55 pour que le chiffre blanc ressorte sans jurer avec le + classeur — pas une couleur arbitraire. Liseré blanc autour de la + pastille (2 fichiers/gris clair, cohérent avec le liseré déjà utilisé + sur les étiquettes de tous les classeurs sur la photo) + légère ombre + portée pour la détacher visuellement, plutôt qu'un anneau de couleur : + Jean-Marc n'avait pas de préférence tranchée sur la couleur de l'anneau, + le blanc a été choisi pour rester cohérent avec l'habillage existant + (à changer facilement si Jean-Marc préfère une autre couleur après test + réel). pointer-events:none : la pastille est purement informative, le + clic doit continuer à passer à travers vers #classeur-contacts en + dessous (même logique que #micro-icone au-dessus de #micro-desk). Le + pattern (variables IMG, positionnement dans positionner(), chargement + via un endpoint réel) est pensé pour être répliqué sur les prochains + classeurs au fur et à mesure de leur branchement — voir commentaire de + PASTILLE_CONTACTS_* plus bas dans le script. Retouchée le même jour + après premier test réel de Jean-Marc ("trop présente, liseré trop + pétant") : diamètre réduit (22px de référence → 17px) et liseré blanc + assoupli (opacité .85→.4, épaisseur 2px→1.5px) pour rester une + indication discrète plutôt qu'un élément qui attire l'œil en premier. */ + #pastille-contacts{ + position:fixed; + border-radius:50%; + background:#022b36; + box-shadow:0 0 0 1.5px rgba(255,255,255,.4), 0 1px 2px rgba(0,0,0,.45); + display:flex;align-items:center;justify-content:center; + pointer-events:none; + user-select:none; + } + #pastille-contacts span{ + color:#fff; + font-family:"Segoe UI","Arial",sans-serif; + font-weight:700; + line-height:1; + } #version-desk{ position:fixed; color:#3a2712; @@ -188,6 +229,65 @@ pointer-events:none; user-select:none; } + /* Post-its de la ToDoList personnelle (2 septembre 2026, premier + affichage réel — voir journal section 28). Posés dans la zone décrite + par ZONE_POSTITS_* plus bas dans le script : une bande occupant 30% de + la largeur de l'écran depuis le bord droit, juste au-dessus du chevalet + — décision de Jean-Marc ("le vilain petit canard sera l'humain", donc + plus de place que chaque assistant, dont la ToDoList n'est pas encore + gérée — voir Réflexions stratégiques section 11 et le fil du 2-3 + septembre). Grille à 4 colonnes × 5 lignes = 20 cases, volontairement + alignée sur CAPACITE_TABLEAU_PAR_UTILISATEUR (todolist.php) pour cette + première version — les deux devront évoluer ensemble si la capacité + change. Chaque post-it reçoit une légère rotation/décalage à + l'intérieur de sa propre case (jamais à cheval sur la case voisine, + donc jamais de chevauchement ce soir — Jean-Marc a autorisé le + chevauchement partiel mais a refusé l'empilement en tas ; rester dans + sa case est la façon la plus simple de garantir qu'on ne recrée jamais + ce tas). Décalage/rotation calculés de façon déterministe à partir de + TDL_Incr (voir hashDeterministe() dans le script) : la disposition ne + "saute" pas à chaque rechargement de l'écran. + Couleur jaune classique pour l'utilisateur (--postit-jaune) — les + couleurs par assistant restent à faire le jour où leur ToDoList sera + gérée (AGN_Couleur, voir Réflexions stratégiques section 11). + Punaise ronde en haut (photo confirmée comme du vrai liège par + Jean-Marc le 2 septembre) plutôt qu'un simple post-it posé — cohérent + avec la matière réelle du fond d'écran. Pastille d'urgence toujours + dans le coin haut-droit, jamais recouverte par du jitter (voir calcul + de bornes dans positionnerPostits()) : c'est le repère visuel ET la + garantie d'une zone de clic non ambiguë même si deux post-its finissent + visuellement proches. Pas de texte sur le post-it (choix explicite de + Jean-Marc) : le titre de la tâche n'apparaît qu'au survol (title natif), + le clic ne fait rien pour l'instant (voir journal — navigation vers + liste_todolist.html volontairement pas encore branchée). */ + .postit{ + position:fixed; + box-shadow:2px 4px 8px rgba(0,0,0,.35); + background: + linear-gradient(135deg, transparent 50%, rgba(0,0,0,.12) 50%, rgba(0,0,0,.12) 62%, transparent 62%) bottom right / 22% 22% no-repeat, + var(--couleur-postit, #fbe14a); + cursor:default; + } + .postit::before{ + content:''; + position:absolute; + top:-9px; left:50%; + transform:translateX(-50%); + width:13%; height:13%; + min-width:8px; min-height:8px; + border-radius:50%; + background:radial-gradient(circle at 35% 30%, #fff8, transparent 40%), #8a3b12; + box-shadow:0 2px 3px rgba(0,0,0,.5); + } + .postit .pastille-urgence-postit{ + position:absolute; + top:-15%; right:-15%; + width:32%; height:32%; + border-radius:50%; + box-shadow:0 0 0 2px rgba(255,255,255,.9), 0 1px 2px rgba(0,0,0,.4); + } + .postit .pastille-urgence-postit.rouge{ background:#c0392b; } + .postit .pastille-urgence-postit.orange{ background:#ff5a1f; }
@@ -210,6 +310,7 @@