Modification
This commit is contained in:
parent
057b275f2f
commit
9fe8cf4981
19 changed files with 460 additions and 31 deletions
|
|
@ -1,13 +1,22 @@
|
|||
package fr.clelia.avis;
|
||||
|
||||
import fr.clelia.avis.business.Joueur;
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@SpringBootApplication
|
||||
public class AvisApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
|
||||
SpringApplication.run(AvisApplication.class, args);
|
||||
Joueur joueur = Joueur.builder()
|
||||
.pseudo("Joueur")
|
||||
.email("amaury.maizy@soprasteria.com")
|
||||
.dateDeNaissance(LocalDate.of(2000, 1, 1))
|
||||
.build();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,9 +1,11 @@
|
|||
package fr.clelia.avis.business;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import jakarta.persistence.*;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import jakarta.validation.constraints.NotBlank;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
|
||||
import java.util.List;
|
||||
|
|
@ -19,6 +21,7 @@ public class Editeur {
|
|||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
|
||||
private Long id;
|
||||
|
||||
@Column(length = 100, unique = true)
|
||||
|
|
@ -27,6 +30,10 @@ public class Editeur {
|
|||
|
||||
private String logo;
|
||||
|
||||
@JsonManagedReference
|
||||
@OneToMany(mappedBy = "editeur", cascade = CascadeType.REMOVE) // OneEditeurToManyJeux
|
||||
private List<Jeu> jeux;
|
||||
|
||||
public Editeur(String nom, String logo) {
|
||||
this.nom = nom;
|
||||
this.logo = logo;
|
||||
|
|
|
|||
|
|
@ -1,23 +1,177 @@
|
|||
package fr.clelia.avis.business;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.*;
|
||||
import java.util.List;
|
||||
import lombok.Data;
|
||||
import lombok.NonNull;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.time.LocalDate;
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@Data
|
||||
public class Jeu {
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
private Long id;
|
||||
|
||||
@NonNull
|
||||
private String nom;
|
||||
|
||||
@ManyToOne
|
||||
@JoinColumn(name = "editeur_id")
|
||||
@NonNull
|
||||
@JsonBackReference
|
||||
private Editeur editeur;
|
||||
|
||||
@ManyToMany
|
||||
private List<Plateforme> plateformes = new ArrayList<>();
|
||||
@NonNull
|
||||
@JsonManagedReference // On souhaite voir en Json les plateformes du jeu
|
||||
private List<Plateforme> plateformes;
|
||||
|
||||
private LocalDate dateDeSortie;
|
||||
|
||||
private boolean possedeImage;
|
||||
|
||||
public Jeu(@NonNull String nom, @NonNull Editeur editeur, @NonNull List<Plateforme> plateformes) {
|
||||
this.nom = nom;
|
||||
this.editeur = editeur;
|
||||
this.plateformes = plateformes;
|
||||
}
|
||||
|
||||
public Jeu(Long id, @NonNull String nom, @NonNull Editeur editeur, @NonNull List<Plateforme> plateformes) {
|
||||
this.id = id;
|
||||
this.nom = nom;
|
||||
this.editeur = editeur;
|
||||
this.plateformes = plateformes;
|
||||
}
|
||||
|
||||
public Jeu() {
|
||||
}
|
||||
|
||||
public static JeuBuilder builder() {
|
||||
return new JeuBuilder();
|
||||
}
|
||||
|
||||
public Long getId() {
|
||||
return this.id;
|
||||
}
|
||||
|
||||
public @NonNull String getNom() {
|
||||
return this.nom;
|
||||
}
|
||||
|
||||
public @NonNull Editeur getEditeur() {
|
||||
return this.editeur;
|
||||
}
|
||||
|
||||
public @NonNull List<Plateforme> getPlateformes() {
|
||||
return this.plateformes;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public void setNom(@NonNull String nom) {
|
||||
this.nom = nom;
|
||||
}
|
||||
|
||||
public void setEditeur(@NonNull Editeur editeur) {
|
||||
this.editeur = editeur;
|
||||
}
|
||||
|
||||
public void setPlateformes(@NonNull List<Plateforme> plateformes) {
|
||||
this.plateformes = plateformes;
|
||||
}
|
||||
|
||||
public boolean equals(final Object o) {
|
||||
if (o == this) return true;
|
||||
if (!(o instanceof Jeu)) return false;
|
||||
final Jeu other = (Jeu) o;
|
||||
if (!other.canEqual((Object) this)) return false;
|
||||
final Object this$id = this.getId();
|
||||
final Object other$id = other.getId();
|
||||
if (this$id == null ? other$id != null : !this$id.equals(other$id)) return false;
|
||||
final Object this$nom = this.getNom();
|
||||
final Object other$nom = other.getNom();
|
||||
if (this$nom == null ? other$nom != null : !this$nom.equals(other$nom)) return false;
|
||||
final Object this$editeur = this.getEditeur();
|
||||
final Object other$editeur = other.getEditeur();
|
||||
if (this$editeur == null ? other$editeur != null : !this$editeur.equals(other$editeur)) return false;
|
||||
final Object this$plateformes = this.getPlateformes();
|
||||
final Object other$plateformes = other.getPlateformes();
|
||||
if (this$plateformes == null ? other$plateformes != null : !this$plateformes.equals(other$plateformes))
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
|
||||
protected boolean canEqual(final Object other) {
|
||||
return other instanceof Jeu;
|
||||
}
|
||||
|
||||
public int hashCode() {
|
||||
final int PRIME = 59;
|
||||
int result = 1;
|
||||
final Object $id = this.getId();
|
||||
result = result * PRIME + ($id == null ? 43 : $id.hashCode());
|
||||
final Object $nom = this.getNom();
|
||||
result = result * PRIME + ($nom == null ? 43 : $nom.hashCode());
|
||||
final Object $editeur = this.getEditeur();
|
||||
result = result * PRIME + ($editeur == null ? 43 : $editeur.hashCode());
|
||||
final Object $plateformes = this.getPlateformes();
|
||||
result = result * PRIME + ($plateformes == null ? 43 : $plateformes.hashCode());
|
||||
return result;
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "Jeu(id=" + this.getId() + ", nom=" + this.getNom() + ", editeur=" + this.getEditeur() + ", plateformes=" + this.getPlateformes() + ")";
|
||||
}
|
||||
|
||||
public static class JeuBuilder {
|
||||
private Long id;
|
||||
private @NonNull String nom;
|
||||
private @NonNull Editeur editeur;
|
||||
private @NonNull List<Plateforme> plateformes;
|
||||
|
||||
JeuBuilder() {
|
||||
}
|
||||
|
||||
public JeuBuilder id(Long id) {
|
||||
this.id = id;
|
||||
return this;
|
||||
}
|
||||
|
||||
public JeuBuilder nom(@NonNull String nom) {
|
||||
this.nom = nom;
|
||||
return this;
|
||||
}
|
||||
|
||||
public JeuBuilder editeur(@NonNull Editeur editeur) {
|
||||
this.editeur = editeur;
|
||||
return this;
|
||||
}
|
||||
|
||||
public JeuBuilder plateformes(@NonNull List<Plateforme> plateformes) {
|
||||
this.plateformes = plateformes;
|
||||
return this;
|
||||
}
|
||||
|
||||
public Jeu build() {
|
||||
return new Jeu(this.id, this.nom, this.editeur, this.plateformes);
|
||||
}
|
||||
|
||||
public String toString() {
|
||||
return "Jeu.JeuBuilder(id=" + this.id + ", nom=" + this.nom + ", editeur=" + this.editeur + ", plateformes=" + this.plateformes + ")";
|
||||
}
|
||||
}
|
||||
/*
|
||||
public Jeu(String nom, Editeur editeur, List<Plateforme> plateformes) {
|
||||
this.nom = nom;
|
||||
this.editeur = editeur;
|
||||
this.plateformes = plateformes;
|
||||
}
|
||||
|
||||
*/
|
||||
}
|
||||
|
|
@ -1,19 +1,31 @@
|
|||
package fr.clelia.avis.business;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.fasterxml.jackson.annotation.JsonManagedReference;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.GeneratedValue;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.ManyToMany;
|
||||
import lombok.*;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
|
||||
@Data
|
||||
@DynamicInsert
|
||||
@DynamicUpdate
|
||||
import java.util.List;
|
||||
|
||||
@Entity
|
||||
@NoArgsConstructor
|
||||
@RequiredArgsConstructor
|
||||
@Getter
|
||||
@Setter
|
||||
public class Plateforme {
|
||||
|
||||
@Id
|
||||
@GeneratedValue
|
||||
private Long id;
|
||||
|
||||
@NonNull
|
||||
private String nom;
|
||||
|
||||
@ManyToMany(mappedBy="plateformes")
|
||||
@JsonIgnore
|
||||
private List<Jeu> jeux;
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
package fr.clelia.avis.controller;
|
||||
|
||||
import fr.clelia.avis.service.EditeurService;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
@Controller
|
||||
public class EditeurController {
|
||||
|
||||
// Dépendance
|
||||
private final EditeurService editeurService;
|
||||
|
||||
public EditeurController(EditeurService editeurService) {
|
||||
this.editeurService = editeurService;
|
||||
}
|
||||
|
||||
@GetMapping("editeurs")
|
||||
public ModelAndView getEditeurs() {
|
||||
ModelAndView mav = new ModelAndView("editeurs");
|
||||
mav.addObject("editeurs", editeurService.recupererEditeurs());
|
||||
return mav;
|
||||
}
|
||||
|
||||
@PostMapping("editeurs")
|
||||
public ModelAndView postEditeurs(@RequestParam("NOM") String nomRecherche) {
|
||||
ModelAndView modelAndView = new ModelAndView("editeurs");
|
||||
modelAndView.addObject("editeurs", editeurService.recupererEditeursAyantUnNomContenant(nomRecherche));
|
||||
modelAndView.addObject("nom", nomRecherche);
|
||||
return modelAndView;
|
||||
}
|
||||
}
|
||||
|
|
@ -1,22 +1,110 @@
|
|||
package fr.clelia.avis.initialisation;
|
||||
|
||||
import fr.clelia.avis.business.Editeur;
|
||||
import fr.clelia.avis.business.Plateforme;
|
||||
import fr.clelia.avis.repository.EditeurRepository;
|
||||
import fr.clelia.avis.repository.PlateformeRepository;
|
||||
import lombok.AllArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.boot.context.event.ApplicationReadyEvent;
|
||||
import org.springframework.context.event.EventListener;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
@Component // Spring va instancier cette classe
|
||||
// et placer cette instance dans son conteneur IoC
|
||||
@AllArgsConstructor
|
||||
//@AllArgsConstructor
|
||||
public class AjoutDonneesInitiales {
|
||||
|
||||
// Dépendances
|
||||
@Autowired
|
||||
private EditeurRepository editeurRepository;
|
||||
@Autowired
|
||||
private PlateformeRepository plateformeRepository;
|
||||
|
||||
@EventListener(ApplicationReadyEvent.class)
|
||||
public void init() {
|
||||
System.out.println("Ajout des données initiales");
|
||||
ajouterEditeurs();
|
||||
ajouterPlateformes();
|
||||
}
|
||||
|
||||
private void ajouterEditeurs() {
|
||||
if (editeurRepository.count() == 0) {
|
||||
editeurRepository.save(new Editeur("Mobius Digital", "mobiusdigitalgames.com"));
|
||||
editeurRepository.save(new Editeur("Activision", "activision.com"));
|
||||
editeurRepository.save(new Editeur("Amazon Games","amazongames.com"));
|
||||
editeurRepository.save(new Editeur("Ankama", "ankama.com"));
|
||||
editeurRepository.save(new Editeur("Psyonix", "psyonix.com"));
|
||||
editeurRepository.save(new Editeur("Bandai Namco", "bandai.co.jp"));
|
||||
editeurRepository.save(new Editeur("Bethesda", "bethesda.net"));
|
||||
editeurRepository.save(new Editeur("BioWare", "bioware.com"));
|
||||
editeurRepository.save(new Editeur("Blizzard", "blizzard.com"));
|
||||
editeurRepository.save(new Editeur("Capcom", "capcom.com"));
|
||||
editeurRepository.save(new Editeur("CCP", "ccpgames.com"));
|
||||
editeurRepository.save(new Editeur("CD Projekt Red", "cdprojekt.com"));
|
||||
editeurRepository.save(new Editeur("Davilex", "davilex.nl"));
|
||||
editeurRepository.save(new Editeur("Digital Extreme", "digitalextremes.com"));
|
||||
editeurRepository.save(new Editeur("Electronic Arts", "ea.com"));
|
||||
editeurRepository.save(new Editeur("Epic Games", "epicgames.com"));
|
||||
editeurRepository.save(new Editeur("FromSoftware", "fromsoftware.jp"));
|
||||
editeurRepository.save(new Editeur("Hazelight Studios", "hazelight.se"));
|
||||
editeurRepository.save(new Editeur("idSoftware", "idsoftware.com"));
|
||||
editeurRepository.save(new Editeur("Microsoft", "microsoft.com"));
|
||||
editeurRepository.save(new Editeur("MonolithSoftware", "monolithsoft.co.jp"));
|
||||
editeurRepository.save(new Editeur("Naughty Dog", "naughtydog.com"));
|
||||
editeurRepository.save(new Editeur("Nintendo", "nintendo.com"));
|
||||
editeurRepository.save(new Editeur("Riot Games", "riotgames.com"));
|
||||
editeurRepository.save(new Editeur("Rockstar", "rockstar.com"));
|
||||
editeurRepository.save(new Editeur("Sega", "sega.com"));
|
||||
editeurRepository.save(new Editeur("Square Enix", "squareenix.com"));
|
||||
editeurRepository.save(new Editeur("Tencent", "tencentgames.com"));
|
||||
editeurRepository.save(new Editeur("Ubisoft", "ubisoft.com"));
|
||||
editeurRepository.save(new Editeur("Ultra Software", null));
|
||||
editeurRepository.save(new Editeur("Valve", "valvesoftware.com"));
|
||||
editeurRepository.save(new Editeur("Wildcard", "wildcardmobile.com"));
|
||||
}
|
||||
}
|
||||
|
||||
private void ajouterPlateformes() {
|
||||
if (plateformeRepository.count() == 0) {
|
||||
plateformeRepository.save(new Plateforme("Amstrad CPC"));
|
||||
plateformeRepository.save(new Plateforme("Nintendo Wii"));
|
||||
plateformeRepository.save(new Plateforme("Nintendo Wii U"));
|
||||
plateformeRepository.save(new Plateforme("Nintendo Switch"));
|
||||
plateformeRepository.save(new Plateforme("Windows"));
|
||||
plateformeRepository.save(new Plateforme("MacOS"));
|
||||
plateformeRepository.save(new Plateforme("Steam"));
|
||||
plateformeRepository.save(new Plateforme("Neo-Geo"));
|
||||
plateformeRepository.save(new Plateforme("PlayStation 1"));
|
||||
plateformeRepository.save(new Plateforme("PlayStation 2"));
|
||||
plateformeRepository.save(new Plateforme("PlayStation 3"));
|
||||
plateformeRepository.save(new Plateforme("PlayStation 4"));
|
||||
plateformeRepository.save(new Plateforme("PlayStation 5"));
|
||||
plateformeRepository.save(new Plateforme("PlayStation Vita"));
|
||||
plateformeRepository.save(new Plateforme("PSP"));
|
||||
plateformeRepository.save(new Plateforme("Sega Dreamcast"));
|
||||
plateformeRepository.save(new Plateforme("Sega Mastersystem"));
|
||||
plateformeRepository.save(new Plateforme("Sega Saturn"));
|
||||
plateformeRepository.save(new Plateforme("Xbox One"));
|
||||
plateformeRepository.save(new Plateforme("Xbox One Series"));
|
||||
plateformeRepository.save(new Plateforme("Xbox 360"));
|
||||
plateformeRepository.save(new Plateforme("Amiga"));
|
||||
plateformeRepository.save(new Plateforme("Android"));
|
||||
plateformeRepository.save(new Plateforme("Atari 8-bit"));
|
||||
plateformeRepository.save(new Plateforme("Atari Jaguar"));
|
||||
plateformeRepository.save(new Plateforme("Commodore 64"));
|
||||
plateformeRepository.save(new Plateforme("Game Boy"));
|
||||
plateformeRepository.save(new Plateforme("Game Boy Color"));
|
||||
plateformeRepository.save(new Plateforme("Game Boy Advance"));
|
||||
plateformeRepository.save(new Plateforme("Game Boy Advance SP"));
|
||||
plateformeRepository.save(new Plateforme("NES"));
|
||||
plateformeRepository.save(new Plateforme("PC-Engine"));
|
||||
plateformeRepository.save(new Plateforme("SNES"));
|
||||
plateformeRepository.save(new Plateforme("Nintendo 3DS"));
|
||||
plateformeRepository.save(new Plateforme("Nintendo 64"));
|
||||
plateformeRepository.save(new Plateforme("Nintendo DS"));
|
||||
plateformeRepository.save(new Plateforme("Nintendo Gamecube"));
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
package fr.clelia.avis.repository;
|
||||
|
||||
public interface AvatarRepository {
|
||||
import fr.clelia.avis.business.Avatar;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface AvatarRepository extends JpaRepository<Avatar, Long> {
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,8 @@
|
|||
package fr.clelia.avis.repository;
|
||||
|
||||
public interface JeuRepository {
|
||||
import fr.clelia.avis.business.Jeu;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
public interface JeuRepository extends JpaRepository<Jeu, Long> {
|
||||
}
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
package fr.clelia.avis.repository;
|
||||
|
||||
public interface JoueurRepository {
|
||||
import fr.clelia.avis.business.Joueur;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface JoueurRepository extends JpaRepository<Joueur, Long> {
|
||||
}
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
package fr.clelia.avis.repository;
|
||||
|
||||
public interface ModerateurRepository {
|
||||
import fr.clelia.avis.business.Moderateur;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface ModerateurRepository extends JpaRepository<Moderateur, Long> {
|
||||
}
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
package fr.clelia.avis.repository;
|
||||
|
||||
public interface PlateformeRepository {
|
||||
import fr.clelia.avis.business.Plateforme;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface PlateformeRepository extends JpaRepository<Plateforme, Long> {
|
||||
}
|
||||
|
|
@ -1,4 +1,7 @@
|
|||
package fr.clelia.avis.repository;
|
||||
|
||||
public interface UtilisateurRepository {
|
||||
import fr.clelia.avis.business.Utilisateur;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
public interface UtilisateurRepository extends JpaRepository<Utilisateur, Long> {
|
||||
}
|
||||
12
src/main/java/fr/clelia/avis/service/EditeurService.java
Normal file
12
src/main/java/fr/clelia/avis/service/EditeurService.java
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
package fr.clelia.avis.service;
|
||||
|
||||
import fr.clelia.avis.business.Editeur;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface EditeurService {
|
||||
|
||||
List<Editeur> recupererEditeurs();
|
||||
|
||||
List<Editeur> recupererEditeursAyantUnNomContenant(String nomRecherche);
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
package fr.clelia.avis.service.impl;
|
||||
|
||||
import fr.clelia.avis.business.Editeur;
|
||||
import fr.clelia.avis.repository.EditeurRepository;
|
||||
import fr.clelia.avis.service.EditeurService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
//@Component
|
||||
@Service
|
||||
public class EditeurServiceImpl implements EditeurService {
|
||||
|
||||
private final EditeurRepository editeurRepository;
|
||||
|
||||
// Ce constructeur va faire déduire à Spring
|
||||
// qu'il doit d'abord instancier la repo
|
||||
// avant d'instancier le service
|
||||
public EditeurServiceImpl(EditeurRepository editeurRepository) {
|
||||
this.editeurRepository = editeurRepository;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Editeur> recupererEditeurs() {
|
||||
return editeurRepository.findAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Editeur> recupererEditeursAyantUnNomContenant(String nomRecherche) {
|
||||
return editeurRepository.findByNomContainingIgnoreCase(nomRecherche);
|
||||
}
|
||||
}
|
||||
30
src/main/resources/templates/editeurs.html
Normal file
30
src/main/resources/templates/editeurs.html
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
<!DOCTYPE html>
|
||||
<html xmlns:th="http://www.thymeleaf.org" lang="fr">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">
|
||||
<title>Editeurs</title>
|
||||
</head>
|
||||
<body>
|
||||
<div th:replace="~{entete}"></div>
|
||||
<h1>Liste des éditeurs</h1>
|
||||
<form action="editeurs" method="POST">
|
||||
<input type="text" id="nom" name="NOM" placeholder="Nom de l'éditeur" th:value="${nom}">
|
||||
<input type="submit" value="Rechercher">
|
||||
</form>
|
||||
<table class="table table-striped table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Id <a th:href="@{'index?page=0&sort=id'}">Trier</a></th>
|
||||
<th>Logo <a th:href="@{'index?page=0&sort=logo'}">Trier</a></th>
|
||||
<th>Nom <a th:href="@{'index?page=0&sort=nom'}">Trier</a></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tr th:each="editeur:${editeurs}">
|
||||
<td th:text="${editeur.id}"></td>
|
||||
<td><img th:src="@{'https://logo.clearbit.com/' + ${editeur.logo} + '?size=150'}" alt="Logo de l'éditeur'"></td>
|
||||
<td th:text="${editeur.nom}"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
32
src/main/resources/templates/entete.html
Normal file
32
src/main/resources/templates/entete.html
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
<!DOCTYPE html>
|
||||
<table>
|
||||
<tr>
|
||||
<td><a href="editeurs">Éditeurs</a></td>
|
||||
<td><a href="jeux">Jeux</a></td>
|
||||
<td><a href="plateformes">Plateformes</a></td>
|
||||
<td><a href="configuration">Configuration</a></td>
|
||||
|
||||
<td><a href="/swagger-ui/index.html" target="swagger">Swagger</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td>H2</td>
|
||||
<td><a href="/h2-console" target="h2_console">Console</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Actuator</td>
|
||||
<td><a href="/beans" target="beans">Beans</a></td>
|
||||
<td><a href="/health" target="health">Health</a></td>
|
||||
<td><a href="/configprops" target="configprops">Propriétés de configuration</a></td>
|
||||
<td><a href="/env" target="env">Environnement</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
<table>
|
||||
<tr>
|
||||
<td>Hibernate</td>
|
||||
<td><a href="statistiques" target="statistiques">Statistiques</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
Loading…
Add table
Reference in a new issue