Commit graph

891 commits

Author SHA1 Message Date
isUnknown
86db1f5a0c Fix collectLight() : inclure author, text, location pour l'affichage
Problème : collectLight() ne retournait que id/type/isRead/date, causant
notification.author undefined dans le frontend.

Solution : Inclure tous les champs nécessaires à l'affichage (author, text,
location) mais toujours alléger en excluant les gros détails inutiles.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 11:55:17 +01:00
isUnknown
2791bc4462 Ajout invalidation cache notifications dans hook file-update
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 11:42:40 +01:00
isUnknown
bb71da081b Ajout du système de cache pour les notifications
Problème : Les notifications étaient collectées à chaque requête sur
projects.json, causant des problèmes de performance et de mémoire.

Solution : Mise en cache des notifications par projet et par utilisateur
- Nouvelle méthode getNotificationsLight() dans ProjectPage avec cache
- Cache invalidé automatiquement via les hooks existants (page/file update)
- Cache par utilisateur pour inclure le isRead spécifique

Performance : Les notifications sont calculées une fois puis servies depuis
le cache jusqu'à ce qu'un changement survienne (commentaire, brief, etc.)

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 11:42:20 +01:00
isUnknown
e73e25b1da Ajout .user.ini : augmentation limite mémoire PHP à 512M
Temporaire pour gérer le chargement des notifications de tous les projets.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 11:19:14 +01:00
isUnknown
0a980603a4 Ajout de collectLight() pour optimiser le chargement du listing des projets
Problème : projects.json.php causait un dépassement mémoire en collectant
toutes les notifications complètes (avec author, location, text, etc.) pour
tous les projets.

Solution : Nouvelle méthode collectLight() qui ne retourne que les données
minimales nécessaires au frontend pour afficher les indicateurs :
- id, type, isRead, date
- location.project.uri (pour le filtrage)

Les détails complets sont toujours chargés dans project.json.php individuel.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 11:18:59 +01:00
isUnknown
0250dc1487 Fix : problème de mémoire lors du chargement des projets
Problème : projects.json.php collectait les notifications dérivées pour TOUS
les projets d'un coup, ce qui causait un dépassement de mémoire (HTTP 500).

Solution :
- projects.json.php : Ne collecte plus les notifications (retourne [])
- project.json.php : Collecte les notifications uniquement pour le projet affiché

Les notifications seront chargées à la demande quand on ouvre un projet,
pas lors du listing initial.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 11:16:17 +01:00
isUnknown
f614884da0 update project overview 2026-01-15 11:03:50 +01:00
isUnknown
9d12ccb209 Fix : ne compter que les commentaires des images, pas ceux du PDF
Problème : Dans le kanban, la carte du brief client custom (Images) affichait
aussi le nombre de commentaires du PDF, alors qu'il n'y a pas de système de
commentaires pour les images du brief custom.

Solution : Filtrer pour ne compter que les commentaires des fichiers de type
'image', et non tous les fichiers du step.

Bonus : Suppression du paramètre obsolète ?step=images dans ClientBrief.vue

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 10:58:41 +01:00
isUnknown
cfd679bc15 Suppression des composants obsolètes Intro et ModeSelection
Ces composants faisaient partie de l'ancien système de steps du Brief
qui a été supprimé. Ils ne sont plus utilisés.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 10:53:50 +01:00
isUnknown
04d8da39fd Simplification : Brief.vue affiche toujours Images directement
Suppression du système de steps obsolète (Intro → ModeSelection → Images).
/client-brief affiche maintenant toujours le composant Images, sans conditions
ni paramètres d'URL (?step=images).

Les briefs avec PDF sont gérés via les dialogues uniquement.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 10:52:12 +01:00
isUnknown
6ff59e9b07 Fix : URL correcte pour notifications de brief validé depuis PDF + redirect briefs vides
Problème 1 : Les notifications de brief validé depuis un PDF renvoyaient vers
/projects/xxx/client-brief au lieu de l'URL complète avec dialog et fileIndex.

Problème 2 : Les URL /projects/xxx/client-brief pour des briefs non créés
affichaient une page vide au lieu de rediriger vers le kanban.

Solutions :
- Stocker validationDialogUri lors de la validation du brief
- Utiliser ce dialogUri dans ContentProvider et Notifications.vue
- Rediriger vers le projet parent si brief vide et non validé

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-01-15 10:44:30 +01:00
isUnknown
a7d315942a Refonte du système de notifications : passage aux notifications dérivées
Remplace le système de notifications stockées par un système de providers
qui dérivent les notifications des données existantes (commentaires, réponses,
demandes de projet, demandes de rendez-vous, validations de brief).

