init
release-tag / release-image (push) Successful in 2m40s

This commit is contained in:
2026-05-27 02:34:11 +02:00
parent 0e567d8ab2
commit 309e94d362
19 changed files with 1037 additions and 1 deletions
+10
View File
@@ -0,0 +1,10 @@
<!doctype html><html lang="de"><head><meta charset="utf-8"><title>Admin</title><style>body{font-family:system-ui;margin:2rem;background:#111;color:#eee}a{color:#9ad}table{border-collapse:collapse;width:100%;margin:1rem 0}td,th{border-bottom:1px solid #333;padding:.45rem;text-align:left;vertical-align:top}.card{background:#1b1b1b;border:1px solid #333;border-radius:.7rem;padding:1rem;margin:1rem 0}button,input,select,textarea{padding:.35rem;border-radius:.35rem;margin:.1rem}textarea{width:24rem;height:3.8rem}.small{width:5rem}.wide{width:20rem}</style></head><body>
<p><a href="/">Dashboard</a> · <a href="/requests/new">Neue Anfrage</a> · <a href="/logout">Logout</a></p>
<h1>Admin-Konfiguration</h1>
<div class="card"><h2>Globale Einstellungen</h2><table><tr><th>Key</th><th>Wert</th><th>Beschreibung</th><th></th></tr>{{range .Settings}}<tr><form method="post" action="/admin/settings"><td><input name="setting_key" value="{{.Key}}" readonly></td><td><input class="wide" name="setting_value" value="{{.Value}}"></td><td><input class="wide" name="description" value="{{.Description}}"></td><td><button>Speichern</button></td></form></tr>{{end}}<tr><form method="post" action="/admin/settings"><td><input name="setting_key" placeholder="neuer_key"></td><td><input name="setting_value"></td><td><input class="wide" name="description"></td><td><button>Anlegen</button></td></form></tr></table></div>
<div class="card"><h2>Abteilungen</h2><table><tr><th>ID</th><th>Name</th><th></th></tr>{{range .Departments}}<tr><form method="post" action="/admin/departments"><td>{{.ID}}<input type="hidden" name="id" value="{{.ID}}"></td><td><input name="name" value="{{.Name}}"></td><td><button>Speichern</button><button name="action" value="delete">Löschen</button></td></form></tr>{{end}}<tr><form method="post" action="/admin/departments"><td>neu</td><td><input name="name" placeholder="z.B. Salvage"></td><td><button>Anlegen</button></td></form></tr></table></div>
<div class="card"><h2>Items & Ressourcen</h2><table><tr><th>ID</th><th>SKU</th><th>Name</th><th>Kategorie</th><th></th></tr>{{range .Items}}<tr><form method="post" action="/admin/items"><td>{{.ID}}<input type="hidden" name="id" value="{{.ID}}"></td><td><input name="sku" value="{{.SKU}}"></td><td><input name="name" value="{{.Name}}"></td><td><input name="category" value="{{.Category}}"></td><td><button>Speichern</button><button name="action" value="delete">Löschen</button></td></form></tr>{{end}}<tr><form method="post" action="/admin/items"><td>neu</td><td><input name="sku"></td><td><input name="name"></td><td><input name="category" value="item"></td><td><button>Anlegen</button></td></form></tr></table></div>
<div class="card"><h2>Statuswerte</h2><table><tr><th>Scope</th><th>Wert</th><th>Label</th><th>Sortierung</th><th>Final</th><th></th></tr>{{range .Statuses}}<tr><form method="post" action="/admin/statuses"><input type="hidden" name="id" value="{{.ID}}"><td><select name="scope"><option {{if eq .Scope "request"}}selected{{end}}>request</option><option {{if eq .Scope "quest"}}selected{{end}}>quest</option></select></td><td><input name="value" value="{{.Value}}"></td><td><input name="label" value="{{.Label}}"></td><td><input class="small" name="sort_order" value="{{.Sort}}"></td><td><input type="checkbox" name="is_terminal" {{if .Terminal}}checked{{end}}></td><td><button>Speichern</button><button name="action" value="delete">Löschen</button></td></form></tr>{{end}}<tr><form method="post" action="/admin/statuses"><td><select name="scope"><option>request</option><option>quest</option></select></td><td><input name="value"></td><td><input name="label"></td><td><input class="small" name="sort_order" value="100"></td><td><input type="checkbox" name="is_terminal"></td><td><button>Anlegen</button></td></form></tr></table></div>
<div class="card"><h2>Quest-Templates</h2><p>Titel unterstützt Platzhalter <code>{{"{{item}}"}}</code> und <code>{{"{{quantity}}"}}</code>. reward_percent ist z.B. 0.25 für 25% des Anfragepreises.</p><table><tr><th>Typ</th><th>Titel</th><th>Abteilung</th><th>Reward%</th><th>Aktiv</th><th>Sort</th><th></th></tr>{{range .QuestTemplates}}<tr><form method="post" action="/admin/quest-templates"><input type="hidden" name="id" value="{{.ID}}"><td><input name="type" value="{{.Type}}"></td><td><input class="wide" name="title_template" value="{{.Title}}"></td><td><select name="department_id"><option value="0">-</option>{{$dept := .DeptID}}{{range $.Departments}}<option value="{{.ID}}" {{if eq .ID $dept}}selected{{end}}>{{.Name}}</option>{{end}}</select></td><td><input class="small" name="reward_percent" value="{{printf "%.4f" .Reward}}"></td><td><input type="checkbox" name="enabled" {{if .Enabled}}checked{{end}}></td><td><input class="small" name="sort_order" value="{{.Sort}}"></td><td><button>Speichern</button><button name="action" value="delete">Löschen</button></td></form></tr>{{end}}<tr><form method="post" action="/admin/quest-templates"><td><input name="type"></td><td><input class="wide" name="title_template"></td><td><select name="department_id"><option value="0">-</option>{{range .Departments}}<option value="{{.ID}}">{{.Name}}</option>{{end}}</select></td><td><input class="small" name="reward_percent" value="0.0000"></td><td><input type="checkbox" name="enabled" checked></td><td><input class="small" name="sort_order" value="100"></td><td><button>Anlegen</button></td></form></tr></table></div>
<div class="card"><h2>Workflow-Regeln</h2><table><tr><th>Name</th><th>Trigger</th><th>Condition JSON</th><th>Actions JSON</th><th>Aktiv</th><th></th></tr>{{range .WorkflowRules}}<tr><form method="post" action="/admin/workflow-rules"><input type="hidden" name="id" value="{{.ID}}"><td><input name="name" value="{{.Name}}"></td><td><input name="trigger_name" value="{{.Trigger}}"></td><td><textarea name="condition_json">{{.Condition}}</textarea></td><td><textarea name="actions_json">{{.Actions}}</textarea></td><td><input type="checkbox" name="enabled" {{if .Enabled}}checked{{end}}></td><td><button>Speichern</button><button name="action" value="delete">Löschen</button></td></form></tr>{{end}}<tr><form method="post" action="/admin/workflow-rules"><td><input name="name"></td><td><input name="trigger_name" value="request.created"></td><td><textarea name="condition_json">{}</textarea></td><td><textarea name="actions_json">[]</textarea></td><td><input type="checkbox" name="enabled" checked></td><td><button>Anlegen</button></td></form></tr></table></div>
</body></html>
+1
View File
@@ -0,0 +1 @@
<!doctype html><html lang="de"><head><meta charset="utf-8"><title>Trading Tool</title><style>body{font-family:system-ui;margin:2rem;background:#111;color:#eee}a{color:#9ad}table{border-collapse:collapse;width:100%;margin:1rem 0}td,th{border-bottom:1px solid #333;padding:.5rem;text-align:left;vertical-align:top}.card{background:#1b1b1b;border:1px solid #333;border-radius:.7rem;padding:1rem;margin:1rem 0}button,input,select,textarea{padding:.4rem;border-radius:.35rem}textarea{width:18rem;height:3rem}</style></head><body><p><a href="/requests/new">Neue Anfrage</a> · <a href="/admin">Admin-Konfiguration</a> · <a href="/logout">Logout</a></p><h1>Trading Dashboard</h1><div class="card"><h2>Anfragen</h2><table><tr><th>ID</th><th>Typ</th><th>Item</th><th>Menge</th><th>Preis</th><th>Status</th></tr>{{range .Requests}}<tr><td>{{.ID}}</td><td>{{.Kind}}</td><td>{{.Item}}</td><td>{{.Qty}}</td><td>{{printf "%.2f" .Price}}</td><td>{{.Status}}</td></tr>{{end}}</table></div><div class="card"><h2>Quests / Auftragnehmer-Workflow</h2><table><tr><th>ID</th><th>Typ</th><th>Titel</th><th>Abteilung</th><th>Status</th><th>Notiz</th><th>Aktion</th></tr>{{range .Quests}}<tr><td>{{.ID}}</td><td>{{.Type}}</td><td>{{.Title}}</td><td>{{.Dept}}</td><td>{{.Status}}</td><td>{{.Note}}</td><td><form method="post" action="/quests/update"><input type="hidden" name="id" value="{{.ID}}"><select name="status"><option>open</option><option>accepted</option><option>in_progress</option><option>done</option><option>blocked</option><option>change_requested</option><option>cancelled</option></select><br><textarea name="note" placeholder="Rückmeldung, Gegenvorschlag, Material fehlt …">{{.Note}}</textarea><br><button>Workflow aktualisieren</button></form></td></tr>{{end}}</table></div></body></html>
+1
View File
@@ -0,0 +1 @@
<!doctype html><html lang="de"><head><meta charset="utf-8"><title>Trading Login</title><style>body{font-family:system-ui;margin:3rem;background:#111;color:#eee}a,button{background:#7c5cff;color:white;padding:.8rem 1rem;border-radius:.5rem;text-decoration:none;border:0}</style></head><body><h1>Trading Tool</h1><p>Login über Pocket ID / OIDC.</p><a href="/auth/login">Mit Pocket ID anmelden</a></body></html>
+1
View File
@@ -0,0 +1 @@
<!doctype html><html lang="de"><head><meta charset="utf-8"><title>Neue Anfrage</title><style>body{font-family:system-ui;margin:2rem;background:#111;color:#eee}label{display:block;margin:.8rem 0}input,select,button{padding:.5rem;border-radius:.4rem}</style></head><body><p><a href="/">Zurück</a></p><h1>Neue Trading-Anfrage</h1><form method="post"><label>Typ <select name="kind"><option value="buy">Ankauf</option><option value="sell">Verkauf</option></select></label><label>Item <select name="item_id">{{range .Items}}<option value="{{.ID}}">{{.Name}}</option>{{end}}</select></label><label>Menge <input name="quantity" type="number" value="1" min="1"></label><label>Preisvorstellung <input name="price_limit" type="number" step="0.01" value="1000"></label><button>Anfrage erstellen und Quests generieren</button></form></body></html>