Spaces:
Running
Running
| <html lang="fr"> | |
| <head> | |
| <meta charset="UTF-8"> | |
| <meta name="viewport" content="width=device-width, initial-scale=1.0"> | |
| <title>RelanceZen - Gestion des relances clients</title> | |
| <script src="https://cdn.tailwindcss.com"></script> | |
| <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> | |
| <style> | |
| .custom-scrollbar::-webkit-scrollbar { | |
| width: 6px; | |
| height: 6px; | |
| } | |
| .custom-scrollbar::-webkit-scrollbar-track { | |
| background: #f1f1f1; | |
| } | |
| .custom-scrollbar::-webkit-scrollbar-thumb { | |
| background: #888; | |
| border-radius: 3px; | |
| } | |
| .custom-scrollbar::-webkit-scrollbar-thumb:hover { | |
| background: #555; | |
| } | |
| .fade-in { | |
| animation: fadeIn 0.3s ease-in-out; | |
| } | |
| @keyframes fadeIn { | |
| from { opacity: 0; transform: translateY(10px); } | |
| to { opacity: 1; transform: translateY(0); } | |
| } | |
| .pulse { | |
| animation: pulse 2s infinite; | |
| } | |
| @keyframes pulse { | |
| 0% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0.4); } | |
| 70% { box-shadow: 0 0 0 10px rgba(99, 102, 241, 0); } | |
| 100% { box-shadow: 0 0 0 0 rgba(99, 102, 241, 0); } | |
| } | |
| </style> | |
| </head> | |
| <body class="bg-gray-50 font-sans"> | |
| <div class="min-h-screen flex flex-col"> | |
| <!-- Header --> | |
| <header class="bg-indigo-600 text-white shadow-md"> | |
| <div class="container mx-auto px-4 py-6"> | |
| <div class="flex justify-between items-center"> | |
| <div class="flex items-center space-x-3"> | |
| <i class="fas fa-bell text-2xl"></i> | |
| <h1 class="text-2xl font-bold">RelanceZen</h1> | |
| </div> | |
| <nav> | |
| <ul class="flex space-x-6"> | |
| <li><a href="#" class="hover:text-indigo-200 transition">Accueil</a></li> | |
| <li><a href="#" class="hover:text-indigo-200 transition">Clients</a></li> | |
| <li><a href="#" class="hover:text-indigo-200 transition">Statistiques</a></li> | |
| <li><a href="#" class="hover:text-indigo-200 transition">Paramètres</a></li> | |
| </ul> | |
| </nav> | |
| <div class="flex items-center space-x-4"> | |
| <div class="relative"> | |
| <i class="fas fa-bell text-xl cursor-pointer"></i> | |
| <span class="absolute -top-1 -right-1 bg-red-500 text-white text-xs rounded-full h-4 w-4 flex items-center justify-center">3</span> | |
| </div> | |
| <div class="h-8 w-8 rounded-full bg-indigo-400 flex items-center justify-center cursor-pointer"> | |
| <span class="text-white font-medium">JD</span> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </header> | |
| <!-- Main Content --> | |
| <main class="flex-grow container mx-auto px-4 py-8"> | |
| <div class="grid grid-cols-1 lg:grid-cols-3 gap-8"> | |
| <!-- Left Column --> | |
| <div class="lg:col-span-2 space-y-8"> | |
| <!-- Upload Section --> | |
| <section class="bg-white rounded-lg shadow-md p-6 fade-in"> | |
| <div class="flex justify-between items-center mb-6"> | |
| <h2 class="text-xl font-semibold text-gray-800">Importer des clients</h2> | |
| <button id="helpBtn" class="text-indigo-600 hover:text-indigo-800"> | |
| <i class="fas fa-question-circle"></i> | |
| </button> | |
| </div> | |
| <div id="helpText" class="hidden bg-indigo-50 text-indigo-800 p-4 rounded-lg mb-6"> | |
| <p class="mb-2">Format accepté : fichier CSV ou Excel avec les colonnes :</p> | |
| <ul class="list-disc pl-5"> | |
| <li>Nom du client</li> | |
| <li>Email</li> | |
| <li>Montant dû</li> | |
| <li>Date d'échéance</li> | |
| </ul> | |
| </div> | |
| <div class="border-2 border-dashed border-gray-300 rounded-lg p-8 text-center hover:border-indigo-400 transition cursor-pointer"> | |
| <div class="flex flex-col items-center justify-center"> | |
| <i class="fas fa-cloud-upload-alt text-4xl text-indigo-500 mb-4"></i> | |
| <p class="text-gray-600 mb-2">Glissez-déposez votre fichier ici</p> | |
| <p class="text-sm text-gray-500 mb-4">ou</p> | |
| <label for="fileUpload" class="bg-indigo-600 text-white px-4 py-2 rounded-md hover:bg-indigo-700 transition cursor-pointer"> | |
| Sélectionner un fichier | |
| </label> | |
| <input type="file" id="fileUpload" class="hidden" accept=".csv, .xlsx, .xls"> | |
| </div> | |
| </div> | |
| <div id="fileInfo" class="hidden mt-4 bg-gray-100 p-3 rounded-md"> | |
| <div class="flex justify-between items-center"> | |
| <div class="flex items-center"> | |
| <i class="fas fa-file-excel text-green-500 mr-2"></i> | |
| <span id="fileName" class="font-medium">clients.xlsx</span> | |
| </div> | |
| <button id="removeFile" class="text-red-500 hover:text-red-700"> | |
| <i class="fas fa-times"></i> | |
| </button> | |
| </div> | |
| <div class="mt-2"> | |
| <div class="w-full bg-gray-200 rounded-full h-2.5"> | |
| <div class="bg-indigo-600 h-2.5 rounded-full" style="width: 100%"></div> | |
| </div> | |
| <p class="text-right text-xs text-gray-500 mt-1">100% importé</p> | |
| </div> | |
| </div> | |
| </section> | |
| <!-- Client Table --> | |
| <section class="bg-white rounded-lg shadow-md overflow-hidden fade-in"> | |
| <div class="p-6"> | |
| <div class="flex justify-between items-center mb-6"> | |
| <h2 class="text-xl font-semibold text-gray-800">Suivi des relances</h2> | |
| <div class="flex space-x-3"> | |
| <button class="bg-indigo-100 text-indigo-700 px-3 py-1 rounded-md text-sm hover:bg-indigo-200 transition"> | |
| <i class="fas fa-filter mr-1"></i> Filtrer | |
| </button> | |
| <button class="bg-indigo-100 text-indigo-700 px-3 py-1 rounded-md text-sm hover:bg-indigo-200 transition"> | |
| <i class="fas fa-download mr-1"></i> Exporter | |
| </button> | |
| </div> | |
| </div> | |
| <div class="overflow-x-auto custom-scrollbar"> | |
| <table class="min-w-full divide-y divide-gray-200"> | |
| <thead class="bg-gray-50"> | |
| <tr> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider"> | |
| <input type="checkbox" class="rounded text-indigo-600"> | |
| </th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Client</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Montant</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Date</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Statut</th> | |
| <th scope="col" class="px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider">Actions</th> | |
| </tr> | |
| </thead> | |
| <tbody class="bg-white divide-y divide-gray-200"> | |
| <tr class="hover:bg-gray-50"> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <input type="checkbox" class="rounded text-indigo-600"> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-indigo-100 flex items-center justify-center"> | |
| <span class="text-indigo-600 font-medium">AB</span> | |
| </div> | |
| <div class="ml-4"> | |
| <div class="text-sm font-medium text-gray-900">Alexandre Bernard</div> | |
| <div class="text-sm text-gray-500">alex@entreprise.com</div> | |
| </div> | |
| </div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">1,250.00 €</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">15/06/2023</div> | |
| <div class="text-xs text-red-500">+7 jours</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-red-100 text-red-800"> | |
| En retard | |
| </span> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> | |
| <button class="text-indigo-600 hover:text-indigo-900 mr-3"> | |
| <i class="fas fa-eye"></i> | |
| </button> | |
| <button class="text-indigo-600 hover:text-indigo-900"> | |
| <i class="fas fa-pencil-alt"></i> | |
| </button> | |
| </td> | |
| </tr> | |
| <tr class="hover:bg-gray-50"> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <input type="checkbox" class="rounded text-indigo-600"> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-green-100 flex items-center justify-center"> | |
| <span class="text-green-600 font-medium">CD</span> | |
| </div> | |
| <div class="ml-4"> | |
| <div class="text-sm font-medium text-gray-900">Claire Dubois</div> | |
| <div class="text-sm text-gray-500">claire@entreprise.com</div> | |
| </div> | |
| </div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">3,420.50 €</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">20/06/2023</div> | |
| <div class="text-xs text-yellow-500">Aujourd'hui</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-yellow-100 text-yellow-800"> | |
| À échéance | |
| </span> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> | |
| <button class="text-indigo-600 hover:text-indigo-900 mr-3"> | |
| <i class="fas fa-eye"></i> | |
| </button> | |
| <button class="text-indigo-600 hover:text-indigo-900"> | |
| <i class="fas fa-pencil-alt"></i> | |
| </button> | |
| </td> | |
| </tr> | |
| <tr class="hover:bg-gray-50"> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <input type="checkbox" class="rounded text-indigo-600"> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-blue-100 flex items-center justify-center"> | |
| <span class="text-blue-600 font-medium">EM</span> | |
| </div> | |
| <div class="ml-4"> | |
| <div class="text-sm font-medium text-gray-900">Élodie Martin</div> | |
| <div class="text-sm text-gray-500">elodie@entreprise.com</div> | |
| </div> | |
| </div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">850.00 €</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">25/06/2023</div> | |
| <div class="text-xs text-gray-500">Dans 5 jours</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-blue-100 text-blue-800"> | |
| À venir | |
| </span> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> | |
| <button class="text-indigo-600 hover:text-indigo-900 mr-3"> | |
| <i class="fas fa-eye"></i> | |
| </button> | |
| <button class="text-indigo-600 hover:text-indigo-900"> | |
| <i class="fas fa-pencil-alt"></i> | |
| </button> | |
| </td> | |
| </tr> | |
| <tr class="hover:bg-gray-50"> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <input type="checkbox" class="rounded text-indigo-600"> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="flex items-center"> | |
| <div class="flex-shrink-0 h-10 w-10 rounded-full bg-purple-100 flex items-center justify-center"> | |
| <span class="text-purple-600 font-medium">TP</span> | |
| </div> | |
| <div class="ml-4"> | |
| <div class="text-sm font-medium text-gray-900">Thomas Petit</div> | |
| <div class="text-sm text-gray-500">thomas@entreprise.com</div> | |
| </div> | |
| </div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">2,150.00 €</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <div class="text-sm text-gray-900">10/06/2023</div> | |
| <div class="text-xs text-green-500">Payé</div> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap"> | |
| <span class="px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800"> | |
| Réglé | |
| </span> | |
| </td> | |
| <td class="px-6 py-4 whitespace-nowrap text-right text-sm font-medium"> | |
| <button class="text-indigo-600 hover:text-indigo-900 mr-3"> | |
| <i class="fas fa-eye"></i> | |
| </button> | |
| <button class="text-indigo-600 hover:text-indigo-900"> | |
| <i class="fas fa-pencil-alt"></i> | |
| </button> | |
| </td> | |
| </tr> | |
| </tbody> | |
| </table> | |
| </div> | |
| <div class="flex items-center justify-between mt-6"> | |
| <div class="text-sm text-gray-500"> | |
| Affichage de <span class="font-medium">1</span> à <span class="font-medium">4</span> sur <span class="font-medium">12</span> clients | |
| </div> | |
| <div class="flex space-x-2"> | |
| <button class="px-3 py-1 border rounded-md text-sm bg-white text-gray-700 hover:bg-gray-50"> | |
| Précédent | |
| </button> | |
| <button class="px-3 py-1 border rounded-md text-sm bg-indigo-600 text-white hover:bg-indigo-700"> | |
| 1 | |
| </button> | |
| <button class="px-3 py-1 border rounded-md text-sm bg-white text-gray-700 hover:bg-gray-50"> | |
| 2 | |
| </button> | |
| <button class="px-3 py-1 border rounded-md text-sm bg-white text-gray-700 hover:bg-gray-50"> | |
| Suivant | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| </div> | |
| <!-- Right Column --> | |
| <div class="space-y-8"> | |
| <!-- Send Reminder --> | |
| <section class="bg-white rounded-lg shadow-md p-6 fade-in"> | |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Envoyer une relance</h2> | |
| <div class="space-y-4"> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Sélectionnez des clients</label> | |
| <select multiple class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500 h-32"> | |
| <option>Alexandre Bernard</option> | |
| <option selected>Claire Dubois</option> | |
| <option>Élodie Martin</option> | |
| <option>Thomas Petit</option> | |
| </select> | |
| <p class="mt-1 text-xs text-gray-500">Maintenez Ctrl (Windows) ou Cmd (Mac) pour sélectionner plusieurs clients</p> | |
| </div> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Modèle de relance</label> | |
| <select class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500"> | |
| <option>Relance standard</option> | |
| <option>Relance urgente</option> | |
| <option>Relance amicale</option> | |
| <option>Relance finale</option> | |
| </select> | |
| </div> | |
| <div> | |
| <label class="block text-sm font-medium text-gray-700 mb-1">Personnaliser le message</label> | |
| <textarea rows="4" class="mt-1 block w-full rounded-md border-gray-300 shadow-sm focus:border-indigo-500 focus:ring-indigo-500">Bonjour [Nom], | |
| Nous vous rappelons que votre paiement de [Montant] était attendu pour le [Date]. | |
| Pourriez-vous nous faire parvenir votre règlement dans les plus brefs délais ? | |
| Cordialement, | |
| [Votre nom]</textarea> | |
| </div> | |
| <button id="sendReminderBtn" class="w-full bg-indigo-600 text-white py-3 px-4 rounded-md hover:bg-indigo-700 transition flex items-center justify-center pulse"> | |
| <i class="fas fa-paper-plane mr-2"></i> Envoyer la relance | |
| </button> | |
| </div> | |
| </section> | |
| <!-- Testimonials --> | |
| <section class="bg-white rounded-lg shadow-md p-6 fade-in"> | |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Témoignages</h2> | |
| <div class="space-y-6"> | |
| <div class="flex"> | |
| <div class="flex-shrink-0"> | |
| <div class="h-10 w-10 rounded-full bg-indigo-100 flex items-center justify-center"> | |
| <span class="text-indigo-600 font-medium">SL</span> | |
| </div> | |
| </div> | |
| <div class="ml-4"> | |
| <div class="text-sm font-medium text-gray-900">Sophie Lambert</div> | |
| <div class="text-xs text-gray-500">Comptable - Entreprise ABC</div> | |
| <div class="mt-2 text-sm text-gray-700"> | |
| "RelanceZen a simplifié notre processus de relance. Nous gagnons plusieurs heures par semaine !" | |
| </div> | |
| <div class="mt-2 flex text-yellow-400"> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="flex"> | |
| <div class="flex-shrink-0"> | |
| <div class="h-10 w-10 rounded-full bg-indigo-100 flex items-center justify-center"> | |
| <span class="text-indigo-600 font-medium">MB</span> | |
| </div> | |
| </div> | |
| <div class="ml-4"> | |
| <div class="text-sm font-medium text-gray-900">Marc Bertrand</div> | |
| <div class="text-xs text-gray-500">Freelance</div> | |
| <div class="mt-2 text-sm text-gray-700"> | |
| "En tant qu'indépendant, les relances prenaient trop de temps. Maintenant c'est automatisé et professionnel." | |
| </div> | |
| <div class="mt-2 flex text-yellow-400"> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star"></i> | |
| <i class="fas fa-star-half-alt"></i> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <button class="mt-6 w-full bg-gray-100 text-indigo-600 py-2 px-4 rounded-md hover:bg-gray-200 transition"> | |
| <i class="fas fa-plus mr-2"></i> Ajouter un témoignage | |
| </button> | |
| </section> | |
| <!-- Stats --> | |
| <section class="bg-white rounded-lg shadow-md p-6 fade-in"> | |
| <h2 class="text-xl font-semibold text-gray-800 mb-6">Statistiques</h2> | |
| <div class="grid grid-cols-2 gap-4"> | |
| <div class="bg-indigo-50 p-4 rounded-lg"> | |
| <div class="text-sm font-medium text-indigo-700">Clients en retard</div> | |
| <div class="text-2xl font-bold text-indigo-900 mt-1">8</div> | |
| <div class="text-xs text-indigo-500 mt-1">+2 cette semaine</div> | |
| </div> | |
| <div class="bg-green-50 p-4 rounded-lg"> | |
| <div class="text-sm font-medium text-green-700">Clients réglés</div> | |
| <div class="text-2xl font-bold text-green-900 mt-1">24</div> | |
| <div class="text-xs text-green-500 mt-1">+5 cette semaine</div> | |
| </div> | |
| <div class="bg-yellow-50 p-4 rounded-lg"> | |
| <div class="text-sm font-medium text-yellow-700">Relances envoyées</div> | |
| <div class="text-2xl font-bold text-yellow-900 mt-1">32</div> | |
| <div class="text-xs text-yellow-500 mt-1">+12 cette semaine</div> | |
| </div> | |
| <div class="bg-blue-50 p-4 rounded-lg"> | |
| <div class="text-sm font-medium text-blue-700">Montant récupéré</div> | |
| <div class="text-2xl font-bold text-blue-900 mt-1">12,450€</div> | |
| <div class="text-xs text-blue-500 mt-1">+3,200€ cette semaine</div> | |
| </div> | |
| </div> | |
| </section> | |
| </div> | |
| </div> | |
| </main> | |
| <!-- Email Modal --> | |
| <div id="emailModal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50 hidden"> | |
| <div class="bg-white rounded-lg shadow-xl w-full max-w-2xl max-h-[90vh] overflow-y-auto"> | |
| <div class="p-6"> | |
| <div class="flex justify-between items-center mb-4"> | |
| <h3 class="text-lg font-semibold text-gray-900">Aperçu de l'email de relance</h3> | |
| <button id="closeModal" class="text-gray-400 hover:text-gray-500"> | |
| <i class="fas fa-times"></i> | |
| </button> | |
| </div> | |
| <div class="border border-gray-200 rounded-lg p-4 mb-4"> | |
| <div class="mb-4"> | |
| <span class="text-sm text-gray-500">De :</span> | |
| <p>votre@entreprise.com</p> | |
| </div> | |
| <div class="mb-4"> | |
| <span class="text-sm text-gray-500">À :</span> | |
| <p>claire@entreprise.com</p> | |
| </div> | |
| <div class="mb-4"> | |
| <span class="text-sm text-gray-500">Objet :</span> | |
| <p>Relance de paiement - Facture #12345</p> | |
| </div> | |
| <div class="border-t border-gray-200 pt-4"> | |
| <p>Bonjour Claire Dubois,</p> | |
| <p class="mt-2">Nous vous rappelons que votre paiement de 3,420.50 € était attendu pour le 20/06/2023.</p> | |
| <p class="mt-2">Pourriez-vous nous faire parvenir votre règlement dans les plus brefs délais ?</p> | |
| <p class="mt-4">Cordialement,<br>[Votre nom]</p> | |
| </div> | |
| </div> | |
| <div class="flex justify-end space-x-3"> | |
| <button id="cancelSend" class="px-4 py-2 border border-gray-300 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-50"> | |
| Annuler | |
| </button> | |
| <button id="confirmSend" class="px-4 py-2 bg-indigo-600 rounded-md text-sm font-medium text-white hover:bg-indigo-700"> | |
| <i class="fas fa-paper-plane mr-2"></i> Confirmer l'envoi | |
| </button> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| <!-- Success Toast --> | |
| <div id="successToast" class="fixed bottom-4 right-4 bg-green-500 text-white px-6 py-3 rounded-lg shadow-lg flex items-center space-x-3 hidden"> | |
| <i class="fas fa-check-circle text-xl"></i> | |
| <div> | |
| <p class="font-medium">Relance envoyée avec succès !</p> | |
| <p class="text-sm">L'email a été envoyé à 1 client.</p> | |
| </div> | |
| <button id="closeToast" class="text-white hover:text-green-100 ml-4"> | |
| <i class="fas fa-times"></i> | |
| </button> | |
| </div> | |
| <!-- Footer --> | |
| <footer class="bg-gray-100 border-t border-gray-200 py-6"> | |
| <div class="container mx-auto px-4"> | |
| <div class="flex flex-col md:flex-row justify-between items-center"> | |
| <div class="flex items-center space-x-3 mb-4 md:mb-0"> | |
| <i class="fas fa-bell text-indigo-600"></i> | |
| <span class="font-medium">RelanceZen</span> | |
| </div> | |
| <div class="text-sm text-gray-500"> | |
| © 2023 RelanceZen. Tous droits réservés. | |
| </div> | |
| <div class="flex space-x-4 mt-4 md:mt-0"> | |
| <a href="#" class="text-gray-500 hover:text-gray-700"> | |
| <i class="fab fa-twitter"></i> | |
| </a> | |
| <a href="#" class="text-gray-500 hover:text-gray-700"> | |
| <i class="fab fa-linkedin"></i> | |
| </a> | |
| <a href="#" class="text-gray-500 hover:text-gray-700"> | |
| <i class="fab fa-facebook"></i> | |
| </a> | |
| </div> | |
| </div> | |
| </div> | |
| </footer> | |
| </div> | |
| <script> | |
| // Toggle help text | |
| document.getElementById('helpBtn').addEventListener('click', function() { | |
| const helpText = document.getElementById('helpText'); | |
| helpText.classList.toggle('hidden'); | |
| }); | |
| // File upload simulation | |
| document.getElementById('fileUpload').addEventListener('change', function(e) { | |
| if (e.target.files.length > 0) { | |
| const fileName = e.target.files[0].name; | |
| document.getElementById('fileName').textContent = fileName; | |
| document.getElementById('fileInfo').classList.remove('hidden'); | |
| } | |
| }); | |
| // Remove file | |
| document.getElementById('removeFile').addEventListener('click', function() { | |
| document.getElementById('fileInfo').classList.add('hidden'); | |
| document.getElementById('fileUpload').value = ''; | |
| }); | |
| // Send reminder button | |
| document.getElementById('sendReminderBtn').addEventListener('click', function() { | |
| document.getElementById('emailModal').classList.remove('hidden'); | |
| }); | |
| // Close modal | |
| document.getElementById('closeModal').addEventListener('click', function() { | |
| document.getElementById('emailModal').classList.add('hidden'); | |
| }); | |
| // Cancel send | |
| document.getElementById('cancelSend').addEventListener('click', function() { | |
| document.getElementById('emailModal').classList.add('hidden'); | |
| }); | |
| // Confirm send | |
| document.getElementById('confirmSend').addEventListener('click', function() { | |
| document.getElementById('emailModal').classList.add('hidden'); | |
| // Show success toast | |
| const toast = document.getElementById('successToast'); | |
| toast.classList.remove('hidden'); | |
| // Hide toast after 5 seconds | |
| setTimeout(() => { | |
| toast.classList.add('hidden'); | |
| }, 5000); | |
| }); | |
| // Close toast | |
| document.getElementById('closeToast').addEventListener('click', function() { | |
| document.getElementById('successToast').classList.add('hidden'); | |
| }); | |
| </script> | |
| <p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=LudoSLN/relancezen" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> | |
| </html> |