diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs index 6cda50f..547c654 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs @@ -94,6 +94,7 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers } + // GET: Administration/Styles/Delete/5 public ActionResult Delete(int id) { @@ -130,5 +131,55 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers return View(model); } } + + // GET: Administration/Styles/Edit/5 + [HttpGet] + public ActionResult Edit(int id) + { + // Recherche du style (simulation avec la liste _styles) + var style = _styles.FirstOrDefault(s => s.IdStyle == id); + + if (style == null) + { + return NotFound(); + } + + // Mapping vers le ViewModel + var model = new StyleEditViewModel + { + IdStyle = style.IdStyle, + Libelle = style.Libelle + }; + + return View(model); + } + + // POST: Administration/Styles/Edit/5 + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Edit(int id, StyleEditViewModel model) + { + if (!ModelState.IsValid) + { + return View(model); + } + + try + { + // TODO : Mettre à jour en base de données ici + // var styleDb = _context.Styles.Find(id); + // styleDb.Libelle = model.Libelle; + // _context.SaveChanges(); + + _logger.LogInformation("Style {Id} mis à jour : {Libelle}", id, model.Libelle); + return RedirectToAction(nameof(Index)); + } + catch (Exception e) + { + _logger.LogError(e, "Erreur lors de la modification du style {Id}", id); + ModelState.AddModelError("", "Une erreur est survenue lors de la modification."); + return View(model); + } + } } -} \ No newline at end of file +} diff --git a/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleEditViewModel.cs b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleEditViewModel.cs new file mode 100644 index 0000000..ce12b73 --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleEditViewModel.cs @@ -0,0 +1,27 @@ +// +// Copyright (c) Webzine. Tout droit réservé. +// + + +namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style +{ + /// + /// ViewModel pour la modification d'un style en administration. + /// + + public class StyleEditViewModel + { + + /// + /// Obtient ou définit le libellé du style. + /// + + public int IdStyle { get; set; } + + /// + /// Obtient ou définit le libellé du style. + /// + + public string Libelle { get; set; } + } +} diff --git a/Webzine.WebApplication/Areas/Administration/Views/Styles/Edit.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Styles/Edit.cshtml new file mode 100644 index 0000000..e9b763b --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/Views/Styles/Edit.cshtml @@ -0,0 +1,47 @@ +@model Webzine.WebApplication.Areas.Administration.ViewModels.Style.StyleEditViewModel + +@{ + ViewData["Title"] = "Editer un style"; +} + +
+

Editer un style

+
+ +
+ + @* Champ caché pour l'ID *@ + + + @* Conteneur Flex pour alignement horizontal (Label - Input - Bouton) *@ +
+ + @* Label *@ +
+ +
+ + @* Input *@ +
+ +
+ + @* Bouton *@ +
+ +
+
+ + @* Zone d'erreur spécifique au champ *@ +
+ +
+ +
+ +
+ Retour à l'administration des styles +
+
diff --git a/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml index 216f9cb..7aaa93d 100644 --- a/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml +++ b/Webzine.WebApplication/Areas/Administration/Views/Styles/Index.cshtml @@ -4,22 +4,23 @@ ViewData["Title"] = "Styles"; } -
-
-

Gestion des Styles

- @* Lien vers la création (optionnel si vous n'avez pas encore fait l'action Create) *@ +
+ +

Styles

+
+ +
- - +
+ - - - + + @@ -28,15 +29,14 @@ @foreach (Webzine.Entity.Style style in Model.Styles) { - - - @@ -46,7 +46,7 @@ else { - + }
#LibelléActionsLibelléActions
- @style.IdStyle - + @style.Libelle - @* Bouton Supprimer (correspond à votre action Delete) *@ - + + + + +
Aucun style disponible.Aucun style disponible.