- Ajout du NotificationCollector et de l'interface NotificationProvider
- Création de 5 providers : Comment, Reply, ProjectRequest, AppointmentRequest, Content
- Métadonnées de notifications stockées directement sur les entités source
- Nouvelles routes mark-as-read et mark-all-read
- Mise à jour du frontend pour le nouveau système
- Route de migration pour les données existantes

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-15 10:31:31 +01:00
isUnknown
c68b51f639 git : ignore claude settings 2026-01-14 14:55:12 +01:00
isUnknown
d7e96541a0 remove cache busting based on query string 2025-10-08 15:50:25 +02:00
isUnknown
1e890cfa2e uncomment observers 2025-10-08 15:15:38 +02:00
isUnknown
4223a9d522 disable observer 2025-10-08 15:08:53 +02:00
isUnknown
cde0eb1943 assign default values for all projects 2025-10-08 15:03:27 +02:00
isUnknown
fb1a86712d assign default value for projects 2025-10-08 15:01:08 +02:00
isUnknown
d552b6bf5e fix unreadNotification 2025-10-08 14:58:29 +02:00
isUnknown
4054c54e57 assign default values 2025-10-08 14:53:09 +02:00
isUnknown
f9796be7f2 CI : refactor 2025-10-08 14:49:33 +02:00
isUnknown
22407bd9b2 improve CI 2025-10-08 14:47:21 +02:00
isUnknown
e5a3f7b812 imperove CI 2025-10-08 14:43:29 +02:00
isUnknown
7c0e0e4798 improve CI 2025-10-08 14:41:56 +02:00
isUnknown
dca0f18cbb improve CI 2025-10-08 14:38:42 +02:00
isUnknown
c6d973e126 CI : create specific build for preprod 2025-10-08 14:34:22 +02:00
isUnknown
d9066defce Merge branch 'preprod' 2025-10-08 12:45:33 +02:00
isUnknown
3fc9d925e5 add js/css cache busting by query string 2025-10-08 12:41:07 +02:00
isUnknown
2b461b305e Revert "add cache busting by query string"
This reverts commit 8003b51605.
2025-10-08 12:37:22 +02:00
isUnknown
8003b51605 add cache busting by query string 2025-10-08 12:33:41 +02:00
isUnknown
10352babcd #176 2025-10-08 11:54:12 +02:00
6d5899a6c7 fix #175 2025-10-07 15:41:48 +02:00
isUnknown
d3bab40167 fix undefined dynamic files 2025-10-05 17:44:16 +02:00
isUnknown
9056befcfd update CI 2025-10-05 17:32:44 +02:00
isUnknown
33ec908a23 merge main -> preprod 2025-10-05 17:31:53 +02:00
isUnknown
8eaa893994 #170 2025-10-02 15:12:20 +02:00
isUnknown
5deb07f09d #170 2025-10-02 12:42:15 +02:00
isUnknown
c11a85e7f8 vite config : ignore /local and /public/** to improve perf 2025-10-02 09:53:59 +02:00
bf23084e48 Darken tracks ::scroll-button border color #170 2025-10-01 17:06:53 +02:00
isUnknown
21714e1808 virtual sample : disable compare mode on dialog close 2025-10-01 16:30:07 +02:00
76b67e4756 hotfix .selector-dropdown label text overflow 2025-10-01 16:23:08 +02:00
efb43c1b9a fix .selector-dropdown label text overflow 2025-10-01 16:17:40 +02:00
isUnknown
4d09006fce dynamic view : show compare mode button even if only one tracks because now there can be variations 2025-10-01 13:13:44 +02:00
isUnknown
8262466f5a multiselect working 2025-10-01 13:10:28 +02:00
isUnknown
d41a05d367 multiselect : leave compare mode ok 2025-10-01 12:51:17 +02:00
isUnknown
651774ac8a multiselect : affiche le placeholder si la current value est null 2025-10-01 12:03:31 +02:00
isUnknown
ec1acc7671 CI : fix dep conflict 2025-09-24 09:32:30 +02:00
isUnknown
e185d15815 node : update vite plugin-vue 2025-09-24 09:17:59 +02:00
isUnknown
b1f7854510 refresh cache button plugin : add last cache update date and time on button title 2025-09-24 09:13:04 +02:00
isUnknown
3c9eed7804 remove refresh cache button plugin 2025-09-23 08:20:50 +02:00