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
This commit is contained in:
funcha.ahamadi
2021-12-13 15:07:08 +01:00
15 changed files with 1886 additions and 1760 deletions

View File

@@ -8,7 +8,7 @@ package bdd;
import bean.Caserne;
import bean.Gardes;
import bean.Pompier;
import com.sdis29a.util.TrmtDate;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
@@ -18,6 +18,7 @@ import java.util.ArrayList;
import java.util.Calendar;
import java.util.logging.Level;
import java.util.logging.Logger;
import util.TrmtDate;
/**
*

View File

@@ -13,11 +13,11 @@ import java.util.Objects;
* @author funcha.ahamadi
*/
public class Gardes {
public Calendar jourGarde;
public int periode;
public Pompier pompier;
public int disponibilite;
public boolean isInBDD;
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;

View File

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

View File

@@ -0,0 +1,51 @@
/*
* 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,8 +5,12 @@
*/
package servlet;
import bdd.GardeMySQL;
import bdd.gardeMySQL;
import bean.Gardes;
import bean.Pompier;
import com.sdis29a.util.TrmtDate;
import form.DispoForm;
import util.TrmtDate;
import java.io.IOException;
import java.io.PrintWriter;
import jakarta.servlet.ServletException;
@@ -63,23 +67,38 @@ 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];
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);
//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/feuilleGardes.jsp").forward(request, response);
}
@@ -95,7 +114,10 @@ public class GardesServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
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

@@ -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) { // erreur
if (pageDemandee != 2 && pageDemandee != 3 && pageDemandee != 5) { // erreur
erreur = true;
}
} else {
@@ -101,12 +101,13 @@ public class PompierServlet extends HttpServlet {
page = 3;
}
}
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);
}
}
@@ -126,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");
@@ -148,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")
@@ -158,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) {
@@ -178,8 +179,8 @@ public class PompierServlet extends HttpServlet {
// }
// }
pf.majBDD();
}
}
getServletContext().getRequestDispatcher("/WEB-INF/pompierJSP.jsp").forward(request, response);
}

View File

