Compare commits

..

No commits in common. "03780acc84717864434cac190bbe2cb914110e97" and "68bf428f4f38c871874a75cfa174e3b3eb2c548a" have entirely different histories.

14 changed files with 1697 additions and 1925 deletions

View File

@ -1,8 +1,8 @@
build.xml.data.CRC32=b54f128f build.xml.data.CRC32=b54f128f
build.xml.script.CRC32=111e10f7 build.xml.script.CRC32=111e10f7
build.xml.stylesheet.CRC32=1707db4f@1.86.0.1 build.xml.stylesheet.CRC32=1707db4f@1.87.0.1
# This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml. # This file is used by a NetBeans-based IDE to track changes in generated files such as build-impl.xml.
# Do not edit this file. You may delete it but then the IDE will never regenerate such files for you. # Do not edit this file. You may delete it but then the IDE will never regenerate such files for you.
nbproject/build-impl.xml.data.CRC32=b54f128f nbproject/build-impl.xml.data.CRC32=b54f128f
nbproject/build-impl.xml.script.CRC32=bc2b5756 nbproject/build-impl.xml.script.CRC32=bc2b5756
nbproject/build-impl.xml.stylesheet.CRC32=334708a0@1.86.0.1 nbproject/build-impl.xml.stylesheet.CRC32=334708a0@1.87.0.1

View File

@ -36,7 +36,7 @@ j2ee.compile.on.save=true
j2ee.copy.static.files.on.save=true j2ee.copy.static.files.on.save=true
j2ee.deploy.on.save=true j2ee.deploy.on.save=true
j2ee.platform=1.7-web j2ee.platform=1.7-web
j2ee.platform.classpath=${j2ee.server.home}/lib/annotations-api.jar:${j2ee.server.home}/lib/catalina-ant.jar:${j2ee.server.home}/lib/catalina-ha.jar:${j2ee.server.home}/lib/catalina-ssi.jar:${j2ee.server.home}/lib/catalina-storeconfig.jar:${j2ee.server.home}/lib/catalina-tribes.jar:${j2ee.server.home}/lib/catalina.jar:${j2ee.server.home}/lib/ecj-4.20.jar:${j2ee.server.home}/lib/el-api.jar:${j2ee.server.home}/lib/jakartaee-migration-1.0.0-shaded.jar:${j2ee.server.home}/lib/jasper-el.jar:${j2ee.server.home}/lib/jasper.jar:${j2ee.server.home}/lib/jaspic-api.jar:${j2ee.server.home}/lib/jsp-api.jar:${j2ee.server.home}/lib/servlet-api.jar:${j2ee.server.home}/lib/tomcat-api.jar:${j2ee.server.home}/lib/tomcat-coyote.jar:${j2ee.server.home}/lib/tomcat-dbcp.jar:${j2ee.server.home}/lib/tomcat-i18n-cs.jar:${j2ee.server.home}/lib/tomcat-i18n-de.jar:${j2ee.server.home}/lib/tomcat-i18n-es.jar:${j2ee.server.home}/lib/tomcat-i18n-fr.jar:${j2ee.server.home}/lib/tomcat-i18n-ja.jar:${j2ee.server.home}/lib/tomcat-i18n-ko.jar:${j2ee.server.home}/lib/tomcat-i18n-pt-BR.jar:${j2ee.server.home}/lib/tomcat-i18n-ru.jar:${j2ee.server.home}/lib/tomcat-i18n-zh-CN.jar:${j2ee.server.home}/lib/tomcat-jdbc.jar:${j2ee.server.home}/lib/tomcat-jni.jar:${j2ee.server.home}/lib/tomcat-util-scan.jar:${j2ee.server.home}/lib/tomcat-util.jar:${j2ee.server.home}/lib/tomcat-websocket.jar:${j2ee.server.home}/lib/websocket-api.jar j2ee.platform.classpath=${j2ee.server.domain}/lib/annotations-api.jar:${j2ee.server.domain}/lib/catalina-ant.jar:${j2ee.server.domain}/lib/catalina-ha.jar:${j2ee.server.domain}/lib/catalina-ssi.jar:${j2ee.server.domain}/lib/catalina-storeconfig.jar:${j2ee.server.domain}/lib/catalina-tribes.jar:${j2ee.server.domain}/lib/catalina.jar:${j2ee.server.domain}/lib/ecj-4.20.jar:${j2ee.server.domain}/lib/el-api.jar:${j2ee.server.domain}/lib/jakartaee-migration-1.0.0-shaded.jar:${j2ee.server.domain}/lib/jasper-el.jar:${j2ee.server.domain}/lib/jasper.jar:${j2ee.server.domain}/lib/jaspic-api.jar:${j2ee.server.domain}/lib/jsp-api.jar:${j2ee.server.domain}/lib/servlet-api.jar:${j2ee.server.domain}/lib/tomcat-api.jar:${j2ee.server.domain}/lib/tomcat-coyote.jar:${j2ee.server.domain}/lib/tomcat-dbcp.jar:${j2ee.server.domain}/lib/tomcat-i18n-cs.jar:${j2ee.server.domain}/lib/tomcat-i18n-de.jar:${j2ee.server.domain}/lib/tomcat-i18n-es.jar:${j2ee.server.domain}/lib/tomcat-i18n-fr.jar:${j2ee.server.domain}/lib/tomcat-i18n-ja.jar:${j2ee.server.domain}/lib/tomcat-i18n-ko.jar:${j2ee.server.domain}/lib/tomcat-i18n-pt-BR.jar:${j2ee.server.domain}/lib/tomcat-i18n-ru.jar:${j2ee.server.domain}/lib/tomcat-i18n-zh-CN.jar:${j2ee.server.domain}/lib/tomcat-jdbc.jar:${j2ee.server.domain}/lib/tomcat-jni.jar:${j2ee.server.domain}/lib/tomcat-util-scan.jar:${j2ee.server.domain}/lib/tomcat-util.jar:${j2ee.server.domain}/lib/tomcat-websocket.jar:${j2ee.server.domain}/lib/websocket-api.jar
j2ee.server.type=Tomcat j2ee.server.type=Tomcat
jar.compress=false jar.compress=false
javac.classpath=\ javac.classpath=\

