Commit 8134d85a1607447d800997f3f85268042d945558
1 parent
5c2fe69f
Affichage des des valeurs des capteurs
Showing
9 changed files
with
183 additions
and
31 deletions
Show diff stats
PFE06/src/main/java/com/PFE/ServerManager/MainController.java
1 | package com.PFE.ServerManager; | 1 | package com.PFE.ServerManager; |
2 | 2 | ||
3 | -import org.omg.CORBA.SystemException; | ||
4 | import org.springframework.beans.factory.annotation.Autowired; | 3 | import org.springframework.beans.factory.annotation.Autowired; |
5 | import org.springframework.http.HttpEntity; | 4 | import org.springframework.http.HttpEntity; |
6 | import org.springframework.http.HttpStatus; | 5 | import org.springframework.http.HttpStatus; |
@@ -25,6 +24,7 @@ import org.springframework.security.core.Authentication; | @@ -25,6 +24,7 @@ import org.springframework.security.core.Authentication; | ||
25 | import org.yaml.snakeyaml.Yaml; | 24 | import org.yaml.snakeyaml.Yaml; |
26 | import org.yaml.snakeyaml.constructor.Constructor; | 25 | import org.yaml.snakeyaml.constructor.Constructor; |
27 | 26 | ||
27 | +import javax.persistence.EntityNotFoundException; | ||
28 | import javax.servlet.annotation.MultipartConfig; | 28 | import javax.servlet.annotation.MultipartConfig; |
29 | import com.fasterxml.jackson.databind.ObjectMapper; | 29 | import com.fasterxml.jackson.databind.ObjectMapper; |
30 | 30 | ||
@@ -451,4 +451,70 @@ public class MainController { | @@ -451,4 +451,70 @@ public class MainController { | ||
451 | return new ResponseEntity<String>(HttpStatus.OK); | 451 | return new ResponseEntity<String>(HttpStatus.OK); |
452 | } | 452 | } |
453 | 453 | ||
454 | + @GetMapping(path="/result") | ||
455 | + public ModelAndView displayResults() { | ||
456 | + ModelAndView modelAndView = new ModelAndView(); | ||
457 | + modelAndView.setViewName("result"); | ||
458 | + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); | ||
459 | + Customer customer = customerRepository.findByEmail(auth.getName()); | ||
460 | + modelAndView.addObject("customerName", customer.getEmail().split("@")[0]); | ||
461 | + modelAndView.addObject("customerRole", customer.getRole()); | ||
462 | + | ||
463 | + List<List<String>> files = new ArrayList<>(); | ||
464 | + File dir = new File("results"); | ||
465 | + if(dir.isDirectory()){ | ||
466 | + List<String> experiments = Arrays.asList(dir.list()); | ||
467 | + for(String experiment : experiments) { | ||
468 | + //System.out.println(experiment); | ||
469 | + File experimentDir = new File("results/" + experiment+"/"); | ||
470 | + if(experimentDir.isDirectory()) { | ||
471 | + List<String> raspberrys = Arrays.asList(experimentDir.list()); | ||
472 | + for (String raspberry : raspberrys) { | ||
473 | + //System.out.println(raspberry); | ||
474 | + File raspberryDir = new File("results/" + experiment + "/" + raspberry + "/"); | ||
475 | + if(raspberryDir.isDirectory()) { | ||
476 | + List<String> results = Arrays.asList(raspberryDir.list()); | ||
477 | + //System.out.println(results); | ||
478 | + for (String result : results) { | ||
479 | + //System.out.println(result); | ||
480 | + String line = null; | ||
481 | + FileReader fileReader = null; | ||
482 | + try { | ||
483 | + fileReader = new FileReader("results/" + experiment + "/" + raspberry + "/" + result); | ||
484 | + } catch (FileNotFoundException e) { | ||
485 | + e.printStackTrace(); | ||
486 | + } | ||
487 | + BufferedReader bufferedReader = new BufferedReader(fileReader); | ||
488 | + try { | ||
489 | + List<String> listString = new ArrayList<>(); | ||
490 | + //System.out.println((result.split("_")[2]).split("\\.")[0]); | ||
491 | + try { | ||
492 | + listString.add((updateRepository.getOne(Integer.parseInt(experiment.split("_")[1]))).getUpdate()); | ||
493 | + listString.add(result.split("_")[2].split("\\.")[0]); | ||
494 | + String s = ""; | ||
495 | + while ((line = bufferedReader.readLine()) != null) { | ||
496 | + //System.out.println(line); | ||
497 | + s+=line+"\n"; | ||
498 | + } | ||
499 | + listString.add(s); | ||
500 | + files.add(listString); | ||
501 | + } | ||
502 | + catch(EntityNotFoundException e){ | ||
503 | + e.printStackTrace(); | ||
504 | + } | ||
505 | + } catch (IOException ex) { | ||
506 | + ex.printStackTrace(); | ||
507 | + } | ||
508 | + | ||
509 | + } | ||
510 | + } | ||
511 | + } | ||
512 | + } | ||
513 | + } | ||
514 | + } | ||
515 | + modelAndView.addObject("files", files); | ||
516 | + | ||
517 | + return modelAndView; | ||
518 | + } | ||
519 | + | ||
454 | } | 520 | } |
455 | \ No newline at end of file | 521 | \ No newline at end of file |
PFE06/src/main/resources/static/js/update.js
@@ -141,6 +141,14 @@ $(document).ready(function() { | @@ -141,6 +141,14 @@ $(document).ready(function() { | ||
141 | var majTime = document.getElementById("majTime").value; | 141 | var majTime = document.getElementById("majTime").value; |
142 | var majFile = document.getElementById("file_choice").value; | 142 | var majFile = document.getElementById("file_choice").value; |
143 | 143 | ||
144 | + var majNameExisting = document.getElementById("maj_name").options; | ||
145 | + var error = 0; | ||
146 | + for(var i=0;i<majNameExisting.length;i++) | ||
147 | + { | ||
148 | + if(majName === majNameExisting[i].value){ | ||
149 | + error=1; | ||
150 | + } | ||
151 | + } | ||
144 | if(nodeSet.size == 0) { | 152 | if(nodeSet.size == 0) { |
145 | $("#warningFilesNumber").modal(); | 153 | $("#warningFilesNumber").modal(); |
146 | } | 154 | } |
@@ -164,6 +172,10 @@ $(document).ready(function() { | @@ -164,6 +172,10 @@ $(document).ready(function() { | ||
164 | modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour" | 172 | modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour" |
165 | $("#warningFilesNumber").modal(); | 173 | $("#warningFilesNumber").modal(); |
166 | } | 174 | } |
175 | + else if(error === 1) { | ||
176 | + modalContent.innerHTML = "Deux mises à jour ne peuvent pas avoir le même nom"; | ||
177 | + $("#warningFilesNumber").modal(); | ||
178 | + } | ||
167 | 179 | ||
168 | else { | 180 | else { |
169 | var nodes = Array.from(nodeSet); | 181 | var nodes = Array.from(nodeSet); |
PFE06/src/main/resources/templates/all.html
@@ -21,13 +21,15 @@ | @@ -21,13 +21,15 @@ | ||
21 | <div th:remove="tag" th:switch="${customerRole}"> | 21 | <div th:remove="tag" th:switch="${customerRole}"> |
22 | <div th:remove="tag" th:case="'ADMIN'"> | 22 | <div th:remove="tag" th:case="'ADMIN'"> |
23 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | 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}">Liste des utilisateurs</a> | ||
25 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
26 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 24 | + <a class="nav-item nav-link active" th:href="@{/all}">Base utilisateur</a> |
25 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> | ||
26 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
27 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
27 | </div> | 28 | </div> |
28 | <div th:remove="tag" th:case="'USER'"> | 29 | <div th:remove="tag" th:case="'USER'"> |
29 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
30 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 30 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> |
31 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
32 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
31 | </div> | 33 | </div> |
32 | </div> | 34 | </div> |
33 | </div> | 35 | </div> |
PFE06/src/main/resources/templates/history.html
@@ -21,13 +21,15 @@ | @@ -21,13 +21,15 @@ | ||
21 | <div th:remove="tag" th:switch="${customerRole}"> | 21 | <div th:remove="tag" th:switch="${customerRole}"> |
22 | <div th:remove="tag" th:case="'ADMIN'"> | 22 | <div th:remove="tag" th:case="'ADMIN'"> |
23 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | 23 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> |
24 | - <a class="nav-item nav-link" th:href="@{/all}">Liste des utilisateurs</a> | ||
25 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
26 | - <a class="nav-item nav-link active" th:href="@{/history}">Etat du réseau</a> | 24 | + <a class="nav-item nav-link" th:href="@{/all}">Base utilisateur</a> |
25 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> | ||
26 | + <a class="nav-item nav-link active" th:href="@{/history}">Réseau</a> | ||
27 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
27 | </div> | 28 | </div> |
28 | <div th:remove="tag" th:case="'USER'"> | 29 | <div th:remove="tag" th:case="'USER'"> |
29 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
30 | - <a class="nav-item nav-link active" th:href="@{/history}">Etat du réseau</a> | 30 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> |
31 | + <a class="nav-item nav-link active" th:href="@{/history}">Réseau</a> | ||
32 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
31 | </div> | 33 | </div> |
32 | </div> | 34 | </div> |
33 | </div> | 35 | </div> |
PFE06/src/main/resources/templates/home.html
@@ -26,13 +26,15 @@ | @@ -26,13 +26,15 @@ | ||
26 | <div th:remove="tag" th:switch="${customerRole}"> | 26 | <div th:remove="tag" th:switch="${customerRole}"> |
27 | <div th:remove="tag" th:case="'ADMIN'"> | 27 | <div th:remove="tag" th:case="'ADMIN'"> |
28 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | 28 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> |
29 | - <a class="nav-item nav-link" th:href="@{/all}">Liste des utilisateurs</a> | ||
30 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
31 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 29 | + <a class="nav-item nav-link" th:href="@{/all}">Base utilisateur</a> |
30 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> | ||
31 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
32 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
32 | </div> | 33 | </div> |
33 | <div th:remove="tag" th:case="'USER'"> | 34 | <div th:remove="tag" th:case="'USER'"> |
34 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
35 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 35 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> |
36 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
37 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
36 | </div> | 38 | </div> |
37 | </div> | 39 | </div> |
38 | </div> | 40 | </div> |
PFE06/src/main/resources/templates/registration.html
@@ -20,13 +20,15 @@ | @@ -20,13 +20,15 @@ | ||
20 | <div th:remove="tag" th:switch="${customerRole}"> | 20 | <div th:remove="tag" th:switch="${customerRole}"> |
21 | <div th:remove="tag" th:case="'ADMIN'"> | 21 | <div th:remove="tag" th:case="'ADMIN'"> |
22 | <a class="nav-item nav-link active" th:href="@{/registration}">Enregistrer des utilisateurs</a> | 22 | <a class="nav-item nav-link active" th:href="@{/registration}">Enregistrer des utilisateurs</a> |
23 | - <a class="nav-item nav-link" th:href="@{/all}">Liste des utilisateurs</a> | ||
24 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
25 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 23 | + <a class="nav-item nav-link" th:href="@{/all}">Base utilisateur</a> |
24 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> | ||
25 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
26 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
26 | </div> | 27 | </div> |
27 | <div th:remove="tag" th:case="'USER'"> | 28 | <div th:remove="tag" th:case="'USER'"> |
28 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
29 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 29 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> |
30 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
31 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
30 | </div> | 32 | </div> |
31 | </div> | 33 | </div> |
32 | </div> | 34 | </div> |
@@ -0,0 +1,62 @@ | @@ -0,0 +1,62 @@ | ||
1 | +<!DOCTYPE html> | ||
2 | +<html xmlns:th="http://www.thymeleaf.org"> | ||
3 | +<head> | ||
4 | + <meta charset="utf-8"> | ||
5 | + <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> | ||
6 | + <link rel="stylesheet" th:href="@{/css/all.css}"> | ||
7 | + <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css" integrity="sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO" crossorigin="anonymous"> | ||
8 | + <title>Listes des utilisateurs dans la base de données</title> | ||
9 | +</head> | ||
10 | +<body> | ||
11 | +<!-- NAV BAR --> | ||
12 | +<nav class="navbar navbar-expand-lg navbar-dark bg-dark"> | ||
13 | + <div class="container"> | ||
14 | + <a th:href="@{/home}"><span class="navbar-brand"><img style="max-width:32px;" src="/pfelogo.png"></span></a> | ||
15 | + <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNavAltMarkup" aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation"> | ||
16 | + <span class="navbar-toggler-icon"></span> | ||
17 | + </button> | ||
18 | + <div class="collapse navbar-collapse" id="navbarNavAltMarkup"> | ||
19 | + <div class="navbar-nav mr-auto"> | ||
20 | + <a class="nav-item nav-link" th:href="@{/upload}">Uploader un fichier</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" th:href="@{/all}">Base utilisateur</a> | ||
25 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> | ||
26 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
27 | + <a class="nav-item nav-link active" th:href="@{/result}">Résultats</a> | ||
28 | + </div> | ||
29 | + <div th:remove="tag" th:case="'USER'"> | ||
30 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> | ||
31 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
32 | + <a class="nav-item nav-link active" th:href="@{/result}">Résultats</a> | ||
33 | + </div> | ||
34 | + </div> | ||
35 | + </div> | ||
36 | + </div> | ||
37 | + <div class="collapse navbar-collapse ml-3" id="navbarNavAltMarkup2" > | ||
38 | + <div class="navbar-nav ml-auto"> | ||
39 | + <a class="nav-item nav-link btn btn-danger active" th:href="@{/logout}">Déconnexion</a> | ||
40 | + </div> | ||
41 | + </div> | ||
42 | + </div> | ||
43 | +</nav> | ||
44 | + | ||
45 | + | ||
46 | +<!-- TABLE PART --> | ||
47 | +<div class="container"> | ||
48 | + <h1 style="margin-bottom:50px; margin-top:50px; border-bottom:1px solid #CCC; padding-bottom:20px;">Résultats des expérimentations</h1> | ||
49 | + | ||
50 | + <div th:each="file,status : ${files}"> | ||
51 | + <h5 th:utext="${'Mise à jour : '+file.get(0)}"></h5> | ||
52 | + <h3 th:utext="${'Capteur : '+file.get(1)}"></h3> | ||
53 | + <textarea class="form-control" rows="5" th:utext="${file.get(2)}"></textarea> | ||
54 | + <br/> | ||
55 | + <div> | ||
56 | +</div> | ||
57 | + | ||
58 | +<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> | ||
59 | +<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> | ||
60 | +<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/js/bootstrap.min.js" integrity="sha384-ChfqqxuZUCnJSK3+MXmPNIyE6ZbWh2IMqE241rYiqJxyMiZ6OW/JmZQ5stwEULTy" crossorigin="anonymous"></script> | ||
61 | +</body> | ||
62 | +</html> |
PFE06/src/main/resources/templates/update.html
@@ -26,13 +26,15 @@ | @@ -26,13 +26,15 @@ | ||
26 | <div th:remove="tag" th:switch="${customerRole}"> | 26 | <div th:remove="tag" th:switch="${customerRole}"> |
27 | <div th:remove="tag" th:case="'ADMIN'"> | 27 | <div th:remove="tag" th:case="'ADMIN'"> |
28 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | 28 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> |
29 | - <a class="nav-item nav-link" th:href="@{/all}">Liste des utilisateurs</a> | ||
30 | - <a class="nav-item nav-link active" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
31 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 29 | + <a class="nav-item nav-link" th:href="@{/all}">Base utilisateur</a> |
30 | + <a class="nav-item nav-link active" th:href="@{/update}">Experimentations</a> | ||
31 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
32 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
32 | </div> | 33 | </div> |
33 | <div th:remove="tag" th:case="'USER'"> | 34 | <div th:remove="tag" th:case="'USER'"> |
34 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
35 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 35 | + <a class="nav-item nav-link active" th:href="@{/update}">Experimentations</a> |
36 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
37 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
36 | </div> | 38 | </div> |
37 | </div> | 39 | </div> |
38 | </div> | 40 | </div> |
PFE06/src/main/resources/templates/upload.html
@@ -26,13 +26,15 @@ | @@ -26,13 +26,15 @@ | ||
26 | <div th:remove="tag" th:switch="${customerRole}"> | 26 | <div th:remove="tag" th:switch="${customerRole}"> |
27 | <div th:remove="tag" th:case="'ADMIN'"> | 27 | <div th:remove="tag" th:case="'ADMIN'"> |
28 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> | 28 | <a class="nav-item nav-link" th:href="@{/registration}">Enregistrer des utilisateurs</a> |
29 | - <a class="nav-item nav-link" th:href="@{/all}">Liste des utilisateurs</a> | ||
30 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
31 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 29 | + <a class="nav-item nav-link" th:href="@{/all}">Base utilisateur</a> |
30 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> | ||
31 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
32 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
32 | </div> | 33 | </div> |
33 | <div th:remove="tag" th:case="'USER'"> | 34 | <div th:remove="tag" th:case="'USER'"> |
34 | - <a class="nav-item nav-link" th:href="@{/update}">Paramétrer une mise à jour</a> | ||
35 | - <a class="nav-item nav-link" th:href="@{/history}">Etat du réseau</a> | 35 | + <a class="nav-item nav-link" th:href="@{/update}">Experimentations</a> |
36 | + <a class="nav-item nav-link" th:href="@{/history}">Réseau</a> | ||
37 | + <a class="nav-item nav-link" th:href="@{/result}">Résultats</a> | ||
36 | </div> | 38 | </div> |
37 | </div> | 39 | </div> |
38 | </div> | 40 | </div> |