ci: fix pipeline, update readme and anonymize ZT references

This commit is contained in:
2026-06-12 12:30:18 +02:00
commit d1bd1a9ba9
68 changed files with 10353 additions and 0 deletions
+128
View File
@@ -0,0 +1,128 @@
<%- include('partials/header') %>
<%- include('partials/sidebar') %>
<main class="content-wrapper">
<section id="section-settings" class="section">
<div class="hero-header">
<h2>Paramètres</h2>
</div>
<div class="form-card" style="max-width: 750px; margin: 0 auto 1.5rem auto;">
<h3 style="margin-bottom: 1rem; border-bottom: 1px solid var(--border); padding-bottom: 0.5rem; display: flex; align-items: center; gap: 8px;">
<i data-lucide="database"></i> Sources de Recherche
</h3>
<p style="font-size: 0.85rem; color: var(--text-sec); margin-bottom: 1rem;">
Sélectionnez la source principale (prioritaire) et les sources secondaires à utiliser.
</p>
<div style="margin-bottom: 1.5rem;">
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 8px;">
<i data-lucide="list-ordered" style="color: var(--primary); width: 18px; height: 18px;"></i> Priorité & Activation des Sources
</label>
<p style="font-size: 0.85rem; color: var(--text-sec); margin-bottom: 1.2rem;">
Activez les sources et glissez-déposez pour définir leur ordre de priorité. La première source active (cochée) sera la source principale.
</p>
<div id="sources-sortable-container" style="display: flex; flex-direction: column; gap: 10px; margin-bottom: 1rem;">
<!-- Les sources ordonnables seront injectées ici par JS -->
</div>
<p id="primary-source-warning" style="font-size: 0.8rem; color: #f59e0b; margin-top: 12px; display: none; align-items: center; gap: 6px; font-weight: 500; background: rgba(245, 158, 11, 0.1); padding: 8px 12px; border-radius: 6px; border: 1px solid rgba(245, 158, 11, 0.2);">
<i data-lucide="alert-triangle" style="width: 16px; height: 16px; flex-shrink: 0;"></i>
Hydracker est la première source active. Elle peut être très lente à répondre.
</p>
</div>
</div>
<div class="form-card" style="max-width: 750px; margin: 0 auto 1.5rem auto;">
<h3 style="margin-bottom: 1rem; border-bottom: 1px solid var(--border); padding-bottom: 0.5rem;">
Page d'accueil par défaut</h3>
<p style="font-size: 0.85rem; color: var(--text-sec); margin-bottom: 1rem;">
Sélectionnez la page sur laquelle vous souhaitez être redirigé par défaut à l'ouverture de
l'application.
</p>
<select id="select-default-page" style="margin-top: 0.5rem; margin-bottom: 0;">
<option value="/trending">Tendances</option>
<option value="/recent">Ajouts récents</option>
<option value="/search">Recherche</option>
<option value="/downloads">Téléchargements</option>
<option value="/manual">Ajout manuel</option>
<option value="/settings">Paramètres</option>
</select>
</div>
<div class="form-card" style="max-width: 750px; margin: 0 auto;">
<label style="display: flex; align-items: center; justify-content: space-between; cursor: pointer;">
<span style="font-weight: 600;">Intégration JDownloader</span>
<input type="checkbox" id="toggle-jd" style="width: 20px; height: 20px;">
</label>
<p style="font-size: 0.85rem; color: var(--text-sec); margin-top: 10px;">Si désactivé, le lien
1fichier sera affiché directement sous forme de pop-up sans être envoyé à JDownloader.</p>
</div>
<% if (typeof currentUser !== 'undefined' && currentUser && currentUser.role === 'admin') { %>
<div class="form-card" style="max-width: 750px; margin: 1.5rem auto 0 auto;">
<h3 style="margin-bottom: 1rem; border-bottom: 1px solid var(--border); padding-bottom: 0.5rem; display: flex; align-items: center; gap: 8px;">
<i data-lucide="users" style="width: 20px; height: 20px;"></i> Gestion des Utilisateurs
</h3>
<p style="font-size: 0.85rem; color: var(--text-sec); margin-bottom: 1rem;">
Gérez les comptes utilisateurs. Seuls les administrateurs ont accès à cette section.
</p>
<!-- Liste des utilisateurs -->
<div id="admin-users-list" style="display: flex; flex-direction: column; gap: 8px; margin-bottom: 1.5rem;">
<!-- Injecté par JS -->
</div>
<!-- Formulaire d'ajout -->
<div style="border-top: 1px solid var(--border); padding-top: 1rem;">
<label style="display: block; font-weight: 600; margin-bottom: 0.5rem; display: flex; align-items: center; gap: 8px;">
<i data-lucide="user-plus" style="color: var(--primary); width: 16px; height: 16px;"></i> Ajouter un utilisateur
</label>
<div style="display: flex; gap: 10px; margin-bottom: 12px; align-items: center;">
<input type="text" id="admin-new-username" placeholder="Nom d'utilisateur"
style="flex: 1; margin: 0; padding: 12px 16px;"
minlength="3" maxlength="32" pattern="[a-zA-Z0-9_.\-]+">
<select id="admin-new-role" style="width: auto; min-width: 130px; margin: 0; padding: 12px 16px;">
<option value="user">Utilisateur</option>
<option value="admin">Admin</option>
</select>
</div>
<button id="admin-add-user-btn" class="btn-action" style="width: 100%; padding: 12px 20px;">
Créer l'utilisateur
</button>
</div>
</div>
<% } %>
<!-- Modal pour afficher le mot de passe généré -->
<div id="admin-password-modal" class="modal-overlay hidden">
<div class="modal-content" style="max-width: 420px;">
<h3 style="margin-bottom: 1rem; display: flex; align-items: center; gap: 8px;">
<i data-lucide="key" style="width: 20px; height: 20px; color: var(--primary);"></i>
Mot de passe généré
</h3>
<p style="font-size: 0.85rem; color: var(--text-sec); margin-bottom: 1rem;">
Copiez ce mot de passe et transmettez-le à l'utilisateur. Il ne sera plus affiché.
</p>
<div id="admin-generated-password" style="background: var(--bg-main); border: 1px solid var(--border); border-radius: 8px; padding: 14px; font-family: monospace; font-size: 1.1rem; text-align: center; color: var(--primary); font-weight: 700; letter-spacing: 1px; user-select: all; cursor: text; word-break: break-all;"></div>
<button id="admin-copy-password-btn" style="width: 100%; margin-top: 1rem; padding: 10px; border-radius: 8px; background: var(--bg-card); border: 1px solid var(--border); color: white; font-weight: 600; cursor: pointer;">
Copier le mot de passe
</button>
<button id="admin-close-modal-btn" style="width: 100%; margin-top: 0.5rem; padding: 10px; border-radius: 8px; background: var(--primary); border: none; color: white; font-weight: 600; cursor: pointer;">
Fermer
</button>
</div>
</div>
<div style="text-align: center; margin-top: 3rem; margin-bottom: 1rem;">
<p style="font-size: 0.85rem; color: var(--text-sec); display: inline-flex; align-items: center; gap: 6px; background: var(--bg-card); padding: 6px 12px; border-radius: 20px; border: 1px solid var(--border);">
<i data-lucide="info" style="width: 14px; height: 14px;"></i>
Hydr'Hacked v1.4.8
</p>
</div>
</section>
</main>
<%- include('partials/footer') %>