2025-10-12 22:39:51 +02:00

252 lines
10 KiB
HTML

<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Download Queue - AniWorld Manager</title>
<link rel="stylesheet" href="/static/css/styles.css">
<link href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css" rel="stylesheet">
</head>
<body>
<div class="app-container">
<!-- Header -->
<header class="header">
<div class="header-content">
<div class="header-title">
<i class="fas fa-download"></i>
<h1>Download Queue</h1>
</div>
<div class="header-actions">
<a href="/" class="btn btn-secondary">
<i class="fas fa-arrow-left"></i>
<span>Back to Main</span>
</a>
<button id="theme-toggle" class="btn btn-icon" title="Toggle theme">
<i class="fas fa-moon"></i>
</button>
<button id="logout-btn" class="btn btn-secondary" title="Logout" style="display: none;">
<i class="fas fa-sign-out-alt"></i>
<span>Logout</span>
</button>
</div>
</div>
</header>
<!-- Main content -->
<main class="main-content">
<!-- Queue Statistics -->
<section class="queue-stats-section">
<div class="stats-grid">
<div class="stat-card">
<div class="stat-icon">
<i class="fas fa-download text-primary"></i>
</div>
<div class="stat-info">
<div class="stat-value" id="total-items">0</div>
<div class="stat-label">Total Items</div>
</div>
</div>
<div class="stat-card">
<div class="stat-icon">
<i class="fas fa-clock text-warning"></i>
</div>
<div class="stat-info">
<div class="stat-value" id="pending-items">0</div>
<div class="stat-label">In Queue</div>
</div>
</div>
<div class="stat-card">
<div class="stat-icon">
<i class="fas fa-check-circle text-success"></i>
</div>
<div class="stat-info">
<div class="stat-value" id="completed-items">0</div>
<div class="stat-label">Completed</div>
</div>
</div>
<div class="stat-card">
<div class="stat-icon">
<i class="fas fa-exclamation-triangle text-error"></i>
</div>
<div class="stat-info">
<div class="stat-value" id="failed-items">0</div>
<div class="stat-label">Failed</div>
</div>
</div>
</div>
<!-- Speed and ETA -->
<div class="speed-eta-section">
<div class="speed-info">
<div class="speed-current">
<span class="label">Current Speed:</span>
<span class="value" id="current-speed">0 MB/s</span>
</div>
<div class="speed-average">
<span class="label">Average Speed:</span>
<span class="value" id="average-speed">0 MB/s</span>
</div>
</div>
<div class="eta-info">
<span class="label">Estimated Time Remaining:</span>
<span class="value" id="eta-time">--:--</span>
</div>
</div>
</section>
<!-- Active Downloads -->
<section class="active-downloads-section">
<div class="section-header">
<h2>
<i class="fas fa-play-circle"></i>
Active Downloads
</h2>
<div class="section-actions">
<button id="pause-all-btn" class="btn btn-secondary" disabled>
<i class="fas fa-pause"></i>
Pause All
</button>
<button id="resume-all-btn" class="btn btn-primary" disabled style="display: none;">
<i class="fas fa-play"></i>
Resume All
</button>
</div>
</div>
<div class="active-downloads-list" id="active-downloads">
<div class="empty-state">
<i class="fas fa-pause-circle"></i>
<p>No active downloads</p>
</div>
</div>
</section>
<!-- Pending Queue -->
<section class="pending-queue-section">
<div class="section-header">
<h2>
<i class="fas fa-clock"></i>
Download Queue
</h2>
<div class="section-actions">
<button id="start-queue-btn" class="btn btn-primary" disabled>
<i class="fas fa-play"></i>
Start Downloads
</button>
<button id="stop-queue-btn" class="btn btn-secondary" disabled style="display: none;">
<i class="fas fa-stop"></i>
Stop Downloads
</button>
<button id="clear-queue-btn" class="btn btn-secondary" disabled>
<i class="fas fa-trash"></i>
Clear Queue
</button>
<button id="reorder-queue-btn" class="btn btn-secondary" disabled>
<i class="fas fa-sort"></i>
Reorder
</button>
</div>
</div>
<div class="pending-queue-list" id="pending-queue">
<div class="empty-state">
<i class="fas fa-list"></i>
<p>No items in queue</p>
</div>
</div>
</section>
<!-- Completed Downloads -->
<section class="completed-downloads-section">
<div class="section-header">
<h2>
<i class="fas fa-check-circle"></i>
Recent Completed
</h2>
<div class="section-actions">
<button id="clear-completed-btn" class="btn btn-secondary">
<i class="fas fa-broom"></i>
Clear Completed
</button>
</div>
</div>
<div class="completed-downloads-list" id="completed-downloads">
<div class="empty-state">
<i class="fas fa-check-circle"></i>
<p>No completed downloads</p>
</div>
</div>
</section>
<!-- Failed Downloads -->
<section class="failed-downloads-section">
<div class="section-header">
<h2>
<i class="fas fa-exclamation-triangle"></i>
Failed Downloads
</h2>
<div class="section-actions">
<button id="retry-all-btn" class="btn btn-warning" disabled>
<i class="fas fa-redo"></i>
Retry All
</button>
<button id="clear-failed-btn" class="btn btn-secondary">
<i class="fas fa-trash"></i>
Clear Failed
</button>
</div>
</div>
<div class="failed-downloads-list" id="failed-downloads">
<div class="empty-state">
<i class="fas fa-check-circle text-success"></i>
<p>No failed downloads</p>
</div>
</div>
</section>
</main>
<!-- Toast notifications -->
<div id="toast-container" class="toast-container"></div>
</div>
<!-- Loading overlay -->
<div id="loading-overlay" class="loading-overlay hidden">
<div class="loading-spinner">
<i class="fas fa-spinner fa-spin"></i>
<p>Loading...</p>
</div>
</div>
<!-- Confirmation Modal -->
<div id="confirm-modal" class="modal hidden">
<div class="modal-overlay"></div>
<div class="modal-content">
<div class="modal-header">
<h3 id="confirm-title">Confirm Action</h3>
<button id="close-confirm" class="btn btn-icon">
<i class="fas fa-times"></i>
</button>
</div>
<div class="modal-body">
<p id="confirm-message">Are you sure you want to perform this action?</p>
</div>
<div class="modal-footer">
<button id="confirm-cancel" class="btn btn-secondary">Cancel</button>
<button id="confirm-ok" class="btn btn-primary">Confirm</button>
</div>
</div>
</div>
<!-- Scripts -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.0.1/socket.io.js"></script>
<script src="/static/js/queue.js"></script>
</body>
</html>