Compare commits

...

17 Commits

Author SHA1 Message Date
clementine.desrucques
5287b5ff74 Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-16 16:50:32 +01:00
clementine.desrucques
623728d3e3 Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-15 11:54:20 +01:00
clementine.desrucques
ad612c663c Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-15 10:39:48 +01:00
clementine.desrucques
3162d0eeb3 Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-15 07:59:53 +01:00
clementine.desrucques
332960f92d Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-14 09:51:00 +01:00
clementine.desrucques
cac0c6423f Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-14 09:31:59 +01:00
clementine.desrucques
f74104e7ff Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-14 09:07:12 +01:00
clementine.desrucques
f293ce8b0f Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-14 08:43:01 +01:00
clementine.desrucques
c1b8fa7a27 Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-13 17:37:55 +01:00
clementine.desrucques
0783dfd5ab Merge origin/master
Conflicts:
	web/WEB-INF/feuilleGardes.jsp
	web/css/mycss.css
2021-12-13 16:42:37 +01:00
funcha.ahamadi
40db789d06 Merge origin/master
Conflicts:
	src/java/bdd/gardeMySQL.java
	src/java/bean/Gardes.java
	src/java/servlet/GardesServlet.java
	web/WEB-INF/jspf/header.jspf
2021-12-13 15:45:52 +01:00
clementine.desrucques
80aa3ed6ea Merge origin/master
Conflicts:
	src/java/bdd/gardeMySQL.java
	src/java/servlet/PompierServlet.java
	web/WEB-INF/feuilleGardes.jsp
2021-12-13 15:42:14 +01:00
clementine.desrucques
b4da29af06 Merge origin/master
Conflicts:
	src/java/bdd/gardeMySQL.java
	src/java/servlet/PompierServlet.java
	web/WEB-INF/feuilleGardes.jsp
2021-12-13 15:09:34 +01:00
funcha.ahamadi
07aaf3248d Merge origin/master
Conflicts:
	src/java/bdd/gardeMySQL.java
	src/java/bean/Gardes.java
	src/java/servlet/GardesServlet.java
	web/WEB-INF/jspf/header.jspf
2021-12-13 15:07:08 +01:00
clementine.desrucques
e23f0e37e2 Merge origin/master
Conflicts:
	nbproject/project.properties
	src/java/bean/Pompier.java
	src/java/servlet/PompierServlet.java
	src/java/util/TrmtDate.java
	web/WEB-INF/jspf/formulairePompier.jspf
	web/WEB-INF/jspf/header.jspf
	web/WEB-INF/web.xml
2021-12-13 14:57:10 +01:00
clementine.desrucques
fb1699b16f Merge origin/master
Conflicts:
	nbproject/project.properties
	src/java/bean/Pompier.java
	src/java/servlet/PompierServlet.java
	src/java/util/TrmtDate.java
	web/WEB-INF/jspf/formulairePompier.jspf
	web/WEB-INF/jspf/header.jspf
	web/WEB-INF/web.xml
2021-12-13 14:42:07 +01:00
funcha.ahamadi
93022f82e3 Merge origin/master
Conflicts:
	src/java/bdd/PompierMySql.java
	src/java/com/test/servlets/authentifServlet.java
	web/WEB-INF/CreaPompier.jsp
2021-12-13 11:33:34 +01:00
12 changed files with 428 additions and 228 deletions

View File

