44 Commits

Author SHA1 Message Date
Thomas Fransolet
820cd9efa8 Misc update ressource to mediatheque, refonte visuelle complète (WIP) 2026-09-04 16:50:03 +02:00
Thomas Fransolet
608231f71c C4 : compression des images à l'upload, 2560 px / JPEG q82
flutter build web vert. Un seul helper, ImageCompressor, appelé par les
DEUX chemins d'upload de resources_screen — c'est le motif qui a fait
diverger Create et Upload côté serveur deux fois de suite : sur
StoragePath en C1, sur le pré-vol de quota en C3.

La compression se fait AVANT resourceCreate, pas avant l'upload. Le
contrôle de quota livré en C3 porte sur sizeBytes à la création : le
faire après aurait fait décider le serveur sur la taille du fichier
d'origine, et compté au quota une image qui n'existe pas. Un quota qui
compte 12x trop se remplit 12x trop vite.

Deux écarts assumés par rapport à l'énoncé « 2560 px / JPEG q82 » :

- Un PNG à canal alpha reste un PNG. Le passer en JPEG remplirait la
  transparence de noir, ce qui abîmerait logos et filigranes. Le
  redimensionnement s'applique dans les deux cas ; seul l'encodage
  diffère, et le type MIME suit — sinon Firebase servirait un JPEG
  étiqueté PNG.
- Si le ré-encodage produit un fichier plus gros que l'original — ce
  qui arrive sur une petite image déjà bien encodée — l'original est
  conservé. Un échec de décodage renvoie aussi l'original plutôt que
  de bloquer l'upload.

Défaut préexistant corrigé au passage : le second chemin d'upload ne
renseignait sizeBytes ni avant ni après. Toutes les ressources créées
par ce chemin comptent donc 0 octet au quota sur l'existant — même
famille que ce que C1 et C3 ont trouvé côté serveur, et un argument de
plus pour le backfill C2.

image 4.2.0 déclarée explicitement : elle était déjà présente en
transitif, dépendre d'un hasard de résolution pour une fonction
utilisateur n'est pas tenable.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-12 15:52:14 +02:00
Thomas Fransolet
eb8e8497c8 Socle visuel et écran Guide IA à deux onglets
Socle visuel (constants.dart)
- 11 rôles typographiques, 8 espacements, 5 rayons, paddings de carte et de page,
  extraits du CSS des maquettes validées (DOCS/claude design/).
- Les couleurs restent celles de l'app : un écran neuf se fond dans manager-app,
  il n'y ouvre pas une seconde palette. Seules les valeurs sans équivalent
  existant sont reprises — remplissages discrets, bordures, gris atténué, ambre.
- Mesuré avant : 11 tailles de police différentes dans lib/Components/, de 9 à 25 px.

Écran Guide IA
- Coquille à deux onglets : Configuration / Ce que demandent vos visiteurs.
- Aperçu de conversation branché sur le vrai POST /api/AI/chat, pas une simulation.
- Carte « Ce que connaît votre guide » sur GET /api/Ai/knowledge/{id} : mesuré sur
  l'index vectoriel, pas sur les tables de contenu — une section désactivée en est
  purgée. Les « points d'intérêt » de la maquette deviennent « morceaux de contenu » :
  les points d'une carte sont indexés dans le texte de leur SectionMap.
- Onglet des questions visiteurs alimenté par GET /api/Ai/insights/{id}. Une carte
  sans données se masque au lieu d'afficher un cadre creux.

Client API
- AIApi était dans le client généré mais exposé nulle part dans client.dart, où
  les 18 autres façades le sont. Câblé.

