diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java index afa4685..1098e96 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java @@ -3,6 +3,7 @@ package com.PFE.ServerManager; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.HttpEntity; import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -169,8 +170,10 @@ public class MainController { } @RequestMapping(value = "/file", method = RequestMethod.POST) - @ResponseStatus(value = HttpStatus.OK) - public void submit(@RequestParam MultipartFile file) { + public ResponseEntity submit(@RequestParam MultipartFile file) { + if(findFile(file.getOriginalFilename()) != null) { + return new ResponseEntity(HttpStatus.INTERNAL_SERVER_ERROR); + } Authentication auth = SecurityContextHolder.getContext().getAuthentication(); Customer customer = customerRepository.findByEmail(auth.getName()); @@ -203,6 +206,7 @@ public class MainController { catch(IOException e) { } } + return new ResponseEntity(HttpStatus.OK); } @RequestMapping(value = "/updatenodes", method = RequestMethod.POST) @@ -262,8 +266,26 @@ public class MainController { return modelAndView; } + + public static String findFile(String filename) { + File dir = new File("files"); + if(dir.isDirectory()){ + String s[] = dir.list(); + for(int i = 0; i < s.length; i++) { + File dirTemp = new File("files/" + s[i]); + if(dirTemp.isDirectory()) { + if(dirTemp.list()[0].equals(filename)) { + return s[i]; + } + } + } + } + return null; + } + + @PostMapping(path="/savemaj") - public String saveMaj(@RequestParam String name, @RequestParam String date, @RequestParam String time, @RequestParam String nodes, @RequestParam String file){ + public String saveMaj(@RequestParam String name, @RequestParam String date, @RequestParam String time, @RequestParam String nodes, @RequestParam String file, @RequestParam String arch){ Authentication auth = SecurityContextHolder.getContext().getAuthentication(); Customer customer = customerRepository.findByEmail(auth.getName()); @@ -273,6 +295,8 @@ public class MainController { update_c.setNodes(nodes); update_c.setFile(file); update_c.setTime(time); + update_c.setArch(arch); + update_c.setDir(findFile(update_c.getFile())); updateRepository.save(update_c); // ajouter la mise a jour dans la table @@ -283,36 +307,6 @@ public class MainController { return "redirect:/update"; } - /* - @PostMapping(path="/runmaj") - public String runMaj(@RequestParam String name, @RequestParam String date, @RequestParam String nodes, @RequestParam String file){ - Authentication auth = SecurityContextHolder.getContext().getAuthentication(); - Customer customer = customerRepository.findByEmail(auth.getName()); - - Update update_c = new Update(); - update_c.setUpdate(name); - update_c.setDate(date); - update_c.setNodes(nodes); - update_c.setFile(file); - - Map data = new HashMap(); - data.put("name", update_c.getUpdate()); - data.put("date", update_c.getDate()); - data.put("file", update_c.getFile()); - data.put("nodes", update_c.getNodes().split(";")); - Yaml yaml = new Yaml(); - FileWriter writer = null; - try { - writer = new FileWriter("toflash/" + customer.getEmail().split("@")[0] + "_" + update_c.getUpdate() + ".yml"); - } catch (IOException e) { - e.printStackTrace(); - } - yaml.dump(data, writer); - - return "redirect:/update"; - } -*/ - @PostMapping(path="/startsavedmaj") @ResponseStatus(value = HttpStatus.OK) public void startSavedMaj(@RequestParam String majname){ @@ -337,6 +331,8 @@ public class MainController { data.put("date", update.getDate()); data.put("time", update.getTime()); data.put("file", update.getFile()); + data.put("dir", update.getDir()); + data.put("arch", update.getArch()); data.put("nodes", update.getNodes().split(";")); Yaml yaml = new Yaml(); FileWriter writer = null; diff --git a/PFE06/src/main/java/com/PFE/ServerManager/Update.java b/PFE06/src/main/java/com/PFE/ServerManager/Update.java index a357a78..43da4d4 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/Update.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/Update.java @@ -22,6 +22,12 @@ public class Update { @Column(name = "file") private String file; + @Column(name = "dir") + private String dir; + + @Column(name = "arch") + private String arch; + @Column(name = "nodes") private String nodes; @@ -58,4 +64,14 @@ public class Update { this.file = file; } public String getFile() { return file; } + + public void setDir(String dir) { + this.dir = dir; + } + public String getDir() { return dir; } + + public void setArch(String arch) { + this.arch = arch; + } + public String getArch() { return arch; } } diff --git a/PFE06/src/main/resources/application.properties b/PFE06/src/main/resources/application.properties index fe43e06..bd2766a 100644 --- a/PFE06/src/main/resources/application.properties +++ b/PFE06/src/main/resources/application.properties @@ -12,9 +12,6 @@ spring.jpa.hibernate.ddl-auto=create-drop spring.datasource.url=jdbc:postgresql://localhost:5432/sql_only spring.datasource.username=postgres spring.datasource.password=glopglop -#spring.datasource.url=jdbc:postgresql://localhost:5432/sql_only -#spring.datasource.username=postgres -#spring.datasource.password=glopglop # montre les communications JPA avec la BDD spring.jpa.show-sql = true @@ -24,4 +21,5 @@ spring.datasource.initialization-mode=always server.tomcat.max-http-post-size=80000000 spring.servlet.multipart.max-file-size=80MB -spring.servlet.multipart.max-request-size=80MB \ No newline at end of file +spring.servlet.multipart.max-request-size=80MB +server.port=80 \ No newline at end of file diff --git a/PFE06/src/main/resources/static/js/update.js b/PFE06/src/main/resources/static/js/update.js index 5c249a4..2eca102 100644 --- a/PFE06/src/main/resources/static/js/update.js +++ b/PFE06/src/main/resources/static/js/update.js @@ -100,22 +100,30 @@ $(document).ready(function() { } ); var nodeSet = new Set(); + var arch = ""; + var first = true; tableNodes.on('select', function (e, dt, type, indexes) { var rowData = tableNodes.rows(indexes).data().toArray()[0]; - console.log(rowData); nodeSet.add(rowData[3] + "@" + rowData[1]); - console.log(nodeSet); + var lastArch = arch; + arch = rowData[2]; + if(first != true && lastArch != arch) + { + alert("Veuillez choisir la même architecture"); + tableNodes.rows().deselect(); + nodeSet.clear(); + first = true; + } + first = false; } ); tableNodes.on('deselect', function (e, dt, type, indexes) { var rowData = tableNodes.rows(indexes).data().toArray()[0]; nodeSet.delete(rowData[3] + "@" + rowData[1]); - console.log(nodeSet); } ); var sendInfoMaj = function(action) { - console.log(action); var form = document.createElement('form'); form.setAttribute('action', action); form.setAttribute('method', 'post'); @@ -183,6 +191,12 @@ $(document).ready(function() { inputvar5.setAttribute('value', majTime); form.appendChild(inputvar5); + var inputvar6 = document.createElement('input'); + inputvar6.setAttribute('type', 'hidden'); + inputvar6.setAttribute('name', 'arch'); + inputvar6.setAttribute('value', arch); + form.appendChild(inputvar6); + document.body.appendChild(form); form.submit(); } diff --git a/PFE06/src/main/resources/static/js/upload.js b/PFE06/src/main/resources/static/js/upload.js index b9319ff..4ea7a34 100644 --- a/PFE06/src/main/resources/static/js/upload.js +++ b/PFE06/src/main/resources/static/js/upload.js @@ -73,19 +73,32 @@ $(document).ready(function() { 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) { + var modalButton = document.getElementById("modal-button"); + + modalButton.addEventListener('click', function(e) { + location.reload(); + }) + + modalContent.innerHTML = "Upload terminé !"; + modalTitle.innerHTML = "Félicitations"; + $("#warningFilesNumber").modal() + formData = new FormData(); + } + + if(this.readyState === XMLHttpRequest.DONE && this.status === 500) { + var modalButton = document.getElementById("modal-button"); + + modalButton.addEventListener('click', function(e) { + location.reload(); + }) + + modalContent.innerHTML = "Un fichier du même nom existe déjà, veuillez le renommer"; + modalTitle.innerHTML = "Erreur"; + $("#warningFilesNumber").modal(); formData = new FormData(); } } diff --git a/PFE06/src/main/resources/templates/update.html b/PFE06/src/main/resources/templates/update.html index 75f9e8c..30afa8e 100644 --- a/PFE06/src/main/resources/templates/update.html +++ b/PFE06/src/main/resources/templates/update.html @@ -179,6 +179,7 @@ nodes: +
@@ -188,7 +189,7 @@ nodes:
-

Durée de l'expérimentation

+

Durée de l'expérimentation (hh:mm)

diff --git a/PFE06/toflash/pfe_test.yml b/PFE06/toflash/pfe_test.yml deleted file mode 100644 index 5734d67..0000000 --- a/PFE06/toflash/pfe_test.yml +++ /dev/null @@ -1,6 +0,0 @@ -date: 2019-02-07T01:33 -file: pfelogo.png -nodes: [a@a] -exp_id: 8 -name: test -time: 00:15 -- libgit2 0.21.2