128 lines
8.9 KiB
Plaintext
128 lines
8.9 KiB
Plaintext
<%- 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') %> |