Add workspace management foundation
Test and publish / verify (push) Has been cancelled

This commit is contained in:
2026-08-02 23:17:42 +03:30
parent b0f486f026
commit 06fa677ec6
5 changed files with 121 additions and 1 deletions
+9
View File
@@ -31,6 +31,12 @@
<span>Hamkar<small>Team presence</small></span>
</a>
<nav>
{{if .Workspace.ID}}
<form method="post" action="/workspace/switch" class="workspace-switcher">
<input type="hidden" name="csrf" value="{{.CSRF}}">
<label>Workspace<select name="workspace_id" onchange="this.form.submit()">{{range .Workspaces}}<option value="{{.ID}}" {{if eq .ID $.Workspace.ID}}selected{{end}}>{{.Name}}</option>{{end}}</select></label>
</form>
{{end}}
<a href="/" class="{{if eq .SelectedSection "dashboard"}}active{{end}}">
<span class="nav-icon"></span> Overview
</a>
@@ -55,6 +61,9 @@
<a href="/admin/users" class="{{if eq .SelectedSection "users"}}active{{end}}">
<span class="nav-icon"></span> Teammates
</a>
<a href="/admin/workspaces" class="{{if eq .SelectedSection "workspaces"}}active{{end}}">
<span class="nav-icon"></span> Workspaces
</a>
<a href="/reports" class="{{if eq .SelectedSection "reports"}}active{{end}}">
<span class="nav-icon"></span> Reports
</a>
+18
View File
@@ -0,0 +1,18 @@
{{define "workspaces.html"}}
{{template "shell-start" .}}
<header class="page-head"><div><p class="eyebrow">ADMIN</p><h1>Workspaces</h1><p>Create separate spaces for teams and switch between them.</p></div></header>
{{template "notice" .}}
<div class="two-column users-layout">
<section class="card form-card"><p class="eyebrow">NEW WORKSPACE</p><h2>Create a workspace</h2>
<form method="post" action="/admin/workspaces" class="stack-form"><input type="hidden" name="csrf" value="{{.CSRF}}">
<label>Workspace name<input name="name" required maxlength="100" placeholder="Product team"></label>
<label>Workspace slug<input name="slug" required maxlength="60" pattern="[a-z0-9-]+" placeholder="product-team"><small>Lowercase letters, numbers, and hyphens.</small></label>
<button class="button primary full">Create workspace</button>
</form>
</section>
<section class="card"><header class="section-head"><div><p class="eyebrow">YOUR SPACES</p><h2>{{len .Workspaces}} workspaces</h2></div></header>
<div class="user-list">{{range .Workspaces}}<div class="user-row"><span class="avatar"></span><div><strong>{{.Name}}</strong><small>{{.Slug}}</small></div>{{if eq .ID $.Workspace.ID}}<span class="badge approved">Current</span>{{else}}<form method="post" action="/workspace/switch"><input type="hidden" name="csrf" value="{{$.CSRF}}"><input type="hidden" name="workspace_id" value="{{.ID}}"><button class="text-button" type="submit">Switch</button></form>{{end}}</div>{{end}}</div>
</section>
</div>
{{template "shell-end" .}}
{{end}}