From 287533e6c819329dc84f2e23a33faed66181d07a Mon Sep 17 00:00:00 2001 From: OlegIvaniv Date: Mon, 5 Sep 2022 16:36:22 +0200 Subject: [PATCH] feat(editor): Use i18n component instead od v-html for localization MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat(editor): Export i18n instance and bind it to Vue instance * feat(editor): Audit usage of v-html and replace with alternatives where possible * :twisted_rightwards_arrows: Fix conflicted element in RunDataTable * :recycle: Refactor issues elements with the new TitledList component * 🐛 Fixing unknown node modal dialog content rendering Co-authored-by: Milorad Filipovic --- .../CommunityPackageInstallModal.vue | 2 +- .../CommunityPackageManageConfirmModal.vue | 2 +- .../MainHeader/ExecutionDetails/ReadOnly.vue | 4 +- packages/editor-ui/src/components/Node.vue | 14 +++---- .../src/components/NodeCredentials.vue | 7 +++- .../editor-ui/src/components/NodeSettings.vue | 30 +++++++------- .../src/components/ParameterIssues.vue | 6 ++- .../editor-ui/src/components/RunDataTable.vue | 38 ++++++++---------- .../editor-ui/src/components/TitledList.vue | 39 +++++++++++++++++++ .../editor-ui/src/components/TriggerPanel.vue | 2 +- .../src/components/WorkflowSettings.vue | 14 +++---- packages/editor-ui/src/main.ts | 3 +- packages/editor-ui/src/plugins/i18n/index.ts | 2 +- .../src/plugins/i18n/locales/en.json | 16 +++++--- .../editor-ui/src/views/SettingsApiView.vue | 17 +++++++- .../editor-ui/src/views/SettingsUsersView.vue | 10 ++++- 16 files changed, 141 insertions(+), 65 deletions(-) create mode 100644 packages/editor-ui/src/components/TitledList.vue diff --git a/packages/editor-ui/src/components/CommunityPackageInstallModal.vue b/packages/editor-ui/src/components/CommunityPackageInstallModal.vue index 1e055c08e..6d9745711 100644 --- a/packages/editor-ui/src/components/CommunityPackageInstallModal.vue +++ b/packages/editor-ui/src/components/CommunityPackageInstallModal.vue @@ -50,7 +50,7 @@ diff --git a/packages/editor-ui/src/components/MainHeader/ExecutionDetails/ReadOnly.vue b/packages/editor-ui/src/components/MainHeader/ExecutionDetails/ReadOnly.vue index b367916b8..de7792068 100644 --- a/packages/editor-ui/src/components/MainHeader/ExecutionDetails/ReadOnly.vue +++ b/packages/editor-ui/src/components/MainHeader/ExecutionDetails/ReadOnly.vue @@ -5,7 +5,7 @@
- +
@@ -22,4 +22,4 @@ export default Vue.extend({ svg { margin-right: 6px; } - \ No newline at end of file + diff --git a/packages/editor-ui/src/components/Node.vue b/packages/editor-ui/src/components/Node.vue index ffceb54f9..aa84814c4 100644 --- a/packages/editor-ui/src/components/Node.vue +++ b/packages/editor-ui/src/components/Node.vue @@ -6,13 +6,13 @@
-
+
-
+
@@ -105,6 +105,7 @@ import { } from 'n8n-workflow'; import NodeIcon from '@/components/NodeIcon.vue'; +import TitledList from '@/components/TitledList.vue'; import mixins from 'vue-typed-mixins'; @@ -121,6 +122,7 @@ export default mixins( ).extend({ name: 'Node', components: { + TitledList, NodeIcon, }, computed: { @@ -200,14 +202,12 @@ export default mixins( executing: this.isExecuting, }; }, - nodeIssues (): string { + nodeIssues (): string[] { if (this.data.issues === undefined) { - return ''; + return []; } - const nodeIssues = NodeHelpers.nodeIssuesToString(this.data.issues, this.data); - - return `${this.$locale.baseText('node.issues')}:
  - ` + nodeIssues.join('
  - '); + return NodeHelpers.nodeIssuesToString(this.data.issues, this.data); }, nodeDisabledIcon (): string { if (this.data.disabled === false) { diff --git a/packages/editor-ui/src/components/NodeCredentials.vue b/packages/editor-ui/src/components/NodeCredentials.vue index e1db8b485..f9d8056d4 100644 --- a/packages/editor-ui/src/components/NodeCredentials.vue +++ b/packages/editor-ui/src/components/NodeCredentials.vue @@ -42,7 +42,7 @@
-
+
@@ -74,6 +74,8 @@ import { genericHelpers } from '@/components/mixins/genericHelpers'; import { nodeHelpers } from '@/components/mixins/nodeHelpers'; import { showMessage } from '@/components/mixins/showMessage'; +import TitledList from '@/components/TitledList.vue'; + import { mapGetters } from "vuex"; import mixins from 'vue-typed-mixins'; @@ -89,6 +91,9 @@ export default mixins( 'node', // INodeUi 'overrideCredType', // cred type ], + components: { + TitledList, + }, data () { return { NEW_CREDENTIALS_TEXT: `- ${this.$locale.baseText('nodeCredentials.createNew')} -`, diff --git a/packages/editor-ui/src/components/NodeSettings.vue b/packages/editor-ui/src/components/NodeSettings.vue index 208e5f989..75593b57d 100644 --- a/packages/editor-ui/src/components/NodeSettings.vue +++ b/packages/editor-ui/src/components/NodeSettings.vue @@ -28,11 +28,14 @@
- - + + +
- - + + +
diff --git a/packages/editor-ui/src/components/ParameterIssues.vue b/packages/editor-ui/src/components/ParameterIssues.vue index 380da2d1a..9105424f3 100644 --- a/packages/editor-ui/src/components/ParameterIssues.vue +++ b/packages/editor-ui/src/components/ParameterIssues.vue @@ -1,7 +1,7 @@