diff --git a/frontend/src/lib/components/Editor.svelte b/frontend/src/lib/components/Editor.svelte index d79578f32a..2418cdd0e6 100644 --- a/frontend/src/lib/components/Editor.svelte +++ b/frontend/src/lib/components/Editor.svelte @@ -138,8 +138,18 @@ export function setCode(ncode: string): void { code = ncode - if (editor) { - editor.setValue(ncode) + if (editor?.getModel()) { + // editor.setValue(ncode) + editor.pushUndoStop() + + editor.executeEdits('set', [ + { + range: editor.getModel()!.getFullModelRange(), // full range + text: ncode + } + ]) + + editor.pushUndoStop() } } diff --git a/frontend/src/lib/components/ScriptBuilder.svelte b/frontend/src/lib/components/ScriptBuilder.svelte index 6e9024249a..a27bcee543 100644 --- a/frontend/src/lib/components/ScriptBuilder.svelte +++ b/frontend/src/lib/components/ScriptBuilder.svelte @@ -24,6 +24,7 @@ export let initialPath: string = '' export let template: 'pgsql' | 'mysql' | 'script' = 'script' export let initialArgs: Record = {} + export let lockedLanguage = false const langs: [string, SupportedLanguage][] = [ ['Typescript', Script.language.DENO], @@ -214,7 +215,13 @@ bind:value={script.summary} placeholder="Short summary to be displayed when listed" /> +

Language

+ {#if lockedLanguage} +
+ As a forked script, the language '{script.language}' cannot be modified. +
+ {/if}
{#each langs as [label, lang]} {@const isPicked = script.language == lang && template == 'script'} @@ -228,6 +235,7 @@ template = 'script' initContent(lang, script.kind, template) }} + disabled={lockedLanguage} > {label} @@ -237,6 +245,7 @@ variant="border" color={template == 'pgsql' ? 'blue' : 'dark'} btnClasses={template == 'pgsql' ? '!border-2 !bg-blue-50/75' : 'm-[1px]'} + disabled={lockedLanguage} on:click={() => { script.language = Script.language.DENO template = 'pgsql' diff --git a/frontend/src/lib/components/ScriptEditor.svelte b/frontend/src/lib/components/ScriptEditor.svelte index c7a4b562fa..121bff7e14 100644 --- a/frontend/src/lib/components/ScriptEditor.svelte +++ b/frontend/src/lib/components/ScriptEditor.svelte @@ -101,6 +101,7 @@ onMount(() => { inferSchema(code) + loadPastTests() }) diff --git a/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte b/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte index ca88318ecb..32ce9dd23d 100644 --- a/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte +++ b/frontend/src/routes/(root)/(logged)/scripts/add/+page.svelte @@ -11,8 +11,6 @@ // Default let schema: Schema = emptySchema() - let nodraft = $page.url.searchParams.get('nodraft') - const templatePath = $page.url.searchParams.get('template') const hubPath = $page.url.searchParams.get('hub') @@ -73,4 +71,4 @@ $dirtyStore = true - +