281 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			281 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
<!DOCTYPE html>
 | 
						|
<html lang="fr">
 | 
						|
 | 
						|
<head>
 | 
						|
    <meta charset="UTF-8">
 | 
						|
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
 | 
						|
    <link rel="stylesheet" href="../../css/RH/style.css">
 | 
						|
    <link rel="stylesheet" href="../../css/RH/rh.css">
 | 
						|
    <title>Gestion des Candidatures</title>
 | 
						|
    <style>
 | 
						|
        /* Ajout de styles pour la barre de recherche et le tri */
 | 
						|
        .search-container {
 | 
						|
            margin-bottom: 20px;
 | 
						|
        }
 | 
						|
 | 
						|
        .sort-container {
 | 
						|
            margin-bottom: 20px;
 | 
						|
        }
 | 
						|
 | 
						|
        .sort-button {
 | 
						|
            margin-right: 5px;
 | 
						|
        }
 | 
						|
 | 
						|
        .modal-content {
 | 
						|
            max-height: 80vh;
 | 
						|
            overflow-y: auto;
 | 
						|
        }
 | 
						|
 | 
						|
        .comment-container {
 | 
						|
            margin-top: 20px;
 | 
						|
        }
 | 
						|
 | 
						|
        /* Styles pour la pop-up d'ajout d'offre de vacation */
 | 
						|
        .vacation-modal {
 | 
						|
            display: none; /* Masquer par défaut */
 | 
						|
            position: fixed;
 | 
						|
            z-index: 1;
 | 
						|
            left: 0;
 | 
						|
            top: 0;
 | 
						|
            width: 100%;
 | 
						|
            height: 100%;
 | 
						|
            overflow: auto;
 | 
						|
            background-color: rgb(0,0,0);
 | 
						|
            background-color: rgba(0,0,0,0.4);
 | 
						|
            padding-top: 60px;
 | 
						|
        }
 | 
						|
 | 
						|
        .vacation-modal-content {
 | 
						|
            background-color: #fefefe;
 | 
						|
            margin: 5% auto;
 | 
						|
            padding: 20px;
 | 
						|
            border: 1px solid #888;
 | 
						|
            width: 80%;
 | 
						|
        }
 | 
						|
 | 
						|
        .validationDossier{
 | 
						|
            margin-top: 25px;
 | 
						|
            background-color: green;
 | 
						|
        }
 | 
						|
 | 
						|
        .refusDossier{
 | 
						|
            background-color: rgb(128, 0, 0);
 | 
						|
        }
 | 
						|
 | 
						|
        .commentairee{
 | 
						|
            width: 100%;
 | 
						|
            height: 100%;
 | 
						|
            box-sizing: border-box;
 | 
						|
        }
 | 
						|
    </style>
 | 
						|
</head>
 | 
						|
 | 
						|
