Commit f1c88101cfd220ea7418a71fa85d55d56c3485a8
1 parent
2df8b522
Ergonomie du site
Le front-end du site a été modifié sur le retour de notre tuteur. Le code de plusieurs pages a été également nettoyé
Showing
11 changed files
with
229 additions
and
248 deletions
Show diff stats
PFE06/src/main/java/com/PFE/ServerManager/MainController.java
@@ -35,8 +35,8 @@ public class MainController { | @@ -35,8 +35,8 @@ public class MainController { | ||
35 | BCryptPasswordEncoder bCryptPasswordEncoder; | 35 | BCryptPasswordEncoder bCryptPasswordEncoder; |
36 | 36 | ||
37 | @GetMapping(value="/") | 37 | @GetMapping(value="/") |
38 | - public String homeRedirection(){ | ||
39 | - return "redirect:home"; | 38 | + public String uploadRedirection(){ |
39 | + return "redirect:upload"; | ||
40 | } | 40 | } |
41 | 41 | ||
42 | @GetMapping(value="/home") | 42 | @GetMapping(value="/home") |
@@ -50,6 +50,17 @@ public class MainController { | @@ -50,6 +50,17 @@ public class MainController { | ||
50 | return modelAndView; | 50 | return modelAndView; |
51 | } | 51 | } |
52 | 52 | ||
53 | + @GetMapping(value="/upload") | ||
54 | + public ModelAndView upload() { | ||
55 | + ModelAndView modelAndView = new ModelAndView(); | ||
56 | + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); | ||
57 | + Customer customer = customerRepository.findByEmail(auth.getName()); | ||
58 | + modelAndView.addObject("customerName", customer.getEmail().split("@")[0]); | ||
59 | + modelAndView.addObject("customerRole", customer.getRole()); | ||
60 | + modelAndView.setViewName("upload"); | ||
61 | + return modelAndView; | ||
62 | + } | ||
63 | + | ||
53 | @GetMapping(value="/session") | 64 | @GetMapping(value="/session") |
54 | public ModelAndView session() { | 65 | public ModelAndView session() { |
55 | ModelAndView modelAndView = new ModelAndView(); | 66 | ModelAndView modelAndView = new ModelAndView(); |
@@ -76,8 +87,8 @@ public class MainController { | @@ -76,8 +87,8 @@ public class MainController { | ||
76 | } | 87 | } |
77 | 88 | ||
78 | modelAndView.addObject("customerFiles", filesName); | 89 | modelAndView.addObject("customerFiles", filesName); |
79 | - | ||
80 | modelAndView.setViewName("session"); | 90 | modelAndView.setViewName("session"); |
91 | + | ||
81 | return modelAndView; | 92 | return modelAndView; |
82 | } | 93 | } |
83 | 94 | ||
@@ -109,6 +120,7 @@ public class MainController { | @@ -109,6 +120,7 @@ public class MainController { | ||
109 | Customer temp = customerRepository.findByEmail(email); | 120 | Customer temp = customerRepository.findByEmail(email); |
110 | Role userRole = roleRepository.findByRole(role); | 121 | Role userRole = roleRepository.findByRole(role); |
111 | n.setRoles(new HashSet<Role>(Arrays.asList(userRole))); | 122 | n.setRoles(new HashSet<Role>(Arrays.asList(userRole))); |
123 | + | ||
112 | //utilisé uniquement pour continuer à afficher l'utilisateur connecté// | 124 | //utilisé uniquement pour continuer à afficher l'utilisateur connecté// |
113 | Authentication auth = SecurityContextHolder.getContext().getAuthentication(); | 125 | Authentication auth = SecurityContextHolder.getContext().getAuthentication(); |
114 | Customer customer = customerRepository.findByEmail(auth.getName()); | 126 | Customer customer = customerRepository.findByEmail(auth.getName()); |
@@ -116,6 +128,9 @@ public class MainController { | @@ -116,6 +128,9 @@ public class MainController { | ||
116 | modelAndView.addObject("customerRole", customer.getRole()); | 128 | modelAndView.addObject("customerRole", customer.getRole()); |
117 | modelAndView.setViewName("registration"); | 129 | modelAndView.setViewName("registration"); |
118 | 130 | ||
131 | + List<Customer> list = customerRepository.findAll(); // attention : la méthode findAll() de JpaRepository retourne une liste alors que celle de CrudRepository retourne un itérable | ||
132 | + modelAndView.addObject("list", list); | ||
133 | + | ||
119 | if(temp != null) { | 134 | if(temp != null) { |
120 | modelAndView.addObject("message", "L'utilisateur existe déjà !"); | 135 | modelAndView.addObject("message", "L'utilisateur existe déjà !"); |
121 | modelAndView.addObject("fail", true); | 136 | modelAndView.addObject("fail", true); |
@@ -140,7 +155,6 @@ public class MainController { | @@ -140,7 +155,6 @@ public class MainController { | ||
140 | dirs.mkdirs(); | 155 | dirs.mkdirs(); |
141 | OutputStream outputStream = null; | 156 | OutputStream outputStream = null; |
142 | InputStream inputStream = null; | 157 | InputStream inputStream = null; |
143 | - | ||
144 | try { | 158 | try { |
145 | inputStream = file.getInputStream(); | 159 | inputStream = file.getInputStream(); |
146 | File newFile = new File(dirs.getPath() + "/" + file.getOriginalFilename()); | 160 | File newFile = new File(dirs.getPath() + "/" + file.getOriginalFilename()); |
@@ -155,17 +169,14 @@ public class MainController { | @@ -155,17 +169,14 @@ public class MainController { | ||
155 | outputStream.write(bytes, 0, read); | 169 | outputStream.write(bytes, 0, read); |
156 | } | 170 | } |
157 | } | 171 | } |
158 | - | ||
159 | catch (IOException e) { | 172 | catch (IOException e) { |
160 | e.printStackTrace(); | 173 | e.printStackTrace(); |
161 | } | 174 | } |
162 | - | ||
163 | finally { | 175 | finally { |
164 | try { | 176 | try { |
165 | outputStream.close(); | 177 | outputStream.close(); |
166 | } | 178 | } |
167 | catch(IOException e) { | 179 | catch(IOException e) { |
168 | - | ||
169 | } | 180 | } |
170 | } | 181 | } |
171 | } | 182 | } |
@@ -193,32 +204,24 @@ public class MainController { | @@ -193,32 +204,24 @@ public class MainController { | ||
193 | return modelAndView; | 204 | return modelAndView; |
194 | } | 205 | } |
195 | 206 | ||
196 | - | ||
197 | - @GetMapping(value="/success") | ||
198 | - public String success(){ | ||
199 | - return "success"; | ||
200 | - } | ||
201 | - | ||
202 | - @GetMapping(path="/test") | ||
203 | - public String testGet() { | ||
204 | - return "test"; | ||
205 | - } | ||
206 | - | ||
207 | @PostMapping(path="/savemaj") | 207 | @PostMapping(path="/savemaj") |
208 | public String saveMaj(@RequestParam String name, @RequestParam String date, @RequestParam String nodes, @RequestParam String file){ | 208 | public String saveMaj(@RequestParam String name, @RequestParam String date, @RequestParam String nodes, @RequestParam String file){ |
209 | Authentication auth = SecurityContextHolder.getContext().getAuthentication(); | 209 | Authentication auth = SecurityContextHolder.getContext().getAuthentication(); |
210 | Customer customer = customerRepository.findByEmail(auth.getName()); | 210 | Customer customer = customerRepository.findByEmail(auth.getName()); |
211 | + | ||
211 | Maj maj_c = new Maj(); | 212 | Maj maj_c = new Maj(); |
212 | maj_c.setMaj(name); | 213 | maj_c.setMaj(name); |
213 | maj_c.setDate(date); | 214 | maj_c.setDate(date); |
214 | maj_c.setNodes(nodes); | 215 | maj_c.setNodes(nodes); |
215 | maj_c.setFile(file); | 216 | maj_c.setFile(file); |
216 | maj_c.setMaj_id((int)(majRepository.count() + 1)); | 217 | maj_c.setMaj_id((int)(majRepository.count() + 1)); |
218 | + | ||
217 | majRepository.save(maj_c); // ajouter la mise a jour dans la table | 219 | majRepository.save(maj_c); // ajouter la mise a jour dans la table |
218 | HashSet<Maj> majs = new HashSet<Maj>(Arrays.asList(maj_c)); | 220 | HashSet<Maj> majs = new HashSet<Maj>(Arrays.asList(maj_c)); |
219 | majs.addAll(customer.getMaj()); | 221 | majs.addAll(customer.getMaj()); |
220 | customer.setMaj(majs); | 222 | customer.setMaj(majs); |
221 | customerRepository.save(customer); // permet de rendre effective la jointure entre customer et maj | 223 | customerRepository.save(customer); // permet de rendre effective la jointure entre customer et maj |
224 | + | ||
222 | return "redirect:/session"; | 225 | return "redirect:/session"; |
223 | } | 226 | } |
224 | } | 227 | } |
225 | \ No newline at end of file | 228 | \ No newline at end of file |
PFE06/src/main/resources/application.properties
@@ -8,9 +8,9 @@ spring.jpa.hibernate.ddl-auto=create | @@ -8,9 +8,9 @@ spring.jpa.hibernate.ddl-auto=create | ||
8 | #"update" met à jour la base données | 8 | #"update" met à jour la base données |
9 | 9 | ||
10 | #Postgres config : | 10 | #Postgres config : |
11 | -spring.datasource.url=jdbc:postgresql://localhost:3306/sql_only | 11 | +spring.datasource.url=jdbc:postgresql://localhost:5432/sql_only |
12 | spring.datasource.username=postgres | 12 | spring.datasource.username=postgres |
13 | -spring.datasource.password=admin | 13 | +spring.datasource.password=glopglop |
14 | 14 | ||
15 | 15 | ||
16 | # montre les communications JPA avec la BDD | 16 | # montre les communications JPA avec la BDD |
PFE06/src/main/resources/static/css/home.css renamed to PFE06/src/main/resources/static/css/upload.css
PFE06/src/main/resources/static/js/home.js renamed to PFE06/src/main/resources/static/js/upload.js
PFE06/src/main/resources/templates/all.html
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html xmlns:th="http://www.thymeleaf.org"> | 2 | <html xmlns:th="http://www.thymeleaf.org"> |
3 | <head> | 3 | <head> |
4 | - | ||
5 | <meta charset="utf-8"> | 4 | <meta charset="utf-8"> |
6 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | 5 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
7 | - | ||
8 | <link rel="stylesheet" th:href="@{/css/all.css}"> | 6 | <link rel="stylesheet" th:href="@{/css/all.css}"> |
9 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> | 7 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> |
10 | - | ||
11 | - <title>Listes des utilisateurs dans la base de donnée</title> | 8 | + <title>Listes des utilisateurs dans la base de données</title> |
12 | </head> | 9 | </head> |
13 | <body> | 10 | <body> |
14 | - | ||
15 | -<div id="app"> | ||
16 | <!-- NAV BAR --> | 11 | <!-- NAV BAR --> |
17 | - <div id="app"> | ||
18 | - <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> | ||
19 | - <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> | ||
20 | - <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | ||
21 | - <span class="navbar-toggler-icon"></span> | ||
22 | - </button> | ||
23 | - <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | ||
24 | - <div class="navbar-nav"> | ||
25 | - <a class="nav-item nav-link active" th:href="@{/home}">Gestion des noeuds <span class="sr-only">(current)</span></a> | ||
26 | - <a class="nav-item nav-link" th:href="@{/logout}">Déconnexion</a> | ||
27 | - <li class="nav-item dropdown"> | ||
28 | - <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Options</a> | ||
29 | - <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> | ||
30 | - <div th:switch="${customerRole}"> | ||
31 | - <div th:case="'ADMIN'"> | ||
32 | - <a class="dropdown-item" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
33 | - <a class="dropdown-item" th:href="@{/all}">Listes des utilisateurs</a> | ||
34 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
35 | - </div> | ||
36 | - <div th:case="'USER'"> | ||
37 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
38 | - </div> | ||
39 | - </div> | ||
40 | - <a class="dropdown-item" href="#">A ajouter...</a> | ||
41 | - </div> | ||
42 | - </li> | ||
43 | - <a class="nav-item nav-link disabled" href="#">Documentations</a> | 12 | + <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> |
13 | + <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> | ||
14 | + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | ||
15 | + <span class="navbar-toggler-icon"></span> | ||
16 | + </button> | ||
17 | + <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | ||
18 | + <div class="navbar-nav mr-auto"> | ||
19 | + <a class="nav-item nav-link" th:href="@{/home}">Accueil</a> | ||
20 | + <a class="nav-item nav-link" th:href="@{/upload}">Gestion des noeuds</a> | ||
21 | + <div th:remove="tag" th:switch="${customerRole}"> | ||
22 | + <div th:remove="tag" th:case="'ADMIN'"> | ||
23 | + <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
24 | + <a class="nav-item nav-link active" th:href="@{/all}">Listes des utilisateurs</a> | ||
25 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
26 | + </div> | ||
27 | + <div th:remove="tag" th:case="'USER'"> | ||
28 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
29 | + </div> | ||
44 | </div> | 30 | </div> |
45 | </div> | 31 | </div> |
46 | - </nav> | ||
47 | - | ||
48 | - <!-- TABLE PART --> | ||
49 | - | ||
50 | - <div class="container"> | ||
51 | - | ||
52 | - <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Liste des utilisateurs</h1> | ||
53 | - | ||
54 | - <table class="table table-striped table-bordered"> | ||
55 | - <tr> | ||
56 | - <th scope="col">Email</th> | ||
57 | - <th scope="col">Role</th> | ||
58 | - <th scope="col">ID</th> | ||
59 | - </tr> | ||
60 | - <tr th:each="prod : ${list}"> | ||
61 | - <td th:text="${prod.getEmail()}">Email</td> | ||
62 | - <td th:text="${prod.getRole()}">Role</td> | ||
63 | - <td th:text="${prod.customer_id}">ID</td> | ||
64 | - </tr> | ||
65 | - </table> | ||
66 | </div> | 32 | </div> |
33 | + <div class="collapse navbar-collapse ml-3" id="navbarNavAltMarkup2" > | ||
34 | + <div class="navbar-nav ml-auto"> | ||
35 | + <a class="nav-item nav-link btn btn-danger active" th:href="@{/logout}">Déconnexion</a> | ||
36 | + </div> | ||
37 | + </div> | ||
38 | + </nav> | ||
67 | 39 | ||
68 | -</div> | 40 | + <!-- TABLE PART --> |
41 | + <div class="container"> | ||
42 | + <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Liste des utilisateurs</h1> | ||
43 | + <table class="table table-striped table-bordered"> | ||
44 | + <tr> | ||
45 | + <th scope="col">Email</th> | ||
46 | + <th scope="col">Role</th> | ||
47 | + <th scope="col">ID</th> | ||
48 | + </tr> | ||
49 | + <tr th:each="prod : ${list}"> | ||
50 | + <td th:text="${prod.getEmail()}">Email</td> | ||
51 | + <td th:text="${prod.getRole()}">Role</td> | ||
52 | + <td th:text="${prod.customer_id}">ID</td> | ||
53 | + </tr> | ||
54 | + </table> | ||
55 | + </div> | ||
69 | 56 | ||
70 | <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> | 57 | <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> |
71 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | 58 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> |
PFE06/src/main/resources/templates/home.html
1 | <!DOCTYPE html> | 1 | <!DOCTYPE html> |
2 | <html xmlns:th="http://www.thymeleaf.org"> | 2 | <html xmlns:th="http://www.thymeleaf.org"> |
3 | <html lang="en"> | 3 | <html lang="en"> |
4 | - <head> | ||
5 | - | 4 | +<head> |
6 | <meta charset="utf-8"> | 5 | <meta charset="utf-8"> |
7 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
8 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> | 7 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> |
9 | <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous"> | 8 | <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous"> |
10 | - | ||
11 | <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css"> | 9 | <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css"> |
12 | <link rel="stylesheet" href="https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css"> | 10 | <link rel="stylesheet" href="https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css"> |
13 | <link rem="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css"> | 11 | <link rem="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css"> |
14 | - <link rel="stylesheet" th:href="@{/css/home.css}"> | 12 | + <link rel="stylesheet" th:href="@{/css/upload.css}"> |
15 | <title>Accueil</title> | 13 | <title>Accueil</title> |
16 | - </head> | ||
17 | - | ||
18 | - <body> | ||
19 | - <div id="app"> | ||
20 | - <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> | ||
21 | - <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> | ||
22 | - <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | ||
23 | - <span class="navbar-toggler-icon"></span> | ||
24 | - </button> | ||
25 | - <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | ||
26 | - <div class="navbar-nav"> | ||
27 | - <a class="nav-item nav-link active" th:href="@{/home}">Gestion des noeuds <span class="sr-only">(current)</span></a> | ||
28 | - <a class="nav-item nav-link" th:href="@{/logout}">Déconnexion</a> | ||
29 | - <li class="nav-item dropdown"> | ||
30 | - <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Options</a> | ||
31 | - <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> | ||
32 | - <div th:switch="${customerRole}"> | ||
33 | - <div th:case="'ADMIN'"> | ||
34 | - <a class="dropdown-item" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
35 | - <a class="dropdown-item" th:href="@{/all}">Listes des utilisateurs</a> | ||
36 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
37 | - </div> | ||
38 | - <div th:case="'USER'"> | ||
39 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
40 | - </div> | ||
41 | - </div> | ||
42 | - <a class="dropdown-item" href="#">A ajouter...</a> | ||
43 | - </div> | ||
44 | - </li> | ||
45 | - <a class="nav-item nav-link disabled" href="#">Documentations</a> | ||
46 | - </div> | ||
47 | - </div> | ||
48 | - </nav> | 14 | +</head> |
49 | 15 | ||
50 | - <div class="container" style="padding-bottom: 50px;"> | ||
51 | - <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Uploader un fichier</h1> | ||
52 | - <div class="panel panel-default"> | ||
53 | - <h4>Choix du fichier</h4> | ||
54 | - <input id="filesExplorer" type="file" style="display:none"></input> | ||
55 | - <div class="upload-drop-zone" id="drop-zone"> | ||
56 | - Clic ou dépose un fichier ici | ||
57 | - </div> | ||
58 | - <div class="progress"> | ||
59 | - <div id="file-progress" class="progress-bar" role="progressbar" style="width: 75%; display:none">25%</div> | 16 | +<body> |
17 | + <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> | ||
18 | + <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> | ||
19 | + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | ||
20 | + <span class="navbar-toggler-icon"></span> | ||
21 | + </button> | ||
22 | + <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | ||
23 | + <div class="navbar-nav mr-auto"> | ||
24 | + <a class="nav-item nav-link active" th:href="@{/home}">Accueil</a> | ||
25 | + <a class="nav-item nav-link" th:href="@{/upload}">Gestion des noeuds</a> | ||
26 | + <div th:remove="tag" th:switch="${customerRole}"> | ||
27 | + <div th:remove="tag" th:case="'ADMIN'"> | ||
28 | + <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
29 | + <a class="nav-item nav-link" th:href="@{/all}">Listes des utilisateurs</a> | ||
30 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
31 | + </div> | ||
32 | + <div th:remove="tag" th:case="'USER'"> | ||
33 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
34 | + </div> | ||
60 | </div> | 35 | </div> |
61 | - </div> | ||
62 | - <button id="sendButton" type="button" class="btn btn-secondary btn-lg btn-block"style="margin-top:50px;">Envoyer</button> | ||
63 | </div> | 36 | </div> |
64 | - </div> | ||
65 | - | ||
66 | - <div class="modal fade" id="warningFilesNumber" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> | ||
67 | - <div class="modal-dialog modal-dialog-centered" role="document"> | ||
68 | - <div class="modal-content"> | ||
69 | - <div class="modal-header"> | ||
70 | - <h5 class="modal-title" id="modal-title">Attention</h5> | ||
71 | - <button type="button" class="close" data-dismiss="modal" aria-label="Close"> | ||
72 | - <span aria-hidden="true">×</span> | ||
73 | - </button> | ||
74 | - </div> | ||
75 | - <div id="modal-content" class="modal-body"> | ||
76 | - Un seul fichier peut être envoyé ! | ||
77 | - </div> | ||
78 | - <div class="modal-footer"> | ||
79 | - <button id="modal-button" type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button> | 37 | + </div> |
38 | + <div class="collapse navbar-collapse ml-3" id="navbarNavAltMarkup2" > | ||
39 | + <div class="navbar-nav ml-auto"> | ||
40 | + <a class="nav-item nav-link btn btn-danger active" th:href="@{/logout}">Déconnexion</a> | ||
80 | </div> | 41 | </div> |
81 | - </div> | ||
82 | </div> | 42 | </div> |
83 | - </div> | 43 | + </nav> |
84 | 44 | ||
45 | + <div class="container" style="padding-bottom: 50px;"> | ||
46 | + <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Accueil</h1> | ||
85 | </div> | 47 | </div> |
86 | - <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | ||
87 | - <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> | ||
88 | - <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> | ||
89 | - <script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js" charset="utf-8"></script> | ||
90 | - <script src="https://cdn.datatables.net/select/1.2.7/js/dataTables.select.min.js" charset="utf-8"></script> | ||
91 | - <script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js" charset="utf-8"></script> | ||
92 | - <script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js" charset="utf-8"></script> | ||
93 | - <script th:src="@{/js/home.js}"></script> | ||
94 | - </body> | 48 | + |
49 | +<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | ||
50 | +<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> | ||
51 | +<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> | ||
52 | +<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js" charset="utf-8"></script> | ||
53 | +<script src="https://cdn.datatables.net/select/1.2.7/js/dataTables.select.min.js" charset="utf-8"></script> | ||
54 | +<script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js" charset="utf-8"></script> | ||
55 | +<script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js" charset="utf-8"></script> | ||
56 | +<script th:src="@{/js/upload.js}"></script> | ||
57 | +</body> | ||
95 | </html> | 58 | </html> |
PFE06/src/main/resources/templates/registration.html
@@ -2,42 +2,37 @@ | @@ -2,42 +2,37 @@ | ||
2 | <html xmlns:th="http://www.thymeleaf.org"> | 2 | <html xmlns:th="http://www.thymeleaf.org"> |
3 | <html lang="fr"> | 3 | <html lang="fr"> |
4 | <head> | 4 | <head> |
5 | - <title>Enregistrement de nouveaux utilisateurs</title> | ||
6 | <meta charset="utf-8"> | 5 | <meta charset="utf-8"> |
7 | <meta name="viewport" content="width=device-width, initial-scale=0.8, shrink-to-fit=no"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=0.8, shrink-to-fit=no"> |
8 | <link rel="stylesheet" th:href="@{/css/registration.css}"> | 7 | <link rel="stylesheet" th:href="@{/css/registration.css}"> |
9 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> | 8 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> |
9 | + <title>Enregistrement de nouveaux utilisateurs</title> | ||
10 | </head> | 10 | </head> |
11 | <body> | 11 | <body> |
12 | - | ||
13 | -<div id="app"> | ||
14 | - | ||
15 | <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> | 12 | <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> |
16 | <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> | 13 | <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> |
17 | <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | 14 | <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> |
18 | <span class="navbar-toggler-icon"></span> | 15 | <span class="navbar-toggler-icon"></span> |
19 | </button> | 16 | </button> |
20 | <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | 17 | <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> |
21 | - <div class="navbar-nav"> | ||
22 | - <a class="nav-item nav-link active" th:href="@{/home}">Gestion des noeuds <span class="sr-only">(current)</span></a> | ||
23 | - <a class="nav-item nav-link" th:href="@{/logout}">Déconnexion</a> | ||
24 | - <li class="nav-item dropdown"> | ||
25 | - <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Options</a> | ||
26 | - <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> | ||
27 | - <div th:switch="${customerRole}"> | ||
28 | - <div th:case="'ADMIN'"> | ||
29 | - <a class="dropdown-item" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
30 | - <a class="dropdown-item" th:href="@{/all}">Listes des utilisateurs</a> | ||
31 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
32 | - </div> | ||
33 | - <div th:case="'USER'"> | ||
34 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
35 | - </div> | ||
36 | - </div> | ||
37 | - <a class="dropdown-item" href="#">A ajouter...</a> | 18 | + <div class="navbar-nav mr-auto"> |
19 | + <a class="nav-item nav-link" th:href="@{/home}">Accueil</a> | ||
20 | + <a class="nav-item nav-link" th:href="@{/upload}">Gestion des noeuds</a> | ||
21 | + <div th:remove="tag" th:switch="${customerRole}"> | ||
22 | + <div th:remove="tag" th:case="'ADMIN'"> | ||
23 | + <a class="nav-item nav-link active" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
24 | + <a class="nav-item nav-link" th:href="@{/all}">Listes des utilisateurs</a> | ||
25 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
26 | + </div> | ||
27 | + <div th:remove="tag" th:case="'USER'"> | ||
28 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
38 | </div> | 29 | </div> |
39 | - </li> | ||
40 | - <a class="nav-item nav-link disabled" href="#">Documentations</a> | 30 | + </div> |
31 | + </div> | ||
32 | + </div> | ||
33 | + <div class="collapse navbar-collapse ml-3" id="navbarNavAltMarkup2" > | ||
34 | + <div class="navbar-nav ml-auto"> | ||
35 | + <a class="nav-item nav-link btn btn-danger active" th:href="@{/logout}">Déconnexion</a> | ||
41 | </div> | 36 | </div> |
42 | </div> | 37 | </div> |
43 | </nav> | 38 | </nav> |
@@ -63,10 +58,10 @@ | @@ -63,10 +58,10 @@ | ||
63 | 58 | ||
64 | <form id="Login" th:action="@{/registration}" method="POST"> | 59 | <form id="Login" th:action="@{/registration}" method="POST"> |
65 | <div class="form-group"> | 60 | <div class="form-group"> |
66 | - <input type="text" v-model="user.login" class="form-control" id="username" placeholder="Entrer le pseudo" name="email"> | 61 | + <input type="text" class="form-control" id="username" placeholder="Entrer le pseudo" name="email"> |
67 | </div> | 62 | </div> |
68 | <div class="form-group"> | 63 | <div class="form-group"> |
69 | - <input type="password" v-model="user.password" class="form-control" id="password" placeholder="Entrer le mot de passe" name="password"> | 64 | + <input type="password" class="form-control" id="password" placeholder="Entrer le mot de passe" name="password"> |
70 | </div> | 65 | </div> |
71 | <div class="form3"> | 66 | <div class="form3"> |
72 | <input type="radio" id="role1" name="role" value="ADMIN"> | 67 | <input type="radio" id="role1" name="role" value="ADMIN"> |
@@ -77,11 +72,9 @@ | @@ -77,11 +72,9 @@ | ||
77 | </div> | 72 | </div> |
78 | <button @click.prevent="registration" type="submit" class="btn btn-primary">Ajouter</button> | 73 | <button @click.prevent="registration" type="submit" class="btn btn-primary">Ajouter</button> |
79 | </form> | 74 | </form> |
80 | - | ||
81 | </div> | 75 | </div> |
82 | </div> | 76 | </div> |
83 | 77 | ||
84 | - | ||
85 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | 78 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> |
86 | <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> | 79 | <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.3/umd/popper.min.js" integrity="sha384-ZMP7rVo3mIykV+2+9J3UJ46jBk0WLaUAdn689aCwoqbBJiSnjAK/l8WvCWPIPm49" crossorigin="anonymous"></script> |
87 | <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> | 80 | <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> |
PFE06/src/main/resources/templates/session.html
@@ -2,66 +2,55 @@ | @@ -2,66 +2,55 @@ | ||
2 | <html xmlns:th="http://www.thymeleaf.org"> | 2 | <html xmlns:th="http://www.thymeleaf.org"> |
3 | <html lang="en"> | 3 | <html lang="en"> |
4 | <head> | 4 | <head> |
5 | - | ||
6 | <meta charset="utf-8"> | 5 | <meta charset="utf-8"> |
7 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | 6 | <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> |
8 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> | 7 | <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> |
9 | <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous"> | 8 | <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous"> |
10 | - | ||
11 | <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css"> | 9 | <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css"> |
12 | <link rel="stylesheet" href="https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css"> | 10 | <link rel="stylesheet" href="https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css"> |
13 | <link rem="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css"> | 11 | <link rem="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css"> |
14 | - <link rel="stylesheet" th:href="@{/css/home.css}"> | 12 | + <link rel="stylesheet" th:href="@{/css/upload.css}"> |
15 | <title>Session</title> | 13 | <title>Session</title> |
16 | </head> | 14 | </head> |
17 | 15 | ||
18 | <body> | 16 | <body> |
19 | -<div id="app"> | ||
20 | - | ||
21 | <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> | 17 | <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> |
22 | <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> | 18 | <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> |
23 | <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | 19 | <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> |
24 | <span class="navbar-toggler-icon"></span> | 20 | <span class="navbar-toggler-icon"></span> |
25 | </button> | 21 | </button> |
26 | <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | 22 | <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> |
27 | - <div class="navbar-nav"> | ||
28 | - <a class="nav-item nav-link active" th:href="@{/home}">Gestion des noeuds <span class="sr-only">(current)</span></a> | ||
29 | - <a class="nav-item nav-link" th:href="@{/logout}">Déconnexion</a> | ||
30 | - <li class="nav-item dropdown"> | ||
31 | - <a class="nav-link dropdown-toggle" href="#" id="navbarDropdownMenuLink" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false"> Options</a> | ||
32 | - <div class="dropdown-menu" aria-labelledby="navbarDropdownMenuLink"> | ||
33 | - <div th:switch="${customerRole}"> | ||
34 | - <div th:case="'ADMIN'"> | ||
35 | - <a class="dropdown-item" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
36 | - <a class="dropdown-item" th:href="@{/all}">Listes des utilisateurs</a> | ||
37 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
38 | - </div> | ||
39 | - <div th:case="'USER'"> | ||
40 | - <a class="dropdown-item" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
41 | - </div> | ||
42 | - </div> | ||
43 | - <a class="dropdown-item" href="#">A ajouter...</a> | 23 | + <div class="navbar-nav mr-auto"> |
24 | + <a class="nav-item nav-link" th:href="@{/home}">Accueil</a> | ||
25 | + <a class="nav-item nav-link" th:href="@{/upload}">Gestion des noeuds</a> | ||
26 | + <div th:remove="tag" th:switch="${customerRole}"> | ||
27 | + <div th:remove="tag" th:case="'ADMIN'"> | ||
28 | + <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
29 | + <a class="nav-item nav-link" th:href="@{/all}">Listes des utilisateurs</a> | ||
30 | + <a class="nav-item nav-link active" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
44 | </div> | 31 | </div> |
45 | - </li> | ||
46 | - <a class="nav-item nav-link disabled" href="#">Documentations</a> | 32 | + <div th:remove="tag" th:case="'USER'"> |
33 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
34 | + </div> | ||
35 | + </div> | ||
36 | + </div> | ||
37 | + </div> | ||
38 | + <div class="collapse navbar-collapse ml-3" id="navbarNavAltMarkup2" > | ||
39 | + <div class="navbar-nav ml-auto"> | ||
40 | + <a class="nav-item nav-link btn btn-danger active" th:href="@{/logout}">Déconnexion</a> | ||
47 | </div> | 41 | </div> |
48 | </div> | 42 | </div> |
49 | </nav> | 43 | </nav> |
50 | 44 | ||
51 | <div class="container" style="padding-bottom: 50px;"> | 45 | <div class="container" style="padding-bottom: 50px;"> |
52 | - | ||
53 | <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Relancer une mise à jour</h1> | 46 | <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Relancer une mise à jour</h1> |
54 | - | ||
55 | <div class="form-group"> | 47 | <div class="form-group"> |
56 | - | ||
57 | <select multiple class="form-control"> | 48 | <select multiple class="form-control"> |
58 | <option value="">--</option> | 49 | <option value="">--</option> |
59 | <option th:each="maj : ${customerMaj}" th:value="${maj.getMaj_id()}" th:utext="${maj.getMaj()}"/> | 50 | <option th:each="maj : ${customerMaj}" th:value="${maj.getMaj_id()}" th:utext="${maj.getMaj()}"/> |
60 | </select> | 51 | </select> |
61 | - | ||
62 | <button id="start_maj" type="submit" class="btn btn-primary" style="margin-top:20px;">Lancer la mise à jour</button> | 52 | <button id="start_maj" type="submit" class="btn btn-primary" style="margin-top:20px;">Lancer la mise à jour</button> |
63 | </div> | 53 | </div> |
64 | - | ||
65 | <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Créer une mise à jour</h1> | 54 | <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Créer une mise à jour</h1> |
66 | <table id="nodes-table" class="table table-striped table-bordered dt-responsive nowrap"> | 55 | <table id="nodes-table" class="table table-striped table-bordered dt-responsive nowrap"> |
67 | <thead> | 56 | <thead> |
@@ -100,15 +89,12 @@ | @@ -100,15 +89,12 @@ | ||
100 | <div class="form-group"> | 89 | <div class="form-group"> |
101 | <input type="date" class="form-control" id="majDate" placeholder="Date de la mise à jour" name="date"> | 90 | <input type="date" class="form-control" id="majDate" placeholder="Date de la mise à jour" name="date"> |
102 | </div> | 91 | </div> |
103 | - | ||
104 | <select multiple class="form-control" style="margin-bottom:20px;" id="file_choice"> | 92 | <select multiple class="form-control" style="margin-bottom:20px;" id="file_choice"> |
105 | <option value="">--</option> | 93 | <option value="">--</option> |
106 | <option th:each="file : ${customerFiles}" th:value="${file}" th:utext="${file}"/> | 94 | <option th:each="file : ${customerFiles}" th:value="${file}" th:utext="${file}"/> |
107 | </select> | 95 | </select> |
108 | - | ||
109 | <button id="save_maj" type="submit" class="btn btn-primary">Sauvegarder la mise à jour</button> | 96 | <button id="save_maj" type="submit" class="btn btn-primary">Sauvegarder la mise à jour</button> |
110 | <button id="run_maj" type="submit" class="btn btn-primary">Lancer la mise à jour</button> | 97 | <button id="run_maj" type="submit" class="btn btn-primary">Lancer la mise à jour</button> |
111 | - | ||
112 | </div> | 98 | </div> |
113 | 99 | ||
114 | <div class="modal fade" id="warningFilesNumber" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> | 100 | <div class="modal fade" id="warningFilesNumber" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> |
@@ -130,10 +116,6 @@ | @@ -130,10 +116,6 @@ | ||
130 | </div> | 116 | </div> |
131 | </div> | 117 | </div> |
132 | 118 | ||
133 | - | ||
134 | -</div> | ||
135 | - | ||
136 | -</div> | ||
137 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | 119 | <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> |
138 | <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> | 120 | <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> |
139 | <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> | 121 | <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> |
PFE06/src/main/resources/templates/success.html deleted
PFE06/src/main/resources/templates/test.html deleted
@@ -1,25 +0,0 @@ | @@ -1,25 +0,0 @@ | ||
1 | -<!DOCTYPE html> | ||
2 | -<html xmlns:th="http://www.thymeleaf.org"> | ||
3 | -<html lang="en"> | ||
4 | - <head> | ||
5 | - <meta charset="UTF-8"> | ||
6 | - <title>Data from js test</title> | ||
7 | - </head> | ||
8 | - <body> | ||
9 | - <form id="Login" th:action="@{/test}" method="POST"> | ||
10 | - <div class="form-group"> | ||
11 | - <input type="text" class="form-control" id="maj" placeholder="Entrer le nom de la maj" name="maj"> | ||
12 | - </div> | ||
13 | - <div class="form-group"> | ||
14 | - <input type="text" class="form-control" id="date" placeholder="Entrer la date" name="date"> | ||
15 | - </div> | ||
16 | - <div class="form-group"> | ||
17 | - <input type="text" class="form-control" id="set1" placeholder="set1" name="set1"> | ||
18 | - </div> | ||
19 | - <div class="form-group"> | ||
20 | - <input type="text" class="form-control" id="set2" placeholder="set2" name="set2"> | ||
21 | - </div> | ||
22 | - <button @click.prevent="registration" type="submit" class="btn btn-primary">Ajouter</button> | ||
23 | - </form> | ||
24 | - </body> | ||
25 | -</html> | ||
26 | \ No newline at end of file | 0 | \ No newline at end of file |
@@ -0,0 +1,88 @@ | @@ -0,0 +1,88 @@ | ||
1 | +<!DOCTYPE html> | ||
2 | +<html xmlns:th="http://www.thymeleaf.org"> | ||
3 | +<html lang="en"> | ||
4 | +<head> | ||
5 | + <meta charset="utf-8"> | ||
6 | + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
7 | + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> | ||
8 | + <link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.3.1/css/all.css" integrity="sha384-mzrmE5qonljUremFsqc01SB46JvROS7bZs3IO2EmfFsd15uHvIt+Y8vEf7N7fWAU" crossorigin="anonymous"> | ||
9 | + <link rel="stylesheet" href="https://cdn.datatables.net/1.10.19/css/dataTables.bootstrap4.min.css"> | ||
10 | + <link rel="stylesheet" href="https://cdn.datatables.net/select/1.2.7/css/select.dataTables.min.css"> | ||
11 | + <link rem="stylesheet" href="https://cdn.datatables.net/responsive/2.2.3/css/responsive.dataTables.min.css"> | ||
12 | + <link rel="stylesheet" th:href="@{/css/upload.css}"> | ||
13 | + <title>Accueil</title> | ||
14 | +</head> | ||
15 | + | ||
16 | +<body> | ||
17 | + <nav class="navbar navbar-expand-lg navbar-dark bg-dark"> | ||
18 | + <span class="navbar-brand"> ID : <span th:text="${customerName}" th:remove="tag">Documentations</span></span> | ||
19 | + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | ||
20 | + <span class="navbar-toggler-icon"></span> | ||
21 | + </button> | ||
22 | + <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | ||
23 | + <div class="navbar-nav mr-auto"> | ||
24 | + <a class="nav-item nav-link" th:href="@{/home}">Accueil</a> | ||
25 | + <a class="nav-item nav-link active" th:href="@{/upload}">Gestion des noeuds</a> | ||
26 | + <div th:remove="tag" th:switch="${customerRole}"> | ||
27 | + <div th:remove="tag" th:case="'ADMIN'"> | ||
28 | + <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | ||
29 | + <a class="nav-item nav-link" th:href="@{/all}">Listes des utilisateurs</a> | ||
30 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
31 | + </div> | ||
32 | + <div th:remove="tag" th:case="'USER'"> | ||
33 | + <a class="nav-item nav-link" th:href="@{/session}">Paramétrer une mise à jour</a> | ||
34 | + </div> | ||
35 | + </div> | ||
36 | + </div> | ||
37 | + </div> | ||
38 | + <div class="collapse navbar-collapse ml-3" id="navbarNavAltMarkup2" > | ||
39 | + <div class="navbar-nav ml-auto"> | ||
40 | + <a class="nav-item nav-link btn btn-danger active" th:href="@{/logout}">Déconnexion</a> | ||
41 | + </div> | ||
42 | + </div> | ||
43 | + </nav> | ||
44 | + | ||
45 | + <div class="container" style="padding-bottom: 50px;"> | ||
46 | + <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Uploader un fichier</h1> | ||
47 | + <div class="panel panel-default"> | ||
48 | + <h4>Choix du fichier</h4> | ||
49 | + <input id="filesExplorer" type="file" style="display:none"></input> | ||
50 | + <div class="upload-drop-zone" id="drop-zone"> | ||
51 | + Clic ou dépose un fichier ici | ||
52 | + </div> | ||
53 | + <div class="progress"> | ||
54 | + <div id="file-progress" class="progress-bar" role="progressbar" style="width: 75%; display:none">25%</div> | ||
55 | + </div> | ||
56 | + </div> | ||
57 | + <button id="sendButton" type="button" class="btn btn-secondary btn-lg btn-block"style="margin-top:50px;">Envoyer</button> | ||
58 | + </div> | ||
59 | + </div> | ||
60 | + | ||
61 | + <div class="modal fade" id="warningFilesNumber" tabindex="-1" role="dialog" aria-labelledby="exampleModalCenterTitle" aria-hidden="true"> | ||
62 | + <div class="modal-dialog modal-dialog-centered" role="document"> | ||
63 | + <div class="modal-content"> | ||
64 | + <div class="modal-header"> | ||
65 | + <h5 class="modal-title" id="modal-title">Attention</h5> | ||
66 | + <button type="button" class="close" data-dismiss="modal" aria-label="Close"> | ||
67 | + <span aria-hidden="true">×</span> | ||
68 | + </button> | ||
69 | + </div> | ||
70 | + <div id="modal-content" class="modal-body"> | ||
71 | + Un seul fichier peut être envoyé ! | ||
72 | + </div> | ||
73 | + <div class="modal-footer"> | ||
74 | + <button id="modal-button" type="button" class="btn btn-secondary" data-dismiss="modal">Fermer</button> | ||
75 | + </div> | ||
76 | + </div> | ||
77 | + </div> | ||
78 | + </div> | ||
79 | +<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | ||
80 | +<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script> | ||
81 | +<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> | ||
82 | +<script src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js" charset="utf-8"></script> | ||
83 | +<script src="https://cdn.datatables.net/select/1.2.7/js/dataTables.select.min.js" charset="utf-8"></script> | ||
84 | +<script src="https://cdn.datatables.net/1.10.19/js/dataTables.bootstrap4.min.js" charset="utf-8"></script> | ||
85 | +<script src="https://cdn.datatables.net/responsive/2.2.3/js/dataTables.responsive.min.js" charset="utf-8"></script> | ||
86 | +<script th:src="@{/js/upload.js}"></script> | ||
87 | +</body> | ||
88 | +</html> |