From b823d9c28badbe3a5df28bff3c54d07b8ec99b03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Milo=C5=A1=20Paunovi=C4=87?= Date: Wed, 22 Jan 2025 08:25:58 +0100 Subject: [PATCH] feat(ui): improvements of no code editor (#6876) --- ui/src/components/code/components/Add.vue | 8 +- .../code/components/Breadcrumbs.vue | 57 +++++++++----- .../code/components/inputs/InputPair.vue | 4 +- .../code/components/inputs/InputText.vue | 3 +- ui/src/components/code/segments/Editor.vue | 28 +++++-- ui/src/components/code/segments/Task.vue | 67 +++++++++++++--- ui/src/components/code/utils/types.ts | 1 + ui/src/components/flows/tasks/TaskBoolean.vue | 5 +- ui/src/components/flows/tasks/TaskComplex.vue | 64 +++++++-------- ui/src/components/flows/tasks/TaskObject.vue | 77 ++++++++++++------- ui/src/components/flows/tasks/TaskString.vue | 41 ++++++---- ui/src/components/inputs/EditorView.vue | 3 - ui/src/stores/code.ts | 36 +++++++++ ui/src/stores/store.js | 4 +- ui/src/translations/en.json | 8 +- 15 files changed, 271 insertions(+), 135 deletions(-) create mode 100644 ui/src/stores/code.ts diff --git a/ui/src/components/code/components/Add.vue b/ui/src/components/code/components/Add.vue index 4888ae3a1c1..e9a65886b68 100644 --- a/ui/src/components/code/components/Add.vue +++ b/ui/src/components/code/components/Add.vue @@ -1,6 +1,10 @@ @@ -9,7 +13,7 @@ const {t} = useI18n({useScope: "global"}); const emits = defineEmits(["add"]); - const props = defineProps({what: {type: String, required: true}}); + const props = defineProps({what: {type: String, default: undefined}}); diff --git a/ui/src/components/flows/tasks/TaskString.vue b/ui/src/components/flows/tasks/TaskString.vue index 6ed29b0ffe4..7ee7cdb421e 100644 --- a/ui/src/components/flows/tasks/TaskString.vue +++ b/ui/src/components/flows/tasks/TaskString.vue @@ -8,23 +8,20 @@ /> diff --git a/ui/src/components/inputs/EditorView.vue b/ui/src/components/inputs/EditorView.vue index 02eb2d764a9..d89a3361bc8 100644 --- a/ui/src/components/inputs/EditorView.vue +++ b/ui/src/components/inputs/EditorView.vue @@ -114,9 +114,6 @@ params: {tenant: routeParams.tenant}, }) " - @open-new-error="isNewErrorOpen = true" - @open-new-trigger="isNewTriggerOpen = true" - @open-edit-metadata="isEditMetadataOpen = true" @export="exportYaml" :is-namespace="isNamespace" /> diff --git a/ui/src/stores/code.ts b/ui/src/stores/code.ts new file mode 100644 index 00000000000..dc55d97a579 --- /dev/null +++ b/ui/src/stores/code.ts @@ -0,0 +1,36 @@ +import {Breadcrumb} from "../components/code/utils/types"; + +interface State { + breadcrumbs: Breadcrumb[]; +} + +export default { + namespaced: true, + state: (): State => ({ + breadcrumbs: [], + }), + mutations: { + addBreadcrumbs( + state: State, + { + breadcrumb, + position, + }: { breadcrumb: Breadcrumb; position: number }, + ) { + state.breadcrumbs[position] = breadcrumb; + }, + removeBreadcrumb( + state: State, + {position, last = false}: { position: number; last?: boolean }, + ) { + if (last) { + state.breadcrumbs.pop(); + } else { + state.breadcrumbs = state.breadcrumbs.slice(0, position + 1); + } + }, + clearBreadcrumbs(state: State) { + state.breadcrumbs = []; + }, + }, +}; diff --git a/ui/src/stores/store.js b/ui/src/stores/store.js index 3064c024b88..3c9556967a6 100644 --- a/ui/src/stores/store.js +++ b/ui/src/stores/store.js @@ -17,6 +17,7 @@ import editor from "./editor"; import doc from "./doc"; import bookmarks from "./bookmarks"; import dashboard from "./dashboard"; +import code from "./code"; export default { modules: { @@ -38,6 +39,7 @@ export default { editor, doc, bookmarks, - dashboard + dashboard, + code } } diff --git a/ui/src/translations/en.json b/ui/src/translations/en.json index a29ac3969fe..d3d3bb56c05 100644 --- a/ui/src/translations/en.json +++ b/ui/src/translations/en.json @@ -1062,6 +1062,7 @@ "chart preview": "Chart preview", "no_code": { "adding": "+ Add a {what}", + "adding_default": "+ Add a new value", "labels": { "yaml": "YAML Editor", "no_code": "No Code Editor", @@ -1093,14 +1094,15 @@ } }, "creation": { + "select": "Select a {section}", "tasks": "Add a task", "triggers": "Add a trigger", - "error handlers": "Add an error handler", - "select": "Select a {section}" + "error handlers": "Add an error handler" }, "save": { "tasks": "Save task", - "triggers": "Save trigger" + "triggers": "Save trigger", + "error handlers": "Save error handler" } } }