<body>
 | 
						|
    <div class="header">
 | 
						|
        <div class="logo-container">
 | 
						|
            <img src="../../media/img/logoWhite.png" alt="Logo Accueil">
 | 
						|
        </div>
 | 
						|
 | 
						|
        <div class="categories">
 | 
						|
            <a href="./rh.html">Accueil</a>
 | 
						|
            <a href="./gestion_personnel.html">Gestion du personnel</a>
 | 
						|
            <a href="./gestion-heures.html">Heures</a>
 | 
						|
            <a href="./candidature.html">Candidatures</a>
 | 
						|
            <a href="./mes-informations.html">Mes informations et documents</a>
 | 
						|
        </div>
 | 
						|
 | 
						|
        <div class="user-section">
 | 
						|
            <div class="user-name">Alice BERGER</div>
 | 
						|
            <div class="logout-container">
 | 
						|
                <a href="../../index.html" title="Se déconnecter">
 | 
						|
                    <img src="../../media/img/LogOutWhite.png" alt="Logo Déconnexion">
 | 
						|
                </a>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <main>
 | 
						|
        <section>
 | 
						|
            <h2>Candidatures en Attente de Validation</h2>
 | 
						|
 | 
						|
            <!-- Barre de recherche -->
 | 
						|
            <div class="search-container">
 | 
						|
                <input type="text" id="search-input" placeholder="Rechercher par nom" oninput="filterTable()">
 | 
						|
            </div>
 | 
						|
 | 
						|
            <!-- Conteneur de tri -->
 | 
						|
            <div class="sort-container">
 | 
						|
                <button class="sort-button" onclick="sortTable(0)">Trier par Nom</button>
 | 
						|
                <button class="sort-button" onclick="sortTable(1)">Trier par Prénom</button>
 | 
						|
                <button class="sort-button" onclick="sortTable(2)">Trier par Formation</button>
 | 
						|
                <button class="sort-button" onclick="openVacationModal()">Ajouter une Offre de Vacation</button>
 | 
						|
            </div>
 | 
						|
 | 
						|
            <table>
 | 
						|
                <thead>
 | 
						|
                    <tr>
 | 
						|
                        <th>Nom</th>
 | 
						|
                        <th>Prénom</th>
 | 
						|
                        <th>Formation Demandée</th>
 | 
						|
                        <th>Action</th>
 | 
						|
                    </tr>
 | 
						|
                </thead>
 | 
						|
                <tbody id="candidatures-table">
 | 
						|
                    <tr>
 | 
						|
                        <td>Mike</td>
 | 
						|
                        <td>Michel</td>
 | 
						|
                        <td>Informatique - BUT1</td>
 | 
						|
                        <td>
 | 
						|
                            <button onclick="consulterDossier('Mike', 'Michel')">Consulter Dossier</button>
 | 
						|
                        </td>
 | 
						|
                    </tr>
 | 
						|
                    <tr>
 | 
						|
                        <td>John</td>
 | 
						|
                        <td>Williams</td>
 | 
						|
                        <td>Mathématiques - BUT GEA</td>
 | 
						|
                        <td>
 | 
						|
                            <button onclick="consulterDossier('John', 'Williams')">Consulter Dossier</button>
 | 
						|
                        </td>
 | 
						|
                    </tr>
 | 
						|
                    <!-- Ajoutez d'autres lignes ici -->
 | 
						|
                </tbody>
 | 
						|
            </table>
 | 
						|
        </section>
 | 
						|
    </main>
 | 
						|
 | 
						|
    <!-- Modal pour consulter le dossier de candidature -->
 | 
						|
    <div id="dossierModal" class="modal">
 | 
						|
        <div class="modal-content">
 | 
						|
            <span class="close" onclick="closeDossierModal()">×</span>
 | 
						|
            <h2>Dossier de Candidature : <span id="dossier-nom"></span> <span id="dossier-prenom"></span></h2>
 | 
						|
            <h3>Pièces Justificatives :</h3>
 | 
						|
            <ul id="pieces-list"></ul>
 | 
						|
            <div class="comment-container">
 | 
						|
                <h3>Commentaire :</h3>
 | 
						|
                <textarea class="commentairee" rows="4" placeholder="Ajouter un commentaire sur ce dossier..."></textarea><br>
 | 
						|
                <button onclick="ajouterCommentaire()">Ajouter Commentaire</button>
 | 
						|
            </div>
 | 
						|
            <div>
 | 
						|
                <button class="validationDossier" onclick="validerDossier()">Valider Dossier</button>
 | 
						|
                <button class="refusDossier" onclick="refuserDossier()">Refuser Dossier</button>
 | 
						|
            </div>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <!-- Modal pour ajouter une offre de vacation -->
 | 
						|
    <div id="vacationModal" class="vacation-modal">
 | 
						|
        <div class="vacation-modal-content">
 | 
						|
            <span class="close" onclick="closeVacationModal()">×</span>
 | 
						|
            <h2>Ajouter une Offre de Vacation</h2>
 | 
						|
            <form id="vacation-form">
 | 
						|
                <label for="diplome">Diplôme requis :</label><br>
 | 
						|
                <input type="text" id="diplome" name="diplome" required><br><br>
 | 
						|
                
 | 
						|
                <label for="description">Description :</label><br>
 | 
						|
                <textarea id="description" name="description" rows="4" required></textarea><br><br>
 | 
						|
                
 | 
						|
                
 | 
						|
                <label for="duree">Durée (en jours) :</label><br>
 | 
						|
                <input type="number" id="duree" name="duree" min="1" required><br><br>
 | 
						|
                
 | 
						|
                <button type="submit">Soumettre l'Offre</button>
 | 
						|
            </form>
 | 
						|
        </div>
 | 
						|
    </div>
 | 
						|
    
 | 
						|
 | 
						|
    <div class="footer">
 | 
						|
        <p>© 2024 IUT de Fontainebleau. Tous droits réservés | 
 | 
						|
            <a href="../mentions_legales.html">Mentions légales</a>
 | 
						|
        </p>
 | 
						|
    </div>
 | 
						|
 | 
						|
    <script>
 | 
						|
        const sortOrder = [true, true, true]; // État du tri pour chaque colonne
 | 
						|
 | 
						|
        function sortTable(columnIndex) {
 | 
						|
            const table = document.getElementById("candidatures-table");
 | 
						|
            const rows = Array.from(table.rows);
 | 
						|
            const direction = sortOrder[columnIndex] ? 1 : -1; // Déterminer la direction du tri
 | 
						|
            sortOrder[columnIndex] = !sortOrder[columnIndex]; // Basculer l'ordre de tri pour le prochain clic
 | 
						|
 | 
						|
            rows.sort((a, b) => {
 | 
						|
                const aText = a.cells[columnIndex].textContent.trim();
 | 
						|
                const bText = b.cells[columnIndex].textContent.trim();
 | 
						|
                return direction * aText.localeCompare(bText);
 | 
						|
            });
 | 
						|
 | 
						|
            // Réattacher les lignes triées au tableau
 | 
						|
            rows.forEach(row => table.appendChild(row));
 | 
						|
        }
 | 
						|
 | 
						|
        function filterTable() {
 | 
						|
            const input = document.getElementById("search-input").value.toLowerCase();
 | 
						|
            const table = document.getElementById("candidatures-table");
 | 
						|
            const rows = Array.from(table.rows);
 | 
						|
 | 
						|
            rows.forEach(row => {
 | 
						|
                const cells = Array.from(row.cells);
 | 
						|
                const match = cells[0].textContent.toLowerCase().includes(input) || 
 | 
						|
                              cells[1].textContent.toLowerCase().includes(input);
 | 
						|
                row.style.display = match ? "" : "none";
 | 
						|
            });
 | 
						|
        }
 | 
						|
 | 
						|
        function consulterDossier(nom, prenom) {
 | 
						|
            document.getElementById("dossier-nom").textContent = nom;
 | 
						|
            document.getElementById("dossier-prenom").textContent = prenom;
 | 
						|
            const piecesList = document.getElementById("pieces-list");
 | 
						|
            piecesList.innerHTML = `
 | 
						|
                <li><a href="">CV - ${prenom} ${nom}.pdf</a></li>
 | 
						|
                <li><a href="">Diplôme - Licence Informatique.pdf</a></li>
 | 
						|
                <li><a href="">Lettre de motivation.pdf</a></li>
 | 
						|
                <li><a href="">Justificatif d'expérience.pdf</a></li>
 | 
						|
            `; // Remplacer par les vraies données
 | 
						|
            document.getElementById("dossierModal").style.display = "block";
 | 
						|
        }
 | 
						|
 | 
						|
        function closeDossierModal() {
 | 
						|
            document.getElementById("dossierModal").style.display = "none";
 | 
						|
            document.getElementById("commentaire").value = ""; // Réinitialiser le champ de commentaire
 | 
						|
        }
 | 
						|
 | 
						|
        function ajouterCommentaire() {
 | 
						|
            const commentaire = document.getElementById("commentaire").value;
 | 
						|
            alert(`Commentaire ajouté : ${commentaire}`);
 | 
						|
            // Logic to handle the comment addition can be implemented here
 | 
						|
        }
 | 
						|
 | 
						|
        function validerDossier() {
 | 
						|
            alert("Dossier validé !");
 | 
						|
            closeDossierModal();
 | 
						|
            // Logic to handle the validation of the dossier can be implemented here
 | 
						|
        }
 | 
						|
 | 
						|
        function refuserDossier() {
 | 
						|
            alert("Dossier refusé !");
 | 
						|
            closeDossierModal();
 | 
						|
            // Logic to handle the refusal of the dossier can be implemented here
 | 
						|
        }
 | 
						|
 | 
						|
        function openVacationModal() {
 | 
						|
            document.getElementById("vacationModal").style.display = "block";
 | 
						|
        }
 | 
						|
 | 
						|
        function closeVacationModal() {
 | 
						|
            document.getElementById("vacationModal").style.display = "none";
 | 
						|
            document.getElementById("vacation-form").reset(); // Réinitialiser le formulaire
 | 
						|
        }
 | 
						|
 | 
						|
        // Gestion de la soumission du formulaire d'offre de vacation
 | 
						|
        document.getElementById("vacation-form").addEventListener("submit", function(event) {
 | 
						|
            event.preventDefault(); // Empêcher le rechargement de la page
 | 
						|
            alert("Offre de vacation soumise !");
 | 
						|
            closeVacationModal(); // Fermer la pop-up après soumission
 | 
						|
            // Ici, vous pouvez ajouter le code pour traiter l'envoi du formulaire, comme envoyer les données à un serveur.
 | 
						|
        });
 | 
						|
    </script>
 | 
						|
</body>
 | 
						|
 | 
						|
</html>
 |