From f1c88101cfd220ea7418a71fa85d55d56c3485a8 Mon Sep 17 00:00:00 2001 From: sfeutrie Date: Thu, 13 Dec 2018 15:06:51 +0100 Subject: [PATCH] Ergonomie du site --- PFE06/src/main/java/com/PFE/ServerManager/MainController.java | 39 +++++++++++++++++++++------------------ PFE06/src/main/resources/application.properties | 4 ++-- PFE06/src/main/resources/static/css/home.css | 26 -------------------------- PFE06/src/main/resources/static/css/upload.css | 26 ++++++++++++++++++++++++++ PFE06/src/main/resources/static/js/home.js | 101 ----------------------------------------------------------------------------------------------------- PFE06/src/main/resources/static/js/upload.js | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PFE06/src/main/resources/templates/all.html | 95 +++++++++++++++++++++++++++++++++++++++++------------------------------------------------------ PFE06/src/main/resources/templates/home.html | 115 +++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------- PFE06/src/main/resources/templates/registration.html | 47 ++++++++++++++++++++--------------------------- PFE06/src/main/resources/templates/session.html | 54 ++++++++++++++++++------------------------------------ PFE06/src/main/resources/templates/success.html | 10 ---------- PFE06/src/main/resources/templates/test.html | 25 ------------------------- PFE06/src/main/resources/templates/upload.html | 88 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 13 files changed, 356 insertions(+), 375 deletions(-) delete mode 100644 PFE06/src/main/resources/static/css/home.css create mode 100644 PFE06/src/main/resources/static/css/upload.css delete mode 100644 PFE06/src/main/resources/static/js/home.js create mode 100644 PFE06/src/main/resources/static/js/upload.js delete mode 100644 PFE06/src/main/resources/templates/success.html delete mode 100644 PFE06/src/main/resources/templates/test.html create mode 100644 PFE06/src/main/resources/templates/upload.html diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java index c268cd8..fb0b8a2 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java @@ -35,8 +35,8 @@ public class MainController { BCryptPasswordEncoder bCryptPasswordEncoder; @GetMapping(value="/") - public String homeRedirection(){ - return "redirect:home"; + public String uploadRedirection(){ + return "redirect:upload"; } @GetMapping(value="/home") @@ -50,6 +50,17 @@ public class MainController { return modelAndView; } + @GetMapping(value="/upload") + public ModelAndView upload() { + ModelAndView modelAndView = new ModelAndView(); + Authentication auth = SecurityContextHolder.getContext().getAuthentication(); + Customer customer = customerRepository.findByEmail(auth.getName()); + modelAndView.addObject("customerName", customer.getEmail().split("@")[0]); + modelAndView.addObject("customerRole", customer.getRole()); + modelAndView.setViewName("upload"); + return modelAndView; + } + @GetMapping(value="/session") public ModelAndView session() { ModelAndView modelAndView = new ModelAndView(); @@ -76,8 +87,8 @@ public class MainController { } modelAndView.addObject("customerFiles", filesName); - modelAndView.setViewName("session"); + return modelAndView; } @@ -109,6 +120,7 @@ public class MainController { Customer temp = customerRepository.findByEmail(email); Role userRole = roleRepository.findByRole(role); n.setRoles(new HashSet(Arrays.asList(userRole))); + //utilisé uniquement pour continuer à afficher l'utilisateur connecté// Authentication auth = SecurityContextHolder.getContext().getAuthentication(); Customer customer = customerRepository.findByEmail(auth.getName()); @@ -116,6 +128,9 @@ public class MainController { modelAndView.addObject("customerRole", customer.getRole()); modelAndView.setViewName("registration"); + List list = customerRepository.findAll(); // attention : la méthode findAll() de JpaRepository retourne une liste alors que celle de CrudRepository retourne un itérable + modelAndView.addObject("list", list); + if(temp != null) { modelAndView.addObject("message", "L'utilisateur existe déjà !"); modelAndView.addObject("fail", true); @@ -140,7 +155,6 @@ public class MainController { dirs.mkdirs(); OutputStream outputStream = null; InputStream inputStream = null; - try { inputStream = file.getInputStream(); File newFile = new File(dirs.getPath() + "/" + file.getOriginalFilename()); @@ -155,17 +169,14 @@ public class MainController { outputStream.write(bytes, 0, read); } } - catch (IOException e) { e.printStackTrace(); } - finally { try { outputStream.close(); } catch(IOException e) { - } } } @@ -193,32 +204,24 @@ public class MainController { return modelAndView; } - - @GetMapping(value="/success") - public String success(){ - return "success"; - } - - @GetMapping(path="/test") - public String testGet() { - return "test"; - } - @PostMapping(path="/savemaj") public String saveMaj(@RequestParam String name, @RequestParam String date, @RequestParam String nodes, @RequestParam String file){ Authentication auth = SecurityContextHolder.getContext().getAuthentication(); Customer customer = customerRepository.findByEmail(auth.getName()); + Maj maj_c = new Maj(); maj_c.setMaj(name); maj_c.setDate(date); maj_c.setNodes(nodes); maj_c.setFile(file); maj_c.setMaj_id((int)(majRepository.count() + 1)); + majRepository.save(maj_c); // ajouter la mise a jour dans la table HashSet majs = new HashSet(Arrays.asList(maj_c)); majs.addAll(customer.getMaj()); customer.setMaj(majs); customerRepository.save(customer); // permet de rendre effective la jointure entre customer et maj + return "redirect:/session"; } } \ No newline at end of file diff --git a/PFE06/src/main/resources/application.properties b/PFE06/src/main/resources/application.properties index 8940957..c5a5af8 100644 --- a/PFE06/src/main/resources/application.properties +++ b/PFE06/src/main/resources/application.properties @@ -8,9 +8,9 @@ spring.jpa.hibernate.ddl-auto=create #"update" met à jour la base données #Postgres config : -spring.datasource.url=jdbc:postgresql://localhost:3306/sql_only +spring.datasource.url=jdbc:postgresql://localhost:5432/sql_only spring.datasource.username=postgres -spring.datasource.password=admin +spring.datasource.password=glopglop # montre les communications JPA avec la BDD diff --git a/PFE06/src/main/resources/static/css/home.css b/PFE06/src/main/resources/static/css/home.css deleted file mode 100644 index 38dfa9a..0000000 --- a/PFE06/src/main/resources/static/css/home.css +++ /dev/null @@ -1,26 +0,0 @@ -body { background-color: #FFF; } - -.upload-drop-zone { - height: 200px; - border-width: 2px; - margin-bottom: 20px; - color: #ccc; - border-style: dashed; - border-color: #ccc; - line-height: 200px; - text-align: center -} - -.theme-dropdown .dropdown-menu { - position: static; - display: block; - margin-bottom: 20px; -} - -.theme-showcase > p > .btn { - margin: 5px 0; -} - -.theme-showcase .navbar .container { - width: auto; -} diff --git a/PFE06/src/main/resources/static/css/upload.css b/PFE06/src/main/resources/static/css/upload.css new file mode 100644 index 0000000..38dfa9a --- /dev/null +++ b/PFE06/src/main/resources/static/css/upload.css @@ -0,0 +1,26 @@ +body { background-color: #FFF; } + +.upload-drop-zone { + height: 200px; + border-width: 2px; + margin-bottom: 20px; + color: #ccc; + border-style: dashed; + border-color: #ccc; + line-height: 200px; + text-align: center +} + +.theme-dropdown .dropdown-menu { + position: static; + display: block; + margin-bottom: 20px; +} + +.theme-showcase > p > .btn { + margin: 5px 0; +} + +.theme-showcase .navbar .container { + width: auto; +} diff --git a/PFE06/src/main/resources/static/js/home.js b/PFE06/src/main/resources/static/js/home.js deleted file mode 100644 index 4125621..0000000 --- a/PFE06/src/main/resources/static/js/home.js +++ /dev/null @@ -1,101 +0,0 @@ -$(document).ready(function() { - -/********** Drop Zone **********/ - - var formData = new FormData(); - var dropZone = document.querySelector("#drop-zone"); - dropZone.style.cursor = "pointer"; - var file = document.getElementById("filesExplorer"); - var fileProgress = document.getElementById("file-progress"); - var readyToSend = false; - - dropZone.addEventListener('click', function() { - delete formData; - formData = new FormData(); - file.click(); - }) - - file.addEventListener('change', function() { - dropZone.innerHTML = this.files[0].name; - formData.append("file", this.files[0]); - readyToSend = true; - }, false) - - dropZone.addEventListener('drop', function(e) { - e.preventDefault(); - delete formData; - formData = new FormData(); - dropZone.style.borderWidth = '2px'; - var files = e.dataTransfer.files; - - if(files.length > 1) { - $("#warningFilesNumber").modal() - return; - } - dropZone.innerHTML = files[0].name; - formData.append("file", files[0]); - readyToSend = true; - }, false) - - dropZone.addEventListener('dragenter', function(e) { - console.log("Enter"); - dropZone.style.borderWidth = '5px'; - }, false); - - dropZone.addEventListener('dragleave', function(e) { - console.log("Leave"); - dropZone.style.borderWidth = '2px'; - }, false); - - dropZone.addEventListener('dragover', function(e) { - e.preventDefault(); - }, false); - - document.getElementById("sendButton").addEventListener('click', function() { - var modalContent = document.getElementById("modal-content"); - var modalTitle = document.getElementById("modal-title"); - if(readyToSend) { - var request = new XMLHttpRequest(); - request.open("POST", "/file"); - - request.upload.onloadstart = function(e) { - fileProgress.style.display = 'block'; - fileProgress.style.width = 0 + "px" - fileProgress.innerHTML = "0%"; - } - - request.upload.onprogress = function(e) { - var p = 100 - ((e.total - e.loaded) / e.total * 100); - fileProgress.style.width = Math.ceil(p) + "%" - fileProgress.innerHTML = Math.ceil(p) + "%"; - } - - request.upload.onloadend = function(e) { - fileProgress.style.width = 100 + "%" - fileProgress.innerHTML = "100%"; - var modalButton = document.getElementById("modal-button"); - - modalButton.addEventListener('click', function(e) { - location.reload(); - }) - - modalContent.innerHTML = "Upload terminé !"; - modalTitle.innerHTML = "Félicitations"; - $("#warningFilesNumber").modal() - } - - request.onreadystatechange = function() { - if(this.readyState === XMLHttpRequest.DONE && this.status === 200) { - formData = new FormData(); - } - } - - request.send(formData); - - } - else { - modalContent.innerHTML = "Veuillez choisir un fichier !"; - } - }) - -} ); diff --git a/PFE06/src/main/resources/static/js/upload.js b/PFE06/src/main/resources/static/js/upload.js new file mode 100644 index 0000000..4125621 --- /dev/null +++ b/PFE06/src/main/resources/static/js/upload.js @@ -0,0 +1,101 @@ +$(document).ready(function() { + +/********** Drop Zone **********/ + + var formData = new FormData(); + var dropZone = document.querySelector("#drop-zone"); + dropZone.style.cursor = "pointer"; + var file = document.getElementById("filesExplorer"); + var fileProgress = document.getElementById("file-progress"); + var readyToSend = false; + + dropZone.addEventListener('click', function() { + delete formData; + formData = new FormData(); + file.click(); + }) + + file.addEventListener('change', function() { + dropZone.innerHTML = this.files[0].name; + formData.append("file", this.files[0]); + readyToSend = true; + }, false) + + dropZone.addEventListener('drop', function(e) { + e.preventDefault(); + delete formData; + formData = new FormData(); + dropZone.style.borderWidth = '2px'; + var files = e.dataTransfer.files; + + if(files.length > 1) { + $("#warningFilesNumber").modal() + return; + } + dropZone.innerHTML = files[0].name; + formData.append("file", files[0]); + readyToSend = true; + }, false) + + dropZone.addEventListener('dragenter', function(e) { + console.log("Enter"); + dropZone.style.borderWidth = '5px'; + }, false); + + dropZone.addEventListener('dragleave', function(e) { + console.log("Leave"); + dropZone.style.borderWidth = '2px'; + }, false); + + dropZone.addEventListener('dragover', function(e) { + e.preventDefault(); + }, false); + + document.getElementById("sendButton").addEventListener('click', function() { + var modalContent = document.getElementById("modal-content"); + var modalTitle = document.getElementById("modal-title"); + if(readyToSend) { + var request = new XMLHttpRequest(); + request.open("POST", "/file"); + + request.upload.onloadstart = function(e) { + fileProgress.style.display = 'block'; + fileProgress.style.width = 0 + "px" + fileProgress.innerHTML = "0%"; + } + + request.upload.onprogress = function(e) { + var p = 100 - ((e.total - e.loaded) / e.total * 100); + fileProgress.style.width = Math.ceil(p) + "%" + fileProgress.innerHTML = Math.ceil(p) + "%"; + } + + request.upload.onloadend = function(e) { + fileProgress.style.width = 100 + "%" + fileProgress.innerHTML = "100%"; + var modalButton = document.getElementById("modal-button"); + + modalButton.addEventListener('click', function(e) { + location.reload(); + }) + + modalContent.innerHTML = "Upload terminé !"; + modalTitle.innerHTML = "Félicitations"; + $("#warningFilesNumber").modal() + } + + request.onreadystatechange = function() { + if(this.readyState === XMLHttpRequest.DONE && this.status === 200) { + formData = new FormData(); + } + } + + request.send(formData); + + } + else { + modalContent.innerHTML = "Veuillez choisir un fichier !"; + } + }) + +} ); diff --git a/PFE06/src/main/resources/templates/all.html b/PFE06/src/main/resources/templates/all.html index e3a05b7..b3732d4 100644 --- a/PFE06/src/main/resources/templates/all.html +++ b/PFE06/src/main/resources/templates/all.html @@ -1,71 +1,58 @@ - - - - Listes des utilisateurs dans la base de donnée + Listes des utilisateurs dans la base de données - -
-
- -
+ +
+

Liste des utilisateurs

+ + + + + + + + + + + +
EmailRoleID
EmailRoleID
+
diff --git a/PFE06/src/main/resources/templates/home.html b/PFE06/src/main/resources/templates/home.html index 24c607d..e2d5827 100644 --- a/PFE06/src/main/resources/templates/home.html +++ b/PFE06/src/main/resources/templates/home.html @@ -1,95 +1,58 @@ - - + - - + Accueil - - - -
- + -
-

Uploader un fichier

-
-

Choix du fichier

- -
- Clic ou dépose un fichier ici -
- - -
- diff --git a/PFE06/src/main/resources/templates/session.html b/PFE06/src/main/resources/templates/session.html index 834e314..df0e0d3 100644 --- a/PFE06/src/main/resources/templates/session.html +++ b/PFE06/src/main/resources/templates/session.html @@ -2,66 +2,55 @@ - - - + Session - +
-

Relancer une mise à jour

-
- -
-

Créer une mise à jour

@@ -100,15 +89,12 @@
- - - - - - - diff --git a/PFE06/src/main/resources/templates/success.html b/PFE06/src/main/resources/templates/success.html deleted file mode 100644 index b4e81f4..0000000 --- a/PFE06/src/main/resources/templates/success.html +++ /dev/null @@ -1,10 +0,0 @@ - - - - - SUCCESS - - -connexion - - \ No newline at end of file diff --git a/PFE06/src/main/resources/templates/test.html b/PFE06/src/main/resources/templates/test.html deleted file mode 100644 index 5f989bf..0000000 --- a/PFE06/src/main/resources/templates/test.html +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - Data from js test - - - -
- -
-
- -
-
- -
-
- -
- - - - \ No newline at end of file diff --git a/PFE06/src/main/resources/templates/upload.html b/PFE06/src/main/resources/templates/upload.html new file mode 100644 index 0000000..6439b36 --- /dev/null +++ b/PFE06/src/main/resources/templates/upload.html @@ -0,0 +1,88 @@ + + + + + + + + + + + + + Accueil + + + + + +
+

Uploader un fichier

+
+

Choix du fichier

+ +
+ Clic ou dépose un fichier ici +
+
+ +
+
+ +
+ + + + + + + + + + + + + -- libgit2 0.21.2