From 65f1240c6bc4b04aa73344f491be24fb6d79a429 Mon Sep 17 00:00:00 2001 From: sfeutrie Date: Mon, 14 Jan 2019 14:06:27 +0100 Subject: [PATCH] Ajout des groupes de travail --- PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java | 37 ++++++++++++++++++++++++++++++++++--- PFE06/src/main/java/com/PFE/ServerManager/Customer.java | 21 +++++++++++---------- PFE06/src/main/java/com/PFE/ServerManager/MainController.java | 70 +++++++++++++++++++++++++++++++++++++--------------------------------- PFE06/src/main/java/com/PFE/ServerManager/Maj.java | 51 --------------------------------------------------- PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java | 9 --------- PFE06/src/main/java/com/PFE/ServerManager/Role.java | 8 ++++---- PFE06/src/main/java/com/PFE/ServerManager/Team.java | 56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PFE06/src/main/java/com/PFE/ServerManager/TeamRepository.java | 16 ++++++++++++++++ PFE06/src/main/java/com/PFE/ServerManager/Update.java | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ PFE06/src/main/java/com/PFE/ServerManager/UpdateRepository.java | 9 +++++++++ PFE06/src/main/resources/application.properties | 9 +++++---- PFE06/src/main/resources/static/js/session.js | 174 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ PFE06/src/main/resources/static/js/update.js | 174 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PFE06/src/main/resources/templates/all.html | 6 +++--- PFE06/src/main/resources/templates/home.html | 6 +++--- PFE06/src/main/resources/templates/login.html | 4 ++-- PFE06/src/main/resources/templates/registration.html | 8 ++++---- PFE06/src/main/resources/templates/session.html | 145 ------------------------------------------------------------------------------------------------------------------------------------------------- PFE06/src/main/resources/templates/update.html | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ PFE06/src/main/resources/templates/upload.html | 4 ++-- 20 files changed, 556 insertions(+), 447 deletions(-) delete mode 100644 PFE06/src/main/java/com/PFE/ServerManager/Maj.java delete mode 100644 PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/Team.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/TeamRepository.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/Update.java create mode 100644 PFE06/src/main/java/com/PFE/ServerManager/UpdateRepository.java delete mode 100644 PFE06/src/main/resources/static/js/session.js create mode 100644 PFE06/src/main/resources/static/js/update.js delete mode 100644 PFE06/src/main/resources/templates/session.html create mode 100644 PFE06/src/main/resources/templates/update.html diff --git a/PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java b/PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java index 8881d07..02c5d51 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/AppConfig.java @@ -21,6 +21,9 @@ public class AppConfig { RoleRepository roleRepository; @Autowired + TeamRepository teamRepository; + + @Autowired BCryptPasswordEncoder bCryptPasswordEncoder; @PostConstruct @@ -32,11 +35,11 @@ public class AppConfig { if(roleRepository.count() != 2) { roleRepository.deleteAll(); Role roleAdmin = new Role(); - roleAdmin.setRole_id(1); + roleAdmin.setRoleId(1); roleAdmin.setRole("ADMIN"); roleRepository.save(roleAdmin); Role roleUser = new Role(); - roleUser.setRole_id(2); + roleUser.setRoleId(2); roleUser.setRole("USER"); roleRepository.save(roleUser); } @@ -60,10 +63,38 @@ public class AppConfig { Customer temp = customerRepository.findByEmail(conf.getAdminEmail()); Role userRole = roleRepository.findByRole("ADMIN"); - n.setRoles(new HashSet(Arrays.asList(userRole))); + n.setRoles(new HashSet<>(Arrays.asList(userRole))); + + ////////////////////////////////////////// + /* + Customer p = new Customer(); + p.setEmail("admin@admin.fr"); + p.setPassword(bCryptPasswordEncoder.encode("azerty")); + p.setId((int)(customerRepository.count() + 2)); + p.setActive(1); + + Role userRole2 = roleRepository.findByRole("USER"); + p.setRoles(new HashSet<>(Arrays.asList(userRole2))); + customerRepository.save(p); + */ + /////////////////////////////////// if(temp == null) { customerRepository.save(n); + } + + /* Partie sur les groupes */ + Team g = new Team(); + g.setTeamId((int)(teamRepository.count() +1)); + g.setTeam("Labo1"); + Set tempC = new HashSet<>(); + tempC.add(n); + //tempC.add(p); + g.setCustomers(tempC); + //g.setCustomers(new HashSet<>(Arrays.asList(n, p))); + teamRepository.save(g); + ////////////////////////// + } } \ No newline at end of file diff --git a/PFE06/src/main/java/com/PFE/ServerManager/Customer.java b/PFE06/src/main/java/com/PFE/ServerManager/Customer.java index c920161..5858e4c 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/Customer.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/Customer.java @@ -14,7 +14,7 @@ public class Customer{ /*@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "customer_seq_gen") @SequenceGenerator(name = "customer_seq_gen", sequenceName = "customer_id_seq", allocationSize=1, initialValue=3)*/ @Basic(optional = false) - private Integer customer_id; + private Integer customerId; @Column(name = "email") private String email; @@ -26,30 +26,31 @@ public class Customer{ private int active; @ManyToMany(cascade = CascadeType.ALL) - @JoinTable(name = "customer_role", joinColumns = @JoinColumn(name = "customer_id"), inverseJoinColumns = @JoinColumn(name = "role_id")) + @JoinTable(name = "customer_role", joinColumns = @JoinColumn(name = "customerId"), inverseJoinColumns = @JoinColumn(name = "roleId")) private Set roles; @ManyToMany(cascade = CascadeType.ALL) - @JoinTable(name = "customer_maj", joinColumns = @JoinColumn(name = "customer_id"), inverseJoinColumns = @JoinColumn(name = "maj_id")) - private Set maj; + @JoinTable(name = "customer_update", joinColumns = @JoinColumn(name = "customerId"), inverseJoinColumns = @JoinColumn(name = "updateId")) + private Set update; + public void setRoles(Set roles) { this.roles = roles; } public Set getRoles() { return roles; } - public void setMaj(Set maj) { - this.maj = maj; + public void setUpdate(Set update) { + this.update = update; } - public Set getMaj() { - return maj; + public Set getUpdate() { + return update; } public String getRole(){ return roles.iterator().next().getRole(); } public void setId(Integer id) { - this.customer_id = id; + this.customerId = id; } - public Integer getCustomer_id() { return customer_id; } + public Integer getCustomerId() { return customerId; } public void setEmail(String email) { this.email = email; diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java index 54a4edc..936dadc 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/MainController.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/MainController.java @@ -31,10 +31,13 @@ public class MainController { CustomerRepository customerRepository; @Autowired + TeamRepository teamRepository; + + @Autowired RoleRepository roleRepository; @Autowired - MajRepository majRepository; + UpdateRepository updateRepository; @Autowired BCryptPasswordEncoder bCryptPasswordEncoder; @@ -66,14 +69,14 @@ public class MainController { return modelAndView; } - @GetMapping(value="/session") - public ModelAndView session() { + @GetMapping(value="/update") + public ModelAndView update() { 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.addObject("customerMaj", customer.getMaj()); + modelAndView.addObject("customerMaj", (teamRepository.findByCustomersContaining(customer)).getUpdate()); List nodes = nodeRepository.findAll(); modelAndView.addObject("nodes", nodes); @@ -94,7 +97,7 @@ public class MainController { } modelAndView.addObject("customerFiles", filesName); - modelAndView.setViewName("session"); + modelAndView.setViewName("update"); return modelAndView; } @@ -244,19 +247,20 @@ public class MainController { 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); + Update update_c = new Update(); + update_c.setUpdate(name); + update_c.setDate(date); + update_c.setNodes(nodes); + update_c.setFile(file); + + updateRepository.save(update_c); // ajouter la mise a jour dans la table - 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 + System.out.println("team name : " + (teamRepository.findByCustomersContaining(customer)).getTeam()); + Team teamOfCustomer = teamRepository.findByCustomersContaining(customer); + teamOfCustomer.addUpdate(update_c); + teamRepository.save(teamOfCustomer); // permet de rendre effective la jointure entre customer et maj - return "redirect:/session"; + return "redirect:/update"; } @PostMapping(path="/runmaj") @@ -264,27 +268,27 @@ public class MainController { 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); + 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", maj_c.getMaj()); - data.put("date", maj_c.getDate()); - data.put("file", maj_c.getFile()); - data.put("nodes", maj_c.getNodes().split(";")); + 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] + "_" + maj_c.getMaj() + ".yaml"); + writer = new FileWriter("toflash/" + customer.getEmail().split("@")[0] + "_" + update_c.getUpdate() + ".yaml"); } catch (IOException e) { e.printStackTrace(); } yaml.dump(data, writer); - return "redirect:/session"; + return "redirect:/update"; } @PostMapping(path="/startsavedmaj") @@ -292,16 +296,16 @@ public class MainController { public void startSavedMaj(@RequestParam String majname){ Authentication auth = SecurityContextHolder.getContext().getAuthentication(); Customer customer = customerRepository.findByEmail(auth.getName()); - Maj maj = majRepository.findByMaj(majname); + Update update = updateRepository.findByUpdate(majname); Map data = new HashMap(); - data.put("name", maj.getMaj()); - data.put("date", maj.getDate()); - data.put("file", maj.getFile()); - data.put("nodes", maj.getNodes().split(";")); + data.put("name", update.getUpdate()); + data.put("date", update.getDate()); + data.put("file", update.getFile()); + data.put("nodes", update.getNodes().split(";")); Yaml yaml = new Yaml(); FileWriter writer = null; try { - writer = new FileWriter("toflash/" + customer.getEmail().split("@")[0] + "_" + maj.getMaj() + ".yaml"); + writer = new FileWriter("toflash/" + customer.getEmail().split("@")[0] + "_" + update.getUpdate() + ".yaml"); } catch (IOException e) { e.printStackTrace(); } diff --git a/PFE06/src/main/java/com/PFE/ServerManager/Maj.java b/PFE06/src/main/java/com/PFE/ServerManager/Maj.java deleted file mode 100644 index 1040df1..0000000 --- a/PFE06/src/main/java/com/PFE/ServerManager/Maj.java +++ /dev/null @@ -1,51 +0,0 @@ -package com.PFE.ServerManager; - -import javax.persistence.*; - -@Entity -@Table(name = "maj") -public class Maj { - @Id - @Column(name = "maj_id", columnDefinition = "serial") - @GeneratedValue(strategy = GenerationType.AUTO) - private Integer maj_id; - - @Column(name = "maj") - private String maj; - - @Column(name = "date") - private String date; - - @Column(name = "file") - private String file; - - @Column(name = "nodes") - private String nodes; - - public void setMaj_id(Integer maj_id) { this.maj_id = maj_id; } - public Integer getMaj_id() { return maj_id; } - - public void setMaj(String maj) { - this.maj = maj; - } - public String getMaj() { return maj; } - - public void setDate(String date) { - this.date = date; - } - public String getDate() { - return date; - } - - public void setNodes(String nodes) { - this.nodes = nodes; - } - public String getNodes() { - return nodes; - } - - public void setFile(String file) { - this.file = file; - } - public String getFile() { return file; } -} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java b/PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java deleted file mode 100644 index 8dccb36..0000000 --- a/PFE06/src/main/java/com/PFE/ServerManager/MajRepository.java +++ /dev/null @@ -1,9 +0,0 @@ -package com.PFE.ServerManager; - -import org.springframework.data.jpa.repository.JpaRepository; -import org.springframework.stereotype.Repository; - -@Repository -public interface MajRepository extends JpaRepository { - Maj findByMaj(String maj); -} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/Role.java b/PFE06/src/main/java/com/PFE/ServerManager/Role.java index f14ac34..b53b626 100644 --- a/PFE06/src/main/java/com/PFE/ServerManager/Role.java +++ b/PFE06/src/main/java/com/PFE/ServerManager/Role.java @@ -6,12 +6,12 @@ import javax.persistence.*; @Table(name = "role") public class Role { @Id - @Column(name = "role_id", columnDefinition = "serial") + @Column(name = "roleId", columnDefinition = "serial") @GeneratedValue(strategy = GenerationType.AUTO) // inutile d'utiliser les lignes ci-dessous à moins que l'utilisateur n'ajoute des roles par une page Web //@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "role_seq_gen") //@SequenceGenerator(name = "role_seq_gen", sequenceName = "role_id_seq", allocationSize=1, initialValue=2) - private Integer role_id; + private Integer roleId; @Column(name = "role") private String role; @@ -21,6 +21,6 @@ public class Role { } public String getRole() { return role; } - public void setRole_id(Integer role_id) { this.role_id = role_id; } - public Integer getRole_id() { return role_id; } + public void setRoleId(Integer roleId) { this.roleId = roleId; } + public Integer getRoleId() { return roleId; } } \ No newline at end of file diff --git a/PFE06/src/main/java/com/PFE/ServerManager/Team.java b/PFE06/src/main/java/com/PFE/ServerManager/Team.java new file mode 100644 index 0000000..169471e --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/Team.java @@ -0,0 +1,56 @@ +package com.PFE.ServerManager; + +import javax.persistence.*; +import java.util.Set; + +@Entity +@Table(name = "team") +public class Team { + + @Id + @Column(columnDefinition = "serial") + //@GeneratedValue(strategy = GenerationType.AUTO) + @Basic(optional = false) + private Integer teamId; + + @Column(name = "teamName") + private String team; + + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(name = "team_update", joinColumns = @JoinColumn(name = "teamId"), inverseJoinColumns = @JoinColumn(name = "updateId")) + private Set update; + + @ManyToMany(cascade = CascadeType.ALL) + @JoinTable(name = "team_customer", joinColumns = @JoinColumn(name = "teamId"), inverseJoinColumns = @JoinColumn(name = "customerId")) + private Set customers; + + + public void setTeam(String team) { + this.team = team; + } + public String getTeam() { + return team; + } + + public void setTeamId(Integer teamId) { + this.teamId = teamId; + } + public Integer getTeamId() { + return teamId; + } + + public void setCustomers(Set customers) { + this.customers = customers; + } + public Set getCustomers() { + return customers; + } + + public void setUpdate(Set update) { + this.update = update; + } + public Set getUpdate() { + return update; + } + public void addUpdate(Update update){this.update.add(update);} +} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/TeamRepository.java b/PFE06/src/main/java/com/PFE/ServerManager/TeamRepository.java new file mode 100644 index 0000000..f035ac3 --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/TeamRepository.java @@ -0,0 +1,16 @@ +package com.PFE.ServerManager; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.List; + + +@Repository +public interface TeamRepository extends JpaRepository { + + Team findByCustomersContaining(Customer customer); + + @Override + List findAll(); +} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/Update.java b/PFE06/src/main/java/com/PFE/ServerManager/Update.java new file mode 100644 index 0000000..64383f3 --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/Update.java @@ -0,0 +1,51 @@ +package com.PFE.ServerManager; + +import javax.persistence.*; + +@Entity +@Table(name = "update") +public class Update { + @Id + @Column(name = "updateId", columnDefinition = "serial") + @GeneratedValue(strategy = GenerationType.AUTO) + private Integer updateId; + + @Column(name = "update") + private String update; + + @Column(name = "date") + private String date; + + @Column(name = "file") + private String file; + + @Column(name = "nodes") + private String nodes; + + public void setUpdateId(Integer updateId) { this.updateId = updateId; } + public Integer getUpdateId() { return updateId; } + + public void setUpdate(String update) { + this.update = update; + } + public String getUpdate() { return update; } + + public void setDate(String date) { + this.date = date; + } + public String getDate() { + return date; + } + + public void setNodes(String nodes) { + this.nodes = nodes; + } + public String getNodes() { + return nodes; + } + + public void setFile(String file) { + this.file = file; + } + public String getFile() { return file; } +} diff --git a/PFE06/src/main/java/com/PFE/ServerManager/UpdateRepository.java b/PFE06/src/main/java/com/PFE/ServerManager/UpdateRepository.java new file mode 100644 index 0000000..1799b61 --- /dev/null +++ b/PFE06/src/main/java/com/PFE/ServerManager/UpdateRepository.java @@ -0,0 +1,9 @@ +package com.PFE.ServerManager; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +@Repository +public interface UpdateRepository extends JpaRepository { + Update findByUpdate(String update); +} diff --git a/PFE06/src/main/resources/application.properties b/PFE06/src/main/resources/application.properties index 538d2e3..2553936 100644 --- a/PFE06/src/main/resources/application.properties +++ b/PFE06/src/main/resources/application.properties @@ -2,15 +2,16 @@ #-----------------------------------------------# #---------- Spring Database management ---------# #-----------------------------------------------# -spring.jpa.hibernate.ddl-auto=update +spring.jpa.hibernate.ddl-auto=create-drop #update -#"create" recrée la base de données à chaque lancement +#"create" ajoute les tables qui n'existent pas encore à la base de données à chaque lancement +#"create-drop" supprime tout à la fin de la session donc tout est recréé à la suivante #"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 #spring.datasource.url=jdbc:postgresql://localhost:5432/sql_only #spring.datasource.username=postgres #spring.datasource.password=glopglop diff --git a/PFE06/src/main/resources/static/js/session.js b/PFE06/src/main/resources/static/js/session.js deleted file mode 100644 index 38eb91a..0000000 --- a/PFE06/src/main/resources/static/js/session.js +++ /dev/null @@ -1,174 +0,0 @@ -$(document).ready(function() { - - /********** Start saved maj ************/ - - var startMaj = document.getElementById("start_maj"); - - startMaj.addEventListener('click', function() { - var modalContent = document.getElementById("modal-content"); - var modalTitle = document.getElementById("modal-title"); - var majNameSelect = document.getElementById("maj_name").value; - if(majNameSelect !== "" && majNameSelect !== "--") { - var request = new XMLHttpRequest(); - request.open("POST", "/startsavedmaj"); - var formData = new FormData(); - formData.append("majname", majNameSelect); - - request.onreadystatechange = function() { - if(this.readyState === XMLHttpRequest.DONE && this.status === 200) { - var modalButton = document.getElementById("modal-button"); - modalButton.addEventListener('click', function() { - location.reload(); - }) - modalTitle.innerHTML = "Félicitations"; - modalContent.innerHTML = "La mise à jour a bien été paramétrée"; - $("#warningFilesNumber").modal(); - } - } - request.send(formData); - } - else { - modalTitle.innerHTML = "Attention !"; - modalContent.innerHTML = "Veuillez choisir le nom d'une mise à jour"; - $("#warningFilesNumber").modal(); - } - }) - - - /********** Configuration file ***********/ - - var configName = document.getElementById("config_name"); - var configSend = document.getElementById("config_send"); - var file = document.getElementById("configInputFile"); - var readyToSend = false; - var formData = new FormData(); - - if(file != null) { - file.addEventListener('change', function () { - delete formData; - formData = new FormData(); - configName.innerHTML = this.files[0].name; - formData.append("file", this.files[0]); - readyToSend = true; - }, false) - - configSend.addEventListener('click', function () { - var modalContent = document.getElementById("modal-content"); - var modalTitle = document.getElementById("modal-title"); - if (readyToSend) { - var request = new XMLHttpRequest(); - request.open("POST", "/config"); - - 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(); - } - } - - request.send(formData); - } - else { - modalContent.innerHTML = "Veuillez sélectionner un fichier !"; - $("#warningFilesNumber").modal() - } - - }) - } - - /********** Tableau **********/ - - var tableNodes = $('#nodes-table').DataTable( { - responsive: true, - select: { - style: 'multi' - } - } ); - - var nodeSet = new Set(); - - tableNodes.on('select', function (e, dt, type, indexes) { - var rowData = tableNodes.rows(indexes).data().toArray()[0]; - nodeSet.add(rowData[0]); - } ); - - tableNodes.on('deselect', function (e, dt, type, indexes) { - var rowData = tableNodes.rows(indexes).data().toArray()[0]; - nodeSet.delete(rowData[0]); - } ); - - var sendInfoMaj = function(action) { - console.log(action); - var form = document.createElement('form'); - form.setAttribute('action', action); - form.setAttribute('method', 'post'); - - var modalContent = document.getElementById("modal-content"); - var majName = document.getElementById("majName").value; - var majDate = document.getElementById("majDate").value; - var majFile = document.getElementById("file_choice").value; - - if(nodeSet.size == 0) { - $("#warningFilesNumber").modal(); - } - - else if(majName === "") { - modalContent.innerHTML = "Veuillez choisir un nom pour la mise à jour"; - $("#warningFilesNumber").modal(); - } - - else if(majDate === "") { - modalContent.innerHTML = "Veuillez choisir une date pour la mise à jour" - $("#warningFilesNumber").modal(); - } - - else if(majFile === "" || majFile === "--") { - modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour" - $("#warningFilesNumber").modal(); - } - - else { - var nodes = Array.from(nodeSet); - - var inputvar1 = document.createElement('input'); - inputvar1.setAttribute('type', 'hidden'); - inputvar1.setAttribute('name', 'name'); - inputvar1.setAttribute('value', majName); - form.appendChild(inputvar1); - - var inputvar2 = document.createElement('input'); - inputvar2.setAttribute('type', 'hidden'); - inputvar2.setAttribute('name', 'date'); - inputvar2.setAttribute('value', majDate); - form.appendChild(inputvar2); - - var inputvar3 = document.createElement('input'); - inputvar3.setAttribute('type', 'hidden'); - inputvar3.setAttribute('name', 'nodes'); - inputvar3.setAttribute('value', nodes.join(";")); - form.appendChild(inputvar3); - - var inputvar4 = document.createElement('input'); - inputvar4.setAttribute('type', 'hidden'); - inputvar4.setAttribute('name', 'file'); - inputvar4.setAttribute('value', majFile); - form.appendChild(inputvar4); - - document.body.appendChild(form); - form.submit(); - } - } - - document.getElementById("save_maj").addEventListener('click', function() { - sendInfoMaj('savemaj'); - }); - document.getElementById("run_maj").addEventListener('click', function() { - sendInfoMaj('runmaj'); - }); - -} ); diff --git a/PFE06/src/main/resources/static/js/update.js b/PFE06/src/main/resources/static/js/update.js new file mode 100644 index 0000000..38eb91a --- /dev/null +++ b/PFE06/src/main/resources/static/js/update.js @@ -0,0 +1,174 @@ +$(document).ready(function() { + + /********** Start saved maj ************/ + + var startMaj = document.getElementById("start_maj"); + + startMaj.addEventListener('click', function() { + var modalContent = document.getElementById("modal-content"); + var modalTitle = document.getElementById("modal-title"); + var majNameSelect = document.getElementById("maj_name").value; + if(majNameSelect !== "" && majNameSelect !== "--") { + var request = new XMLHttpRequest(); + request.open("POST", "/startsavedmaj"); + var formData = new FormData(); + formData.append("majname", majNameSelect); + + request.onreadystatechange = function() { + if(this.readyState === XMLHttpRequest.DONE && this.status === 200) { + var modalButton = document.getElementById("modal-button"); + modalButton.addEventListener('click', function() { + location.reload(); + }) + modalTitle.innerHTML = "Félicitations"; + modalContent.innerHTML = "La mise à jour a bien été paramétrée"; + $("#warningFilesNumber").modal(); + } + } + request.send(formData); + } + else { + modalTitle.innerHTML = "Attention !"; + modalContent.innerHTML = "Veuillez choisir le nom d'une mise à jour"; + $("#warningFilesNumber").modal(); + } + }) + + + /********** Configuration file ***********/ + + var configName = document.getElementById("config_name"); + var configSend = document.getElementById("config_send"); + var file = document.getElementById("configInputFile"); + var readyToSend = false; + var formData = new FormData(); + + if(file != null) { + file.addEventListener('change', function () { + delete formData; + formData = new FormData(); + configName.innerHTML = this.files[0].name; + formData.append("file", this.files[0]); + readyToSend = true; + }, false) + + configSend.addEventListener('click', function () { + var modalContent = document.getElementById("modal-content"); + var modalTitle = document.getElementById("modal-title"); + if (readyToSend) { + var request = new XMLHttpRequest(); + request.open("POST", "/config"); + + 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(); + } + } + + request.send(formData); + } + else { + modalContent.innerHTML = "Veuillez sélectionner un fichier !"; + $("#warningFilesNumber").modal() + } + + }) + } + + /********** Tableau **********/ + + var tableNodes = $('#nodes-table').DataTable( { + responsive: true, + select: { + style: 'multi' + } + } ); + + var nodeSet = new Set(); + + tableNodes.on('select', function (e, dt, type, indexes) { + var rowData = tableNodes.rows(indexes).data().toArray()[0]; + nodeSet.add(rowData[0]); + } ); + + tableNodes.on('deselect', function (e, dt, type, indexes) { + var rowData = tableNodes.rows(indexes).data().toArray()[0]; + nodeSet.delete(rowData[0]); + } ); + + var sendInfoMaj = function(action) { + console.log(action); + var form = document.createElement('form'); + form.setAttribute('action', action); + form.setAttribute('method', 'post'); + + var modalContent = document.getElementById("modal-content"); + var majName = document.getElementById("majName").value; + var majDate = document.getElementById("majDate").value; + var majFile = document.getElementById("file_choice").value; + + if(nodeSet.size == 0) { + $("#warningFilesNumber").modal(); + } + + else if(majName === "") { + modalContent.innerHTML = "Veuillez choisir un nom pour la mise à jour"; + $("#warningFilesNumber").modal(); + } + + else if(majDate === "") { + modalContent.innerHTML = "Veuillez choisir une date pour la mise à jour" + $("#warningFilesNumber").modal(); + } + + else if(majFile === "" || majFile === "--") { + modalContent.innerHTML = "Veuillez choisir un fichier pour la mise à jour" + $("#warningFilesNumber").modal(); + } + + else { + var nodes = Array.from(nodeSet); + + var inputvar1 = document.createElement('input'); + inputvar1.setAttribute('type', 'hidden'); + inputvar1.setAttribute('name', 'name'); + inputvar1.setAttribute('value', majName); + form.appendChild(inputvar1); + + var inputvar2 = document.createElement('input'); + inputvar2.setAttribute('type', 'hidden'); + inputvar2.setAttribute('name', 'date'); + inputvar2.setAttribute('value', majDate); + form.appendChild(inputvar2); + + var inputvar3 = document.createElement('input'); + inputvar3.setAttribute('type', 'hidden'); + inputvar3.setAttribute('name', 'nodes'); + inputvar3.setAttribute('value', nodes.join(";")); + form.appendChild(inputvar3); + + var inputvar4 = document.createElement('input'); + inputvar4.setAttribute('type', 'hidden'); + inputvar4.setAttribute('name', 'file'); + inputvar4.setAttribute('value', majFile); + form.appendChild(inputvar4); + + document.body.appendChild(form); + form.submit(); + } + } + + document.getElementById("save_maj").addEventListener('click', function() { + sendInfoMaj('savemaj'); + }); + document.getElementById("run_maj").addEventListener('click', function() { + sendInfoMaj('runmaj'); + }); + +} ); diff --git a/PFE06/src/main/resources/templates/all.html b/PFE06/src/main/resources/templates/all.html index 75d2067..d547734 100644 --- a/PFE06/src/main/resources/templates/all.html +++ b/PFE06/src/main/resources/templates/all.html @@ -22,10 +22,10 @@ @@ -51,7 +51,7 @@ Email Role - ID + ID diff --git a/PFE06/src/main/resources/templates/home.html b/PFE06/src/main/resources/templates/home.html index a3b406c..ee86a15 100644 --- a/PFE06/src/main/resources/templates/home.html +++ b/PFE06/src/main/resources/templates/home.html @@ -27,10 +27,10 @@ @@ -80,7 +80,7 @@
- +
-
+
-
+
diff --git a/PFE06/src/main/resources/templates/session.html b/PFE06/src/main/resources/templates/session.html deleted file mode 100644 index 15a967c..0000000 --- a/PFE06/src/main/resources/templates/session.html +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - Session - - - - - -
- -
-

Changer la configuration réseau

-
-
- -
-
- - -
-
- -
- - -
-
- -

Relancer une mise à jour

-
- - -
-

Créer une mise à jour

- - - - - - - - - - - - - - - - -
NomIPArchitecture
nameiparch
-
- -
-
- -
- - - -
- - - - - - - - - - - - - diff --git a/PFE06/src/main/resources/templates/update.html b/PFE06/src/main/resources/templates/update.html new file mode 100644 index 0000000..a302b1f --- /dev/null +++ b/PFE06/src/main/resources/templates/update.html @@ -0,0 +1,145 @@ + + + + + + + + + + + + + Update + + + + + +
+ +
+

Changer la configuration réseau

+
+
+ +
+
+ + +
+
+ +
+ + +
+
+ +

Relancer une mise à jour

+
+ + +
+

Créer une mise à jour

+ + + + + + + + + + + + + + + + +
NomIPArchitecture
nameiparch
+
+ +
+
+ +
+ + + +
+ + + + + + + + + + + + + diff --git a/PFE06/src/main/resources/templates/upload.html b/PFE06/src/main/resources/templates/upload.html index 5ffc33d..f638831 100644 --- a/PFE06/src/main/resources/templates/upload.html +++ b/PFE06/src/main/resources/templates/upload.html @@ -27,10 +27,10 @@
-- libgit2 0.21.2