diff --git a/docker/ui/src/pages/Dashboard.tsx b/docker/ui/src/pages/Dashboard.tsx index 7de4d0f..31c257b 100644 --- a/docker/ui/src/pages/Dashboard.tsx +++ b/docker/ui/src/pages/Dashboard.tsx @@ -143,16 +143,16 @@ export default function Dashboard() { return (
- {/* 1. GANZ OBEN: Laufwerke & Erkannte Disc im Laufwerk (Akira / Auto Pre-Scan Banner) */} + {/* 1. GANZ OBEN: Laufwerke & Erkannte Disc im Laufwerk */} - {/* 2. MAIN 2-COLUMN GRID LAYOUT (EXAKT NACH SC1 MOCKUP) */} -
+ {/* 2. MAIN 2-COLUMN GRID LAYOUT (BÜNDIGER UNTERER ABSCHLUSS ZWISCHEN LINKS UND RECHTS) */} +
- {/* LEFT COLUMN (lg:col-span-7) */} -
+ {/* LEFT COLUMN (lg:col-span-7) - flex flex-col justify-between fuer buendigen Abschluss */} +
- {/* Current Job Card (SC1 Left Top) */} + {/* Current Job Card */} @@ -211,35 +211,37 @@ export default function Dashboard() { - {/* Ripping Queue Card (EXAKT NACH SC1 MOCKUP METHODIK) */} - + {/* Ripping Queue Card (flex-1 flex flex-col justify-between fuer exakt buendigen Abschluss mit Recently Ripped) */} + Ripping Queue ({queueJobs.length}) - + {queueJobs.length > 0 ? ( - queueJobs.map((j, idx) => ( -
-
- {posterUrl(j.meta) ? ( - - ) : ( -
- -
- )} - {idx + 2}. - {j.title || 'Unbekannt'} - +
+ {queueJobs.map((j, idx) => ( +
+
+ {posterUrl(j.meta) ? ( + + ) : ( +
+ +
+ )} + {idx + 2}. + {j.title || 'Unbekannt'} + +
+ + Queue {idx + 1} +
- - Queue {idx + 1} - -
- )) + ))} +
) : ( - /* SC1 Styled Queue List slots (sauberes SC1 Queue Layout ohne hässliches Loch) */ -
+ /* SC1 Styled Queue List slots (buendiger voller Abschluss) */ +
2. @@ -254,6 +256,13 @@ export default function Dashboard() {
Queue 2
+
+
+ 4. + Bereit für nächste Disc... +
+ Queue 3 +
)} @@ -261,8 +270,8 @@ export default function Dashboard() {
- {/* RIGHT COLUMN (lg:col-span-5) */} -
+ {/* RIGHT COLUMN (lg:col-span-5) - flex flex-col justify-between */} +
{/* Server Status Card */} @@ -325,8 +334,8 @@ export default function Dashboard() { - {/* Recently Ripped Card (SC1 Right Bottom) */} - + {/* Recently Ripped Card */} + Recently Ripped ({completedJobs.length}) {completedJobs.length > 0 && ( @@ -335,13 +344,13 @@ export default function Dashboard() { )} - + {completedJobs.length === 0 ? (
Noch keine gerippten Medien in der Datenbank
) : ( -
+
{completedJobs.slice(0, 3).map((item) => { const poster = posterUrl(item.meta) return ( @@ -381,7 +390,7 @@ export default function Dashboard() {
- {/* 3. VOLLSTÄNDIGE JOB-TABELLE & MEDIEN-BIBLIOTHEK (MIT INHALTSANGABEN / BESCHREIBUNGEN) */} + {/* 3. VOLLSTÄNDIGE JOB-TABELLE & MEDIEN-BIBLIOTHEK */}