saveChanges()}> {#await groupInputsOptions()}
Chargement des groupes…
{:then { groupOptions, coOrganizersOptions, allGroups }}

Informations

{#if event.id} {/if} `Déjà choisi`} multiple label="Co-organisé par" placeholder="Aucun groupe" bind:groups={event.coOrganizers} > [g, ...g.children]), )[event.visibility]} bind:value={event.visibility} options={DISPLAY_VISIBILITIES} />

Récurrence

{ event.frequency = event.frequency === EventFrequency.Once ? EventFrequency.Weekly : EventFrequency.Once; }} label="L'évènement se répète" value={event.frequency !== EventFrequency.Once} > {#if event.frequency !== EventFrequency.Once} {:else}

Billets
{ event.ticketGroups = [ ...event.ticketGroups, { id: nextTicketGroupId(), name: '', capacity: 0, tickets: [], }, ]; }} > Groupe { const id = nextTicketId(); event.tickets = [...event.tickets, defaultTicket(id)]; expandedTicketId = id; }} > Billet

{#if event.tickets.length + event.ticketGroups.length <= 0}

Aucun billet

{/if}
{#each event.ticketGroups as ticketGroup, i}
{#each ticketGroup.tickets as ticket, j (ticket.id)} { ticketGroup.tickets = ticketGroup.tickets.filter( ({ id }) => id !== ticket.id, ); }} bind:expandedTicketId bind:ticket={event.ticketGroups[i].tickets[j]} /> {/each}
{ const id = nextTicketId(); event.ticketGroups[i].tickets = [ ...event.ticketGroups[i].tickets, defaultTicket(id), ]; expandedTicketId = id; }}>Billet { if (ticketGroup.tickets.some((t) => expanded(t, expandedTicketId))) expandedTicketId = ''; event.ticketGroups = event.ticketGroups.filter( (tg) => tg.id !== ticketGroup.id, ); }}>Supprimer le groupe
{/each}
{#each event.tickets as ticket (ticket.id)} {#if !ticketIsInGroup(ticket)} { event.tickets = event.tickets.filter(({ id }) => id !== ticket.id); }} bind:expandedTicketId bind:ticket /> {/if} {/each}
{/if}

Managers {#if canEditManagers} { event.managers = [ ...event.managers, { user: { uid: '', firstName: '', lastName: '', pictureFile: '', fullName: '' }, ...permissionsFromLevel('readonly'), }, ]; }}>Manager {/if}

Les membres de {event.group.name} avec la permission "Peut scanner tout les évènements" n'ont pas besoin d'être rajoutés avec la permission "Scanner des billets"

{#if event.managers.length <= 0}

Aucun manager

{/if} {#if serverError} Impossible de sauvegarder l'évènement: {serverError} {/if}

Bannis

Pour interdire à des personnes de réserver une place sur cet évènement

{ if (!newBannedUser) return; event.bannedUsers = [...event.bannedUsers, newBannedUser]; newBannedUser = undefined; }} class="new-ban" > Bannir
    {#each event.bannedUsers as user}
  • { event.bannedUsers = event.bannedUsers.filter(({ uid }) => uid !== user.uid); }} icon={IconClose}>Autoriser
  • {/each}
{#if confirmingDelete}

Es-tu sûr·e ?

{ confirmingDelete = false; }}>Annuler { confirmingDelete = false; toasts.success('Évènement supprimé', `L'évènement ${event.title} a bien été supprimé`, { lifetime: 5000, showLifetime: true, data: { confirm: true, id: event.id, gotoOnCancel: `/events/${event.group.uid}/${event.uid}/edit/`, }, labels: { action: 'Annuler', close: 'OK', }, async action(toast) { toast.data.confirm = false; await toasts.remove(toast.id); await goto(toast.data.gotoOnCancel); }, async closed({ data: { id, confirm } }) { if (confirm) { await $zeus.mutate({ deleteEventPicture: [{ id }, true], deleteEvent: [{ id }, true], }); } }, }); await goto('/'); }} danger>Oui { event.visibility = Visibility.Private; confirmingDelete = false; }}>Rendre privé {:else} Enregistrer {#if event.id} { confirmingDelete = true; }}>Supprimer {/if} {/if}
{/await}