View File

@ -7,15 +7,13 @@ package bdd;
import bean.Gardes; import bean.Gardes;
import bean.Pompier; import bean.Pompier;
import util.TrmtDate; import com.sdis29a.util.TrmtDate;
import java.sql.Connection; import java.sql.Connection;
import java.sql.PreparedStatement; import java.sql.PreparedStatement;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.SQLException; import java.sql.SQLException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Calendar; import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;
/** /**
* *
@ -66,21 +64,18 @@ public class gardeMySQL {
ResultSet resultat = prepStmt.executeQuery(); ResultSet resultat = prepStmt.executeQuery();
while (resultat.next()) while (resultat.next())
// public Pompier(Caserne laCaserne, int id, String nom, String prenom) { // public Pompier(Caserne laCaserne, int id, String nom, String prenom) {
lePompier = new Pompier( lePompier = new Pompier(resultat.getCaserne("laCaserne"),
resultat.getCaserne("laCaserne"),
resultat.getInt("id"),
resultat.getString("nom"), resultat.getString("nom"),
resultat.getString("prenom") resultat.getString("prenom");
);
uneDispo = new Gardes(TrmtDate.getCalDate(resultat.getDate("jourGarde")), uneDispo = new Gardes(TrmtDate.getCalDate(resultat.getDate("jourGarde")),
resultat.getInt("periode"), resultat.getInt("periode")
lePompier); ,lePompier);
// Recherche si uneDispo existe dans les Dispos // Recherche si uneDispo existe dans les Dispos
int indice = lesDispo.indexOf(uneDispo); int indice = lesDispo.indexOf(uneDispo);
if (indice > -1) { if (indice > -1) {
laDispoTrouvee = lesDispo.get(indice); laDispoTrouvee = lesDispo.get(indice);
laDispoTrouvee.setDisponibilite(resultat.getInt("disponibilite")); laDispoTrouvee.setActivite(resultat.getInt("disponibilite"));
laDispoTrouvee.setIsInBDD(true); laDispoTrouvee.setIsInDB(true);
} }
prepStmt.close(); prepStmt.close();
@ -91,87 +86,7 @@ public class gardeMySQL {
System.out.println("Code erreur : " + ex.getErrorCode()); System.out.println("Code erreur : " + ex.getErrorCode());
} }
} }
/**
* Suppression de la ventilation passé en param
* @param v : ventilation
* @return : nb lignes supprimées
*/
public int delete(Gardes v) {
int nbMaj = -1;
String sql = "DELETE FROM gardes "
+ "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();
} 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;
}
/**
* Création d'un ventil
* @param v : ventil à créer
* @return : id du ventil
*/
public int create(Gardes v) {
int nbCre = -1;
String sql = "INSERT INTO gardes "
+ "(jourGarde, periode, idPompier, ventil)"
+ "VALUES (?, ?, ?, ?);";
try {
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();
if (nbLigne > 0) {
ResultSet result = prepStmt.getGeneratedKeys();
if (result.next()) {
nbCre = result.getInt(1);
}
}
} catch (SQLException ex) {
System.out.println("SQLExeption : " + ex.getMessage());
System.out.println("SQLState : " + ex.getSQLState());
System.out.println("Code erreur : " + ex.getErrorCode());
}
return nbCre;
}

