Dashboard Temp Share Shortlinks Frames API

HTMLify

script.js
Views: 39 | Author: karbonsites
1
document.addEventListener('DOMContentLoaded', () => { const hamburger = document.querySelector('.hamburger'); const navLinks = document.querySelector('.nav-links'); if (hamburger && navLinks) { hamburger.addEventListener('click', () => { navLinks.style.display = navLinks.style.display === 'flex' ? 'none' : 'flex'; }); } const searchInput = document.getElementById('search-input'); const filterCat = document.getElementById('filter-cat'); function getAllJobCards() { return document.querySelectorAll('#dynamic-job-list .job-card'); } function filterJobs() { if (!searchInput || !filterCat) return; const query = searchInput.value.toLowerCase(); const cat = filterCat.value; const jobCards = getAllJobCards(); jobCards.forEach(card => { const text = card.textContent.toLowerCase(); const cardCat = card.getAttribute('data-cat'); const matchesQuery = text.includes(query); const matchesCat = cat === 'all' || cardCat === cat; if (matchesQuery && matchesCat) { card.style.display = 'flex'; } else { card.style.display = 'none'; } }); } if (searchInput) searchInput.addEventListener('input', filterJobs); if (filterCat) filterCat.addEventListener('change', filterJobs); const searchTender = document.getElementById('search-tender'); const filterTenderCat = document.getElementById('filter-tender-cat'); function getAllTenderCards() { return document.querySelectorAll('#dynamic-tender-list .job-card'); } function filterTenders() { if (!searchTender || !filterTenderCat) return; const query = searchTender.value.toLowerCase(); const cat = filterTenderCat.value; const tenderCards = getAllTenderCards(); tenderCards.forEach(card => { const text = card.textContent.toLowerCase(); const cardCat = card.getAttribute('data-cat'); const matchesQuery = text.includes(query); const matchesCat = cat === 'all' || cardCat === cat; if (matchesQuery && matchesCat) { card.style.display = 'flex'; } else { card.style.display = 'none'; } }); } if (searchTender) searchTender.addEventListener('input', filterTenders); if (filterTenderCat) filterTenderCat.addEventListener('change', filterTenders); const contactForm = document.getElementById('contactForm'); if (contactForm) { contactForm.addEventListener('submit', (e) => { e.preventDefault(); const status = document.getElementById('form-status'); status.textContent = 'Merci ! Votre message a bien été envoyé.'; contactForm.reset(); setTimeout(() => { status.textContent = ''; }, 4000); }); } const addOfferForm = document.getElementById('addOfferForm'); if (addOfferForm) { addOfferForm.addEventListener('submit', (e) => { e.preventDefault(); const type = document.getElementById('offer-type').value; const title = document.getElementById('title').value; const company = document.getElementById('company').value; const category = document.getElementById('category').value; const description = document.getElementById('description').value; const newCardHTML = '<div class="job-card" data-cat="' + category + '"><div class="job-info"><h3>' + title + '</h3><span class="company">' + company + '</span><p>' + description + '</p></div><a href="contact.html" class="btn btn-outline">' + (type === 'job' ? 'Postuler' : 'Soumettre un dossier') + '</a></div>'; if (type === 'job') { const savedJobs = localStorage.getItem('custom_jobs_congo') || ''; localStorage.setItem('custom_jobs_congo', savedJobs + '|||' + newCardHTML); } else { const savedTenders = localStorage.getItem('custom_tenders_congo') || ''; localStorage.setItem('custom_tenders_congo', savedTenders + '|||' + newCardHTML); } const status = document.getElementById('publish-status'); status.textContent = 'Annonce enregistrée ! Redirection vers les instructions de paiement...'; addOfferForm.reset(); setTimeout(() => { status.textContent = ''; window.location.href = 'payment.html'; }, 1500); }); } const jobListContainer = document.getElementById('dynamic-job-list'); if (jobListContainer) { const savedJobs = localStorage.getItem('custom_jobs_congo'); if (savedJobs) { const parts = savedJobs.split('|||'); parts.forEach(part => { if(part.trim()) { jobListContainer.insertAdjacentHTML('beforeend', part); } }); } } const tenderListContainer = document.getElementById('dynamic-tender-list'); if (tenderListContainer) { const savedTenders = localStorage.getItem('custom_tenders_congo'); if (savedTenders) { const parts = savedTenders.split('|||'); parts.forEach(part => { if(part.trim()) { tenderListContainer.insertAdjacentHTML('beforeend', part); } }); } } });