docker.videokonverter/app/templates/dashboard.html
data 08dcf34f5d VideoKonverter v2.2.0 - Initial Commit
Kompletter Video-Konverter mit Web-UI, GPU-Beschleunigung (Intel VAAPI),
Video-Bibliothek mit Serien/Film-Erkennung und TVDB-Integration.

Features:
- AV1/HEVC/H.264 Encoding (GPU + CPU)
- Video-Bibliothek mit ffprobe-Analyse und Filtern
- TVDB-Integration mit Review-Modal und Sprachkonfiguration
- Film-Scanning und TVDB-Zuordnung
- Import- und Clean-Service (Grundgeruest)
- WebSocket Live-Updates, Queue-Management
- Docker mit GPU/CPU-Profilen

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 20:09:11 +01:00

89 lines
3.3 KiB
HTML

{% extends "base.html" %}
{% block title %}Dashboard - VideoKonverter{% endblock %}
{% block content %}
<!-- Aktionen -->
<section id="actions-section">
<div class="action-bar">
<button class="btn-primary" onclick="openFileBrowser()">Dateien durchsuchen</button>
<button class="btn-secondary" onclick="openUpload()">Video hochladen</button>
</div>
</section>
<!-- Aktive Konvertierungen -->
<section id="active-section">
<h2>Aktive Konvertierungen</h2>
<div id="active-conversions">
<!-- Wird dynamisch via WebSocket gefuellt -->
</div>
</section>
<!-- Warteschlange -->
<section id="queue-section">
<h2>Warteschlange</h2>
<div id="queue">
<!-- Wird dynamisch via WebSocket gefuellt -->
</div>
</section>
<!-- Filebrowser Modal -->
<div id="filebrowser-overlay" class="modal-overlay" style="display:none" onclick="closeBrowserOnOverlay(event)">
<div class="modal">
<div class="modal-header">
<h2>Dateien durchsuchen</h2>
<button class="btn-close" onclick="closeFileBrowser()">&times;</button>
</div>
<div class="modal-breadcrumb" id="fb-breadcrumb"></div>
<div class="modal-body" id="fb-content">
Lade...
</div>
<div class="modal-footer">
<span id="fb-selected-count">0 ausgewaehlt</span>
<div>
<button class="btn-secondary" id="fb-select-all" onclick="fbSelectAll()">Alle auswaehlen</button>
<button class="btn-primary" id="fb-convert" onclick="fbConvertSelected()" disabled>Konvertieren</button>
</div>
</div>
</div>
</div>
<!-- Upload Modal -->
<div id="upload-overlay" class="modal-overlay" style="display:none" onclick="closeUploadOnOverlay(event)">
<div class="modal modal-small">
<div class="modal-header">
<h2>Video hochladen</h2>
<button class="btn-close" onclick="closeUpload()">&times;</button>
</div>
<div class="modal-body">
<div class="upload-zone" id="upload-zone"
ondrop="handleDrop(event)" ondragover="handleDragOver(event)" ondragleave="handleDragLeave(event)">
<p>Videodateien hierher ziehen</p>
<p class="upload-hint">oder</p>
<label class="btn-secondary upload-btn">
Dateien waehlen
<input type="file" id="upload-input" multiple accept="video/*" onchange="handleFileSelect(event)" style="display:none">
</label>
</div>
<div id="upload-list" class="upload-list"></div>
<div id="upload-progress" class="upload-progress" style="display:none">
<div class="progress-container">
<div class="progress-bar" id="upload-bar"></div>
</div>
<span id="upload-status">Wird hochgeladen...</span>
</div>
</div>
<div class="modal-footer">
<button class="btn-primary" id="upload-start" onclick="startUpload()" disabled>Hochladen & Konvertieren</button>
</div>
</div>
</div>
{% endblock %}
{% block scripts %}
<script>
var WS_URL = "{{ ws_url }}";
</script>
<script src="/static/js/websocket.js"></script>
<script src="/static/js/filebrowser.js"></script>
{% endblock %}