View File

@ -13,11 +13,11 @@ import java.util.Objects;
* @author funcha.ahamadi * @author funcha.ahamadi
*/ */
public class Gardes { public class Gardes {
Calendar jourGarde; private Calendar jourGarde;
int periode; private int periode;
Pompier pompier; private Pompier pompier;
int disponibilite; private int disponibilite;
boolean isInBDD; private boolean isInBDD;
public Gardes(Calendar jourGarde, int periode, Pompier pompier, int disponibilite, boolean isInBDD) { public Gardes(Calendar jourGarde, int periode, Pompier pompier, int disponibilite, boolean isInBDD) {
this.jourGarde = jourGarde; this.jourGarde = jourGarde;

View File

@ -60,6 +60,7 @@ public class Pompier {
this.prenom = prenom; this.prenom = prenom;
} }
public int getId() { public int getId() {
return id; return id;
} }

View File

@ -1,51 +0,0 @@
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package form;
import bdd.gardeMySQL;
import bean.Gardes;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Map;
/**
*
* @author clementine.desrucques
*/
public class DispoForm {
HttpServletRequest request;
public void verifDispo(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("lesAct");
int i = 0;
for(Gardes uneGarde : lesG){
int oldAct = uneGarde.getDisponibilite();
int newAct = Integer.parseInt(lesNvVentil[i]);
if(oldAct != newAct){
if(uneGarde.isIsInBDD()){
if(newAct == 0){
vm.delete(uneGarde);
uneGarde.setIsInBDD(false);
} else {
uneGarde.setDisponibilite(newAct);
vm.update(uneGarde);
}
} else {
uneGarde.setDisponibilite(newAct);
vm.create(uneGarde);
uneGarde.setIsInBDD(true);
}
}
i++;
}
}
}

View File

@ -5,11 +5,8 @@
*/ */
package servlet; package servlet;
import bdd.gardeMySQL;
import bean.Gardes;
import bean.Pompier; import bean.Pompier;
import form.DispoForm; import com.sdis29a.util.TrmtDate;
import util.TrmtDate;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import jakarta.servlet.ServletException; import jakarta.servlet.ServletException;
@ -71,7 +68,6 @@ public class GardesServlet extends HttpServlet {
String[] lesDatesEnString = new String[7]; String[] lesDatesEnString = new String[7];
lesDates[0] = TrmtDate.getDateDebutSemaine(); lesDates[0] = TrmtDate.getDateDebutSemaine();
lesDatesEnString[0] = TrmtDate.getDateAAfficher(lesDates[0]); lesDatesEnString[0] = TrmtDate.getDateAAfficher(lesDates[0]);
for (int i = 1; i < lesDates.length; i++) { for (int i = 1; i < lesDates.length; i++) {
lesDates[i] = TrmtDate.addDays(lesDates[0], i); lesDates[i] = TrmtDate.addDays(lesDates[0], i);
lesDatesEnString[i] = TrmtDate.getDateAAfficher(lesDates[i]); lesDatesEnString[i] = TrmtDate.getDateAAfficher(lesDates[i]);
@ -81,17 +77,11 @@ public class GardesServlet extends HttpServlet {
/*Initialisation des periodes */ /*Initialisation des periodes */
int[] lesPeriodes = {1,2,3,4}; int[] lesPeriodes = {1,2,3,4};
maSession.setAttribute("lesPeriodes", lesPeriodes); maSession.setAttribute("lesPeriodes", lesPeriodes);
/* Recherche des ventilations */
gardeMySQL vm = new gardeMySQL();
ArrayList<Gardes> lesVentilInit = vm.getLesDisponibilite(lesDates, lesPeriodes);
//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 */ /* Affichage de la page de ventilation */
getServletContext().getRequestDispatcher("/WEB-INF/feuilleGardesJSP.jsp").forward(request, response); getServletContext().getRequestDispatcher("/WEB-INF/ventilJSP.jsp").forward(request, response);
} }
/** /**
@ -105,10 +95,7 @@ public class GardesServlet extends HttpServlet {
@Override @Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException { throws ServletException, IOException {
// processRequest(request, response); processRequest(request, response);
DispoForm vf = new DispoForm();
vf.verifDispo(request);
getServletContext().getRequestDispatcher("/WEB-INF/pompierJSP.jsp").forward(request, response);
} }
/** /**

View File

@ -74,7 +74,7 @@ public class PompierServlet extends HttpServlet {
boolean isNumeric = StringUtils.isStrictlyNumeric(pageEnString); boolean isNumeric = StringUtils.isStrictlyNumeric(pageEnString);
if (isNumeric) { if (isNumeric) {
pageDemandee = Integer.parseInt(pageEnString); pageDemandee = Integer.parseInt(pageEnString);
if (pageDemandee != 2 && pageDemandee != 3 && pageDemandee !=5) { // erreur if (pageDemandee != 2 && pageDemandee != 3) { // erreur
erreur = true; erreur = true;
} }
} else { } else {
@ -100,10 +100,6 @@ public class PompierServlet extends HttpServlet {
lePompier = lesPompiers.get(0); lePompier = lesPompiers.get(0);
page = 3; page = 3;
} }
}
if(erreur==false && pageDemandee==5){ //page gardes
} }
if (erreur) { if (erreur) {
request.getRequestDispatcher("/authentification").forward(request, response); // redirection servlet request.getRequestDispatcher("/authentification").forward(request, response); // redirection servlet

View File

@ -1,4 +1,4 @@
package util; package com.sdis29a.util;
/* /*
* Classe abstraite facilitant le traitement des dates * Classe abstraite facilitant le traitement des dates
* Toutes les méthodes sont statiques, appel : TrmtDate.nomMéthode * Toutes les méthodes sont statiques, appel : TrmtDate.nomMéthode

View File

@ -126,53 +126,7 @@
value="${lePompier.getCommentaire()}" /> value="${lePompier.getCommentaire()}" />
</div><!-- fin ligne observation --> </div><!-- fin ligne observation -->
</div> <!-- fin 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="danger mt-3">${message} </div>
<div class="text-center mt-3"> <div class="text-center mt-3">
@ -184,22 +138,6 @@
<p><em>* zone obligatoire</em></p> <p><em>* zone obligatoire</em></p>
</section> </section>
<script>
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>
</div> <!-- fin div contenant aside et section --> </div> <!-- fin div contenant aside et section -->
</form> </form>

View File

@ -89,20 +89,6 @@
</c:choose> </c:choose>
</li> </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>
</c:choose>
</li>
</ul> </ul>
</div> </div>