Skip to content

Gestion des pages #6

Description

@bpodwinski

User Story

En tant qu'administrateur, je veux pouvoir gérer les pages de mon site (créer, modifier, supprimer) afin de contrôler le contenu statique de mon site web.

Critères d'acceptation :

  • L'utilisateur peut voir une liste de toutes les pages existantes, incluant le titre, l'extrait du contenu, et la date de création/modification.
  • L'utilisateur peut créer une nouvelle page en entrant un titre, du contenu, et en définissant le statut (brouillon ou publié).
  • L'utilisateur peut modifier une page existante (changer le titre, le contenu, et la date de publication).
  • L'utilisateur peut supprimer une page existante.
  • Si aucune page n'est disponible, un message informant qu'aucune page n'est disponible est affiché.
  • Lorsqu'une page est créée ou modifiée, une URL unique (slug) est générée automatiquement ou définie manuellement.
  • Les pages sont affichées en ordre chronologique décroissant (les plus récentes en premier).

Tâches techniques et composants :

Composant : PagesListComponent

  • Ce composant récupère la liste des pages via l'API et affiche les pages dans un tableau ou une liste.
  • Chaque entrée de page inclut le titre, un extrait du contenu, la date de création et de modification, ainsi que des boutons pour modifier et supprimer la page.
  • Ce composant gère également la pagination si nécessaire.

Composant : PageItemComponent

  • Représente une page individuelle avec des options pour la modifier et la supprimer.
  • Chaque page est affichée avec son titre, un extrait de contenu, et des boutons pour les actions CRUD (modifier/supprimer).

Composant : PageFormComponent

  • Ce composant permet de créer ou modifier une page. Si une page est passée en paramètre, le formulaire est pré-rempli pour la modification.
  • Les champs incluent le titre, le contenu, et le statut (brouillon ou publié).
  • Permet à l'utilisateur de générer ou modifier un slug pour l'URL de la page.

Composant : PageDeleteComponent

  • Ce composant affiche une fenêtre modale pour confirmer la suppression d'une page.
  • Si la suppression est confirmée, la page est supprimée de la liste sans nécessiter un rechargement complet de la vue.

Vue principale : PagesView

  • Vue principale où sont affichés tous les composants. Elle inclut un bouton "Ajouter une nouvelle page" qui redirige vers le PageFormComponent pour la création d'une nouvelle page.
  • La liste des pages est affichée en utilisant le PagesListComponent, et chaque page peut être modifiée ou supprimée via des actions associées.

Gestion des Slugs et URL :

  • Lors de la création ou modification d'une page, un slug est généré automatiquement à partir du titre.
  • Si l'utilisateur souhaite, il peut modifier manuellement le slug.
  • Le slug doit être validé pour qu'il soit unique afin d'éviter tout conflit d'URL.

Validation des données de la page :

  • Valider les champs obligatoires comme le titre et le contenu.
  • Vérifier que le slug généré ou modifié est unique en consommant l'API.
  • Afficher des messages d'erreur clairs si des validations échouent.

Pagination ou Lazy Loading (si applicable) :

  • Si le nombre de pages est important, ajouter une pagination ou un chargement paresseux (lazy loading).
  • Permettre de naviguer entre les pages avec des boutons "Précédent" et "Suivant", ou d'afficher plus de pages au fur et à mesure du défilement.

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

  • Mettre en place un contrôle d'accès pour que seules les personnes autorisées (administrateurs ou éditeurs) puissent créer, modifier ou supprimer des pages.
  • Gérer les permissions via des règles d'accès aux composants et routes.

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