{% extends "admin_base.html" %}
{% block extra_head %}
<link rel="stylesheet" href="{{ static_url('/static/css/admin.css') }}">
<link rel="stylesheet" href="{{ static_url('/static/css/sidebar.css') }}">
<link rel="stylesheet" href="{{ static_url('/static/css/planning.css') }}">
{% endblock %}
{% block admin_content %}
<div class="admin-header planning-header">
<h1>Ticket Planning</h1>
<p class="planning-subtitle">Pick the open tickets to include, then generate a phased implementation document. Each selected ticket's full text is reproduced verbatim so the result can be handed straight to a coding agent.</p>
</div>
{% if not configured %}
<div class="empty-state">The issue tracker is not configured yet. Configure Gitea in Services first.</div>
{% elif tickets_error %}
<div class="empty-state">Could not load the open tickets from the tracker. Try again shortly.</div>
{% elif not tickets %}
<div class="empty-state">There are no open tickets to plan.</div>
{% else %}
<div class="planning-select" data-planning-select>
<div class="planning-select-head">
<label class="planning-select-all">
<input type="checkbox" data-planning-select-all checked>
<span>Select all</span>
</label>
<span class="planning-select-count" data-planning-count>{{ tickets|length }} of {{ tickets|length }} selected</span>
</div>
<ul class="planning-ticket-list">
{% for ticket in tickets %}
<li class="planning-ticket">
<label>
<input type="checkbox" data-planning-ticket value="{{ ticket.number }}" checked>
<span class="planning-ticket-number">#{{ ticket.number }}</span>
<span class="planning-ticket-title">{{ ticket.title }}</span>
{% if ticket.labels %}
<span class="planning-ticket-labels">
{% for label in ticket.labels %}<span class="planning-ticket-label">{{ label }}</span>{% endfor %}
</span>
{% endif %}
</label>
</li>
{% endfor %}
</ul>
<div class="planning-select-foot">
<button type="button" class="btn btn-primary" data-planning-generate data-action="/issues/planning">
<span class="btn-spinner" aria-hidden="true"></span> Generate planning
</button>
<span class="planning-hint">A report covers only the tickets selected above.</span>
</div>
</div>
<div class="planning-output">
<div class="empty-state" data-planning-empty>
No planning generated yet. Select tickets and click "Generate planning".
</div>
<div class="planning-status" data-planning-status hidden role="status" aria-live="polite">
<span class="planning-spinner" aria-hidden="true"></span>
<span class="planning-status-text">Generating the planning report...</span>
</div>
<div class="planning-result" data-planning-result hidden role="region" aria-label="Planning report">
<div class="planning-actions">
<a class="btn btn-secondary" data-planning-download href="#" download>Download markdown</a>
<span class="planning-hint">Hover the report and use the Copy button to copy the markdown source.</span>
</div>
<dp-content class="planning-report" data-planning-report></dp-content>
</div>
</div>
{% endif %}
{% endblock %}