4.9 KiB
4.9 KiB
Feature: Gestion des notes internes pour les salariés (Staff)
📝 Description
Cette fonctionnalité permet au staff de :
- Ajouter des notes internes pour chaque salarié
- Modifier les notes existantes
- Visualiser les notes dans une interface claire
Les notes sont stockées dans la colonne notes de la table salaries et sont visibles uniquement par le staff.
🔧 Fichiers modifiés
1. /components/staff/SalariesGridSimple.tsx (MODIFIÉ)
Ajouts :
- Ajout du champ
notesdans le typeSalarie - États pour gérer l'édition :
isEditingNote: booléen pour mode éditionnoteValue: valeur temporaire de la note en cours d'éditionsavingNote: indicateur de sauvegarde en cours
Fonctions ajoutées :
handleSaveNote(): Sauvegarde la note via l'APIhandleStartEditNote(): Active le mode édition et charge la note actuellehandleCancelEditNote(): Annule l'édition en cours
UI de la Card Note interne :
Mode Lecture (note existante) :
- Affichage de la note dans un bloc jaune avec bordure
- Format
whitespace-pre-wrappour respecter les retours à la ligne - Bouton "✏️ Modifier la note"
Mode Lecture (pas de note) :
- Message "Aucune note enregistrée pour ce salarié"
- Bouton "+ Ajouter une note"
Mode Édition :
- Textarea de 5 lignes avec placeholder
- Bouton "Enregistrer" avec loader pendant la sauvegarde
- Bouton "Annuler" pour quitter sans sauvegarder
- Désactivation des contrôles pendant la sauvegarde
2. /app/api/staff/salaries/update/route.ts (MODIFIÉ)
Modifications :
- Ajout de
'notes'dans la listeallowedFields - Permet maintenant de mettre à jour la colonne
notesde la tablesalaries
3. /app/(app)/staff/salaries/page.tsx (MODIFIÉ)
Modifications :
- Ajout de
notesdans le.select()de la requête Supabase initiale - Permet de charger les notes existantes au chargement de la page
4. /app/api/staff/salaries/search/route.ts (MODIFIÉ)
Modifications :
- Ajout de
notesdans le.select()de la requête de recherche - Permet d'avoir les notes dans les résultats de recherche
🎨 Interface utilisateur
Card "Note interne"
📝 Note interne
────────────────────────
[Mode vide]
Aucune note enregistrée pour ce salarié.
[+ Ajouter une note]
[Mode avec note]
┌──────────────────────────────┐
│ Note existante qui peut │
│ contenir plusieurs lignes │
│ avec retours à la ligne │
└──────────────────────────────┘
[✏️ Modifier la note]
[Mode édition]
┌──────────────────────────────┐
│ Textarea éditable │
│ │
│ │
│ │
└──────────────────────────────┘
[Enregistrer] [Annuler]
💾 Stockage
- Table :
salaries - Colonne :
notes(TEXT, nullable) - Format : Texte libre avec support des retours à la ligne
- Visibilité : Staff uniquement
🔒 Sécurité
- Seul le staff peut lire et modifier les notes
- Validation côté serveur via
staff_users.is_staff - Les notes ne sont jamais exposées aux salariés
⚡ Comportement
- Changement de salarié : Réinitialise automatiquement le mode édition
- Sauvegarde : Mise à jour optimiste + confirmation serveur
- Annulation : Restaure la valeur d'origine sans sauvegarder
- Feedback visuel : Loader pendant la sauvegarde, désactivation des boutons
🎯 Cas d'usage
- Notes RH confidentielles
- Historique des échanges
- Alertes ou rappels internes
- Informations administratives spécifiques
- Tout commentaire utile pour le suivi du salarié
✅ Tests recommandés
-
Ajout d'une note sur un salarié sans note
- Cliquer sur "+ Ajouter une note"
- Saisir du texte avec plusieurs lignes
- Valider et vérifier l'affichage
-
Modification d'une note existante
- Sélectionner un salarié avec une note
- Cliquer sur "✏️ Modifier la note"
- Modifier le texte
- Valider et vérifier la mise à jour
-
Annulation
- Commencer à éditer une note
- Cliquer sur "Annuler"
- Vérifier que les modifications ne sont pas sauvegardées
-
Changement de salarié pendant l'édition
- Éditer une note
- Sélectionner un autre salarié
- Vérifier que le mode édition se désactive
-
Retours à la ligne
- Ajouter une note avec plusieurs paragraphes
- Vérifier que les retours à la ligne sont préservés
-
Sauvegarde d'une note vide
- Éditer une note existante
- Vider le contenu
- Sauvegarder
- Vérifier qu'elle devient "Aucune note"