diff --git a/src/components/scripts/ScriptFormModal.vue b/src/components/scripts/ScriptFormModal.vue index 5524d90f..628709c8 100644 --- a/src/components/scripts/ScriptFormModal.vue +++ b/src/components/scripts/ScriptFormModal.vue @@ -2,9 +2,11 @@ @@ -363,6 +365,13 @@ function loadEditor() { downloadScript(script.id, { with_snippets: props.readonly }).then((r) => { script.script_body = r.code; editor.setValue(r.code); + + watch( + () => script.script_body, + () => { + edited.value = true; + }, + ); }); // watch for changes in language @@ -394,6 +403,21 @@ function generateScriptOpenAI() { }); } +// add are you sure prompt to unsaved script +const edited = ref(false); + +function closeEditor() { + if (edited.value) + $q.dialog({ + title: "You have unsaved changes. Are you sure you want to close?", + cancel: true, + ok: true, + }).onOk(async () => { + unloadEditor(); + }); + else unloadEditor(); +} + // component life cycle hooks onMounted(async () => { agentLoading.value = true;