Compare commits

...

10 Commits

Author SHA1 Message Date
MarcEricMartel
5a608e7c7e ! 2022-09-13 08:21:01 -07:00
MarcEricMartel
e6959a82f2 Cleanup. 2022-09-12 15:21:11 -07:00
Jean-Daniel Lamontagne
166db82ed3 Ajout du formulaire 2022-09-12 17:14:11 -04:00
Victor Turgeon
fbbb3bf83c ajout de border-quetaine 2022-09-11 17:34:15 -07:00
Victor Turgeon
6b9e63fdd4 Ajout des informations de contact dans À Propos 2022-09-11 16:54:01 -07:00
MarcEricMartel
37b05901d7 Zigonnage d'about us. 2022-09-11 15:29:19 -07:00
Victor Turgeon
82da02f187 Ajout du texte de Monique 2022-09-11 12:14:53 -07:00
Victor Turgeon
abafdeb032 Ajout texte pour Ginette 2022-09-11 11:51:34 -07:00
Victor Turgeon
d438bbfebb Ajouts pour EF04 2022-09-11 14:00:23 -07:00
Victor Turgeon
5d56ff641d Ajout d'image de background flou, favicon 2022-09-11 12:25:30 -07:00
16 changed files with 735 additions and 106 deletions

View File

@ -15,10 +15,28 @@ namespace GrossesMitaines.Controllers {
_logger = logger; _logger = logger;
} }
[HttpGet]
public IActionResult Index() { public IActionResult Index() {
return View(); return View();
} }
// POST : LogIn
[HttpPost]
public async Task<IActionResult> Demande(RequestViewModel model, string returnurl)
{
if (!ModelState.IsValid)
{
return LocalRedirect(returnurl);
}
else
{
return LocalRedirect(returnurl);
}
}
public IActionResult Privacy() { public IActionResult Privacy() {
return View(); return View();
} }
@ -31,12 +49,6 @@ namespace GrossesMitaines.Controllers {
return View(); return View();
} }
public class ContactModel { }; // À DELETER QUAND LA CLASSE/FORMULAIRE SERONT FAIT.
[HttpPost]
public IActionResult ContactUs(ContactModel model) {
return View(model);
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error() { public IActionResult Error() {
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier }); return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });

View File

@ -5,13 +5,8 @@
</PropertyGroup> </PropertyGroup>
<ItemGroup> <ItemGroup>
<Compile Remove="ViewModels\**" /> <PackageReference Include="FluentValidation" Version="11.2.2" />
<Content Remove="ViewModels\**" /> <PackageReference Include="FluentValidation.AspNetCore" Version="11.2.2" />
<EmbeddedResource Remove="ViewModels\**" />
<None Remove="ViewModels\**" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="FontAwesome" Version="4.7.0" /> <PackageReference Include="FontAwesome" Version="4.7.0" />
<PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.17" /> <PackageReference Include="Microsoft.EntityFrameworkCore" Version="5.0.17" />
<PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.17" /> <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="5.0.17" />
@ -22,8 +17,8 @@
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<Folder Include="wwwroot\img\" />
<Folder Include="wwwroot\audio\" /> <Folder Include="wwwroot\audio\" />
<Folder Include="wwwroot\img\partenaires\" />
</ItemGroup> </ItemGroup>
</Project> </Project>

View File

@ -0,0 +1,39 @@
using FluentValidation;
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Threading.Tasks;
namespace GrossesMitaines.Models
{
public class RequestViewModel
{
[Display(Prompt ="NOM COMPLET")]
public string Name { get; set; }
[Display(Prompt = "COURRIEL")]
public string Email { get; set; }
[Display(Prompt = "TÉLÉPHONE")]
public string Phone { get; set; }
[Display(Prompt = "VOS COMMENTAIRES")]
public string Message { get; set; }
}
public class RequestValidator : AbstractValidator<RequestViewModel>
{
public RequestValidator()
{
RuleFor(x => x.Name)
.NotEmpty().WithMessage("Vous devez entrer votre nom")
.MinimumLength(2).WithMessage("Votre nom doit être de 2 lettres minimum");
RuleFor(x => x.Email)
.NotEmpty().WithMessage("Une adresse courriel est requise")
.EmailAddress().WithMessage("Format non valide!");
RuleFor(x => x.Phone)
.NotEmpty().WithMessage("Vous devez entrer votre téléphone")
.Matches("^\\s*(?:\\+?(\\d{1}))?[-. (]*(\\d{3})[-. )]*(\\d{3})[-. ]*(\\d{4})$").WithMessage("Téléphone non valide!");
}
}
}