@@ -1,129 +1,129 @@
package com.sdis29a.util;
/*
* Classe abstraite facilitant le traitement des dates
* Toutes les méthodes sont statiques, appel : TrmtDate.nomMéthode
*/
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
/**
*
* @author Dominique_2
*/
public abstract class TrmtDate {
static Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("Europe/Paris"));
/**
* Recherche de la date du début de la semaine courante
* @return date du lundi de la semaine, format Calendar
*/
public static Calendar getDateDebutSemaine() {
return getDateDebutSemaine(getDateDuJour());
}
/**
* Recherche de la date du début de semaine à partir de la date passée en paramètre
* @param c Calendar, date de recherche
* @return Calendar, début semaine à partir de c
*/
public static Calendar getDateDebutSemaine(Calendar c) {
Calendar leCal = getClone(c);
leCal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
//System.out.println("Date du lundi correspondant : " + nvCal.getTime());
return leCal;
}
/**
* Retourne la date passée en paramètre sous la forme : lun.05/10 par exemple
* @param d date à transformer
* @return chaine de car., forme lun.05/10 par exemple
*/
public static String getDateAAfficher(Calendar d) {
Locale locale = Locale.getDefault();
String dateAAfficher = d.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, locale);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM");
String jrMois = sdf.format(d.getTime());
dateAAfficher += jrMois;
return dateAAfficher;
}
/**
* Retourne une date égale à la date passée en paramètre plus le nb jours indiqués
* @param dateInit date initiale, format Calendar
* @param days nb jours à ajouter
* @return dateInit + days, format Calendar
*/
public static Calendar addDays(Calendar dateInit, int days) {
Calendar leCal = getClone(dateInit);
leCal.setTime(dateInit.getTime());
leCal.add(Calendar.DAY_OF_MONTH, days);
return leCal;
}
/**
* Retourne une instance de Calendar correspondant à la date au format SQl
* passée en paramètre
* @param sqlDate : date au format java.sql.Date
* @return instance de Calendar
*/
public static Calendar getCalDate(java.sql.Date sqlDate) {
cal.setTime(new java.util.Date(sqlDate.getTime()));
return cal;
}
/**
* Retourne une date sql à partir d'une instance de Calendar
* @param unCal
* @return date sql
*/
public static java.sql.Date getSQLDate(Calendar unCal) {
return new java.sql.Date(unCal.getTimeInMillis());
}
/**
* Retourne une instance de Calendar correspondant à la date
* passée en paramètre
* @param utilDate : date au format java.util.Date
* @return instance de Calendar
*/
public static Calendar getCalDate(java.util.Date utilDate) {
cal.setTime(utilDate);
return cal;
}
/**
* Retourne la date du jour au format SQL
* @return Date au format sql
*/
public static java.sql.Date getSQLDateDuJour() {
return java.sql.Date.valueOf(java.time.LocalDate.now());
}
/**
* Retourne la date du jour au format Calendar
* @return Calendar
*/
public static Calendar getDateDuJour() {
Calendar nvCal = new GregorianCalendar(TimeZone.getTimeZone("Europe/Paris"));
nvCal.set(Calendar.HOUR_OF_DAY, 0);
nvCal.set(Calendar.MINUTE, 0);
nvCal.set(Calendar.SECOND, 0);
nvCal.set(Calendar.MILLISECOND, 0);
//System.out.println("Date du jour : " + nvCal.getTime());
return nvCal;
}
/**
* Permet d'obtenir une autre instance de Calendar identique à celle passée en paramètre
* @param c Calendar à cloner
* @return nouvelle instance de Calendar
*/
public static Calendar getClone(Calendar c) {
Calendar leCal = Calendar.getInstance();
leCal.setTime(c.getTime());
return leCal;
}
}
package util;
/*
* Classe abstraite facilitant le traitement des dates
* Toutes les méthodes sont statiques, appel : TrmtDate.nomMéthode
*/
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Locale;
import java.util.TimeZone;
/**
*
* @author Dominique_2
*/
public abstract class TrmtDate {
static Calendar cal = new GregorianCalendar(TimeZone.getTimeZone("Europe/Paris"));
/**
* Recherche de la date du début de la semaine courante
* @return date du lundi de la semaine, format Calendar
*/
public static Calendar getDateDebutSemaine() {
return getDateDebutSemaine(getDateDuJour());
}
/**
* Recherche de la date du début de semaine à partir de la date passée en paramètre
* @param c Calendar, date de recherche
* @return Calendar, début semaine à partir de c
*/
public static Calendar getDateDebutSemaine(Calendar c) {
Calendar leCal = getClone(c);
leCal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
//System.out.println("Date du lundi correspondant : " + nvCal.getTime());
return leCal;
}
/**
* Retourne la date passée en paramètre sous la forme : lun.05/10 par exemple
* @param d date à transformer
* @return chaine de car., forme lun.05/10 par exemple
*/
public static String getDateAAfficher(Calendar d) {
Locale locale = Locale.getDefault();
String dateAAfficher = d.getDisplayName(Calendar.DAY_OF_WEEK, Calendar.SHORT, locale);
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM");
String jrMois = sdf.format(d.getTime());
dateAAfficher += jrMois;
return dateAAfficher;
}
/**
* Retourne une date égale à la date passée en paramètre plus le nb jours indiqués
* @param dateInit date initiale, format Calendar
* @param days nb jours à ajouter
* @return dateInit + days, format Calendar
*/
public static Calendar addDays(Calendar dateInit, int days) {
Calendar leCal = getClone(dateInit);
leCal.setTime(dateInit.getTime());
leCal.add(Calendar.DAY_OF_MONTH, days);
return leCal;
}
/**
* Retourne une instance de Calendar correspondant à la date au format SQl
* passée en paramètre
* @param sqlDate : date au format java.sql.Date
* @return instance de Calendar
*/
public static Calendar getCalDate(java.sql.Date sqlDate) {
cal.setTime(new java.util.Date(sqlDate.getTime()));
return cal;
}
/**
* Retourne une date sql à partir d'une instance de Calendar
* @param unCal
* @return date sql
*/
public static java.sql.Date getSQLDate(Calendar unCal) {
return new java.sql.Date(unCal.getTimeInMillis());
}
/**
* Retourne une instance de Calendar correspondant à la date
* passée en paramètre
* @param utilDate : date au format java.util.Date
* @return instance de Calendar
*/
public static Calendar getCalDate(java.util.Date utilDate) {
cal.setTime(utilDate);
return cal;
}
/**
* Retourne la date du jour au format SQL
* @return Date au format sql
*/
public static java.sql.Date getSQLDateDuJour() {
return java.sql.Date.valueOf(java.time.LocalDate.now());
}
/**
* Retourne la date du jour au format Calendar
* @return Calendar
*/
public static Calendar getDateDuJour() {
Calendar nvCal = new GregorianCalendar(TimeZone.getTimeZone("Europe/Paris"));
nvCal.set(Calendar.HOUR_OF_DAY, 0);
nvCal.set(Calendar.MINUTE, 0);
nvCal.set(Calendar.SECOND, 0);
nvCal.set(Calendar.MILLISECOND, 0);
//System.out.println("Date du jour : " + nvCal.getTime());
return nvCal;
}
/**
* Permet d'obtenir une autre instance de Calendar identique à celle passée en paramètre
* @param c Calendar à cloner
* @return nouvelle instance de Calendar
*/
public static Calendar getClone(Calendar c) {
Calendar leCal = Calendar.getInstance();
leCal.setTime(c.getTime());
return leCal;
}
}