feat(timeline): #IMPULS-5944 aide en ligne sur la nouvelle page d'accueil - #1128
Closed
damienromito wants to merge 24 commits into
Closed
damienromito wants to merge 24 commits into
damienromito wants to merge 24 commits into
Conversation
# Conflicts: # pom.xml
* feat(feeder): #IMPULS-6065 update levelsOfEducation during AAF * feat: #IMPULS-6065 extrapolate level from AAF and default theme choice * feat: #IMPULS-6065 extrapolate level from AAF and default theme choice fix multi structure
fix(conversation): #IMPULS-6063, rendre le script idempotent (#1106)
…#1087) * feat(timeline): #IMPULS-5874 traduction for user space # Conflicts: # portal/backend/src/main/resources/i18n/fr.json # timeline/frontend/package.json
fix(conversation): #IMPULS-5906, prevent supervision messages to be removed (#1109)
* feat(conversation):#IMPULS-6108-structure-sender add backend * feat(conversation): #IMPULS-6119 affiche l'établissement de l'émetteur dans la liste des messages (#1089) Étend `User` avec `displayStructure` (cf. CONTRAT-API-IMPULS-6113-US1) et l'affiche dans MessagePreview.tsx (ellipsis + tooltip, priorité au nom de l'émetteur en largeur réduite), avec mocks et tests associés. Ajoute un worker MSW navigateur (`pnpm dev:mock`) pour vérifier le rendu visuellement sans dépendre de la recette. En profite pour retirer de mocks/handlers.ts les mocks génériques de session/theme/auth (incomplets, cassaient le rendu réel) au profit du mock direct de useEdificeClient dans les tests qui en ont besoin. Documente la convention dans conversation/CLAUDE.md. Question ouverte pour le PM (établissement masqué sans indication en largeur réduite) remontée en commentaire sur IMPULS-6113. style(conversation): #IMPULS-6119 formate handlers.ts (prettier) style(conversation): #IMPULS-6119 retire une règle CSS redondante .message-preview-sender-name { flex-shrink: 1 } n'avait aucun effet (valeur par défaut d'un flex item) — la priorité de troncature vient entièrement de .message-preview-structure { flex-shrink: 10 }. Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com> * feat(conversation): #IMPULS-6122 affiche l'établissement de l'émetteur dans la vue détail Ajoute le libellé displayStructure.name dans MessageHeader.tsx (conteneur flex-wrap existant, retour à la ligne natif, non cliquable), avec mock et tests associés — même pattern que IMPULS-6119 pour la liste. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Damien Romito Castro <damien.romito-castro@edifice.io> Co-authored-by: Damien Romito Castro <damien@romito.fr> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
…f sur le libellé d'établissement Pour des raisons d'accessibilité, le Tooltip @edifice.io/react sur le libellé d'établissement de l'émetteur (liste des messages) est remplacé par un attribut title natif sur le span tronqué. Retire par la même occasion le CSS devenu mort (contournements propres au rendu du Tooltip). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
* docs(conversation): #IMPULS-6109 ajout de la Feature Spec FS-IMPULS-6109 * docs(conversation):#IMPULS-6158 cadrage technique add gherkin on US4 * docs(conversation):#IMPULS-6135 docs api modif cadrage bandeau * adjust cadrage tech * feat(conversation): #IMPULS-6138 ajoute la modale de paramétrage du message d'absence (#1093) * add i18n mock * feat(conversation): #IMPULS-6138 ajoute la modale de paramétrage du message d'absence Modale + hook (react-hook-form) pour paramétrer/activer/modifier un message d'absence : DatePicker avec minDate réactif sur la date de fin et décalage automatique à début + 1 jour quand elle devient invalide, champs désactivés quand le message est désactivé, texte requis uniquement si activé. Écart assumé par rapport à la FS (US-1) : pas de message d'erreur inline, le bouton "Enregistrer" est simplement désactivé tant que le formulaire n'est pas valide — jugé plus simple pour le code et l'expérience. Jira IMPULS-6130, FS et cadrage mis à jour en conséquence. Autres changements : - CSS dédié au composant (AbsenceModal.css), opacité ciblée sur l'éditeur uniquement. - Clés i18n propres au module, préfixées `conversation.` (plus de common_t). - data-testid sur les boutons, format module-composant-élément-nom. - Tests hook (validation/UTC/toasts) et composant (rendu/câblage) séparés. - Doc de bonnes pratiques frontend issue du pairing (conversation/specs/IMPULS-6109/BONNES-PRATIQUES-FRONTEND.md). Contient un câblage QA temporaire dans routes/root/index.tsx (ouverture automatique de la modale au lancement) en attendant le vrai point d'entrée porté par IMPULS-6140. * feat(conversation): #IMPULS-6139 ajoute le service API et les hooks TanStack Query du message d'absence (#1096) * feat(conversation): #IMPULS-6139 ajoute le service API et les hooks TanStack Query du message d'absence (#1095) - absenceService (GET/PUT /conversation/absence) + absenceQueryKeys/useAbsenceSettings/useSaveAbsenceSettings avec setQueryData optimiste au succès - AbsenceModalContainer + useAbsenceModalContainer pour brancher AbsenceModal sur l'API, sans dépendre du store openedModal - déplace AbsenceModal/AbsenceModalContainer/hooks dans features/absence/ (regroupement par feature) - mocks MSW (mocks/datas/absences.ts + handlers/absence-handlers.ts) pour dev:mock et les tests - documente les retours de pairing dans BONNES-PRATIQUES-FRONTEND.md * add skeleton + refacto * bonne pratique skeleton * Feat impuls 6109 back (#1094) * IMPULS-6136 * IMPULS-6141 * IMPULS-6137 * IMPULS-6137 * IMPULS-6142 * IMPULS-6143 IMPULS-6144 * IMPULS-6144 * IMPULS-6148 * IMPULS-6150 * IMPULS-6150 * maj des claude.md * PR review * feat(conversation):#IMPULS-6140-display modal via dropdown (#1097) * feat(conversation): #IMPULS-6147 transmet le fuseau de l'expéditeur dans la charge utile d'envoi (#1098) * fix(conversation):#IMPULS-6130-disabled-submit-when-not-dirty * fix(conversation):#IMPULS-6130-close-modal-on-save * feat(conversation):#IMPULS-6133-add-absence-banner (#1099) --------- Co-authored-by: Vincent Billard <vincent.billard@edifice.io> * fix(conversation): #IMPULS-6109 fix cron expression * fix(conversation): ne charge les settings d'absence que pour les profils autorisés AbsenceReminderBanner appelait useAbsenceSettings pour tous les utilisateurs, alors que seuls ENSEIGNANT et PERSEDUCNAT peuvent avoir un message d'absence (cf. AppActionHeader). Le check de profil est centralisé dans useRights (canManageAbsence) et useAbsenceSettings accepte désormais un flag enabled pour ne déclencher la requête que pour ces profils. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * fix(conversation): #IMPULS-6109 fix rights on conversation schema
…essages + notifications i18n. (#1108) * fix(homepage): #IMPULS-5879, show alert messages below sm breakpoint * fix(portal): #IMPULS-5977, add missing i18n keys for notifications outside timeline
…bundle (#1114) * refactor: lazy load devtools and declare/dedupe manual chunks to make the bundle lighter * fix: tests crashed in timeline/frontend * feat(timeline): #IMPULS-6023, renderview /timeline/customize * Restore Providers wrapper in timeline/frontend/src/mocks/setup.ts Co-authored-by: jcbe-ode <67910608+jcbe-ode@users.noreply.github.com> * fix routing * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
* fix(directory): #IMPULS-6195, optimize massmail neo4j query * Ajout d'un test
* feat(timeline): #IMPULS-6019, customize form * wip * base implem * feedback from P.Saussier * feedback bis from P.Saussier * feedback from copilot * fix timeline i18n mock
…modified quiet hours push notif handling (#1121) * feat: #IMPULS-6059 add service to add push notif to push manager and modified quiet hours push notif handling * Update timeline/src/main/java/org/entcore/timeline/services/impl/DefaultPushNotifService.java Co-authored-by: jcbe-ode <67910608+jcbe-ode@users.noreply.github.com> * PR review * rollback package.json --------- Co-authored-by: jcbe-ode <67910608+jcbe-ode@users.noreply.github.com>
…isibles to remove cypher injection (#1126) * fix(comunication): #IMPULS-6177 refactor UserUtils.filterFewOrGetAllVisibles to remove cypher injection * PR review
Proxy /zendeskGuide/config in dev and call the shared useZendeskGuide hook on PageLayout.Root, so the native launcher shows on the 2D homepage rebuild before it is replaced by a custom trigger.
|
jenkinsEdificePublic
force-pushed
the
develop-b2school
branch
from
September 7, 2026 12:15
d1f8a4f to
91ad7e0
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.



Description
Cadrage + implémentation de l'aide en ligne (widget Zendesk) sur la nouvelle page d'accueil 2D (
timeline/frontend).État actuel : étape 0 seulement — le hook partagé
useZendeskGuide(déjà utilisé par blog, actualites, conversation, portal via<Layout>) est simplement rebranché sur la nouvelle homepage (<PageLayout>), avec le proxy Vite dev nécessaire. Ça restaure le launcher natif Zendesk, sans le composant custom (badge Edifice + bouton "?") attendu par la maquette.Suite prévue (dans cette PR, à venir) :
HelpZonemutualisé côtéedifice-frontend-framework(badge Edifice replié/étendu + bouton d'aide custom masquant le launcher Zendesk natif)useZendeskGuide(optionsmodule,color,customLauncher, APIopen/close)publicConfdu module portal)Fixes
https://edifice-community.atlassian.net/browse/IMPULS-5944
Type of change
Which packages changed?
Tests
cd timeline/frontend && pnpm dev.env)Reminder
Security flaws
Performance impacts (think bulk !)
Unit tests were replayed
Unit tests were added and/or changed
I have updated the reminder for the version including my modifications
All done ! 😃