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 | 1 | package com.PFE.ServerManager; |
2 | 2 | |
3 | -import org.omg.CORBA.SystemException; | |
4 | 3 | import org.springframework.beans.factory.annotation.Autowired; |
5 | 4 | import org.springframework.http.HttpEntity; |
6 | 5 | import org.springframework.http.HttpStatus; |
... | ... | @@ -25,6 +24,7 @@ import org.springframework.security.core.Authentication; |
25 | 24 | import org.yaml.snakeyaml.Yaml; |
26 | 25 | import org.yaml.snakeyaml.constructor.Constructor; |
27 | 26 | |
27 | +import javax.persistence.EntityNotFoundException; | |
28 | 28 | import javax.servlet.annotation.MultipartConfig; |
29 | 29 | import com.fasterxml.jackson.databind.ObjectMapper; |
30 | 30 | |
... | ... | @@ -451,4 +451,70 @@ public class MainController { |
451 | 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 | 521 | \ No newline at end of file | ... | ... |
PFE06/src/main/resources/static/js/update.js
... | ... | @@ -141,6 +141,14 @@ $(document).ready(function() { |
141 | 141 | var majTime = document.getElementById("majTime").value; |
142 | 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 | 152 | if(nodeSet.size == 0) { |
145 | 153 | $("#warningFilesNumber").modal(); |
146 | 154 | } |
... | ... | @@ -164,6 +172,10 @@ $(document).ready(function() { |
164 | 172 | modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour" |
165 | 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 | 180 | else { |
169 | 181 | var nodes = Array.from(nodeSet); | ... | ... |
PFE06/src/main/resources/templates/all.html
... | ... | @@ -21,13 +21,15 @@ |
21 | 21 | <div th:remove="tag" th:switch="${customerRole}"> |
22 | 22 | <div th:remove="tag" th:case="'ADMIN'"> |
23 | 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 | 28 | </div> |
28 | 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 | 33 | </div> |
32 | 34 | </div> |
33 | 35 | </div> | ... | ... |
PFE06/src/main/resources/templates/history.html
... | ... | @@ -21,13 +21,15 @@ |
21 | 21 | <div th:remove="tag" th:switch="${customerRole}"> |
22 | 22 | <div th:remove="tag" th:case="'ADMIN'"> |
23 | 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 | 28 | </div> |
28 | 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 | 33 | </div> |
32 | 34 | </div> |
33 | 35 | </div> | ... | ... |
PFE06/src/main/resources/templates/home.html
... | ... | @@ -26,13 +26,15 @@ |
26 | 26 | <div th:remove="tag" th:switch="${customerRole}"> |
27 | 27 | <div th:remove="tag" th:case="'ADMIN'"> |
28 | 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 | 33 | </div> |
33 | 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 | 38 | </div> |
37 | 39 | </div> |
38 | 40 | </div> | ... | ... |
PFE06/src/main/resources/templates/registration.html
... | ... | @@ -20,13 +20,15 @@ |
20 | 20 | <div th:remove="tag" th:switch="${customerRole}"> |
21 | 21 | <div th:remove="tag" th:case="'ADMIN'"> |
22 | 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 | 27 | </div> |
27 | 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 | 32 | </div> |
31 | 33 | </div> |
32 | 34 | </div> | ... | ... |
... | ... | @@ -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 | 26 | <div th:remove="tag" th:switch="${customerRole}"> |
27 | 27 | <div th:remove="tag" th:case="'ADMIN'"> |
28 | 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 | 33 | </div> |
33 | 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 | 38 | </div> |
37 | 39 | </div> |
38 | 40 | </div> | ... | ... |
PFE06/src/main/resources/templates/upload.html
... | ... | @@ -26,13 +26,15 @@ |
26 | 26 | <div th:remove="tag" th:switch="${customerRole}"> |
27 | 27 | <div th:remove="tag" th:case="'ADMIN'"> |
28 | 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 | 33 | </div> |
33 | 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 | 38 | </div> |
37 | 39 | </div> |
38 | 40 | </div> | ... | ... |