@@ -5,28 +5,34 @@
*/
package bdd;
import bean.Caserne;
import bean.Gardes;
import bean.Pompier;
import util.TrmtDate;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import util.TrmtDate;
/**
*
* @author funcha.ahamadi
*/
public class gardeMySQL {
public class GardeMySQL {
private final Connection theConnection = Connexion.getConnect("localhost",
"sdis29",
"adminBDsdis",
"mdpBDsdis");
public ArrayList<Gardes> getLesDisponibilite(Calendar[] lesDates, int[] lesPeriodes) {
public ArrayList<Gardes> getLesDisponibilite(Calendar[] lesDates, int[] lesPeriodes,HttpServletRequest request) {
ArrayList<Gardes> lesDispo = new ArrayList<>();
Gardes uneDispo;
@@ -36,7 +42,13 @@ public class gardeMySQL {
int indiceDateFin = lesDates.length - 1;
Pompier lePompier;
PompierMySQL pm = new PompierMySQL();
ArrayList<Pompier> lesPompiers = pm.readLesPompiersCaserne(idCaserne);
HttpSession maSession = request.getSession();
ArrayList<Pompier> lesPompiers = (ArrayList<Pompier>) maSession.getAttribute("lesPompiers");
Pompier lePompierConnecte =(Pompier) maSession.getAttribute("lePompierConnecte");
if(lesPompiers==null){
lesPompiers = new ArrayList<>();
lesPompiers.add(lePompierConnecte);
}
for (Pompier unPompier : lesPompiers) {
for (Calendar uneDate : lesDates) {
for (int unePeriode : lesPeriodes) {
@@ -49,8 +61,10 @@ public class gardeMySQL {
/* b) Maj de la collection lesVentil
*/
readAll(lesDispo, lesDates[0], lesDates[indiceDateFin]);
//System.out.println("lesDispo : " + lesDispo);
System.out.println("lesDispo : " + lesDispo);
return lesDispo;
}
public void readAll(ArrayList<Gardes> lesDispo, Calendar d1, Calendar d2) {
Pompier lePompier;
@@ -64,17 +78,17 @@ public class gardeMySQL {
prepStmt.setDate(1, TrmtDate.getSQLDate(d1));
prepStmt.setDate(2, TrmtDate.getSQLDate(d2));
ResultSet resultat = prepStmt.executeQuery();
while (resultat.next())
// public Pompier(Caserne laCaserne, int id, String nom, String prenom) {
lePompier = new Pompier(
resultat.getCaserne("laCaserne"),
while (resultat.next()) {
CaserneMySQL laCaserneMySQL = new CaserneMySQL();
int idCaserne = resultat.getInt("idCaserne");
Caserne laCaserne = laCaserneMySQL.read(idCaserne);
lePompier = new Pompier(laCaserne,
resultat.getInt("id"),
resultat.getString("nom"),
resultat.getString("prenom")
);
resultat.getString("prenom"));
uneDispo = new Gardes(TrmtDate.getCalDate(resultat.getDate("jourGarde")),
resultat.getInt("periode"),
lePompier);
resultat.getInt("periode")
,lePompier);
// Recherche si uneDispo existe dans les Dispos
int indice = lesDispo.indexOf(uneDispo);
if (indice > -1) {
@@ -82,6 +96,7 @@ public class gardeMySQL {
laDispoTrouvee.setDisponibilite(resultat.getInt("disponibilite"));
laDispoTrouvee.setIsInBDD(true);
}
}
prepStmt.close();
resultat.close();
@@ -91,93 +106,109 @@ public class gardeMySQL {
System.out.println("Code erreur : " + ex.getErrorCode());
}
}
/**
* Suppression de la ventilation passé en param
* @param v : ventilation
* @return : nb lignes supprimées
/**
* Suppression de la garde passé en paramètre
*
* @param g ventilation à supprimer
* @return nb ligne a supprimer
*/
public int delete(Gardes v) {
public int delete(Gardes g) {
int nbMaj = -1;
String sql = "DELETE FROM gardes "
+ "WHERE idPompier = ? AND"
+ "periode = ? AND"
+ "jourGarde = ?;";
+ "WHERE idPompier=?"
+ " AND periode=?"
+ " AND jourGarde= ?;";
try {
PreparedStatement prepStmt = theConnection.prepareStatement(sql);
prepStmt.setInt(1, v.getPompier().getId());
prepStmt.setInt(2, v.getPeriode());
prepStmt.setDate(3, TrmtDate.getSQLDate(v.getJourGarde()));
nbMaj= prepStmt.executeUpdate();
prepStmt.setInt(1, g.getPompier().getId());
prepStmt.setInt(2, g.getPeriode());
prepStmt.setDate(3, TrmtDate.getSQLDate(g.getJourGarde()));
} catch (SQLException ex) {
nbMaj = prepStmt.executeUpdate();
} catch (SQLException ex) {
System.out.println("SQLExeption : " + ex.getMessage());
System.out.println("SQLState : " + ex.getSQLState());
System.out.println("Code erreur : " + ex.getErrorCode());
}
return nbMaj;
}
public int update(Gardes v) {
int nbMAJ = -1;
String sql = "UPDATE gardes "
+ "SET ventil = ? "
+ "WHERE idPompier= ? "
+ "AND jourGarde = ? "
+ "AND periode = ?";
try {
PreparedStatement prepStmt = theConnection.prepareStatement(sql);
prepStmt.setInt(1, v.getDisponibilite());
prepStmt.setInt(2, v.getPompier().getId());
prepStmt.setDate(3, TrmtDate.getSQLDate(v.getJourGarde()));
prepStmt.setInt(4, v.getPeriode());
System.out.println("update : " + prepStmt);
nbMAJ = prepStmt.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(gardeMySQL.class.getName()).log(Level.SEVERE, null, ex);
}
return nbMAJ;
return nbMaj;
}
/**
* Création d'un ventil
* @param v : ventil à créer
* @return : id du ventil
/**
* Creation de la ventilation passé en paramètre ventilation à créer
*
* @return : identifiant de la ventilation créé, ou -1 si erreur
*/
public int create(Gardes v) {
int nbCre = -1;
String sql = "INSERT INTO gardes "
+ "(jourGarde, periode, idPompier, ventil)"
+ "VALUES (?, ?, ?, ?);";
public int create(Gardes g) {
int idCree = -1;
String sql = "INSERT into gardes "
+ "(jourGarde, periode, idPompier, disponibilite, deGarde) "
+ "VALUES (?, ?, ?,?,?);";
try {
// PreparedStatement prepStmt = null;
// prepStmt = theConnection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
PreparedStatement prepStmt = theConnection.prepareStatement(sql);
prepStmt.setDate(1, TrmtDate.getSQLDate(v.getJourGarde()));
prepStmt.setInt(2, v.getPeriode());
prepStmt.setInt(3, v.getPompier().getId());
prepStmt.setInt(4, v.getDisponibilite());
int nbLigne= prepStmt.executeUpdate();
prepStmt.setDate(1, TrmtDate.getSQLDate(g.getJourGarde()));
prepStmt.setInt(2, g.getPeriode());
prepStmt.setInt(3, g.getPompier().getId());
prepStmt.setInt(4, g.getDisponibilite());
prepStmt.setBoolean(5, g.isDeGarde());
System.out.println(prepStmt);
int nbLigne = prepStmt.executeUpdate();
// Recherche du no du pompier créé
if (nbLigne > 0) {
ResultSet result = prepStmt.getGeneratedKeys();
if (result.next()) {
nbCre = result.getInt(1);
idCree = result.getInt(1);
}
}
} catch (SQLException ex) {
prepStmt.close();
} catch (SQLException ex) {
System.out.println("SQLExeption : " + ex.getMessage());
System.out.println("SQLState : " + ex.getSQLState());
System.out.println("Code erreur : " + ex.getErrorCode());
}
return idCree;
}
/**
* Mise à jour de la ventilation passée en paramètre
*
* @param v : ventilation à mettre à jour
* @return : nb lignes mises à jour, -1 si erreur
*/
public int update(Gardes g) {
int nbMAJ = -1;
String sql = "UPDATE gardes "
+ "SET disponibilite = ?, deGarde = ? "
+ "WHERE idPompier = ? "
+ "AND jourGarde = ? "
+ "AND periode = ?;";
try {
PreparedStatement prepStmt = theConnection.prepareStatement(sql);
prepStmt.setInt(1, g.getDisponibilite());
prepStmt.setBoolean(2, g.isDeGarde());
prepStmt.setInt(3, g.getPompier().getId());
prepStmt.setDate(4, TrmtDate.getSQLDate(g.getJourGarde()));
prepStmt.setInt(5, g.getPeriode());
return nbCre;
}
System.out.println("update : " + prepStmt);
nbMAJ = prepStmt.executeUpdate();
} catch (SQLException ex) {
Logger.getLogger(GardeMySQL.class.getName()).log(Level.SEVERE, null, ex);
}
return nbMAJ;
}
}

View File

@@ -18,21 +18,33 @@ public class Gardes {
Pompier pompier;
int disponibilite;
boolean isInBDD;
boolean deGarde;
public Gardes(Calendar jourGarde, int periode, Pompier pompier, int disponibilite, boolean isInBDD) {
public Gardes(Calendar jourGarde, int periode, Pompier pompier, int disponibilite, boolean isInBDD, boolean deGarde) {
this.jourGarde = jourGarde;
this.periode = periode;
this.pompier = pompier;
this.disponibilite = disponibilite;
this.isInBDD = isInBDD;
this.deGarde = deGarde;
}
public Gardes(Calendar jourGarde, int periode, Pompier pompier, boolean deGarde) {
this.jourGarde = jourGarde;
this.periode = periode;
this.pompier = pompier;
this.deGarde = deGarde;
}
public Gardes(Calendar jourGarde, int periode, Pompier pompier) {
this.jourGarde = jourGarde;
this.periode = periode;
this.pompier = pompier;
}
public Calendar getJourGarde() {
return jourGarde;
}
@@ -73,14 +85,23 @@ public class Gardes {
this.isInBDD = isInBDD;
}
public boolean isDeGarde() {
return deGarde;
}
public void setDeGarde(boolean deGarde) {
this.deGarde = deGarde;
}
@Override
public int hashCode() {
int hash = 7;
hash = 43 * hash + Objects.hashCode(this.jourGarde);
hash = 43 * hash + this.periode;
hash = 43 * hash + Objects.hashCode(this.pompier);
hash = 43 * hash + this.disponibilite;
hash = 43 * hash + (this.isInBDD ? 1 : 0);
int hash = 5;
hash = 37 * hash + Objects.hashCode(this.jourGarde);
hash = 37 * hash + this.periode;
hash = 37 * hash + Objects.hashCode(this.pompier);
hash = 37 * hash + this.disponibilite;
hash = 37 * hash + (this.isInBDD ? 1 : 0);
hash = 37 * hash + (this.deGarde ? 1 : 0);
return hash;
}
@@ -105,6 +126,9 @@ public class Gardes {
if (this.isInBDD != other.isInBDD) {
return false;
}
if (this.deGarde != other.deGarde) {
return false;
}
if (!Objects.equals(this.jourGarde, other.jourGarde)) {
return false;
}
@@ -116,8 +140,9 @@ public class Gardes {
@Override
public String toString() {
return "Gardes{" + "jourGarde=" + jourGarde + ", periode=" + periode + ", pompier=" + pompier + ", disponibilite=" + disponibilite + ", isInBDD=" + isInBDD + '}';
return "\nGardes{" + "jourGarde=" + jourGarde.getTime() + ", periode=" + periode + ", pompier=" + pompier + ", disponibilite=" + disponibilite + ", isInBDD=" + isInBDD + ", deGarde=" + deGarde + '}';
}
}

View File

@@ -10,6 +10,6 @@ Variables de session :
Variables mises en session dans PompierServlet.java)
lePompier : pompier à afficher dans pompierJSP
Attributs utilisés entre la servet PompierServlet.java et pompierJSP :
Attributs utilisés entre la serlvet PompierServlet.java et pompierJSP :
page : 2 --> affichage des données du pompier connecté
3 --> affichage des données d'un pompier de la caserne pour le chef de centre

View File

@@ -5,36 +5,48 @@
*/
package form;
import bdd.gardeMySQL;
import bdd.GardeMySQL;
import bean.Gardes;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Map;
import javax.swing.JCheckBox;
/**
*
* @author clementine.desrucques
*/
public class DispoForm {
HttpServletRequest request;
public void verifDispo(HttpServletRequest request){
public void verifDispo(HttpServletRequest request) {
HttpSession maS = request.getSession();
ArrayList <Gardes> lesG = (ArrayList<Gardes>) maS.getAttribute("lesVentilInit");
gardeMySQL vm = new gardeMySQL();
ArrayList<Gardes> lesG = (ArrayList<Gardes>) maS.getAttribute("lesVentilInit");
GardeMySQL vm = new GardeMySQL();
Map<String, String[]> map = request.getParameterMap();
String[] lesNvVentil = map.get("lesAct");
String[] lesNvVentil = map.get("lesActivites");
String[] lesNvGardes = map.get("cbGarde");
ArrayList<Integer> lesNvGardesN = new ArrayList<>();
if(lesNvGardes != null){
for(String uneGarde : lesNvGardes){
lesNvGardesN.add(Integer.parseInt(uneGarde));
}
}
int i = 0;
for(Gardes uneGarde : lesG){
for (Gardes uneGarde : lesG) {
int oldAct = uneGarde.getDisponibilite();
int newAct = Integer.parseInt(lesNvVentil[i]);
if(oldAct != newAct){
if(uneGarde.isIsInBDD()){
if(newAct == 0){
if (oldAct != newAct) {
if (uneGarde.isIsInBDD()) {
if (newAct == 0) {
vm.delete(uneGarde);
uneGarde.setIsInBDD(false);
uneGarde.setDisponibilite(newAct);
} else {
uneGarde.setDisponibilite(newAct);
vm.update(uneGarde);
@@ -44,6 +56,65 @@ public class DispoForm {
vm.create(uneGarde);
uneGarde.setIsInBDD(true);
}
}
boolean oldGarde = uneGarde.isDeGarde();
boolean newGarde = lesNvGardesN.contains(i)?true:false;
System.out.println("1: "+oldGarde +" "+ newGarde);
if(oldGarde!= newGarde){
uneGarde.setDeGarde(newGarde);
System.out.println("2: "+oldGarde +" "+ newGarde);
if (uneGarde.isIsInBDD()) {
vm.update(uneGarde);
}else{
vm.create(uneGarde);
uneGarde.setIsInBDD(true);
System.out.println("3: "+oldGarde +" "+ newGarde);
}
}
i++;
}
}
public void verifGarde(HttpServletRequest request) {
HttpSession maS = request.getSession();
ArrayList<Gardes> lesG = (ArrayList<Gardes>) maS.getAttribute("lesVentilInit");
GardeMySQL vm = new GardeMySQL();
Map<String, String[]> map = request.getParameterMap();
String[] lesNvVentil = map.get("cbGarde");
// JCheckBox garde = new JCheckBox();
int i = 0;
for (Gardes uneGarde : lesG) {
boolean oldAct = uneGarde.isDeGarde();
int newAct = Integer.parseInt(lesNvVentil[i]);
boolean newActO = (newAct==Integer.parseInt(lesNvVentil[i]));
if (oldAct != newActO) {
if (uneGarde.isIsInBDD()) {
if (newActO == false) {
vm.delete(uneGarde);
uneGarde.setIsInBDD(false);
uneGarde.isDeGarde();
} else {
uneGarde.isDeGarde();
vm.update(uneGarde);
}
} else {
uneGarde.isDeGarde();
vm.create(uneGarde);
uneGarde.setIsInBDD(true);
}
}
i++;
}

View File

@@ -66,6 +66,7 @@ public class AuthentifServlet extends HttpServlet {
maSession.removeAttribute("lePompierConnecte");
maSession.removeAttribute("lesPompiers");
maSession.removeAttribute("lePompier");
maSession.removeAttribute("lesVentilInit");
getServletContext().getRequestDispatcher("/WEB-INF/authentifJSP.jsp").forward(request, response);
}

View File

@@ -5,7 +5,8 @@
*/
package servlet;
import bdd.gardeMySQL;
import bdd.GardeMySQL;
import bean.Gardes;
import bean.Pompier;
import form.DispoForm;
@@ -66,6 +67,8 @@ public class GardesServlet extends HttpServlet {
throws ServletException, IOException {
//processRequest(request, response);
HttpSession maSession = request.getSession();
if(maSession.getAttribute("lesVentilInit") == null){
ArrayList<Pompier> lesPompiers = (ArrayList<Pompier>) maSession.getAttribute("lesPompiers");
Calendar[] lesDates = new Calendar[7];
String[] lesDatesEnString = new String[7];
@@ -77,21 +80,31 @@ public class GardesServlet extends HttpServlet {
lesDatesEnString[i] = TrmtDate.getDateAAfficher(lesDates[i]);
}
maSession.setAttribute("lesDates", lesDates);
maSession.setAttribute("lesDatesEnString", lesDatesEnString);
System.out.println(lesDatesEnString.toString());
/*Initialisation des periodes */
int[] lesPeriodes = {1,2,3,4};
maSession.setAttribute("lesPeriodes", lesPeriodes);
// maSession.setAttribute("lesPeriodes", lesPeriodes);
System.out.println(lesPeriodes.toString());
/* Recherche des ventilations */
gardeMySQL vm = new gardeMySQL();
ArrayList<Gardes> lesVentilInit = vm.getLesDisponibilite(lesDates, lesPeriodes);
GardeMySQL vm = new GardeMySQL();
ArrayList<Gardes> lesVentilInit = vm.getLesDisponibilite(lesDates, lesPeriodes,request);
//System.out.println("lesVentilInit : " + lesVentilInit);
maSession.setAttribute("lesVentilInit", lesVentilInit);
// GardeMySQL dg = new GardeMySQL();
// ArrayList<Gardes> lesgardes = dg.();
// //System.out.println("lesVentilInit : " + lesVentilInit);
// maSession.setAttribute("lesVentilInit", lesVentilInit);
/* Initialisation des couleurs */
String[] lesCouleurs = {"blanc", "gris", "jaune"};
maSession.setAttribute("lesCouleurs", lesCouleurs);
}
/* Affichage de la page de ventilation */
getServletContext().getRequestDispatcher("/WEB-INF/feuilleGardesJSP.jsp").forward(request, response);
getServletContext().getRequestDispatcher("/WEB-INF/feuilleGardes.jsp").forward(request, response);
}
/**
@@ -106,8 +119,9 @@ public class GardesServlet extends HttpServlet {
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// processRequest(request, response);
DispoForm vf = new DispoForm();
DispoForm vf = new DispoForm();
vf.verifDispo(request);
getServletContext().getRequestDispatcher("/WEB-INF/pompierJSP.jsp").forward(request, response);
}

View File

@@ -36,7 +36,7 @@ public class PompierServlet extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
try ( PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
@@ -74,7 +74,7 @@ public class PompierServlet extends HttpServlet {
boolean isNumeric = StringUtils.isStrictlyNumeric(pageEnString);
if (isNumeric) {
pageDemandee = Integer.parseInt(pageEnString);
if (pageDemandee != 2 && pageDemandee != 3 && pageDemandee !=5) { // erreur
if (pageDemandee != 2 && pageDemandee != 3 && pageDemandee != 5) { // erreur
erreur = true;
}
} else {
@@ -101,16 +101,13 @@ public class PompierServlet extends HttpServlet {
page = 3;
}
}
if(erreur==false && pageDemandee==5){ //page gardes
}
if (erreur) {
request.getRequestDispatcher("/authentification").forward(request, response); // redirection servlet
} else {
request.setAttribute("page", page);
maSession.setAttribute("lePompier", lePompier);
getServletContext().getRequestDispatcher("/WEB-INF/" + jsp).forward(request, response);
getServletContext().getRequestDispatcher("/WEB-INF/" + jsp).forward(request, response);
}
}
@@ -130,16 +127,16 @@ public class PompierServlet extends HttpServlet {
depuis la validation du formulaire de choix du pompier à afficher (btAfficherPompier = "Afficher")
depuis le bouton Ajouter du formulaire du choix du pompier (btAfficherPompier = "Ajouter")
depuis le bouton de validation de mise à jour d'un pompier (btAfficherPompier = "ValiderMaj")
*/
*/
int erreur = 0;
String btValue = null;
ArrayList<String> valeursBt = new ArrayList<String>() ;
valeursBt.add("Afficher") ;
valeursBt.add("Ajouter") ;
valeursBt.add("ValiderMaj") ;
ArrayList<String> valeursBt = new ArrayList<String>();
valeursBt.add("Afficher");
valeursBt.add("Ajouter");
valeursBt.add("ValiderMaj");
// Test du bouton btAfficherPompier
if (request.getParameter("btAfficherPompier")==null) {
if (request.getParameter("btAfficherPompier") == null) {
erreur = 1;
} else {
btValue = request.getParameter("btAfficherPompier");
@@ -152,7 +149,7 @@ public class PompierServlet extends HttpServlet {
//response.sendRedirect("/sdis29M1/authentification");
return;
}
HttpSession maSession = request.getSession();
ArrayList<Pompier> lesPompiers = (ArrayList<Pompier>) maSession.getAttribute("lesPompiers");
if (request.getParameter("btAfficherPompier").equals("Afficher")
@@ -162,12 +159,12 @@ public class PompierServlet extends HttpServlet {
maSession.setAttribute("lePompier", lesPompiers.get(noPompier));
request.setAttribute("page", 3);
}
if (request.getParameter("btAfficherPompier").equals("Ajouter")) {
maSession.removeAttribute("lePompier");
}
if (request.getParameter("btAfficherPompier").equals("ValiderMaj")) {
if (request.getParameter("btAfficherPompier").equals("ValiderMaj")) {
PompierForm pf = new PompierForm(request);
boolean valid = pf.ctrlPompier();
// if (maSession.getAttribute("lePompier")==null) {
@@ -182,8 +179,8 @@ public class PompierServlet extends HttpServlet {
// }
// }
pf.majBDD();
}
}
getServletContext().getRequestDispatcher("/WEB-INF/pompierJSP.jsp").forward(request, response);
}

View File

@@ -3,52 +3,121 @@
Created on : 6 déc. 2021, 15:07:45
Author : funcha.ahamadi
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<legend>
Feuille de gardes
</legend>
<form action="gardes" method="POST">
<table class="table">
<thead>
<tr>
<th rowspan="2">N° de BIP</th>
<th rowspan="2">Nom Prenom</th>
<c:forEach items='${sessionScope.lesDatesEnString}' var="uneDate" varStatus="status">
<th colspan="2" class="text-center"> ${uneDate}</th>
</c:forEach>
</tr>
<tr>
<c:forEach var="i" begin="0" end="4" step="1">
<c:forEach items='${sessionScope.lesPeriodes}' var="unePeriode" varStatus="status">
<td class="text-center">${unePeriode}</td>
</c:forEach>
</c:forEach>
</tr>
</thead>
<tbody>
<c:set var="oldId" value="-1" scope="page"/>
<tr>
<c:forEach items='${sessionScope.lesVentilInit}' var="uneVentil" varStatus="status">
<c:set var="newId" value='${uneVentil.getPompier().getId()}' scope="page"/>
<c:if test='${oldId != newId}' var="test" scope="page">
</tr><tr>
<td>${uneVentil.getPompier().getId()}</td>
<td>${uneVentil.getPompier().getNom()} ${uneVentil.getPompier().getPrenom()}</td>
<c:set var="oldId" value='${newId}' scope="page"/>
</c:if>
<c:set var="activite" value='${uneVentil.getActivite()}' scope="page"/>
<td>
<input readonly type="text" value='${activite}' name="lesActivites"class="ztVentil ${sessionScope.lesCouleurs[activite]}"/>
</td>
</c:forEach>
</tr>
</tbody>
</table>
<%@include file= "jspf/debutJSP.jspf" %>
<body>
<%@include file= "jspf/header.jspf" %>
<div class="container">
<section id="contenuAffiche" class="row">
<fieldset class="row mt-1 mb-10">
<legend>
Feuille de gardes
</legend>
<form action="gardes" method="POST">
<table class="table">
<thead>
<tr>
<th rowspan="2">No</th>
<th rowspan="2">Nom Prenom</th>
<c:forEach items='${sessionScope.lesDatesEnString}' var="uneDate" varStatus="status">
<th colspan="4" class="text-center"> ${uneDate}</th>
</c:forEach>
</tr>
<tr>
<c:forEach var="i" begin="0" end="6" step="1">
<c:forEach items='${sessionScope.lesPeriodes}' var="unePeriode" varStatus="status">
<td class="text-center">${unePeriode.getCode()}</td>
</c:forEach>
</c:forEach>
</tr>
</thead>
<tbody>
<c:set var="oldId" value="-1" scope="page"/>
<tr>
<c:forEach items='${sessionScope.lesVentilInit}' var="uneVentil" varStatus="status">
<c:set var="newId" value='${uneVentil.getPompier().getId()}' scope="page"/>
<c:if test='${oldId != newId}' var="test" scope="page">
</tr><tr>
<td>${uneVentil.getPompier().getId()}</td>
<td>${uneVentil.getPompier().getNom()} ${uneVentil.getPompier().getPrenom()}</td>
<c:set var="oldId" value='${newId}' scope="page"/>
</c:if>
<c:set var="activite" value='${uneVentil.getDisponibilite()}' scope="page"/>
<c:set var="check" value="" scope="page"/>
<c:if test="${uneVentil.isDeGarde() == true}" var="test" scope="page">
<c:set var="check" value="checked" scope="page"/>
</c:if>
<c:choose>
<c:when test="${sessionScope.lePompierConnecte.getLeStatut().getCode() eq 2}">
<td>
<input readonly type="text" value='${activite}' name="lesActivites" class="ztVentil ${sessionScope.lesCouleurs[activite]}"/>
<input type="checkbox" ${check} name="cbGarde" value="${status.count +1}">
</td>
</c:when>
<c:otherwise>
<td>
<input readonly type="text" value='${activite}' name="lesActivites" class="ztVentil ${sessionScope.lesCouleurs[activite]}"/>
<input type="checkbox" ${check} name="cbGarde" value="${status.count +1}" onclick="return false">
</td>
</c:otherwise>
</c:choose>
</c:forEach>
</tr>
</tbody>
</table>
<div id="legendCouleur">
<span style="background-color: white">Dispo</span>
<span style="background-color: gray">Indispo</span>
<span style="background-color: yellow">Au travail</span>
<span>De garde : ☑</span>
</div>
<div class="text-center">
<button type="submit" value="Valider" class="btn btn-danger"><i class="bi bi-check2"></i> Valider</button>
</div>
</form>
</fieldset>
</section>
</div>
</body>
<script>
var st = (document.getElementById("statut").textContent).trim();
if (st != "chef de centre") {
var couleurs = ["blanc", "gris", "jaune"];
var lesAct = document.getElementsByClassName("ztVentil");
for (var uneAct of lesAct) {
uneAct.onclick = function () {
var act = this.value;
var newAct = (act + 1) % 3;
var coul = couleurs[newAct];
this.classList.remove(couleurs[act]);
this.classList.add(coul);
this.value = newAct;
}
}
}
</script>
</form><!-- comment -->

View File

@@ -127,52 +127,7 @@
</div><!-- fin ligne observation -->
</div> <!-- fin observation -->
<br/>
<!-- tab disp -->
<div>
<label for="tDisp">Disponibilitées</label>
<table border="1" cellspacing="3" cellpadding="1" class="table table-striped">
<thead>
<tr>
<c:forEach items="${sessionScope.lesDatesEnString}" var="uneDate" varStatus="status">
<th colspan="2" class="text-center">${uneDate}</th>
</c:forEach>
</tr>
<tr>
<c:forEach var="i" begin="0" end="4" step="1">
<c:forEach items="${sessionScope.lesPeriodes}" var="uneP" varStatus="status">
<td class="text-center">${uneP}</td>
</c:forEach>
</c:forEach>
</tr>
</thead>
<tbody>
<c:set var="oldId" value="-1" scope="page"/>
<tr>
<c:forEach items="${sessionScope.lesVentilInit}" var="ventil" varStatus="status">
<c:set var="newId" value="${gardes.getPompier().getId()}" scope="page"/>
<c:if test="${oldId != newId}" var="test" scope="page">
</tr> <tr>
<td>${ventil.getSalarie().getId()}</td>
<td>${ventil.getSalarie().getNom()} ${ventil.getSalarie().getPrenom()}</td>
<c:set var="oldId" value="${newId}" scope="page"/>
</c:if>
<c:set var="act" value="${gardes.getDisponibilite()}" scope="page"/>
<td><input type="text" value="${act}" name="lesAct" class="ztVentil ${sessionScope.lesCouleurs[act]}" readonly/></td>
</c:forEach>
</tr>
</tbody>
</table>
<div id="legendCouleur">
<span style="background-color: white">Dispo</span>
<span style="background-color: gray">Indispo</span>
<span style="background-color: yellow">Au travail</span>
</div>
</div>
<!-- fin tab disp -->
<div class="danger mt-3">${message} </div>
<div class="text-center mt-3">

View File

@@ -14,9 +14,12 @@
<c:otherwise>
<h4>Bienvenue ${sessionScope.lePompierConnecte.getPrenom()}
${sessionScope.lePompierConnecte.getNom()} (
${sessionScope.lePompierConnecte.getLeStatut().getValeur()})
<span id="statut">
${sessionScope.lePompierConnecte.getLeStatut().getValeur()}
</span>
)
</h4>
<button type="button" class="btn btn-warning fs-4" title="Déconnexion">
<a href="authentification">
<i class="bi bi-box-arrow-right heading" width="32" height="32" fill="currentColor"></i> Déconnexion
@@ -89,20 +92,16 @@
</c:choose>
</li>
<li class="nav-item">
<c:choose>
<c:when test="${page eq 5}">
<a class="nav-link active" href="pompier?pageDemandee=5">Gardes</a>
</c:when>
<c:when test="${sessionScope.lePompierConnecte.getLeStatut().getCode() eq 2}">
<a class="nav-link" href="pompier?pageDemandee=5">Gardes</a>
</c:when>
<c:otherwise>
</c:otherwise>
<li class="nav-item">
</c:choose>
</li>
<a class="nav-link" href="gardes">Gardes</a>
</li>
</ul>
</div>

View File

@@ -20,6 +20,11 @@
<servlet-name>feuilleGardes</servlet-name>
<servlet-class>servlet.GardesServlet</servlet-class>
</servlet>
<servlet>
<servlet-name>GPServlet</servlet-name>
<servlet-class>servlet.GPServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>AuthentifServlet</servlet-name>
<url-pattern>/authentification</url-pattern>
@@ -32,6 +37,11 @@
<servlet-name>feuilleGardes</servlet-name>
<url-pattern>/gardes</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>GPServlet</servlet-name>
<url-pattern>/PompierGarde</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30

View File

@@ -18,7 +18,7 @@ body {
}
fieldset {
border-radius: 5px;
padding: 5px;
padding: 3px;
border: 1px solid #DB0005;
width: 100%;
}
@@ -84,3 +84,31 @@ aside, #btAfficherPompier {
select[readonly] {
pointer-events: none;
}
.blanc {
background-color: white;
color: white;
border-color : white;
}
.gris {
background-color: gray;
color: gray;
border-color: gray;
}
.jaune {
background-color: yellow;
color: yellow;
border-color: yellow;
}
.ztVentil {
height: 20px;
width : 18px;
border-color: black;
}
.ztVentil:hover {
border-color: grey;
}