From cf2818580afae893822ea0a61ae92c83f9fe9775 Mon Sep 17 00:00:00 2001 From: Arman Date: Wed, 5 Oct 2022 12:00:10 +0200 Subject: [PATCH] feat: more work on event creation modal --- .../functions/createEvent.svelte | 170 +++++++++++------- 1 file changed, 104 insertions(+), 66 deletions(-) diff --git a/src/routes/console/project-[project]/functions/createEvent.svelte b/src/routes/console/project-[project]/functions/createEvent.svelte index ac80e538d..6233c945f 100644 --- a/src/routes/console/project-[project]/functions/createEvent.svelte +++ b/src/routes/console/project-[project]/functions/createEvent.svelte @@ -9,7 +9,7 @@ let selectedRequest: typeof selectedService['requests'][0] = null; let selectedEvent: string = null; let selectedAttribute: string = null; - let showInfo: string = null; + let helper: string = null; let inputData: string = null; let showInput = false; @@ -66,30 +66,38 @@ event: string, attribute: string ) { - let data = []; + let data = new Map(); //SERVICE if (service) { - data.push({ value: service.name, description: 'service' }); - data.push({ value: '*', description: `event` }); + data.set('service', { value: service.name, description: 'service' }); } //REQUEST if (request) { - data.push({ value: request.name, description: 'request' }); - data[1].description = `ID of ${service?.name.slice(0, -1)}`; - data.push({ value: '*', description: `event` }); - } + if (request.name === 'documents') { + data.set('collection', { + value: 'collections.*.documents', + description: 'request' + }); + } else + data.set('request', { + value: request.name, + description: `ID of ${service?.name.slice(0, -1)}` + }); + } else if (service) data.set('request', { value: '*', description: 'request' }); //EVENT if ((event && request?.events?.includes(event)) ?? service?.events?.includes(event)) { - data[data.length - 1] = { value: event, description: 'event' }; - } else if (service) { - data[data.length - 1] = { value: '*', description: 'event' }; + data.set('event', { value: event, description: 'event' }); + } else if (request) { + data.set('event', { value: '*', description: `event` }); } //ATTRIBUTE if (attribute && !request) { - data.push({ value: attribute, description: 'attribute' }); + data.set('attribute', { value: attribute, description: 'attribute' }); + } else if (event && service.name === 'users' && !request) { + data.set('attribute', { value: '*', description: `attribute` }); } return data; } @@ -100,19 +108,34 @@ selectedEvent, selectedAttribute ); - $: copyValue = inputData ?? eventString.map((d) => d.value).join('.'); + $: copyValue = + inputData ?? + Array.from(eventString.values()) + .map((d) => d.value) + .join('.'); $: if (selectedService) { selectedRequest = null; selectedEvent = null; selectedAttribute = null; } - $: if (!showInput) { - showInfo = null; + helper = null; + } + + $: if (!showCreate) { + selectedService = null; + selectedRequest = null; + selectedEvent = null; + selectedAttribute = null; + helper = null; + inputData = null; + showInput = false; } $: console.log(eventString); + + //TODO: remove inline style
@@ -124,6 +147,7 @@
{#each services as service} (selectedService = service)}>{service.name} @@ -136,6 +160,7 @@
{#each selectedService.requests as request} { @@ -151,6 +176,7 @@
{#each selectedRequest?.events ?? selectedService?.events as event} { @@ -167,6 +193,7 @@
{#each selectedService?.attributes as attribute} { @@ -178,60 +205,71 @@
{/if} - {#if showInput} -
- -
- - + {/if} + {#if showInput} +
+ +
+ + +
+
+ {:else} +
+
+
+ {#each Array.from(eventString.values()) as route, i} + + {/each}
- {:else} -
-
-
- {#each eventString as route, i} - - {/each} -
-
-
- - -
- {#if showInfo} - {showInfo} - {/if} +
+ +
- {/if} + {#if helper} + {helper} + {/if} +
{/if}