34 clés i18n FR/EN/NL. flutter analyze propre, flutter build web .

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 10:48:40 +02:00
Thomas Fransolet
0059582e9f Multi langues + Assign plan dialog + display quotas + translator IA 2026-04-10 17:17:49 +02:00
Thomas Fransolet
7263303b7e Service worker update {{}} - menu working ! + clean code 2025-05-23 15:17:01 +02:00
Thomas Fransolet
e16e898140 Map done ! 2025-05-15 15:11:21 +02:00
Thomas Fransolet
214fe574e6 Update to add ressource on detail view 2024-06-21 22:44:26 +02:00
Thomas Fransolet
e5a2d4f06a Update tarif to title (more char) + add image geopoint 2024-06-20 16:23:44 +02:00
Thomas Fransolet
fb0a8674d1 Wait 2 sec before refresh ressources (on create) 2024-03-14 15:04:43 +01:00
Thomas Fransolet
8824609fad Clean code + add pick location 2024-03-14 14:41:55 +01:00
Thomas Fransolet
57c7d56306 clean code + accept empty for descriptions 2024-01-16 16:05:43 +01:00
Thomas Fransolet
4b7dac07a8 update service generation + gif and webm + wip select resource 2023-12-23 14:34:28 +01:00
Thomas Fransolet
0ffe261e86 Add audio, video, image, pdf and json files (online and local) 2023-12-17 16:14:39 +01:00
Thomas Fransolet
9d099a201c Wip handle new entities and updates for visitNamur 2023-12-15 17:00:57 +01:00
Thomas Fransolet
dca7474551 Init version 2.0.0 + wip visitNamur request + wip upload resource to firebase 2023-12-14 17:52:07 +01:00
a3a62d1903 Null safety ! 2023-04-01 16:52:13 +02:00
Thomas Fransolet
407fe28ead Add update resource label possibility + update layout 2023-03-31 17:13:34 +02:00
fb4f5e504d Update 2mb to 1.5mb 2023-03-10 20:16:43 +01:00
fb5973d016 View audio title on audio selection + add possibility to choose null on select resource 2023-03-10 17:42:31 +01:00
ed9c4bfc15 Update openapi generation .. + update code + fix issue on authenticate try on build 2022-12-22 17:30:37 +01:00
412746e39a WIP audioplayer view support but not supported, need project upgrade 2022-10-27 22:27:44 +02:00
eddc4005ae Add audio in web + update code for resource .. 2022-10-27 17:32:44 +02:00
ddda68c911 Show only title translations on article images + audio resourcetype + Nom to Identifiant 2022-10-26 17:14:11 +02:00
42c442b145 Update logic 2022-10-20 16:18:57 +02:00
24ab7796e2 Add instance generation service + dto + not show title and description for article 2022-10-06 17:06:08 +02:00
d30223eb1f Clean code + add icons (mymuseum) 2022-09-14 17:48:58 +02:00
85db23ee76 Update loading 2022-09-10 23:10:05 +02:00
Thomas Fransolet
54091ea2db upload multiple files Windows and Web + if web no remember me 2021-12-23 13:48:46 +01:00
Thomas Fransolet
c8fd56ebdc Fix resource bug + flutter update 2021-10-14 19:49:37 +02:00
Thomas Fransolet
2674233113 Add import/export config + add duration for notification + update service generation (no more detail resource) 2021-08-24 18:07:32 +02:00
Thomas Fransolet
b4a4d21c56 Remove add resource for dispose + fixed sized windows + get result as function modal + fix bugs 2021-07-27 17:39:37 +02:00
Thomas Fransolet
6fa8145f53 Add loading animation 2021-07-01 17:05:47 +02:00
Thomas Fransolet
5651022cce resource select, show only image when select 2021-05-26 18:37:18 +02:00
Thomas Fransolet
019402b4c0 Resolve renderflex overflowed for resources list 2021-05-25 19:15:56 +02:00
Thomas Fransolet
ab833808a4 Layout menu (translation as horizontal list) + add filter in resource screen (name) 2021-05-25 19:07:44 +02:00
Thomas Fransolet
6037b287d7 Map details done + change translations modal 2021-05-22 00:04:59 +02:00
Thomas Fransolet
3ecf85d35e Service generation + add order, resourceId to imageDTO + SliderDTO finish ! 2021-05-21 20:00:31 +02:00
Thomas Fransolet
45ce7a345e Service generation + data for webDTO and videoDTO + wip slider (reordable list) 2021-05-13 22:03:00 +02:00
Thomas Fransolet
408177f92b Service generation update + Create resource modal fix + wip select image in section 2021-05-12 18:54:55 +02:00
Thomas Fransolet
a116508dd5 Upload url image + url video WIP 2021-05-11 18:13:02 +02:00
Thomas Fransolet
fa378695f8 update service generation + add vlc player (for local video) + show resource (image from service) + upload new resource 2021-05-07 22:58:40 +02:00
Thomas Fransolet
869c071de5 Add border radius to alert dialog + test file picker on windows + new and show ressource (WIP) + ressource screen (wip) 2021-05-06 23:05:29 +02:00
Thomas Fransolet
0245d659bf Add real client api call for config and resources 2021-04-21 18:41:36 +02:00
Thomas Fransolet
1a043ec675 Add side menu + children (devices, configurations & resources) 2021-04-21 18:26:37 +02:00