From 9002836da067b5e721e7572edc0605eee9606a30 Mon Sep 17 00:00:00 2001 From: "b.nodon" Date: Fri, 6 Mar 2026 11:50:15 +0100 Subject: [PATCH] =?UTF-8?q?J1:=20Admin/Styles/Create=20#64:=20-=20Cr=C3=A9?= =?UTF-8?q?ation=20de=20StyleCreateViewModel=20-=20Cr=C3=A9ation=20de=20la?= =?UTF-8?q?=20vue=20create=20-=20Integration=20du=20create=20dans=20le=20c?= =?UTF-8?q?ontroller?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/StylesController.cs | 29 ++++++++++++ .../ViewModels/Styles/StyleCreateViewModel.cs | 20 ++++++++ .../Administration/Views/Styles/Create.cshtml | 46 +++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs create mode 100644 Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml diff --git a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs index e044b81..6cda50f 100644 --- a/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs +++ b/Webzine.WebApplication/Areas/Administration/Controllers/StylesController.cs @@ -64,6 +64,35 @@ namespace Webzine.WebApplication.Areas.Administration.Controllers return View(viewModel); } + // GET: Administration/Styles/Create + public ActionResult Create() + { + return View(); + } + + // POST: Administration/Styles/Create + [HttpPost] + [ValidateAntiForgeryToken] + public ActionResult Create(StyleCreateViewModel model) + { + if (!ModelState.IsValid) + { + return View(model); + } + + try + { + _logger.LogInformation("Nouveau style créé : {Libelle}", model.Libelle); + return RedirectToAction(nameof(Index)); + } + catch (Exception e) + { + _logger.LogError(e, "Erreur lors de la création du style"); + ModelState.AddModelError("", "Une erreur est survenue lors de la création."); + return View(model); + } + } + // GET: Administration/Styles/Delete/5 public ActionResult Delete(int id) diff --git a/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs new file mode 100644 index 0000000..53cfe1e --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/ViewModels/Styles/StyleCreateViewModel.cs @@ -0,0 +1,20 @@ +// +// Copyright (c) Webzine. Tout droit réservé. +// + + +namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style +{ + /// + /// ViewModel pour la création d'un style en administration. + /// + + public class StyleCreateViewModel + { + /// + /// Obtient ou définit le libellé du style. + /// + + public string Libelle { get; set; } + } +} diff --git a/Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml b/Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml new file mode 100644 index 0000000..0ac8105 --- /dev/null +++ b/Webzine.WebApplication/Areas/Administration/Views/Styles/Create.cshtml @@ -0,0 +1,46 @@ +@model Webzine.WebApplication.Areas.Administration.ViewModels.Style.StyleCreateViewModel + +@{ + ViewData["Title"] = "Créer un style"; +} + +
+

Créer un style

+
+ +
+ + @* Utilisation de d-flex pour aligner les éléments sur une ligne *@ +
+ + @* Label *@ +
+ +
+ + @* Input *@ +
+ +
+ + @* Bouton *@ +
+ +
+
+ + @* Zone d'erreur en dessous *@ +
+ +
+ +
+ + +
+ +