@@ -0,0 +1,56 @@
|
||||
{{define "title"}}Garten bearbeiten{{end}}
|
||||
{{define "main"}}
|
||||
{{$garden := .Garden}}{{$current := .CurrentUser}}{{$forms := .Form}}
|
||||
<header class='page-heading'><div><p class='eyebrow'>Garten</p><h2>Garten bearbeiten</h2></div></header>
|
||||
<div class='settings-layout'>
|
||||
<aside class='settings-sidebar panel'><nav aria-label='Bearbeitungsbereiche'>
|
||||
{{if canGarden $garden "garden:update"}}<a href='#garden-general'>Allgemein</a>{{end}}
|
||||
<a href='#garden-members'>Mitglieder</a>
|
||||
{{if canGarden $garden "members:write"}}<a href='#garden-invites'>Einladungen</a>{{end}}
|
||||
{{if canGarden $garden "garden:delete"}}<a href='#garden-role-editor'>Rollen</a><a href='#garden-delete'>Garten löschen</a>{{end}}
|
||||
</nav></aside>
|
||||
<div class='settings-content'>
|
||||
{{if canGarden $garden "garden:update"}}
|
||||
<section class='panel' id='garden-general'>
|
||||
<h3>Allgemein</h3>
|
||||
{{$form := $forms.Garden}}
|
||||
<form method='POST' action='{{webPath "garden.edit" $garden.ID}}'>{{template "garden_fields" (dict "Form" $form "CSRFToken" .CSRFToken "Images" $.Images "GardenID" $garden.ID)}}<div class='actions'><button type='submit'>Speichern</button><a href='{{webPath "plants" $garden.ID}}'>Abbrechen</a></div></form>
|
||||
</section>
|
||||
{{end}}
|
||||
|
||||
<section class='panel member-list' id='garden-members'>
|
||||
<h3>Mitglieder</h3>
|
||||
{{range .Members}}{{$member := .}}
|
||||
<article class='member-row'><div><strong>{{.Name}}</strong><br><span>{{.Email}} · {{.Role}}</span></div>
|
||||
{{if and (canGarden $garden "members:write") (neInt .UserID $current.ID) (neString .Role "owner")}}
|
||||
<div class='actions'>
|
||||
<form method='POST' action='{{webPath "garden.member.role" $garden.ID .UserID}}'><input type='hidden' name='csrf_token' value='{{$.CSRFToken}}'><select name='role'>{{range $.GardenRoles}}{{if neString .Name "owner"}}<option value='{{.Name}}' {{if eqString .Name $member.Role}}selected{{end}}>{{.Label}}</option>{{end}}{{end}}</select><button>Rolle speichern</button></form>
|
||||
<form method='POST' action='{{webPath "garden.member.delete" $garden.ID .UserID}}'><input type='hidden' name='csrf_token' value='{{$.CSRFToken}}'><button class='danger'>Entfernen</button></form>
|
||||
{{if and (canGarden $garden "garden:delete") (neInt .UserID $current.ID)}}<form method='POST' action='{{webPath "garden.member.transfer" $garden.ID .UserID}}'><input type='hidden' name='csrf_token' value='{{$.CSRFToken}}'><button class='secondary'>Eigentum übertragen</button></form>{{end}}
|
||||
</div>{{end}}
|
||||
</article>{{else}}<p>Keine Mitglieder vorhanden.</p>{{end}}
|
||||
</section>
|
||||
|
||||
{{if canGarden $garden "members:write"}}
|
||||
<section class='panel' id='garden-invites'><h3>Mitglied einladen</h3>{{$invite := $forms.Invite}}<form method='POST' action='{{webPath "garden.invite.new" $garden.ID}}'><input type='hidden' name='csrf_token' value='{{.CSRFToken}}'><label for='email'>E-Mail-Adresse</label><input id='email' name='email' type='email' value='{{$invite.Email}}' required>{{with index $invite.Errors "email"}}<p class='field-error'>{{.}}</p>{{end}}<label for='role'>Rolle</label><select id='role' name='role'>{{range .GardenRoles}}{{if neString .Name "owner"}}<option value='{{.Name}}' {{if eqString .Name $invite.Role}}selected{{end}}>{{.Label}}</option>{{end}}{{end}}</select>{{with index $invite.Errors "role"}}<p class='field-error'>{{.}}</p>{{end}}<button>Einladung senden</button></form></section>
|
||||
<section class='panel'><h3>Offene Einladungen</h3>{{range .Invites}}<div class='member-row'><span>{{.Email}} · {{.Role}} · bis {{humanDate .ExpiresAt}}</span><form method='POST' action='{{webPath "garden.invite.delete" $garden.ID .ID}}'><input type='hidden' name='csrf_token' value='{{$.CSRFToken}}'><button class='link-button danger-text'>Widerrufen</button></form></div>{{else}}<p>Keine offenen Einladungen.</p>{{end}}</section>
|
||||
{{end}}
|
||||
|
||||
{{if canGarden $garden "garden:delete"}}{{range .RoleEditors}}{{template "role_editor" .}}{{end}}{{end}}
|
||||
|
||||
{{if canGarden $garden "garden:delete"}}
|
||||
<section class='panel danger-panel' id='garden-delete'>
|
||||
<div><h3>Garten löschen</h3><p>Der Garten und alle zugehörigen Inhalte werden dauerhaft gelöscht. Diese Aktion kann nicht rückgängig gemacht werden.</p></div>
|
||||
<button type='button' class='danger' aria-haspopup='dialog' aria-controls='delete-garden-dialog' data-open-dialog='delete-garden-dialog'>Garten löschen</button>
|
||||
</section>
|
||||
<dialog id='delete-garden-dialog' class='confirm-dialog' aria-labelledby='delete-garden-title'>
|
||||
<form method='POST' action='{{webPath "garden.delete" $garden.ID}}'>
|
||||
<input type='hidden' name='csrf_token' value='{{.CSRFToken}}'>
|
||||
<h3 id='delete-garden-title'>„{{$garden.Name}}“ wirklich löschen?</h3>
|
||||
<p>Alle Pflanzen, Orte, Aufgaben, Tagebucheinträge und Mitgliedschaften dieses Gartens werden unwiderruflich gelöscht.</p>
|
||||
<div class='actions'><button type='button' class='secondary' data-cancel-dialog>Abbrechen</button><button type='submit' class='danger'>Endgültig löschen</button></div>
|
||||
</form>
|
||||
</dialog>
|
||||
{{end}}
|
||||
</div></div>
|
||||
{{end}}
|
||||
Reference in New Issue
Block a user