76 lines
2.4 KiB
HTML
76 lines
2.4 KiB
HTML
{% extends "base.html" %}
|
||
{% block title %}Publish{% endblock %}
|
||
{% block content %}
|
||
<h1>Publish Issue</h1>
|
||
|
||
<form method="get" action="/publish" style="margin-bottom: 1rem;">
|
||
<label>
|
||
Target Week
|
||
<input type="week" name="week" value="{{ week_str }}">
|
||
</label>
|
||
<button type="submit" class="outline">Load Week</button>
|
||
</form>
|
||
|
||
<p>{{ week_start.strftime('%b %d') }} – {{ week_end.strftime('%b %d, %Y') }} · {{ articles|length }} articles</p>
|
||
|
||
{% if articles %}
|
||
<form method="post" action="/publish" id="publish-form">
|
||
<input type="hidden" name="week_start" value="{{ week_start.isoformat() }}">
|
||
<input type="hidden" name="week_end" value="{{ week_end.isoformat() }}">
|
||
|
||
<table>
|
||
<thead>
|
||
<tr>
|
||
<th><input type="checkbox" id="select-all" checked></th>
|
||
<th>Date</th>
|
||
<th>Title</th>
|
||
<th>Author</th>
|
||
</tr>
|
||
</thead>
|
||
<tbody>
|
||
{% for article in articles %}
|
||
<tr>
|
||
<td>
|
||
<input type="checkbox" name="article_ids" value="{{ article.id }}" checked
|
||
class="article-checkbox">
|
||
</td>
|
||
<td>{{ article.pub_date.strftime('%b %d') }}</td>
|
||
<td>{{ article.title }}</td>
|
||
<td>{{ article.author }}</td>
|
||
</tr>
|
||
{% endfor %}
|
||
</tbody>
|
||
</table>
|
||
|
||
<fieldset>
|
||
<legend>Cover</legend>
|
||
<label>
|
||
<input type="radio" name="cover_method" value="ai" checked>
|
||
AI Cover (Pollinations.ai)
|
||
</label>
|
||
<label>
|
||
<input type="radio" name="cover_method" value="text">
|
||
Text Cover (fallback)
|
||
</label>
|
||
</fieldset>
|
||
|
||
<button type="submit" id="publish-btn">Generate Issue</button>
|
||
</form>
|
||
{% else %}
|
||
<p>No articles found for this week. Try fetching articles first from the <a href="/">Dashboard</a>.</p>
|
||
{% endif %}
|
||
{% endblock %}
|
||
|
||
{% block scripts %}
|
||
<script>
|
||
document.getElementById('select-all')?.addEventListener('change', function() {
|
||
document.querySelectorAll('.article-checkbox').forEach(cb => cb.checked = this.checked);
|
||
});
|
||
|
||
document.getElementById('publish-form')?.addEventListener('submit', function() {
|
||
document.getElementById('publish-btn').setAttribute('aria-busy', 'true');
|
||
document.getElementById('publish-btn').textContent = 'Generating...';
|
||
});
|
||
</script>
|
||
{% endblock %}
|