queue.html
⎇
Raw
1{{define "queue"}}
2<div class="page-header">
3 <h2>Queue</h2>
4 <div class="actions">
5 <form method="post" action="/queue/clear" class="inline">
6 <button type="submit" class="secondary">Clear All</button>
7 </form>
8 <form method="post" action="/queue/clear" class="inline">
9 <input type="hidden" name="status" value="completed">
10 <button type="submit" class="secondary">Clear Completed</button>
11 </form>
12 <form method="post" action="/queue/clear" class="inline">
13 <input type="hidden" name="status" value="error">
14 <button type="submit" class="secondary">Clear Failed</button>
15 </form>
16 <form method="get" action="/queue" class="inline filter-form">
17 <select name="status">
18 <option value="all" {{if eq .Data.Status "all"}}selected{{end}}>All</option>
19 <option value="queued" {{if eq .Data.Status "queued"}}selected{{end}}>Queued</option>
20 <option value="downloading" {{if eq .Data.Status "downloading"}}selected{{end}}>Active</option>
21 <option value="completed" {{if eq .Data.Status "completed"}}selected{{end}}>Completed</option>
22 <option value="error" {{if eq .Data.Status "error"}}selected{{end}}>Failed</option>
23 <option value="cancelled" {{if eq .Data.Status "cancelled"}}selected{{end}}>Cancelled</option>
24 </select>
25 <select name="sort">
26 <option value="date" {{if eq .Data.SortBy "date"}}selected{{end}}>Date</option>
27 <option value="status" {{if eq .Data.SortBy "status"}}selected{{end}}>Status</option>
28 </select>
29 <button type="submit">Filter</button>
30 </form>
31 </div>
32</div>
33
34<div class="queue-list">
35 {{range .Data.Items}}
36 <article class="queue-item {{.Status}}">
37 <a href="/queue/{{.ID}}" class="queue-link" aria-label="View download details"></a>
38 <div class="queue-header">
39 <div class="queue-url">{{.URL}}</div>
40 <div class="queue-status">
41 <span class="status-badge {{.Status}}">{{.Status}}</span>
42 </div>
43 {{if or (eq .Status "error") (eq .Status "cancelled")}}
44 <form method="post" action="/queue/{{.ID}}/retry" class="inline queue-action">
45 <button type="submit" class="small">Retry</button>
46 </form>
47 {{end}}
48 {{if or (eq .Status "queued") (eq .Status "downloading")}}
49 <form method="post" action="/queue/{{.ID}}/cancel" class="inline queue-action">
50 <button type="submit" class="small secondary">Cancel</button>
51 </form>
52 {{end}}
53 <form method="post" action="/queue/{{.ID}}/delete" class="inline queue-action">
54 <button type="submit" class="small danger">Remove</button>
55 </form>
56 </div>
57 {{if .ErrorMessage.Valid}}
58 <div class="error-message">{{.ErrorMessage.String}}</div>
59 {{end}}
60 <div class="queue-meta">
61 <span>Created: {{.CreatedAt.Format "2006-01-02 15:04"}}</span>
62 {{if .StartedAt.Valid}}
63 <span>Started: {{.StartedAt.Time.Format "2006-01-02 15:04"}}</span>
64 {{end}}
65 </div>
66 </article>
67 {{else}}
68 <div class="empty-state">
69 <p>Queue is empty. <a href="/download">Start a download</a>.</p>
70 </div>
71 {{end}}
72</div>
73
74{{template "pagination" .Data.Pagination}}
75{{end}}