90 lines
3.9 KiB
HTML
90 lines
3.9 KiB
HTML
{{template "header" .}}
|
|
|
|
<div class="page-header">
|
|
<div class="page-header-title">
|
|
<h1>{{.Data.Item.Project.Name}}</h1>
|
|
<span class="help"><code>{{.Data.Item.Project.Slug}}</code> · {{.Data.Item.Entries}} Einträge</span>
|
|
</div>
|
|
<div class="page-header-actions">
|
|
<a class="button secondary" href="/p/{{.Data.Item.Project.Slug}}/">Zum Projekt</a>
|
|
<a class="button secondary" href="/p/{{.Data.Item.Project.Slug}}/keys">Zugänge</a>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card">
|
|
<form method="POST" action="/admin/projects/{{.Data.Item.Project.Slug}}/edit" class="form">
|
|
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
|
|
|
|
<div class="field medium">
|
|
<label for="name">Name</label>
|
|
<input type="text" id="name" name="name" value="{{.Data.Item.Project.Name}}" required autofocus>
|
|
</div>
|
|
|
|
<div class="field long">
|
|
<label for="description">Beschreibung</label>
|
|
<input type="text" id="description" name="description"
|
|
value="{{.Data.Item.Project.Description}}" placeholder="optional">
|
|
</div>
|
|
|
|
<div class="field short">
|
|
<label for="slug">Bezeichner</label>
|
|
<span class="help">Steht fest — er steckt in der MCP-Konfiguration jedes Clients.</span>
|
|
<input type="text" id="slug" value="{{.Data.Item.Project.Slug}}" disabled>
|
|
</div>
|
|
|
|
{{/* Das Schreibbudget ändert nur der Plattform-Admin. Der Server
|
|
ignoriert das Feld für alle anderen ohnehin (handleProjectEditSave)
|
|
— hier wird es nur deshalb nicht angeboten. */}}
|
|
{{if .Session.CanEditWriteBudget}}
|
|
<div class="field short">
|
|
<label for="write_limit_hourly">Schreibbudget je Stunde</label>
|
|
<span class="help">
|
|
0 = Standardwert des Servers{{if .Data.Item.Limit}} ({{.Data.Item.Limit}}){{end}}.
|
|
{{if .Data.Item.Limit}}Im laufenden Fenster noch frei: {{.Data.Item.Free}}.{{end}}
|
|
</span>
|
|
<input type="number" id="write_limit_hourly" name="write_limit_hourly"
|
|
min="0" step="1" value="{{.Data.Item.OwnLimit}}">
|
|
</div>
|
|
{{else}}
|
|
<div class="field short">
|
|
<label>Schreibbudget je Stunde</label>
|
|
<span class="help">
|
|
{{if .Data.Item.Limit}}{{.Data.Item.Limit}}, im laufenden Fenster noch frei: {{.Data.Item.Free}}.{{else}}unbegrenzt.{{end}}
|
|
Ändern kann es nur der Plattform-Admin.
|
|
</span>
|
|
</div>
|
|
{{end}}
|
|
|
|
<div class="form-actions">
|
|
<button type="submit">Speichern</button>
|
|
<a class="button secondary" href="/admin/projects">Abbrechen</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<section class="section">
|
|
<h2>Gefahrenzone</h2>
|
|
<span class="help">Das Löschen entfernt alle {{.Data.Item.Entries}} Einträge und sämtliche
|
|
Zugänge dieses Projekts unwiederbringlich. Der Markdown-Export bleibt erhalten,
|
|
sofern einer eingerichtet ist.</span>
|
|
|
|
<div class="card danger-zone">
|
|
<form method="POST" action="/admin/projects/delete" class="form"
|
|
data-confirm="Projekt wirklich löschen? Alle Einträge und Zugänge gehen unwiederbringlich verloren.">
|
|
<input type="hidden" name="csrf_token" value="{{.CSRFToken}}">
|
|
<input type="hidden" name="id" value="{{.Data.Item.Project.ID}}">
|
|
|
|
<div class="field short">
|
|
<label for="confirm">Bezeichner zur Bestätigung</label>
|
|
<span class="help">Zum Löschen <code>{{.Data.Item.Project.Slug}}</code> eintippen.</span>
|
|
<input type="text" id="confirm" name="confirm" autocomplete="off">
|
|
</div>
|
|
|
|
<div class="form-actions">
|
|
<button type="submit" class="warning">Projekt löschen</button>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
</section>
|
|
|
|
{{template "footer" .}}
|