487 lines
22 KiB
Plaintext
487 lines
22 KiB
Plaintext
<%@page contentType="text/html" pageEncoding="UTF-8"%> <%@ taglib prefix="c"
|
|
uri="http://java.sun.com/jsp/jstl/core" %>
|
|
|
|
<%@ page import="java.util.*" %>
|
|
<%@ page import="java.text.SimpleDateFormat" %>
|
|
|
|
<%
|
|
// Définir la date de départ (lundi)
|
|
String startWeekStr = request.getParameter("startWeek"); // Format YYYY-MM-DD
|
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
Calendar calendar = Calendar.getInstance();
|
|
|
|
// Parse la date de départ
|
|
Date startWeek = sdf.parse(startWeekStr);
|
|
calendar.setTime(startWeek);
|
|
|
|
// Liste pour stocker les dates de la semaine
|
|
List<String> weekDates = new ArrayList<>();
|
|
|
|
// Générer les dates de la semaine
|
|
for (int i = 0; i < 7; i++) {
|
|
weekDates.add(sdf.format(calendar.getTime()));
|
|
calendar.add(Calendar.DATE, 1); // Ajouter un jour
|
|
}
|
|
%>
|
|
|
|
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<script src="https://cdn.tailwindcss.com"></script>
|
|
<link rel="preconnect" href="https://fonts.googleapis.com" />
|
|
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Oswald:wght@200..700&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<link
|
|
href="https://fonts.googleapis.com/css2?family=Carme&display=swap"
|
|
rel="stylesheet"
|
|
/>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>Document</title>
|
|
</head>
|
|
<body class="w-screen h-screen">
|
|
<%@include file="jspf/sidebarJSP.jspf" %>
|
|
<div class="p-4 sm:ml-64">
|
|
<div class="p-4 border-2 border-gray-200 border-dashed rounded-lg mt-14">
|
|
<div class="flex flex-col">
|
|
<form class="flex flex-col" action="ModifyAttendanceServlet" method="POST">
|
|
<div class="flex space-x-2">
|
|
<h1>Pour les periodes entre :</h1>
|
|
<input type="text" id="startWeek" name="startWeek" value="${param.startWeek}" class="w-[90px]">
|
|
et
|
|
<input type="text" id="endWeek" name="endWeek" value="${param.endWeek}">
|
|
</div>
|
|
<div class="flex">
|
|
<h1>Pour le salarie avec l'identifiant :</h1>
|
|
<input type="text" id="idSalarie" name="idSalarie" value="${param.idSalarie}">
|
|
</div>
|
|
<div class="w-full">
|
|
<h1>Lundi <%= weekDates.get(0) %></h1>
|
|
<div class="flex space-x-[5dvw]">
|
|
<div class="relative mb-6">
|
|
<h1>AM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(0) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(0) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relative mb-6">
|
|
<h1>PM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(0) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(0) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="w-full">
|
|
<h1>Mardi <%= weekDates.get(1) %></h1>
|
|
<div class="flex space-x-[5dvw]">
|
|
<div class="relative mb-6">
|
|
<h1>AM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(1) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(1) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relative mb-6">
|
|
<h1>PM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(1) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(1) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="w-full">
|
|
<h1>Mercredi <%= weekDates.get(2) %></h1>
|
|
<div class="flex space-x-[5dvw]">
|
|
<div class="relative mb-6">
|
|
<h1>AM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(2) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(2) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relative mb-6">
|
|
<h1>PM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(2) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(2) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="w-full">
|
|
<h1>Jeudi <%= weekDates.get(3) %></h1>
|
|
<div class="flex space-x-[5dvw]">
|
|
<div class="relative mb-6">
|
|
<h1>AM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(3) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(3) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relative mb-6">
|
|
<h1>PM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(3) %>_pm""
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(3) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="w-full">
|
|
<h1>Vendredi <%= weekDates.get(4) %></h1>
|
|
<div class="flex space-x-[5dvw]">
|
|
<div class="relative mb-6">
|
|
<h1>AM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(4) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(4) %>_am"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="relative mb-6">
|
|
<h1>PM</h1>
|
|
<div class="flex w-full space-x-[1dvw]">
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
checked
|
|
id="bordered-radio-1"
|
|
type="radio"
|
|
value="1"
|
|
name="<%= weekDates.get(4) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-1"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Au bureau</label
|
|
>
|
|
</div>
|
|
<div
|
|
class="flex items-center ps-4 border border-gray-200 rounded w-[100%]"
|
|
>
|
|
<input
|
|
id="bordered-radio-2"
|
|
type="radio"
|
|
value="2"
|
|
name="<%= weekDates.get(4) %>_pm"
|
|
class="w-[4dvw] h-4 text-blue-600 bg-gray-100 border-gray-300 focus:ring-blue-500 dark:focus:ring-blue-600 dark:ring-offset-gray-800 focus:ring-2 dark:bg-gray-700 dark:border-gray-600"
|
|
/>
|
|
<label
|
|
for="bordered-radio-2"
|
|
class="w-full py-4 ms-2 text-sm font-medium text-gray-900 dark:text-gray-300"
|
|
>Absent</label
|
|
>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<button
|
|
type="submit"
|
|
class="relative inline-flex items-center justify-center p-0.5 mb-2 me-2 overflow-hidden text-sm font-medium text-gray-900 rounded-lg group bg-gradient-to-br from-purple-600 to-blue-500 group-hover:from-purple-600 group-hover:to-blue-500 hover:text-white focus:ring-4 focus:outline-none focus:ring-blue-300"
|
|
>
|
|
<span
|
|
class="relative px-5 py-2.5 transition-all ease-in duration-75 bg-white rounded-md group-hover:bg-opacity-0"
|
|
>
|
|
Modifier le planning
|
|
</span>
|
|
</button>
|
|
</form>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</body>
|
|
</html>
|