From cdc1cceb3436561944916e3f97c9ab70732ce4ea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Paunovi=C4=87?= Date: Mon, 27 Jan 2025 19:02:11 +0100 Subject: [PATCH] feat(ui): multiple improvements of no code editor (#6981) * feat(ui): introduced re-worked metadata inputs * chore(ui): reset panel on each breadcrumb click * chore(ui): improve styling of metadata inputs section * chore(ui): improve the metadata inputs section --- .../code/components/Breadcrumbs.vue | 5 +- .../code/components/inputs/InputPair.vue | 9 +- ui/src/components/code/segments/Editor.vue | 74 ++++++---- ui/src/components/code/utils/types.ts | 5 +- ui/src/components/flows/MetadataInputs.vue | 120 ++++++---------- .../flows/MetadataInputsContent.vue | 130 ++++++++++++++++++ ui/src/components/inputs/EditorView.vue | 12 +- ui/src/stores/code.ts | 7 +- ui/src/translations/en.json | 3 +- ui/src/translations/pt.json | 2 +- 10 files changed, 247 insertions(+), 120 deletions(-) create mode 100644 ui/src/components/flows/MetadataInputsContent.vue diff --git a/ui/src/components/code/components/Breadcrumbs.vue b/ui/src/components/code/components/Breadcrumbs.vue index a10f670b7f5..b90a00cfe02 100644 --- a/ui/src/components/code/components/Breadcrumbs.vue +++ b/ui/src/components/code/components/Breadcrumbs.vue @@ -4,7 +4,10 @@ v-for="(breadcrumb, index) in breadcrumbs" :key="index" class="item" - @click="store.commit('code/removeBreadcrumb', {position: index})" + @click=" + (store.commit('code/removeBreadcrumb', {position: index}), + store.commit('code/unsetPanel')) + " > {{ breadcrumb.label }} diff --git a/ui/src/components/code/components/inputs/InputPair.vue b/ui/src/components/code/components/inputs/InputPair.vue index ca09d99382c..b25dedf764d 100644 --- a/ui/src/components/code/components/inputs/InputPair.vue +++ b/ui/src/components/code/components/inputs/InputPair.vue @@ -7,22 +7,21 @@ :key="index" :gutter="10" > - + - + - - - + diff --git a/ui/src/components/code/segments/Editor.vue b/ui/src/components/code/segments/Editor.vue index 9558858bad0..eb1823e2a3b 100644 --- a/ui/src/components/code/segments/Editor.vue +++ b/ui/src/components/code/segments/Editor.vue @@ -1,34 +1,47 @@ + + + + + + diff --git a/ui/src/components/inputs/EditorView.vue b/ui/src/components/inputs/EditorView.vue index ee1cd17fe05..fc498ea481b 100644 --- a/ui/src/components/inputs/EditorView.vue +++ b/ui/src/components/inputs/EditorView.vue @@ -637,7 +637,7 @@ // validate flow on first load store - .dispatch("flow/validateFlow", {flow: yamlWithNextRevision.value}) + .dispatch("flow/validateFlow", {flow: props.isCreating ? flowYaml.value : yamlWithNextRevision.value}) .then((value) => { if (validationDomElement.value && editorDomElement.value) { validationDomElement.value.onResize( @@ -807,7 +807,7 @@ if(!currentIsFlow) return; return store - .dispatch("flow/validateFlow", {flow: yamlWithNextRevision.value}) + .dispatch("flow/validateFlow", {flow: props.isCreating ? flowYaml.value : yamlWithNextRevision.value}) .then((value) => { if ( flowHaveTasks() && @@ -913,7 +913,9 @@ ); }; - const validateFlow = (flow = yamlWithNextRevision.value) => { + const validateFlow = (flow) => { + if(!flow) return; + return store .dispatch("flow/validateFlow", {flow}) .then((value) => { @@ -933,7 +935,7 @@ if(shouldSave) { metadata.value = {...metadata.value, ...event}; onSaveMetadata(); - validateFlow() + validateFlow(flowYaml.value) } else { metadata.value = event; @@ -1052,7 +1054,7 @@ haveChange.value = false; await store.dispatch("flow/validateFlow", { - flow: yamlWithNextRevision.value, + flow: props.isCreating ? flowYaml.value : yamlWithNextRevision.value }); }; diff --git a/ui/src/stores/code.ts b/ui/src/stores/code.ts index ecbc0c8a489..6a0560d285c 100644 --- a/ui/src/stores/code.ts +++ b/ui/src/stores/code.ts @@ -34,11 +34,16 @@ export default { clearBreadcrumbs(state: State) { state.breadcrumbs = []; }, - setPanel(state: State, panel: Component) { + setPanel( + state: State, + {breadcrumb, panel}: { breadcrumb: Breadcrumb; panel: Component }, + ) { state.panel = panel; + state.breadcrumbs[1] = {...breadcrumb, panel: true}; }, unsetPanel(state: State) { state.panel = undefined; + state.breadcrumbs.splice(1); }, }, }; diff --git a/ui/src/translations/en.json b/ui/src/translations/en.json index 7cae5f15dd8..c1643de6d57 100644 --- a/ui/src/translations/en.json +++ b/ui/src/translations/en.json @@ -1100,7 +1100,8 @@ "save": { "tasks": "Save task", "triggers": "Save trigger", - "error handlers": "Save error handler" + "error handlers": "Save error handler", + "input": "Save input" } } } diff --git a/ui/src/translations/pt.json b/ui/src/translations/pt.json index 4c8936b6528..2e56ad8cf95 100644 --- a/ui/src/translations/pt.json +++ b/ui/src/translations/pt.json @@ -359,7 +359,7 @@ }, "cancel": "Cancelar", "homeDashboard": { - "title": "Painéis", + "title": "Dashboards", "today": "Hoje", "yesterday": "Ontem", "last28Days": "Últimos 28 dias",