Skip to content

Gestion des tags #17

Description

@bpodwinski

User Story

En tant qu'administrateur, je veux pouvoir gérer les tags de mon site afin d'organiser et catégoriser le contenu des articles et pages pour faciliter la recherche et la navigation.

Critères d'acceptation :

  • L'administrateur peut voir une liste de tous les tags existants, incluant le nom du tag et le nombre d'articles ou de pages qui y sont associés.
  • L'administrateur peut créer un nouveau tag en entrant un nom.
  • L'administrateur peut modifier un tag existant en changeant son nom.
  • L'administrateur peut supprimer un tag qui n'est plus utilisé, avec une confirmation avant la suppression.
  • Les tags sont triés par ordre alphabétique ou par nombre d'articles associés.
  • L'utilisateur peut rechercher un tag spécifique via une barre de recherche.
  • Un message indique qu'aucun tag n'est disponible s'il n'y en a pas encore de créés.
  • Le système doit vérifier qu'aucun tag dupliqué ne peut être créé (chaque nom de tag doit être unique).

Tâches techniques et composants :

Composant : TagListComponent

  • Ce composant affiche la liste de tous les tags existants dans une table ou une liste, avec des informations telles que le nom du tag et le nombre d'articles associés.
  • Chaque tag peut être modifié ou supprimé via des boutons situés à côté de chaque tag.
  • Un bouton "Ajouter un nouveau tag" permet de créer un nouveau tag.

Composant : TagItemComponent

  • Représente un tag individuel avec ses informations et les actions possibles (modifier ou supprimer).
  • Le nombre d'articles associés à chaque tag est également affiché.

Composant : TagFormComponent

  • Ce composant permet de créer ou modifier un tag. Lors de la création, il inclut un champ pour entrer le nom du tag.
  • Si un tag est passé en paramètre, le formulaire est pré-rempli pour permettre la modification.
  • Le composant valide que le nom du tag est unique et non vide.

Composant : TagDeleteComponent

  • Ce composant affiche une fenêtre modale pour confirmer la suppression d'un tag.
  • Si un tag est supprimé, il est retiré de la liste et tous les articles qui y sont associés sont mis à jour.

Composant : TagSearchComponent

  • Un champ de recherche permettant à l'administrateur de rechercher des tags par leur nom.
  • Filtre dynamiquement la liste des tags en fonction de la saisie dans le champ de recherche.

Vue principale : TagManagementView

  • Vue principale qui regroupe tous les composants liés à la gestion des tags.
  • Elle inclut la liste des tags disponibles, un formulaire pour créer ou modifier des tags, et un champ de recherche pour filtrer la liste des tags.

Validation des tags :

  • Lors de la création ou de la modification d'un tag, s'assurer que le nom du tag est unique et non vide.
  • Si un tag avec un nom en double est détecté, un message d'erreur clair doit être affiché.

Persistance des tags :

  • Les tags doivent être sauvegardés dans une base de données et liés aux articles ou pages associés.
  • Lorsqu'un tag est supprimé, les liens avec les articles ou pages doivent également être mis à jour.

Sécurité et contrôle d'accès :

  • Seul un administrateur ou un utilisateur ayant les droits nécessaires doit pouvoir ajouter, modifier ou supprimer des tags.
  • Les utilisateurs non autorisés ne doivent pas avoir accès à l'interface de gestion des tags.

Pagination ou Lazy Loading (si applicable) :

  • Si le nombre de tags est important, ajouter une pagination ou un chargement paresseux (lazy loading) pour améliorer les performances d'affichage.
  • Permettre de naviguer facilement entre les pages de tags avec des boutons "Précédent" et "Suivant", ou en affichant progressivement les tags au fur et à mesure du défilement.

Notifications d'erreur et de succès :

  • Lorsqu'un tag est créé, modifié ou supprimé avec succès, une notification visuelle doit informer l'administrateur.
  • Si une erreur se produit (comme un nom de tag en double), un message d'erreur doit être affiché immédiatement.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Projects

No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions