Apply new frontend theme
Full style rewrite (holographic/chrome dark theme) plus matching favicon, authored externally and dropped in at /home/andrew/alembic-theme. Verified every template's variable names, form field names, and action URLs match the actual data each router passes before importing -- all matched exactly with zero router/service changes needed. Validated all templates parse (Jinja2 env.get_template over the full tree) and confirmed the live container serves the new theme after rebuild+redeploy.
This commit is contained in:
@@ -1,38 +1,53 @@
|
||||
{% extends "base.html" %}
|
||||
{% block title %}{{ item.artist }} — {{ item.title }} — alembic{% endblock %}
|
||||
{% block content %}
|
||||
<p><a href="/library">← back to library</a></p>
|
||||
<h1>{{ item.artist }} — {{ item.title }}</h1>
|
||||
<p class="muted">{{ item.path }}</p>
|
||||
<a class="back-link" href="/library">← back to library</a>
|
||||
|
||||
<div class="page-header">
|
||||
<div>
|
||||
<h1>{{ item.artist }} — {{ item.title }}</h1>
|
||||
<p class="subtitle muted mono truncate" style="max-width:none;">{{ item.path }}</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{% if request.query_params.get('changed') %}
|
||||
<p>Updated {{ request.query_params.get('changed') }} field(s).</p>
|
||||
<div class="notice success">Updated {{ request.query_params.get('changed') }} field(s).</div>
|
||||
{% endif %}
|
||||
|
||||
<h2>Edit tags</h2>
|
||||
<form method="post" action="/library/track/{{ item.id }}">
|
||||
{% for field in editable_fields %}
|
||||
<div>
|
||||
<label for="{{ field }}">{{ field }}</label>
|
||||
<input type="text" id="{{ field }}" name="{{ field }}" value="{{ item.get(field, '') or '' }}">
|
||||
</div>
|
||||
{% endfor %}
|
||||
<button type="submit">Save</button>
|
||||
</form>
|
||||
<div class="panel" style="max-width:560px;">
|
||||
<form method="post" action="/library/track/{{ item.id }}">
|
||||
{% for field in editable_fields %}
|
||||
<div class="field">
|
||||
<label for="{{ field }}">{{ field }}</label>
|
||||
<input type="text" id="{{ field }}" name="{{ field }}" value="{{ item.get(field, '') or '' }}">
|
||||
</div>
|
||||
{% endfor %}
|
||||
<button type="submit" class="btn btn-primary">Save</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<h2>Set genre for this artist (all their tracks)</h2>
|
||||
<form method="post" action="/library/track/{{ item.id }}/genre">
|
||||
<input type="hidden" name="artist" value="{{ item.artist }}">
|
||||
<label for="genre">Genre (e.g. "IDM; Electronic")</label>
|
||||
<input type="text" id="genre" name="genre" required>
|
||||
<button type="submit">Set genre</button>
|
||||
</form>
|
||||
<div class="panel" style="max-width:560px;">
|
||||
<form method="post" action="/library/track/{{ item.id }}/genre">
|
||||
<input type="hidden" name="artist" value="{{ item.artist }}">
|
||||
<div class="field">
|
||||
<label for="genre">Genre</label>
|
||||
<input type="text" id="genre" name="genre" required placeholder="IDM; Electronic">
|
||||
</div>
|
||||
<button type="submit" class="btn">Set genre</button>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
<h2>Re-fetch metadata from Spotify/iTunes URL</h2>
|
||||
<form method="post" action="/library/track/{{ item.id }}/retag">
|
||||
<label for="url">URL</label>
|
||||
<input type="text" id="url" name="url" required>
|
||||
<label><input type="checkbox" name="keep_genre" value="true"> keep existing genre</label>
|
||||
<button type="submit">Retag</button>
|
||||
</form>
|
||||
<div class="panel" style="max-width:560px;">
|
||||
<form method="post" action="/library/track/{{ item.id }}/retag">
|
||||
<div class="field">
|
||||
<label for="url">URL</label>
|
||||
<input type="text" id="url" name="url" required>
|
||||
</div>
|
||||
<label class="checkbox-field"><input type="checkbox" name="keep_genre" value="true"> Keep existing genre</label>
|
||||
<button type="submit" class="btn">Retag</button>
|
||||
</form>
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
||||
Reference in New Issue
Block a user