update gui

This commit is contained in:
2026-07-28 20:45:34 -05:00
parent 8dcee4121b
commit 510d5490f9
13 changed files with 606 additions and 40 deletions
+59 -5
View File
@@ -37,7 +37,7 @@
<div class="policy-card">
<span>Default policy</span>
<strong>{{.DefaultHostLimit}} hosts</strong>
<strong>{{.DefaultDuration}} hours</strong>
<strong>{{.DefaultDays}} days</strong>
</div>
</section>
@@ -60,11 +60,11 @@
<div class="field-row">
<label>
Maximum hosts
<input name="host_limit" type="number" min="1" max="25" value="{{.DefaultHostLimit}}" required>
<input name="host_limit" type="number" min="1" max="{{.MaxHostLimit}}" value="{{.DefaultHostLimit}}" required>
</label>
<label>
Duration in hours
<input name="duration_hours" type="number" min="1" max="24" value="{{.DefaultDuration}}" required>
Duration in days
<input name="duration_days" type="number" min="1" max="90" value="{{.DefaultDays}}" required>
</label>
</div>
@@ -116,6 +116,7 @@
<div class="authorization-list">
{{range .Authorizations}}
{{$authorization := .}}
<article class="authorization {{if isActive .}}active{{else}}closed{{end}}">
<div class="authorization-top">
<div>
@@ -132,7 +133,60 @@
<div><dt>Created by</dt><dd>{{.CreatedBy}}</dd></div>
</dl>
{{if isActive .}}
<form action="/portal/authorizations/{{.ID}}/revoke" method="post">
<details class="authorization-editor">
<summary>Edit access</summary>
<form action="/portal/authorizations/{{.ID}}/update" method="post" class="stack compact">
<input type="hidden" name="csrf_token" value="{{$.CSRFToken}}">
<div class="field-row">
<label>
Maximum hosts
<input name="host_limit" type="number" min="1" max="{{$.MaxHostLimit}}" value="{{.HostLimit}}" required>
</label>
<label>
Extend by days
<input name="extend_days" type="number" min="0" max="90" value="0" required>
</label>
</div>
<small class="form-help">Use 0 to keep the current expiration. Extensions are added to the existing deadline.</small>
<fieldset>
<legend>Allowed packages</legend>
{{range $.Packages}}
{{if .Enabled}}
<label class="package-choice">
<input type="checkbox" name="package_id" value="{{.ID}}" {{if index $authorization.PackageIDs .ID}}checked{{end}}>
<span>
<strong>{{.DisplayName}}</strong>
<small>{{.PackageVersion}}</small>
</span>
</label>
{{end}}
{{else}}
<p class="empty">No packages have been enabled yet.</p>
{{end}}
</fieldset>
<fieldset>
<legend>Allowed installer actions</legend>
{{range $.Actions}}
{{if .Enabled}}
<label class="package-choice">
<input type="checkbox" name="action_slug" value="{{.Slug}}" {{if index $authorization.ActionSlugs .Slug}}checked{{end}}>
<span>
<strong>{{.DisplayName}}</strong>
<small>Authorization gate</small>
</span>
</label>
{{end}}
{{else}}
<p class="empty">No installer actions have been enabled.</p>
{{end}}
</fieldset>
<button class="button secondary" type="submit">Save authorization</button>
</form>
</details>
<form class="authorization-revoke" action="/portal/authorizations/{{.ID}}/revoke" method="post">
<input type="hidden" name="csrf_token" value="{{$.CSRFToken}}">
<button class="text-button danger" type="submit">Revoke now</button>
</form>