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