Merge pull request 'j3/fix/form' (#194) from j3/fix/form into dev
Reviewed-on: https://10.4.0.131/gitea/DI1-P4-E1/Webzine/pulls/194 Reviewed-by: c.bobin <clement.bobin@diiage.org>
This commit is contained in:
@@ -2,8 +2,8 @@ namespace Webzine.Business;
|
||||
|
||||
using Microsoft.Extensions.Logging;
|
||||
|
||||
using Webzine.Business.Contracts.Dto;
|
||||
using Webzine.Business.Contracts;
|
||||
using Webzine.Business.Contracts.Dto;
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ using Business.Contracts;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
|
||||
using Webzine.Business.Contracts.Dto;
|
||||
using Webzine.Entity;
|
||||
using Webzine.Repository.Contracts;
|
||||
using Webzine.Business.Contracts.Dto;
|
||||
using Webzine.WebApplication.Areas.Administration.ViewModels.Titre;
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -10,12 +10,15 @@
|
||||
/// <summary>
|
||||
/// Nom de l'artiste.
|
||||
/// </summary>
|
||||
[Required]
|
||||
[Required(ErrorMessage = "Le nom de l'auteur est obligatoire.")]
|
||||
[StringLength(50, ErrorMessage = "Le nom ne doit pas dépasser 50 caractères.")]
|
||||
public string Nom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Biographie de l'artiste.
|
||||
/// </summary>
|
||||
/// </summary>*
|
||||
[Required(ErrorMessage = "La biographie ne peux pas etre vide.")]
|
||||
|
||||
public string Biographie { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -16,12 +16,15 @@
|
||||
/// <summary>
|
||||
/// Nom de l'artiste.
|
||||
/// </summary>
|
||||
[Required]
|
||||
[Required(ErrorMessage = "Le nom de l'auteur est obligatoire.")]
|
||||
[StringLength(50, ErrorMessage = "Le nom ne doit pas dépasser 50 caractères.")]
|
||||
|
||||
public string Nom { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Biographie de l'artiste.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "Le contenu de la biographie ne peut pas être vide.")]
|
||||
public string Biographie { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -14,7 +14,7 @@ namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||
/// <summary>
|
||||
/// Obtient ou définit le libellé du style.
|
||||
/// </summary>
|
||||
[Required]
|
||||
[Required(ErrorMessage = "Le libelle du style est obligatoire.")]
|
||||
public string Libelle { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,7 @@ namespace Webzine.WebApplication.Areas.Administration.ViewModels.Style
|
||||
/// <summary>
|
||||
/// Obtient ou definit le libelle du style.
|
||||
/// </summary>
|
||||
[Required]
|
||||
[Required(ErrorMessage = "Le libelle du style est obligatoire.")]
|
||||
public string Libelle { get; set; }
|
||||
}
|
||||
}
|
||||
@@ -1,5 +1,7 @@
|
||||
namespace Webzine.WebApplication.Areas.Administration.ViewModels.Titre;
|
||||
|
||||
using System.ComponentModel.DataAnnotations;
|
||||
|
||||
using Microsoft.AspNetCore.Mvc.Rendering;
|
||||
|
||||
/// <summary>
|
||||
@@ -15,36 +17,47 @@ public class AdminTitreForm
|
||||
/// <summary>
|
||||
/// Définit l'identifiant de l'artiste associé au titre.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "L'id de l'artiste est obligatoire.")]
|
||||
|
||||
public int IdArtiste { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit le titre du titre.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "Le labelle est obligatoire.")]
|
||||
|
||||
public string Libelle { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit le nom de l'album associé au titre.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "L'album est obligatoire.")]
|
||||
|
||||
public string Album { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit la chronique du titre, peut-être une critique ou une description du titre.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "La chronique est obligatoire.")]
|
||||
public string Chronique { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit la date de sortie du titre.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "La date de est obligatoire.")]
|
||||
|
||||
public DateTime DateSortie { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit la durée du titre en secondes.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "La durée est obligatoire.")]
|
||||
public int Duree { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Définit l'URL de la jaquette de l'album associé au titre.
|
||||
/// </summary>
|
||||
[Required(ErrorMessage = "L'Url de la jaquette est obligatoire.")]
|
||||
public string UrlJaquette { get; set; }
|
||||
|
||||
/// <summary>
|
||||
|
||||
@@ -11,6 +11,8 @@
|
||||
<label class="col-md-3 col-form-label">Nom de l'artiste<span class="text-danger">*</span></label>
|
||||
<div class="col-md-9">
|
||||
<input asp-for="Nom" class="form-control" />
|
||||
<span asp-validation-for="Nom" class="text-danger"></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -19,6 +21,8 @@
|
||||
<label class="col-md-3 col-form-label">Biographie</label>
|
||||
<div class="col-md-9">
|
||||
<textarea asp-for="Biographie" class="form-control" rows="5"></textarea>
|
||||
<span asp-validation-for="Biographie" class="text-danger"></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -6,6 +6,8 @@
|
||||
<label class="col-md-3 col-form-label">Nom de l'artiste<span class="text-danger">*</span></label>
|
||||
<div class="col-md-9">
|
||||
<input asp-for="Nom" class="form-control" />
|
||||
<span asp-validation-for="Nom" class="text-danger"></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -14,7 +16,10 @@
|
||||
<label class="col-md-3 col-form-label">Biographie</label>
|
||||
<div class="col-md-9">
|
||||
<textarea asp-for="Biographie" class="form-control" rows="5"></textarea>
|
||||
<span asp-validation-for="Biographie" class="text-danger"></span>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- BOUTONS -->
|
||||
|
||||
@@ -8,6 +8,8 @@
|
||||
<select asp-for="IdArtiste"
|
||||
asp-items="Model.Artistes"
|
||||
class="form-select"></select>
|
||||
<span asp-validation-for="IdArtiste" class="text-danger"></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -16,6 +18,7 @@
|
||||
<label class="col-md-3 col-form-label">Titre<span class="text-danger">*</span></label>
|
||||
<div class="col-md-9">
|
||||
<input asp-for="Libelle" class="form-control"/>
|
||||
<span asp-validation-for="Libelle" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -24,6 +27,7 @@
|
||||
<label class="col-md-3 col-form-label">Album<span class="text-danger">*</span></label>
|
||||
<div class="col-md-9">
|
||||
<input asp-for="Album" class="form-control"/>
|
||||
<span asp-validation-for="Album" class="text-danger"></span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -34,6 +38,8 @@
|
||||
<textarea asp-for="Chronique"
|
||||
class="form-control"
|
||||
rows="5"></textarea>
|
||||
<span asp-validation-for="Chronique" class="text-danger"></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -55,6 +61,8 @@
|
||||
class="form-control"
|
||||
type="number"
|
||||
min="0" />
|
||||
<span asp-validation-for="Duree" class="text-danger"></span>
|
||||
|
||||
<span class="input-group-text text-muted">seconds</span>
|
||||
</div>
|
||||
</div>
|
||||
@@ -66,6 +74,8 @@
|
||||
<div class="col-md-9">
|
||||
<input asp-for="UrlJaquette"
|
||||
class="form-control"/>
|
||||
<span asp-validation-for="UrlJaquette" class="text-danger"></span>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -10,4 +10,4 @@ public class EfPerformanceOptions
|
||||
/// Valeur par défaut : 200 ms.
|
||||
/// </summary>
|
||||
public int SeuilMs { get; set; } = 200;
|
||||
}
|
||||
}
|
||||
@@ -33,6 +33,7 @@ try
|
||||
options.Filters.Add<ValidationActionFilter>();
|
||||
options.Filters.Add<GlobalExceptionFilter>();
|
||||
})
|
||||
|
||||
// Ajoute la compilation des vues lors de l'execution de l'application.
|
||||
// Cela nous evite de recompiler l'application a chaque modification de vue.
|
||||
// Necessite le package Nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.
|
||||
|
||||
Reference in New Issue
Block a user