Files

82 lines
3.6 KiB
HTML

{{define "page_admin_renewal"}}
{{template "admin_shell_open" dict "Active" .Active "Admin" .Admin "Title" "Коды продления"}}
{{template "admin_flash" .}}
<div class="card">
<div class="card-header"><h2><i class="fa-solid fa-plus"></i> Новый код</h2></div>
<form method="post" action="{{appURL "admin/renewal"}}" class="form-row-2">
{{template "admin_csrf_field"}}
<input type="hidden" name="action" value="create">
<div>
<label class="form-label">Код (пусто = сгенерировать)</label>
<input class="form-control mono" name="code" placeholder="ABCD1234" maxlength="32">
</div>
<div>
<label class="form-label">Дней продления</label>
<input class="form-control" type="number" name="add_days" value="30" min="1" max="3650">
</div>
<div>
<label class="form-label">Лимит активаций</label>
<input class="form-control" type="number" name="max_uses" value="1" min="1" max="100000">
</div>
<div>
<label class="form-label">Назначение</label>
<select class="form-select" name="code_target">
<option value="guest">Гостевая ссылка</option>
<option value="member">Личный кабинет</option>
</select>
</div>
<div>
<label class="form-label">ID гостевой ссылки (необязательно)</label>
<input class="form-control" type="number" name="share_link_id" min="1">
</div>
<div>
<label class="form-label">Срок действия кода (необязательно)</label>
<input class="form-control" type="date" name="code_expires_at">
</div>
<div>
<label class="form-label">Заметка</label>
<input class="form-control" name="note" maxlength="255">
</div>
<div class="d-flex align-items-end">
<button type="submit" class="btn btn-primary w-100"><i class="fa-solid fa-plus"></i> Создать</button>
</div>
</form>
</div>
<div class="card">
<div class="card-header"><h2><i class="fa-solid fa-list"></i> Список кодов ({{len .Codes}})</h2></div>
{{if not .Codes}}
<p class="hint">Кодов пока нет.</p>
{{else}}
<div class="tbl-wrap">
<table class="table table-sm mb-0">
<thead><tr><th>Код</th><th>Дней</th><th>Активаций</th><th>Назначение</th><th>Ссылка</th><th>Срок кода</th><th>Заметка</th><th></th></tr></thead>
<tbody>
{{range .Codes}}
<tr>
<td class="mono">{{.Code}}</td>
<td>{{.AddDays}}</td>
<td>{{.UseCount}} / {{.MaxUses}}</td>
<td>{{if eq2 .CodeTarget "member"}}<span class="badge badge-info">кабинет</span>{{else}}<span class="badge badge-ok">гость</span>{{end}}</td>
<td>{{if .ShareLinkID}}#{{.ShareLinkID}}{{else}}—{{end}}</td>
<td class="sl-muted">{{if .CodeExpiresAt}}{{.CodeExpiresAt.Format "2006-01-02"}}{{else}}—{{end}}</td>
<td>{{if .Note}}{{.Note}}{{else}}—{{end}}</td>
<td>
<form method="post" action="{{appURL "admin/renewal"}}" onsubmit="return confirm('Удалить код {{.Code}}?');">
{{template "admin_csrf_field"}}
<input type="hidden" name="action" value="delete">
<input type="hidden" name="code_id" value="{{.ID}}">
<button type="submit" class="btn btn-sm btn-danger"><i class="fa-solid fa-trash"></i></button>
</form>
</td>
</tr>
{{end}}
</tbody>
</table>
</div>
{{end}}
</div>
{{template "admin_shell_close" .}}
{{end}}