From 6154a7109f30e277fdd28ce34c9e716990f3d021 Mon Sep 17 00:00:00 2001 From: sourabpramanik Date: Sat, 30 Dec 2023 18:16:42 +0530 Subject: [PATCH 1/3] fix: file extension validation --- src/lib/elements/forms/inputFile.svelte | 1 + 1 file changed, 1 insertion(+) diff --git a/src/lib/elements/forms/inputFile.svelte b/src/lib/elements/forms/inputFile.svelte index 013e73f878..64864d2ec9 100644 --- a/src/lib/elements/forms/inputFile.svelte +++ b/src/lib/elements/forms/inputFile.svelte @@ -28,6 +28,7 @@ }); if (hasInvalidExt) { error = 'Invalid file extension'; + input.value = null; return; } From deee62175fbe180c096884c7bd1bad4dc8f4bbf6 Mon Sep 17 00:00:00 2001 From: sourabpramanik Date: Wed, 3 Jan 2024 06:49:50 +0530 Subject: [PATCH 2/3] fix(input): updated file validation --- src/lib/elements/forms/inputFile.svelte | 26 +++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/lib/elements/forms/inputFile.svelte b/src/lib/elements/forms/inputFile.svelte index 64864d2ec9..792da658cd 100644 --- a/src/lib/elements/forms/inputFile.svelte +++ b/src/lib/elements/forms/inputFile.svelte @@ -20,18 +20,6 @@ function setFiles(value: FileList) { if (!value) return; - const hasInvalidExt = Array.from(value).some((file) => { - const fileExtension = file.name.split('.').pop(); - return allowedFileExtensions?.length - ? !allowedFileExtensions.includes(fileExtension) - : false; - }); - if (hasInvalidExt) { - error = 'Invalid file extension'; - input.value = null; - return; - } - files = value; input.files = value; } @@ -79,6 +67,20 @@ const handleChange = (event: Event) => { const target = event.currentTarget as HTMLInputElement; + + const isValidFiles = Array.from(target.files).every((file) => { + const fileExtension = file.name.split('.').pop(); + return allowedFileExtensions?.length + ? allowedFileExtensions.includes(fileExtension) + : true; + }); + + if (!isValidFiles) { + error = 'Invalid file extension'; + target.value = ''; + return; + } + setFiles(target.files); }; From 4085c7576b0d4e10f3cd310712b13a7ec0c009e4 Mon Sep 17 00:00:00 2001 From: sourabpramanik Date: Thu, 4 Jan 2024 08:31:00 +0530 Subject: [PATCH 3/3] fix: function execute modal close action --- .../functions/function-[function]/+page.svelte | 7 +++++-- .../functions/function-[function]/execute.svelte | 11 +++-------- .../function-[function]/executions/+page.svelte | 7 +++++-- .../settings/executeFunction.svelte | 9 +++++++-- .../functions/function-[function]/store.ts | 2 ++ 5 files changed, 22 insertions(+), 14 deletions(-) diff --git a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte index 1462e407d6..aa0c3c17b2 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/+page.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/+page.svelte @@ -25,7 +25,7 @@ TableRow, TableScroll } from '$lib/elements/table'; - import { deploymentList, execute, func, proxyRuleList } from './store'; + import { deploymentList, execute, func, proxyRuleList, showFunctionExecute } from './store'; import { Container, ContainerHeader } from '$lib/layout'; import { app } from '$lib/stores/app'; import { calculateSize, humanFileSize } from '$lib/helpers/sizeConvertion'; @@ -151,7 +151,10 @@ diff --git a/src/routes/console/project-[project]/functions/function-[function]/execute.svelte b/src/routes/console/project-[project]/functions/function-[function]/execute.svelte index 278a3ceabd..4c10082c4b 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/execute.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/execute.svelte @@ -16,6 +16,7 @@ import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import type { Models } from '@appwrite.io/console'; + import { showFunctionExecute } from './store'; export let selectedFunction: Models.Function = null; @@ -34,13 +35,8 @@ { label: 'OPTIONS', value: 'OPTIONS' } ]; - let show = false; let submitting = false; - $: if (selectedFunction && !show) { - show = true; - } - const handleSubmit = async () => { submitting = true; try { @@ -80,7 +76,7 @@ function close() { selectedFunction = null; - show = false; + $showFunctionExecute = false; } afterNavigate(close); @@ -89,10 +85,9 @@

Manually execute your function. (selectedFunction = $func)}> + buttonMethod={() => { + selectedFunction = $func; + $showFunctionExecute = true; + }}>

The {tier} plan has limits

    diff --git a/src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte b/src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte index 112bc2758f..ba4d81ea3f 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte +++ b/src/routes/console/project-[project]/functions/function-[function]/settings/executeFunction.svelte @@ -2,7 +2,7 @@ import { CardGrid, Heading, SvgIcon } from '$lib/components'; import { Button } from '$lib/elements/forms'; import { toLocaleDateTime } from '$lib/helpers/date'; - import { execute, func } from '../store'; + import { execute, func, showFunctionExecute } from '../store'; @@ -26,6 +26,11 @@ - + diff --git a/src/routes/console/project-[project]/functions/function-[function]/store.ts b/src/routes/console/project-[project]/functions/function-[function]/store.ts index c08ec380a8..0bc01a1d46 100644 --- a/src/routes/console/project-[project]/functions/function-[function]/store.ts +++ b/src/routes/console/project-[project]/functions/function-[function]/store.ts @@ -12,6 +12,8 @@ export const proxyRuleList = derived( ($page) => $page.data.proxyRuleList as Models.ProxyRuleList ); export const execute: Writable = writable(); +export const showFunctionExecute: Writable = writable(false); + export const repositories: Writable<{ search: string; installationId: string;