{#if mode === 'edit'}
{/if} {#if tab === 'general'} {#if descLoaded} (description = h)} /> {:else}

Loading description...

{/if}
{#if mode === 'create'} {/if}

Lower positions come first. A user limit of 0 uses the server default.

{:else if !acl}

Loading permissions...

{:else if tab === 'permissions'}
    {#each acl.acls as r, i (i)}
  • {:else}
  • No rules yet
  • {/each}
{#if rule} {#if rule.inherited}

Inherited from a parent channel. Edit it there, or turn off inheriting above.

{/if}
{#each groupSuggestions as g (g)}{/each}
{#each permList as p (p.bit)} {/each}
PermissionAllowDeny
{p.name} setBit('grant', p.bit, e.currentTarget.checked)} /> setBit('deny', p.bit, e.currentTarget.checked)} />
{:else}

Select a rule, or add one.

{/if}
{:else}
    {#each acl.groups as g (g.name)}
  • {:else}
  • No groups yet
  • {/each}
{ if (e.key === 'Enter') addGroup(); }} />
{#if group}

Members added here

    {#each group.add as id (id)}
  • {userName(id)}
  • {:else}
  • Nobody yet
  • {/each}
{ if (e.key === 'Enter') addMember(); }} />
{#if group.inheritedMembers.length}

Inherited members

    {#each group.inheritedMembers as id (id)} {@const excluded = group.remove.includes(id)}
  • {userName(id)}
  • {/each}
{/if} {:else}

Select a group, or add one.

{/if}
{/if} {#if error}

{error}

{/if} {#snippet footer()} {/snippet}