Goondex/internal/web/templates/performers.html
Stu Leak 16fb407a3c v0.1.0-dev4: Add web frontend with UI component library
- Implement full web interface with Go html/template server
- Add GX component library (buttons, dialogs, tables, forms, etc.)
- Create scene/performer/studio/movie detail and listing pages
- Add Adult Empire scraper for additional metadata sources
- Implement movie support with database schema
- Add import and sync services for data management
- Include comprehensive API and frontend documentation
- Add custom color scheme and responsive layout

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-17 10:47:30 -05:00

92 lines
3.8 KiB
HTML

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Performers - Goondex</title>
<link rel="stylesheet" href="/static/css/goondex.css">
</head>
<body>
<nav class="navbar">
<div class="container nav-inner">
<img src="/static/img/logo/GOONDEX_logo.png" class="logo-img">
<ul class="nav-links">
<li><a href="/">Dashboard</a></li>
<li><a href="/performers" class="active">Performers</a></li>
<li><a href="/studios">Studios</a></li>
<li><a href="/scenes">Scenes</a></li>
<li><a href="/movies">Movies</a></li>
</ul>
</div>
</nav>
<main class="container">
<div class="page-header">
<h2>Performers</h2>
<form class="search-form" action="/performers" method="get">
<input type="text" name="q" class="input" placeholder="Search performers..." value="{{.Query}}">
<select name="nationality" class="input" style="max-width: 200px;">
<option value="all" {{if eq .SelectedNationality ""}}selected{{end}}>All Nationalities</option>
{{range .Nationalities}}
<option value="{{.}}" {{if eq . $.SelectedNationality}}selected{{end}}>{{.}}</option>
{{end}}
</select>
<select name="gender" class="input" style="max-width: 150px;">
<option value="all" {{if eq .SelectedGender ""}}selected{{end}}>All Genders</option>
{{range .Genders}}
<option value="{{.}}" {{if eq . $.SelectedGender}}selected{{end}}>{{.}}</option>
{{end}}
</select>
<button type="submit" class="btn">Search<div class="hoverEffect"><div></div></div></button>
</form>
</div>
{{if .Performers}}
<div class="gx-card-grid">
{{range .Performers}}
<div class="gx-card" onclick="location.href='/performers/{{.Performer.ID}}'">
<div class="gx-card-thumb"
style="background-image: url('{{if .Performer.ImageURL}}{{.Performer.ImageURL}}{{else}}/static/img/placeholder-performer.jpg{{end}}'); background-color: #1a1a1a;">
</div>
<div class="gx-card-body">
<div class="gx-card-title">
{{.Performer.Name}}{{if gt .Age 0}} ({{.Age}}){{end}}
</div>
<div class="gx-card-meta">{{.SceneCount}} scenes</div>
{{if .Performer.Nationality}}
<div class="gx-card-meta" style="margin-top: 0.3rem;">
{{if .CountryFlag}}{{.CountryFlag}}{{else}}🌍{{end}} {{.Performer.Nationality}}
</div>
{{end}}
{{if .Performer.Gender}}
<div class="gx-card-tags" style="margin-top: 0.6rem;">
<span class="gx-card-tag">{{.Performer.Gender}}</span>
{{if .Performer.Source}}
<span class="gx-card-tag">{{.Performer.Source}}</span>
{{end}}
</div>
{{end}}
</div>
</div>
{{end}}
</div>
{{else}}
<div class="empty-state">
<p>No performers found.</p>
{{if .Query}}
<p>Try a different search term or <a href="/performers">view all performers</a>.</p>
{{else}}
<p>Import performers using the dashboard or CLI: <code>./goondex import performer "name"</code></p>
{{end}}
</div>
{{end}}
</main>
</body>
</html>