View File

@ -1,3 +1,4 @@
using FluentValidation.AspNetCore;
using Microsoft.AspNetCore.Builder; using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting; using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.HttpsPolicy; using Microsoft.AspNetCore.HttpsPolicy;
@ -19,6 +20,8 @@ namespace GrossesMitaines {
public void ConfigureServices(IServiceCollection services) { public void ConfigureServices(IServiceCollection services) {
services.AddControllersWithViews(); services.AddControllersWithViews();
services.AddFluentValidation(option => option.RegisterValidatorsFromAssemblyContaining<Startup>());
} }
public void Configure(IApplicationBuilder app, IWebHostEnvironment env) { public void Configure(IApplicationBuilder app, IWebHostEnvironment env) {

View File

@ -7,35 +7,94 @@
<h1>À propos de nous:</h1> <h1>À propos de nous:</h1>
</div> </div>
</div> </div>
<br/> <br />
<div class="row"> <div class="row">
<div class="col col-sm-12 col-md-6 col-lg-4"> <div class="col col-12 col-md-6 col-lg-4 ">
<img src="~/img/madamebrossard.jpg"/> <img class="border-quetaine" src="~/img/madamebrossard.jpg" style="max-width:300px;" />
</div> </div>
<div class="col col-sm-12 col-md-6 col-lg-8 text-light" style="font-family:Comic Sans MS;"> <div class="col col-12 col-md-6 col-lg-8 text-light">
BLah BLahBLahBLahBLahBLah BLah BLah BLahBLahBLahBLahBLah BLah <br />
BLah BLahBLahBLahBLahBLah BLah <h4>
BLah BLahBLahBLahBLahBLah BLah Ginette - Co-Fondatrice
BLah BLahBLahBLahBLahBLah BLah </h4>
BLah BLahBLahBLahBLahBLah BLahBLah BLahBLahBLahBLahBLah BLah <br />
BLah BLahBLahBLahBLahBLah BLah <p>
BLah BLahBLahBLahBLahBLah BLah Une forte femme de 83 ans qui travaille la laine depuis sa plus tendre enfance.
Ginette est avec Monique co-fondatrice des Grosses Mitaines&trade;.
Elle se fera un plaisir de créer de magnifiques chaussettes pour les petits et les grands.
</p>
</div> </div>
</div> </div>
<br />
<br />
<br />
<div class="row"> <div class="row">
<div class="col-12" style="height:40px;" /> <div class="col col-12 col-md-6 col-lg-8 text-light">
<h4>
Monique - Autre Co-Fondatrice
</h4>
<br />
<p>
Dès ses 3 ans Monique était une prodige du crochet!
Il est même dit qu'elle aurait fait sa première paire de bas avant même de parler.
En 8ième année, elle était la reine de la laine et elle fonda - en 1953 avec Ginette, Les Grosses Mitaines&trade;.
</p>
<br />
</div>
<div class="col col-12 col-md-6 col-lg-4">
<img class="border-quetaine" src="~/img/moman.jpg" style="max-width:300px;"/>
</div>
</div> </div>
<div class="row"> <br />
<div class="col col-sm-12 col-md-6 col-lg-8 text-light" style="font-family:Comic Sans MS;"> <br />
BLah BLahBLahBLahBLahBLah BLahBLah BLahBLahBLahBLahBLah BLahBLah BLahBLahBLahBLahBLah BLah <br />
BLah BLahBLahBLahBLahBLah BLah <div class="row bg-dark text-light pt-3">
BLah BLahBLahBLahBLahBLah BLahBLah BLahBLahBLahBLahBLah BLah <ul style="list-style-type: none;">
BLah BLahBLahBLahBLahBLah BLah <li>
BLah BLahBLahBLahBLahBLah BLah <h5 style="font-family:Comic Sans MS;">
BLah BLahBLahBLahBLahBLah BLah <span class="fa fa-location-dot"></span> Adresse:
BLah BLahBLahBLahBLahBLah BLah </h5>
</div> <a href="https://goo.gl/maps/B76oSoXg9FXuTmCD6" target="_blank">
<div class="col col-sm-12 col-md-6 col-lg-4"> <span class="fa fa-arrow-up-right-from-square"></span> 3005 Bd Laframboise, Saint-Hyacinthe, QC J2S 4Z6
<img src="~/img/moman.jpg" /> </a>
</div> </li>
<br />
<li>
<h5 style="font-family:Comic Sans MS;">
<span class="fa fa-envelope"></span> Courriel:
</h5>
<a href="mailto:grossesmitaines@example.com" >
<span class="fa fa-feather"></span> grossesmitaines@example.com
</a>
</li>
<br />
<li>
<h5 style="font-family:Comic Sans MS;">
<span class="fa fa-phone"></span> Appellez-nous:
</h5>
<a href="tel:666-666-6666">
<span class="fa fa-phone-volume"></span> 666-666-666
</a>
</li>
<br />
<li>
<h5 style="font-family:Comic Sans MS;">
Réseaux Sociaux:
</h5>
<div class="row">
<span class="col-4 fa fa-facebook"></span>
<span class="col-4 fa fa-etsy"></span>
<span class="col-4 fa fa-pinterest"></span>
</div>
</li>
<br />
<li>
<h5 style="font-family:Comic Sans MS;">
Question?
</h5>
<a asp-area="" asp-controller="Home" asp-action="ContactUs">
Nous Contacter
</a>
</li>
</ul>
</div> </div>

View File

@ -1,4 +1,6 @@
@{ @model GrossesMitaines.Models.RequestViewModel
@{
ViewData["Title"] = "Maison"; ViewData["Title"] = "Maison";
} }
@ -11,11 +13,63 @@
<br> <br>
<br> <br>
<div class="container col-10 offset-1 text-primary text-right text-sm-right" style="font-family:Comic Sans MS;"> <div class="row vedette-title">
<div class="col-12 text-primary text-right text-sm-right rounded-right" style="font-family:Comic Sans MS;">
<h1>Des produits bien commodes faits par des aînées d'expérience.</h1> <h1>Des produits bien commodes faits par des aînées d'expérience.</h1>
</div> </div>
</div>
<br> <br>
<br> <br>
<br> <br>
<br> <br>
<vc:en-vedette></vc:en-vedette> <vc:en-vedette></vc:en-vedette>
<br>
<br>
<br>
<br>
<div class="row">
<div class="col-md-12 bg-info">
<section>
<form asp-controller="Home" asp-action="Demande" asp-route-returnurl="/Home/Index" method="post" class="form-horizontal" role="form">
<h4 class="text-center text-white">Demander une rencontre!</h4>
<div class="form-group">
<div class="col-md-12">
<label class="text-white">Nom*</label>
<input asp-for="Name" class="form-control" />
<span asp-validation-for="Name" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<label class="text-white">Email*</label>
<input asp-for="Email" class="form-control" />
<span asp-validation-for="Email" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<label class="text-white">Téléphone*</label>
<input asp-for="Phone" class="form-control" />
<span asp-validation-for="Phone" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-12">
<label class="text-white">Message</label>
<input asp-for="Message" class="form-control" rows="3"/>
<span asp-validation-for="Message" class="text-danger"></span>
</div>
</div>
<div class="form-group">
<div class="col-md-offset-2 col-md-12">
<button type="submit" class="btn btn-default bg-success">Demande</button>
</div>
</div>
</form>
</section>
</div>
</div>
@section Scripts {
@{ await Html.RenderPartialAsync("_ValidationScriptsPartial"); }
}

View File

@ -1,50 +1,53 @@
<div style="height:280px;"> <div style="height:280px;">
<div class="row"> <div class="row">
<div class="col-md-7 col-sm-12 offset-md-1 offset-sm-0 text-primary" style="font-family:Comic Sans MS;"> <div class="col-md-7 col-sm-12 offset-md-1 offset-sm-0 text-primary vedette-title" style="font-family:Comic Sans MS;">
<h1>Nos produits vedettes:</h1> <h1>Nos produits vedettes:</h1>
</div> </div>
</div> </div>
<div class="carousel slide" data-ride="carousel"> <div class="row bg-secondary my-auto" style="height:250px;">
<div class="carousel-inner"> <div class="carousel slide col-12" data-ride="carousel">
<div class="carousel-item bg-secondary rounded active"> <div class="carousel-inner">
<div class="row text-primary" style="font-family:Arial;"> <div class="carousel-item rounded active">
<div class="col-6 my-auto"> <div class="row text-primary" style="font-family:Arial;">
<img class="d-block w-100" src="img/ceintureflechee.jpg" style="width:auto;max-height:200px;"> <div class="col-6 my-auto">
</div> <img class="d-block w-100" src="~/img/ceintureflechee.jpg" style="width:auto;max-height:200px;">
<div class="col-6 text-white"> </div>
<h3>Ceinture flèchée</h3> <div class="col-6 text-white">
<p>Pour faire votre propre bonhomme de 1837, comme dans le bon vieux temps.</p> <h3>Ceinture flèchée</h3>
<h5>Seulement</h5> <p>Pour faire votre propre bonhomme de 1837, comme dans le bon vieux temps.</p>
<h4 class="offset-1 bg-white text-success">85,86$+tx</h4> <h5>Seulement</h5>
<h4 class="offset-1 bg-white text-success pl-1">85,86$+tx</h4>
</div>
</div> </div>
</div> </div>
</div> <div class="carousel-item bg-secondary rounded">
<div class="carousel-item bg-secondary rounded"> <div class="row text-primary" style="font-family:Arial;">
<div class="row text-primary" style="font-family:Arial;"> <div class="col-6 my-auto">
<div class="col-6 my-auto"> <img class="d-block w-100" src="~/img/pantouflesCH.jpg" style="width:auto;max-height:200px;">
<img class="d-block w-100" src="img/pantouflesCH.jpg" style="width:auto;max-height:200px;"> </div>
</div> <div class="col-6 text-white">
<div class="col-6 text-white"> <h3>Pantoufles du Canadien en Phentex</h3>
<h3>Pantoufles du Canadien en Phentex</h3> <p>Parce que ça sent la coupe!</p>
<p>Parce que ça sent la coupe!</p> <h5>Seulement</h5>
<h5>Seulement</h5> <h4 class="offset-1 bg-white text-success pl-1">15,64$+tx</h4>
<h4 class="offset-1 bg-white text-success">15,64$+tx</h4> </div>
</div> </div>
</div> </div>
</div> <div class="carousel-item bg-secondary rounded">
<div class="carousel-item bg-secondary rounded"> <div class="row text-primary" style="font-family:Arial;">
<div class="row text-primary" style="font-family:Arial;"> <div class="col-6 my-auto">
<div class="col-6 my-auto"> <img class="d-block w-100" src="~/img/jeanlucmongrain.jpg" style="width:auto;max-height:200px;">
<img class="d-block w-100" src="img/jeanlucmongrain.jpg" style="width:auto;max-height:200px;"> </div>
</div> <div class="col-6 text-white">
<div class="col-6 text-white"> <h3>Jean-Luc Mongrain</h3>
<h3>Jean-Luc Mongrain</h3> <p>On ne lui ferait pas mal, en tout cas!!</p>
<p>On ne lui ferait pas mal, en tout cas!!</p> <h5>Seulement</h5>
<h5>Seulement</h5> <h4 class="offset-1 bg-white text-success pl-1">1453,12$+tx</h4>
<h4 class="offset-1 bg-white text-success">1453,12$+tx</h4> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
</div> </div>
<br />

View File

@ -4,11 +4,12 @@
<meta charset="utf-8" /> <meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>@ViewData["Title"] - GrossesMitaines</title> <title>@ViewData["Title"] - GrossesMitaines</title>
<link rel="icon" type="image/x-icon" href="~/img/favicon.ico" />
<link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" /> <link rel="stylesheet" href="~/lib/bootstrap/dist/css/bootstrap.min.css" />
<link rel="stylesheet" href="~/css/site.css" /> <link rel="stylesheet" href="~/css/site.css" />
<link rel="stylesheet" href="~/font-awesome/css/all.min.css" /> <link rel="stylesheet" href="~/font-awesome/css/all.min.css" />
</head> </head>
<body class="bg-dark"> <body class="bg-image">
<audio autoplay muted> <audio autoplay muted>
<Source src="~/audio/poupee.mp3" type="audio/mpeg" /> <Source src="~/audio/poupee.mp3" type="audio/mpeg" />
</audio> </audio>
@ -35,32 +36,44 @@
</nav> </nav>
</header> </header>
<div class="container"> <div class="container">
<main role="main">
<main role="main" class="pb-3">
@RenderBody() @RenderBody()
</main> </main>
</div> </div>
<div style="height:100px;"/>
<div style="min-height:100px;"/>
<footer class="border-top footer text-light bg-primary"> <footer class="border-top footer text-light bg-primary">
<div class="container" style="font-family:Comic Sans MS;"> <div class="row">
<div class="offset-1"> <div class="col-4">
<div class="row"> <a asp-area="" asp-controller="Home" asp-action="AboutUs" class="text-light" style="font-family:Comic Sans MS;">À Propos</a>
<div class="col"> </div>
<a asp-area="" asp-controller="Home" asp-action="AboutUs" class="text-light" style="font-family:Comic Sans MS;">À Propos</a> <div class="col-4">
</div> <a asp-area="" asp-controller="Home" asp-action="ContactUs" class="text-light" style="font-family:Comic Sans MS;">Nous Contacter</a>
<div class="col"> </div>
<a asp-area="" asp-controller="Home" asp-action="ContactUs" class="text-light" style="font-family:Comic Sans MS;">Nous Contacter</a> <div class="col-4">
</div> <a asp-area="" asp-controller="Home" asp-action="Privacy" class="text-light" style="font-family:Comic Sans MS;">Vie Privée</a>
<div class="col">
<a asp-area="" asp-controller="Home" asp-action="Privacy" class="text-light" style="font-family:Comic Sans MS;">Vie Privée</a>
</div>
</div>
</div> </div>
</div> </div>
<div class="container text-white" style="font-family:Comic Sans MS;"> <br />
<div class="row">
<h4 class="col-12">
Joignez les plus de 1 000 Québécois qui ont décidés d'acheter GM!
</h4>
</div>
<div class="row">
<h6 class="col-12">- Nos partenaires -</h6>
</div>
<div class="row">
<div class="col-4 logo-gouv">
</div>
<div class="col-4 logo-tg">
</div>
<div class="col-4 logo-sqdc">
</div>
</div>
<div class="row text-white" style="font-family:Comic Sans MS;">
&copy; 2022 - Les Grosses Mitaines à Ginette et Monique, inc. &copy; 2022 - Les Grosses Mitaines à Ginette et Monique, inc.
</div> </div>
</footer> </footer>

View File

@ -1,6 +1,11 @@
/* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification /* Please see documentation at https://docs.microsoft.com/aspnet/core/client-side/bundling-and-minification
for details on configuring this project to bundle and minify static web assets. */ for details on configuring this project to bundle and minify static web assets. */
.border-quetaine{
border: 3px dotted;
border-color: hotpink;
padding:5px;
}
a.navbar-brand { a.navbar-brand {
white-space: normal; white-space: normal;
@ -31,6 +36,15 @@ html {
font-size: 14px; font-size: 14px;
} }
footer{
margin-top:50px;
padding-left:25px;
}
footer > div{
margin-top:10px;
}
@media (min-width: 768px) { @media (min-width: 768px) {
html { html {
font-size: 16px; font-size: 16px;
@ -61,9 +75,13 @@ html {
min-height: 100%; min-height: 100%;
} }
body { .bg-image {
/* Margin bottom by footer height */ background-image: url(../img/blured_wool_carpet.png);
margin-bottom: 60px;
background-attachment:fixed;
background-repeat: no-repeat;
background-position: center;
background-size: cover;
} }
#btn-search{ #btn-search{
@ -74,10 +92,33 @@ body {
margin:auto; margin:auto;
} }
.footer { .vedette-title{
position: absolute; background-color:rgba(0, 0, 0,.75);
bottom: 0; }
width: 100%;
white-space: nowrap; .logo-tg {
line-height: 60px; /* Vertically center the text there */ background-image: url(/img/partenaires/logo-guidelines-fy21-GTlogo-colour.jpg);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
height: 30px;
width: auto;
}
.logo-sqdc {
background-image: url(/img/partenaires/sqdc1.jpg);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
height:30px;
width:auto;
}
.logo-gouv {
background-image: url(/img/partenaires/Logo_du_le_gouvernement_du_Québec.svg);
background-repeat: no-repeat;
background-position: center;
background-size: contain;
height: 30px;
width: auto;
} }

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 726 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB