Compare commits

..

4 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
9 changed files with 204 additions and 298 deletions

View File

@@ -61,8 +61,10 @@ public class GardeMySQL {
/* b) Maj de la collection lesVentil /* b) Maj de la collection lesVentil
*/ */
readAll(lesDispo, lesDates[0], lesDates[indiceDateFin]); readAll(lesDispo, lesDates[0], lesDates[indiceDateFin]);
//System.out.println("lesDispo : " + lesDispo); System.out.println("lesDispo : " + lesDispo);
return lesDispo; return lesDispo;
} }
public void readAll(ArrayList<Gardes> lesDispo, Calendar d1, Calendar d2) { public void readAll(ArrayList<Gardes> lesDispo, Calendar d1, Calendar d2) {
Pompier lePompier; Pompier lePompier;
@@ -107,21 +109,21 @@ public class GardeMySQL {
/** /**
* Suppression de la garde passé en paramètre * Suppression de la garde passé en paramètre
* *
* @param v ventilation à supprimer * @param g ventilation à supprimer
* @return nb ligne a supprimer * @return nb ligne a supprimer
*/ */
public int delete(Gardes g) { public int delete(Gardes g) {
int nbMaj = -1; int nbMaj = -1;
String sql = "DELETE * FROM gardes " String sql = "DELETE FROM gardes "
+ "WHERE idPompier=?" + "WHERE idPompier=?"
+ "AND periode=?" + " AND periode=?"
+ "AND jourGarde= ?;"; + " AND jourGarde= ?;";
try { try {
PreparedStatement prepStmt = theConnection.prepareStatement(sql); PreparedStatement prepStmt = theConnection.prepareStatement(sql);
prepStmt.setInt(1, g.getPompier().getId()); prepStmt.setInt(1, g.getPompier().getId());
prepStmt.setInt(2, g.getPeriode()); prepStmt.setInt(2, g.getPeriode());
prepStmt.setInt(3, g.getPeriode());
prepStmt.setDate(3, TrmtDate.getSQLDate(g.getJourGarde())); prepStmt.setDate(3, TrmtDate.getSQLDate(g.getJourGarde()));
nbMaj = prepStmt.executeUpdate(); nbMaj = prepStmt.executeUpdate();
} catch (SQLException ex) { } catch (SQLException ex) {
@@ -140,16 +142,18 @@ public class GardeMySQL {
int idCree = -1; int idCree = -1;
String sql = "INSERT into gardes " String sql = "INSERT into gardes "
+ "(jourGarde, periode, idPompier, disponibilite, deGarde) " + "(jourGarde, periode, idPompier, disponibilite, deGarde) "
+ "VALUES (?, ?, ?,?,?)"; + "VALUES (?, ?, ?,?,?);";
try { try {
PreparedStatement prepStmt = null; // PreparedStatement prepStmt = null;
prepStmt = theConnection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); // prepStmt = theConnection.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS);
PreparedStatement prepStmt = theConnection.prepareStatement(sql);
prepStmt.setDate(1, TrmtDate.getSQLDate(g.getJourGarde())); prepStmt.setDate(1, TrmtDate.getSQLDate(g.getJourGarde()));
prepStmt.setInt(2, g.getPeriode()); prepStmt.setInt(2, g.getPeriode());
prepStmt.setInt(3, g.getPompier().getId()); prepStmt.setInt(3, g.getPompier().getId());
prepStmt.setInt(4, g.getDisponibilite()); prepStmt.setInt(4, g.getDisponibilite());
prepStmt.setBoolean(5, g.isDeGarde());
System.out.println(prepStmt); System.out.println(prepStmt);
int nbLigne = prepStmt.executeUpdate(); int nbLigne = prepStmt.executeUpdate();
@@ -180,18 +184,18 @@ public class GardeMySQL {
int nbMAJ = -1; int nbMAJ = -1;
String sql = "UPDATE gardes " String sql = "UPDATE gardes "
+ "SET disponibilite = ? " + "SET disponibilite = ?, deGarde = ? "
+ "WHERE idPompier = ? " + "WHERE idPompier = ? "
+ "AND jourGarde = ? " + "AND jourGarde = ? "
+ "AND periode = ?" + "AND periode = ?;";
+ "AND deGarde = ?"
;
try { try {
PreparedStatement prepStmt = theConnection.prepareStatement(sql); PreparedStatement prepStmt = theConnection.prepareStatement(sql);
prepStmt.setInt(1, g.getDisponibilite()); prepStmt.setInt(1, g.getDisponibilite());
prepStmt.setInt(2, g.getPompier().getId()); prepStmt.setBoolean(2, g.isDeGarde());
prepStmt.setDate(3, TrmtDate.getSQLDate(g.getJourGarde())); prepStmt.setInt(3, g.getPompier().getId());
prepStmt.setInt(4, g.getPeriode()); prepStmt.setDate(4, TrmtDate.getSQLDate(g.getJourGarde()));
prepStmt.setInt(5, g.getPeriode());
System.out.println("update : " + prepStmt); System.out.println("update : " + prepStmt);
nbMAJ = prepStmt.executeUpdate(); nbMAJ = prepStmt.executeUpdate();
} catch (SQLException ex) { } catch (SQLException ex) {

View File

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

@@ -12,30 +12,41 @@ import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpSession; import jakarta.servlet.http.HttpSession;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import javax.swing.JCheckBox;
/** /**
* *
* @author clementine.desrucques * @author clementine.desrucques
*/ */
public class DispoForm { public class DispoForm {
HttpServletRequest request; HttpServletRequest request;
public void verifDispo(HttpServletRequest request){ public void verifDispo(HttpServletRequest request) {
HttpSession maS = request.getSession(); HttpSession maS = request.getSession();
ArrayList <Gardes> lesG = (ArrayList<Gardes>) maS.getAttribute("lesVentilInit"); ArrayList<Gardes> lesG = (ArrayList<Gardes>) maS.getAttribute("lesVentilInit");
GardeMySQL vm = new GardeMySQL(); GardeMySQL vm = new GardeMySQL();
Map<String, String[]> map = request.getParameterMap(); Map<String, String[]> map = request.getParameterMap();
String[] lesNvVentil = map.get("lesActivites"); 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; int i = 0;
for(Gardes uneGarde : lesG){ for (Gardes uneGarde : lesG) {
int oldAct = uneGarde.getDisponibilite(); int oldAct = uneGarde.getDisponibilite();
int newAct = Integer.parseInt(lesNvVentil[i]); int newAct = Integer.parseInt(lesNvVentil[i]);
if(oldAct != newAct){ if (oldAct != newAct) {
if(uneGarde.isIsInBDD()){ if (uneGarde.isIsInBDD()) {
if(newAct == 0){
if (newAct == 0) {
vm.delete(uneGarde); vm.delete(uneGarde);
uneGarde.setIsInBDD(false); uneGarde.setIsInBDD(false);
uneGarde.setDisponibilite(newAct);
} else { } else {
uneGarde.setDisponibilite(newAct); uneGarde.setDisponibilite(newAct);
vm.update(uneGarde); vm.update(uneGarde);
@@ -45,6 +56,65 @@ public class DispoForm {
vm.create(uneGarde); vm.create(uneGarde);
uneGarde.setIsInBDD(true); 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++; i++;
} }

View File

@@ -1,132 +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 servlet;
import bdd.GardeMySQL;
import bean.Gardes;
import bean.Pompier;
import form.DispoForm;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import jakarta.servlet.http.HttpSession;
import java.util.ArrayList;
import java.util.Calendar;
import util.TrmtDate;
/**
*
* @author clementine.desrucques
*/
public class GPServlet extends HttpServlet {
/**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code>
* methods.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try ( PrintWriter out = response.getWriter()) {
/* TODO output your page here. You may use following sample code. */
out.println("<!DOCTYPE html>");
out.println("<html>");
out.println("<head>");
out.println("<title>Servlet GPServlet</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Servlet GPServlet at " + request.getContextPath() + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
// <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response)
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];
lesDates[0] = TrmtDate.getDateDebutSemaine();
lesDatesEnString[0] = TrmtDate.getDateAAfficher(lesDates[0]);
for (int i = 1; i < lesDates.length; i++) {
lesDates[i] = TrmtDate.addDays(lesDates[0], i);
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);
System.out.println(lesPeriodes.toString());
/* Recherche des ventilations */
GardeMySQL vm = new GardeMySQL();
ArrayList<Gardes> lesVentilInit = vm.getLesDisponibilite(lesDates, lesPeriodes,request);
//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/gardeJSP.jsp").forward(request, response);
}
/**
* Handles the HTTP <code>POST</code> method.
*
* @param request servlet request
* @param response servlet response
* @throws ServletException if a servlet-specific error occurs
* @throws IOException if an I/O error occurs
*/
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
// processRequest(request, response);
DispoForm vf = new DispoForm();
vf.verifDispo(request);
getServletContext().getRequestDispatcher("/WEB-INF/pompierJSP.jsp").forward(request, response);
}
/**
* Returns a short description of the servlet.
*
* @return a String containing servlet description
*/
@Override
public String getServletInfo() {
return "Short description";
}// </editor-fold>
}

View File

@@ -94,6 +94,10 @@ public class GardesServlet extends HttpServlet {
//System.out.println("lesVentilInit : " + lesVentilInit); //System.out.println("lesVentilInit : " + lesVentilInit);
maSession.setAttribute("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 */ /* Initialisation des couleurs */
String[] lesCouleurs = {"blanc", "gris", "jaune"}; String[] lesCouleurs = {"blanc", "gris", "jaune"};
@@ -117,6 +121,7 @@ public class GardesServlet extends HttpServlet {
// processRequest(request, response); // processRequest(request, response);
DispoForm vf = new DispoForm(); DispoForm vf = new DispoForm();
vf.verifDispo(request); vf.verifDispo(request);
getServletContext().getRequestDispatcher("/WEB-INF/pompierJSP.jsp").forward(request, response); getServletContext().getRequestDispatcher("/WEB-INF/pompierJSP.jsp").forward(request, response);
} }

View File

@@ -8,7 +8,7 @@
<body> <body>
<%@include file= "jspf/header.jspf" %> <%@include file= "jspf/header.jspf" %>
<div class="container"> <div class="container">
<section id="contenueAffiche" class="row"> <section id="contenuAffiche" class="row">
@@ -31,65 +31,88 @@
<tr> <tr>
<c:forEach var="i" begin="0" end="6" step="1"> <c:forEach var="i" begin="0" end="6" step="1">
<c:forEach items='${sessionScope.lesPeriodes}' var="unePeriode" varStatus="status"> <c:forEach items='${sessionScope.lesPeriodes}' var="unePeriode" varStatus="status">
<td class="text-center">${unePeriode.getCode()}</td> <td class="text-center">${unePeriode.getCode()}</td>
</c:forEach> </c:forEach>
</c:forEach> </c:forEach>
</tr> </tr>
</thead> </thead>
<tbody> <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:set var="oldId" value="-1" scope="page"/>
</c:if> <tr>
<c:set var="activite" value='${uneVentil.getDisponibilite()}' scope="page"/>
<td>
<input readonly type="text" value='${activite}' name="lesActivites"class="ztVentil ${sessionScope.lesCouleurs[activite]}"/>
</td>
</c:forEach>
</tr>
</tbody> <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> </table>
<div id="legendCouleur"> <div id="legendCouleur">
<span style="background-color: white">Dispo</span> <span style="background-color: white">Dispo</span>
<span style="background-color: gray">Indispo</span> <span style="background-color: gray">Indispo</span>
<span style="background-color: yellow">Au travail</span> <span style="background-color: yellow">Au travail</span>
<span>De garde : X</span> <span>De garde : </span>
</div> </div>
<div class="text-center"> <div class="text-center">
<button type="submit" value="Valider" class="btn btn-danger"><i class="bi bi-check2"></i> Valider</button> <button type="submit" value="Valider" class="btn btn-danger"><i class="bi bi-check2"></i> Valider</button>
</div> </div>
</form> </form>
</fieldset> </fieldset>
</section> </section>
</div> </div>
</body> </body>
<script> <script>
var couleurs = ["blanc", "gris", "jaune"]; var st = (document.getElementById("statut").textContent).trim();
var lesAct = document.getElementsByClassName("ztVentil"); if (st != "chef de centre") {
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;
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> </script>

View File

@@ -1,93 +0,0 @@
<%--
Document : gardeJSP
Created on : 14 déc. 2021, 08:20:45
Author : clementine.desrucques
--%>
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@include file= "jspf/debutJSP.jspf" %>
<body>
<%@include file= "jspf/header.jspf" %>
<div class="container">
<section id="contenueAffiche" 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"/>
<td>
<input readonly type="text" value='${activite}' name="lesActivites"class="ztVentil ${sessionScope.lesCouleurs[activite]}"/>
</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>
<span>De garde : X</span>
</div>
</form>
</fieldset>
</section>
</div>
</body>
<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>

View File

@@ -14,7 +14,10 @@
<c:otherwise> <c:otherwise>
<h4>Bienvenue ${sessionScope.lePompierConnecte.getPrenom()} <h4>Bienvenue ${sessionScope.lePompierConnecte.getPrenom()}
${sessionScope.lePompierConnecte.getNom()} ( ${sessionScope.lePompierConnecte.getNom()} (
${sessionScope.lePompierConnecte.getLeStatut().getValeur()}) <span id="statut">
${sessionScope.lePompierConnecte.getLeStatut().getValeur()}
</span>
)
</h4> </h4>
<button type="button" class="btn btn-warning fs-4" title="Déconnexion"> <button type="button" class="btn btn-warning fs-4" title="Déconnexion">

View File

@@ -103,8 +103,9 @@ select[readonly] {
} }
.ztVentil { .ztVentil {
width : 15px; height: 20px;
border-color: black; width : 18px;
border-color: black;
} }