Merge branch 'main' into Johan

This commit is contained in:
jleroy
2024-04-24 16:57:04 +02:00
7 changed files with 99 additions and 53 deletions

View File

@@ -44,9 +44,16 @@ public class ArticleController {
//Affichage d'un article
@GetMapping("/show")
public String showArticle(@RequestParam(name = "slug")int id, Model model) {
public String showArticle(@RequestParam()int id, Model model) {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (!authentication.getName().equals("anonymousUser")) {
Article article = articleService.findArticleById(id);
System.out.println(article);
model.addAttribute("article", article);
return "article";
} else {
return "redirect:/accueil";
}
}
@GetMapping("/{slug}")

View File

@@ -91,7 +91,9 @@ public class ArticleRepositoryImpl implements ArticleRepository {
@Override
public Article findArticleById(int id) {
return null;
String sql = "SELECT * FROM ARTICLES_VENDUS a WHERE no_article = ?";
Article article = jdbcTemplate.queryForObject(sql, new ArticleRowMapper(), id);
return article;
}
@Override

View File

@@ -27,7 +27,9 @@ public class UserInterceptor implements HandlerInterceptor {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
if (authentication != null && authentication.isAuthenticated() && !authentication.getName().equals("anonymousUser")) {
UserProfil user = this.userService.utilisateurByName(authentication.getName());
modelAndView.getModelMap().addAttribute("user", user.getCredit());
if (modelAndView != null && modelAndView.getViewName() != null && !modelAndView.getViewName().startsWith("redirect:")) {
modelAndView.addObject("user", user.getCredit());
}
}
}
}

View File

@@ -1,13 +0,0 @@
//package fr.eni.enchere.interceptor;
//
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
//import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
//
//public class UserServiceInterceptorAppConfig implements WebMvcConfigurer {
//
// @Override
// public void addInterceptors(InterceptorRegistry registry) {
// registry.addInterceptor(new UserInterceptor());
// }
//}

View File

@@ -17,19 +17,41 @@
<input type="text" class="form-control" th:attr="placeholder=#{home.search.title}" name="searchTitle">
<select class="form-control mt-2" name="searchCategory">
<option value="" th:text="#{home.search.cat}"></option>
<option th:each="category : ${categories}" th:value="${category.id}" th:text="${category.libelle}"></option>
<!-- Options de catégorie -->
</select>
</div>
<div class="col-md-4 text-center">
<button type="submit" class="btn btn-primary" th:text="#{home.search.button}">Search</button>
</div>
</form>
<div class="row">
<div class="col-12 col-lg-6">
<div class="card mt-3">
<div class="card-body">
<form class="row">
<div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="transactionType" id="achats" value="achats">
<label class="form-check-label" type="chec" >Achats</label>
</div>
</div><div class="col-6">
<div class="form-check">
<input class="form-check-input" type="radio" name="transactionType" id="ventes" value="ventes">
<label class="form-check-label" for="ventes">Mes ventes</label>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="row">
<div th:each="article : ${articles}" class="col-md-6 mb-4">
<a th:href="@{/article/show(id=${article.id})}">
<div class="card shadow-sm h-100">
<div class="row g-0">
<div class="col-md-4 d-flex align-items-center justify-content-center p-3">
@@ -52,6 +74,7 @@
</div>
</div>
</div>
</a>
</div>
</div>
</div>

View File

@@ -5,7 +5,22 @@
</head>
<body>
<div id="container-main">
<div class="row mt-3">
<div class="col-md-6 offset-md-3">
<div class="card">
<div class="card-header">
<h4>Article</h4>
</div>
<div class="card-body">
<ul class="list-group">
<li class="list-group-item">
<strong><label class="col-form-label" th:text="${article}"></label></strong>
</li>
</ul>
</div>
</div>
</div>
</div>
</div>
</body>
</html>

View File

@@ -4,29 +4,39 @@
<meta charset="UTF-8">
</head>
<body>
<div id="container-main">
<h2>Pour se Connecter :</h2>
<br>
<div class="container" id="container-main">
<div class="row justify-content-center mt-5">
<div class="col-md-6">
<h2 class="text-center mb-4">Pour se Connecter :</h2>
<form th:action="@{/login}" method="post">
<div>
<label for="username">Identifiant: </label>
<input type="username" name="username" id="username"/>
<div class="mb-3">
<label for="username" class="form-label">Identifiant:</label>
<input type="text" class="form-control" name="username" id="username" placeholder="Entrez votre identifiant">
</div>
<div>
<label for="password">Mot de passe:</label>
<input type="password" name="password" id="password"/>
<div class="mb-3">
<label for="password" class="form-label">Mot de passe:</label>
<input type="password" class="form-control" name="password" id="password" placeholder="Entrez votre mot de passe">
</div>
<div class="mb-3 form-check">
<input type="checkbox" class="form-check-input" id="remember-me" name="remember-me">
<label class="form-check-label" for="remember-me">Se souvenir de moi</label>
</div>
<div class="mb-3">
<a href="/mot-de-passe-oublie">Mot de passe oublié</a>
</div>
<div class="mb-3">
<button type="submit" class="btn btn-primary">Connexion</button>
<button type="button" class="btn btn-warning text-light" href="/inscription">Créer un compte </button>
</div>
<div><input type="checkbox" id="remember-me" name="remember-me"/><label for="remember-me"> Se souvenir de moi</label></div>
<div><a href="/mot-de-passe-oublie">Mot de passe oublié</a></div>
<div><input type="submit" value="Connexion"/></div>
</form>
<div th:if="${param.error}">
<div th:if="${param.error}" class="text-danger">
Identifiant ou mot de passe incorrect
</div>
<div th:if="${param.logout}">
<div th:if="${param.logout}" class="text-success">
Vous avez été déconnecté
</div>
<div><a href="/inscription">Créer un compte</a></div>
</div>
</div>
</div>
</body>
</html>