mirror of
https://github.com/JMP-MS/ASPIC.git
synced 2026-10-27 17:17:08 +00:00
36 lines
6.0 KiB
Markdown
36 lines
6.0 KiB
Markdown
## 22. Badge société dans le bandeau et avatar utilisateur enfin dynamique, version V1.001 (29 août 2026)
|
|
|
|
**Contexte.** Jean-Marc prépare la cohabitation prochaine de deux façons d'utiliser ASPIC : son espace de développement habituel (avec Claude, comme aujourd'hui) et un futur espace de test séparé, où il mènera des essais avec des agents IA tiers (potentiellement Hostinger Agents — voir réflexions stratégiques, section 9) indépendamment du bac à sable de développement, pour limiter le risque de casse. Besoin exprimé : pouvoir voir d'un coup d'œil dans quel environnement il se trouve, sans attendre la mise en place complète de l'architecture MIRADOR/aspic.bzh (section 21, toujours non déployée à ce stade).
|
|
|
|
**Décision d'architecture discutée avant implémentation.** Deux options envisagées : une colonne `USR_Societe` dans `ASP_Users` (redondante par construction — même valeur sur toutes les lignes d'une même base), ou une constante par environnement façon `version.php` (une seule valeur à changer par déploiement, aucune redondance). Jean-Marc a tranché pour la colonne dans `ASP_Users`, en assumant consciemment la redondance : avec 2-3 utilisateurs par base, ce n'est pas un vrai risque pratique — même raisonnement déjà tenu pour `MIR_Code` non unique globalement (section 21) — et ça permettrait même de distinguer par exemple "Société X - Standard" et "Société X - Commercial" si plusieurs profils cohabitaient un jour dans une même base. Le jour où le nombre d'utilisateurs par base grossirait vraiment, ce sera le signe que les problèmes ont changé de forme et qu'une autre approche s'impose — pas avant.
|
|
|
|
**Structure.**
|
|
|
|
```sql
|
|
ALTER TABLE `ASP_Users`
|
|
ADD COLUMN `USR_Societe` varchar(40) DEFAULT NULL AFTER `USR_Nom`;
|
|
```
|
|
|
|
Colonne texte libre (pas un code court à 3 lettres comme évoqué au tout début de la discussion), longueur alignée sur `CNT_Société` (ASP_Contacts). `NULL` = badge masqué pour cet utilisateur (ex. `Vik`, le compte système, n'a pas vocation à en avoir un). Gérée à la main comme le reste de `ASP_Users`.
|
|
|
|
**Découverte en cours de chantier : l'avatar n'était pas vraiment branché sur la session.** En inspectant `liste_contacts.html` (clone GitHub en lecture, même mécanisme qu'aux sections 20-21) pour localiser l'élément à modifier, `#avatar` s'est révélé afficher "JMP" en dur dans le HTML depuis le tout premier jet de cet écran — jamais corrigé une fois la session utilisateur réelle mise en place (section 15), simplement parce qu'un seul compte utilisateur était réellement utilisé jusqu'ici. Corrigé à cette occasion, avec l'accord de Jean-Marc : l'avatar lit désormais le `USR_Code` retourné par `preferences.php`.
|
|
|
|
**Implémentation.**
|
|
|
|
- `preferences.php` (GET) renvoie désormais aussi `USR_Code` et `USR_Societe` de l'utilisateur de la session en cours, en plus des deux ratios déjà renvoyés — même restriction de sécurité qu'avant (toujours `$_SESSION['USR_Code']`, jamais un code fourni côté client). `USR_Societe` n'est pas modifiable via ce endpoint (PUT reste limité aux deux colonnes de ratio).
|
|
- `liste_contacts.html` : nouvel élément `#badge-societe`, forme pilule non cliquable, positionné juste avant l'avatar dans le bandeau. Masqué (attribut HTML `hidden`) si `USR_Societe` est vide pour l'utilisateur connecté.
|
|
- Couleur : Jean-Marc pensait initialement que l'avatar existant était déjà bleu ("j'ai la berlue") ; vérification faite, il est gris (`var(--gris-fonce)`) aussi bien dans le code que confirmé en production. Une nouvelle variable CSS `--bleu-badge` (`#2E5AAC`) a d'abord été introduite pour le seul badge société, puis Jean-Marc a demandé d'étendre cette même couleur à l'avatar : les deux éléments d'identité affichés côte à côte (société, utilisateur) partagent maintenant la même teinte bleue.
|
|
- Numéro de version incrémenté à `V1.001` dans `version.php` (convention actée section 21 : à la main, une fois en fin de session, avant le push GitHub).
|
|
|
|
**Tests effectués avant chaque livraison :** `php -l` (`preferences.php`, `version.php`), `node --check` sur le JavaScript extrait, équilibre des balises `<div>` (105/105, +1 par rapport à la version précédente pour le nouveau badge). Test fonctionnel Playwright avec `preferences.php` simulé : cas société renseignée (badge visible, texte affiché, avatar avec le vrai code) et cas société vide (badge proprement masqué) — captures d'écran à l'appui. Confirmation par mesure de la couleur calculée (`getComputedStyle`) que l'avatar et le badge partagent bien la même teinte après la demande d'unification.
|
|
|
|
**Validé par Jean-Marc en production le 29 août 2026** ("C'est exactement ce que je voulais ! ... ça rend super bien !"), avec un nom de société assez long affiché sans souci visuel constaté à ce stade.
|
|
|
|
**Constat au passage (déjà noté section 8) :** le clone GitHub du 29 août montre que `identification.html` contient toujours le compte de démonstration (`UTILISATEURS_DEMO`) — décalage GitHub/production toujours pas corrigé à cette date, simplement reconfirmé, hors périmètre de ce chantier. **Ce fichier, comme les deux autres livrés ce jour-là (`liste_contacts.html`, `preferences.php`), n'avait à ce stade jamais été poussé sur GitHub — resté "en retard" jusqu'à la réconciliation du 30 août 2026, voir section 23.**
|
|
|
|
**Reste à faire, plus tard :**
|
|
|
|
- Peupler `USR_Societe` pour les comptes existants qui n'y sont pas encore.
|
|
- Le badge n'a pas de gestion de troncature visuelle pour un nom nettement plus long que "Mevelia Solutions" — à surveiller à l'usage si un futur nom de société s'avère beaucoup plus long.
|
|
- Une fois l'architecture MIRADOR/aspic.bzh réellement déployée (section 21, effectivement branchée section 24), réévaluer si ce badge doit continuer à venir de `ASP_Users` (base cible) ou évoluer vers une autre source, selon la façon dont les futurs environnements de test seront effectivement structurés.
|