|
154 | 154 | <i class="fa-solid fa-save" />
|
155 | 155 | </template>
|
156 | 156 | <template #label>
|
157 |
| - <span>Speichern</span> |
| 157 | + <span v-if="tab === Tab.EVENT_SLOTS">Slots speichern</span> |
| 158 | + <span v-else-if="tab === Tab.EVENT_DATA">Event speichern</span> |
| 159 | + <span v-else-if="tab === Tab.EVENT_POSITIONS">Crew speichern</span> |
158 | 160 | </template>
|
159 | 161 | </AsyncButton>
|
160 | 162 | </template>
|
@@ -359,19 +361,44 @@ async function editSlot(slotkey: SlotKey): Promise<void> {
|
359 | 361 | }
|
360 | 362 |
|
361 | 363 | async function save(): Promise<void> {
|
362 |
| - if (event.value) { |
363 |
| - try { |
364 |
| - await eventAdministrationUseCase.updateEvent(event.value.key, event.value); |
365 |
| - } catch (e) { |
366 |
| - errorHandlingUseCase.handleError({ |
367 |
| - title: 'Speichern fehlgeschlagen', |
368 |
| - message: `Deine Änderungen konnten nicht gespeichert werden. Bitte versuche es erneut. Sollte der Fehler |
369 |
| - wiederholt auftreten, melde ihn gerne.`, |
370 |
| - error: e, |
371 |
| - retry: () => save(), |
372 |
| - }); |
373 |
| - throw e; |
| 364 | + if (!event.value) { |
| 365 | + return; |
| 366 | + } |
| 367 | + try { |
| 368 | + switch (tab.value) { |
| 369 | + case Tab.EVENT_DATA: |
| 370 | + await eventAdministrationUseCase.updateEvent(event.value.key, { |
| 371 | + name: event.value.name, |
| 372 | + description: event.value.description, |
| 373 | + type: event.value.type, |
| 374 | + start: event.value.start, |
| 375 | + end: event.value.end, |
| 376 | + state: event.value.state, |
| 377 | + locations: event.value.locations, |
| 378 | + }); |
| 379 | + break; |
| 380 | + case Tab.EVENT_SLOTS: |
| 381 | + await eventAdministrationUseCase.updateEvent(event.value.key, { |
| 382 | + slots: event.value.slots, |
| 383 | + }); |
| 384 | + break; |
| 385 | + case Tab.EVENT_POSITIONS: |
| 386 | + await eventAdministrationUseCase.updateEvent(event.value.key, { |
| 387 | + registrations: event.value.registrations, // TODO |
| 388 | + }); |
| 389 | + break; |
| 390 | + default: |
374 | 391 | }
|
| 392 | + } catch (e) { |
| 393 | + errorHandlingUseCase.handleError({ |
| 394 | + title: 'Speichern fehlgeschlagen', |
| 395 | + message: `Deine Änderungen konnten nicht gespeichert werden. Bitte versuche es erneut. Sollte der Fehler |
| 396 | + wiederholt auftreten, melde ihn gerne.`, |
| 397 | + error: e, |
| 398 | + retry: () => save(), |
| 399 | + }); |
| 400 | + // throw again for the async button to handle error state |
| 401 | + throw e; |
375 | 402 | }
|
376 | 403 | }
|
377 | 404 |
|
|
0 commit comments