diff --git a/src/routes/console/project-[project]/functions/function/[function]/settings/+page.svelte b/src/routes/console/project-[project]/functions/function/[function]/settings/+page.svelte index 4bed65b6e..0305631e4 100644 --- a/src/routes/console/project-[project]/functions/function/[function]/settings/+page.svelte +++ b/src/routes/console/project-[project]/functions/function/[function]/settings/+page.svelte @@ -5,6 +5,7 @@ Button, InputNumber, InputSelect, + InputText, InputCron, Form, FormList @@ -22,6 +23,7 @@ import Upload from './uploadVariables.svelte'; import { toLocaleDateTime } from '$lib/helpers/date'; import { variableList } from '../../../store'; + import { breadcrumbs, title } from '$lib/stores/layout'; const functionId = $page.params.function; let showDelete = false; @@ -32,6 +34,7 @@ let showVariablesDropdown = []; let timeout = 0; let deployment: Models.Deployment = null; + let functionName: string = null; onMount(async () => { if ($func?.$id !== functionId) { @@ -39,7 +42,8 @@ } await variableList.load(functionId); deployment = await func.getDeployment(functionId, $func.deployment); - timeout = $func.timeout; + timeout ??= $func.timeout; + functionName ??= $func.name; }); let options = [ @@ -47,6 +51,26 @@ { label: 'minutes', value: 'minutes' } ]; + async function updateName() { + try { + await sdkForProject.functions.update(functionId, functionName, $func.execute); + $func.name = functionName; + title.set(functionName); + const breadcrumb = $breadcrumbs.get($breadcrumbs.size); + breadcrumb.title = functionName; + $breadcrumbs = $breadcrumbs.set($breadcrumbs.size, breadcrumb); + addNotification({ + message: 'Name has been updated', + type: 'success' + }); + } catch (error) { + addNotification({ + message: error.message, + type: 'error' + }); + } + } + async function updateTimeout() { try { await sdkForProject.functions.update( @@ -184,6 +208,28 @@ +
+ +
Update Name
+ + +
    + +
+
+ + + + +
+
+
console.log($func.schedule)}>

Update CRON Schedule

diff --git a/src/routes/console/project-[project]/functions/function/[function]/settings/uploadVariables.svelte b/src/routes/console/project-[project]/functions/function/[function]/settings/uploadVariables.svelte index 5c67f84e4..1e4502f2e 100644 --- a/src/routes/console/project-[project]/functions/function/[function]/settings/uploadVariables.svelte +++ b/src/routes/console/project-[project]/functions/function/[function]/settings/uploadVariables.svelte @@ -9,7 +9,8 @@ let list = new DataTransfer(); let files: FileList; - let variables: object = null; + let input: HTMLInputElement; + let variables: object = {}; const handleSubmit = async () => { dispatch('uploaded', variables); @@ -18,7 +19,9 @@ function dropHandler(ev: DragEvent) { ev.preventDefault(); if (ev.dataTransfer.items) { + // Use DataTransferItemList interface to access the file(s) for (let i = 0; i < ev.dataTransfer.items.length; i++) { + // If dropped items aren't files, reject them if (ev.dataTransfer.items[i].kind === 'file') { list.items.clear(); list.items.add(ev.dataTransfer.items[i].getAsFile()); @@ -31,8 +34,26 @@ function dragOverHandler(ev: DragEvent) { ev.preventDefault(); } + + async function parseFile(file: File) { + if (file) { + let text = await file.text(); + + text.split('\n').forEach((line) => { + const [key, value] = line.split('='); + variables[key] = value; + }); + + return variables; + } + } + + $: console.log(parseFile(files?.length ? files[0] : null)); + $: console.log(variables); + + Upload Variables @@ -44,8 +65,8 @@

Attach a file

dropHandler(e)} - on:dragover|preventDefault={(e) => dragOverHandler(e)}> + on:drop|preventDefault={dropHandler} + on:dragover|preventDefault={dragOverHandler}>
+ diff --git a/src/routes/console/project-[project]/storage/bucket/[bucket]/_create.svelte b/src/routes/console/project-[project]/storage/bucket/[bucket]/_create.svelte index fe94f6e7f..f434fda50 100644 --- a/src/routes/console/project-[project]/storage/bucket/[bucket]/_create.svelte +++ b/src/routes/console/project-[project]/storage/bucket/[bucket]/_create.svelte @@ -88,7 +88,7 @@

Drag and drop files here to upload

-