From 7d7155d68e72b74575c976e9e46b508364bf8534 Mon Sep 17 00:00:00 2001 From: Mumbi Francis Date: Wed, 5 Apr 2023 13:29:51 +0300 Subject: [PATCH] Implement drag and drop sorting for workflow expressions --- client/web/workflow/package.json | 1 + .../components/Configurator/Expressions.vue | 10 +- .../src/components/Configurator/Function.vue | 7 +- .../src/components/ExpressionTable.vue | 215 ++++++++++-------- locale/en/corteza-webapp-workflow/steps.yaml | 2 + 5 files changed, 137 insertions(+), 98 deletions(-) diff --git a/client/web/workflow/package.json b/client/web/workflow/package.json index e3ca6ec5d..d50641b7e 100644 --- a/client/web/workflow/package.json +++ b/client/web/workflow/package.json @@ -29,6 +29,7 @@ "vue-router": "3.1.5", "vue-select": "^3.11.2", "vue2-ace-editor": "^0.0.15", + "vuedraggable": "^2.23.0", "vuex": "^3.6.2" }, "devDependencies": { diff --git a/client/web/workflow/src/components/Configurator/Expressions.vue b/client/web/workflow/src/components/Configurator/Expressions.vue index 546fb58e6..1c804e91a 100644 --- a/client/web/workflow/src/components/Configurator/Expressions.vue +++ b/client/web/workflow/src/components/Configurator/Expressions.vue @@ -114,18 +114,16 @@ export default { return [ { key: 'target', - thClass: 'pl-3 py-2', - tdClass: 'text-truncate pointer', - formatter: (value, key, item) => { + label: this.$t('steps:expressions.configurator.target'), + thClass: 'pl-3', + formatter: (item) => { return `${item.target}(${item.type})` }, - }, { key: 'expr', label: this.$t('steps:expressions.configurator.expression'), - thClass: 'py-2 pr-3', - tdClass: 'position-relative pointer', + thClass: 'mr-3', }, ] }, diff --git a/client/web/workflow/src/components/Configurator/Function.vue b/client/web/workflow/src/components/Configurator/Function.vue index 8938fc5bd..243fac74f 100644 --- a/client/web/workflow/src/components/Configurator/Function.vue +++ b/client/web/workflow/src/components/Configurator/Function.vue @@ -403,18 +403,19 @@ export default { return [ { key: 'target', - thClass: 'pl-3 py-2', + label: this.$t('steps:function.configurator.target'), + thClass: 'pl-3', tdClass: 'text-truncate pointer', }, { key: 'type', - thClass: 'py-2', + label: this.$t('steps:function.configurator.type'), tdClass: 'text-truncate pointer', }, { key: 'expr', label: this.$t('steps:function.configurator.result'), - thClass: 'pr-3 py-2', + thClass: 'mr-3', tdClass: 'position-relative pointer', }, ] diff --git a/client/web/workflow/src/components/ExpressionTable.vue b/client/web/workflow/src/components/ExpressionTable.vue index e02850c38..6b0b0d68d 100644 --- a/client/web/workflow/src/components/ExpressionTable.vue +++ b/client/web/workflow/src/components/ExpressionTable.vue @@ -1,107 +1,122 @@ + + diff --git a/locale/en/corteza-webapp-workflow/steps.yaml b/locale/en/corteza-webapp-workflow/steps.yaml index 63060a379..8ac7727e0 100644 --- a/locale/en/corteza-webapp-workflow/steps.yaml +++ b/locale/en/corteza-webapp-workflow/steps.yaml @@ -27,6 +27,7 @@ expressions: add-expression: + Add Expression expression: Expression expression-placeholder: Expression... + target: Target label: Expressions short: Expressions tooltip: Define and mutate scope variables @@ -39,6 +40,7 @@ function: option-select: Select an option result: Result results: Results + target: Target add-result: + Add result search-workflow: Search for a workflow select-function: Select function