Goondex/internal/web/templates/dashboard.html

260 lines
9.3 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="en">
<head>
{{template "html-head" .}}
<style>
/* ==== LUXURY SIDE PANELS (A1 Medium 240px) ==== */
body {
display: flex;
justify-content: center;
align-items: stretch;
min-height: 100vh;
overflow-x: hidden;
}
.side-panel {
width: 240px;
flex-shrink: 0;
background: #000;
border-right: 1px solid rgba(255, 79, 163, 0.2);
border-left: 1px solid rgba(255, 79, 163, 0.2);
display: flex;
flex-direction: column;
overflow: hidden;
position: sticky;
top: 0;
height: 100vh;
}
.side-panel.right {
border-right: none;
}
.side-panel img {
width: 100%;
height: auto;
display: block;
object-fit: cover;
opacity: 0.85;
transition: opacity 0.3s ease;
}
.side-panel img:hover {
opacity: 1;
}
/* Main site content */
.main-wrapper {
flex: 1;
overflow-y: auto;
max-width: 1400px;
}
/* Ensure navbar stays inside main-wrapper */
nav.navbar {
position: sticky;
top: 0;
z-index: 50;
}
/* Search results styling override to match new layout */
#global-search-results {
max-width: 100%;
}
/* Hide side panels on mobile */
@media (max-width: 900px) {
.side-panel {
display: none;
}
}
</style>
</head>
<body>
<!-- LEFT LUXURY SIDE PANEL -->
<div class="side-panel left">
<img src="/static/img/sidebar/preview1.jpg" alt="">
<img src="/static/img/sidebar/preview2.jpg" alt="">
<img src="/static/img/sidebar/preview3.jpg" alt="">
</div>
<!-- MAIN CONTENT WRAPPER -->
<div class="main-wrapper">
<!-- NAVIGATION -->
{{template "navbar" .}}
<main class="container">
<!-- HERO -->
<section class="hero-section">
<h1 class="hero-title">Welcome to Goondex</h1>
<p class="hero-subtitle">Full-library sync with seamless enrichment</p>
<div class="hero-actions">
<button type="button" class="btn" onclick="bulkImportAll()">
Full Import
<div class="hoverEffect"><div></div></div>
</button>
<button type="button" class="btn-secondary" onclick="syncAll()">
Sync Library
<div class="hoverEffect"><div></div></div>
</button>
</div>
</section>
<!-- SEARCH -->
<section class="search-section" style="margin-bottom: 2.5rem;">
<input type="text" id="global-search" class="input"
placeholder="Search performers, studios, scenes, or tags...">
<div id="global-search-results" class="search-results"></div>
</section>
<!-- STATS -->
<section class="stats-grid">
<!-- Performers -->
<div class="stat-card">
<div class="stat-icon">👤</div>
<div class="stat-content">
<div class="stat-value">{{.PerformerCount}}</div>
<div class="stat-label">Performers</div>
</div>
<div class="stat-actions">
<a href="/performers" class="stat-link">View all →</a>
<button class="btn-small" onclick="bulkImportPerformers()">
Import all
<div class="hoverEffect"><div></div></div>
</button>
</div>
</div>
<!-- Studios -->
<div class="stat-card">
<div class="stat-icon">🏢</div>
<div class="stat-content">
<div class="stat-value">{{.StudioCount}}</div>
<div class="stat-label">Studios</div>
</div>
<div class="stat-actions">
<a href="/studios" class="stat-link">View all →</a>
</div>
</div>
<!-- Scenes -->
<div class="stat-card">
<div class="stat-icon">🎬</div>
<div class="stat-content">
<div class="stat-value">{{.SceneCount}}</div>
<div class="stat-label">Scenes</div>
</div>
<div class="stat-actions">
<a href="/scenes" class="stat-link">View all →</a>
<button class="btn-small" onclick="aeImportSceneByName()">
Quick import
<div class="hoverEffect"><div></div></div>
</button>
</div>
</div>
<!-- Movies -->
<div class="stat-card">
<div class="stat-icon">🎞️</div>
<div class="stat-content">
<div class="stat-value">{{.MovieCount}}</div>
<div class="stat-label">Movies</div>
</div>
<div class="stat-actions">
<a href="/movies" class="stat-link">View all →</a>
</div>
</div>
</section>
<!-- TPDB IMPORT/SYNC -->
<section class="import-section">
<h3 id="ae-import">Library Import & Sync</h3>
<p class="help-text">
Run a full import, then sync regularly. Enrichment runs behind the scenes.
</p>
<div class="import-buttons">
<button type="button" class="btn" onclick="bulkImportAll()">
Import Everything
<div class="hoverEffect"><div></div></div>
</button>
<button type="button" class="btn-secondary" onclick="bulkImportPerformers()">
Import Performers
<div class="hoverEffect"><div></div></div>
</button>
<button type="button" class="btn-secondary" onclick="bulkImportStudios()">
Import Studios
<div class="hoverEffect"><div></div></div>
</button>
<button type="button" class="btn-secondary" onclick="bulkImportScenes()">
Import Scenes
<div class="hoverEffect"><div></div></div>
</button>
<button type="button" class="btn-secondary" onclick="syncAll()">
Sync All
<div class="hoverEffect"><div></div></div>
</button>
</div>
<div id="import-all-import-status" class="status-banner" style="margin-top: 0.75rem;"></div>
<div id="sync-import-status" class="status-banner" style="margin-top: 0.75rem;"></div>
</section>
<!-- AE IMPORT SECTION -->
<section class="import-section">
<h3>Adult Empire Imports</h3>
<p class="help-text">
Import directly from Adult Empire via the UI with built-in progress feedback.
</p>
<div class="import-buttons">
<button class="btn-secondary" onclick="aeImportPerformerByName()">
Import Performer by Name
<div class="hoverEffect"><div></div></div>
</button>
<button class="btn-secondary" onclick="aeImportPerformerByURL()">
Import Performer by URL
<div class="hoverEffect"><div></div></div>
</button>
<button class="btn-secondary" onclick="aeImportSceneByName()">
Import Scene by Title
<div class="hoverEffect"><div></div></div>
</button>
<button class="btn-secondary" onclick="aeImportSceneByURL()">
Import Scene by URL
<div class="hoverEffect"><div></div></div>
</button>
</div>
<p class="help-text">
Movies: scraper not finished yet. Use performer/scene imports for now.
</p>
<div id="ae-status" class="status-banner"></div>
</section>
</main>
</div>
<!-- RIGHT LUXURY SIDE PANEL -->
<div class="side-panel right">
<img src="/static/img/sidebar/preview4.jpg" alt="">
<img src="/static/img/sidebar/preview5.jpg" alt="">
<img src="/static/img/sidebar/preview6.jpg" alt="">
</div>
<!-- EXISTING MODALS (unchanged, full code integrity kept) -->
{{/* Your modals remain exactly as before */}}
{{template "html-scripts" .}}
</body>
</html>