diff --git a/packages/editor-ui/src/components/WorkflowSettings.vue b/packages/editor-ui/src/components/WorkflowSettings.vue index 0370c9bfcb..590c606dd7 100644 --- a/packages/editor-ui/src/components/WorkflowSettings.vue +++ b/packages/editor-ui/src/components/WorkflowSettings.vue @@ -391,7 +391,6 @@ import { useRootStore, useWorkflowsEEStore, useUsersStore, - useSourceControlStore, } from '@/stores'; import { createEventBus } from 'n8n-design-system'; @@ -469,7 +468,6 @@ export default defineComponent({ useSettingsStore, useWorkflowsStore, useWorkflowsEEStore, - useSourceControlStore, ), workflowName(): string { return this.workflowsStore.workflowName; @@ -493,9 +491,6 @@ export default defineComponent({ return this.workflowsEEStore.getWorkflowOwnerName(`${this.workflowId}`, fallback); }, - readOnlyEnv(): boolean { - return this.sourceControlStore.preferences.branchReadOnly; - }, }, async mounted() { this.executionTimeout = this.rootStore.executionTimeout; diff --git a/packages/editor-ui/src/mixins/genericHelpers.ts b/packages/editor-ui/src/mixins/genericHelpers.ts index 4a83b3d48e..058ef713f4 100644 --- a/packages/editor-ui/src/mixins/genericHelpers.ts +++ b/packages/editor-ui/src/mixins/genericHelpers.ts @@ -1,8 +1,9 @@ import { defineComponent } from 'vue'; +import { mapStores } from 'pinia'; import dateformat from 'dateformat'; - import { VIEWS } from '@/constants'; import { useToast } from '@/composables'; +import { useSourceControlStore } from '@/stores'; export const genericHelpers = defineComponent({ setup() { @@ -17,11 +18,15 @@ export const genericHelpers = defineComponent({ }; }, computed: { + ...mapStores(useSourceControlStore), isReadOnlyRoute(): boolean { return ![VIEWS.WORKFLOW, VIEWS.NEW_WORKFLOW, VIEWS.LOG_STREAMING_SETTINGS].includes( this.$route.name as VIEWS, ); }, + readOnlyEnv(): boolean { + return this.sourceControlStore.preferences.branchReadOnly; + }, }, methods: { displayTimer(msPassed: number, showMs = false): string { @@ -49,21 +54,6 @@ export const genericHelpers = defineComponent({ const [date, time] = formattedDate.split('#'); return { date, time }; }, - editAllowedCheck(): boolean { - if (this.isReadOnlyRoute) { - this.showMessage({ - // title: 'Workflow can not be changed!', - title: this.$locale.baseText('genericHelpers.showMessage.title'), - message: this.$locale.baseText('genericHelpers.showMessage.message'), - type: 'info', - duration: 0, - dangerouslyUseHTMLString: true, - }); - - return false; - } - return true; - }, /** * @note Loading helpers extracted as composable in useLoadingService diff --git a/packages/editor-ui/src/views/NodeView.vue b/packages/editor-ui/src/views/NodeView.vue index 4db82f27df..357badd1fe 100644 --- a/packages/editor-ui/src/views/NodeView.vue +++ b/packages/editor-ui/src/views/NodeView.vue @@ -102,7 +102,7 @@ @addNode="onAddNode" /> -
+
{ @@ -2609,7 +2628,7 @@ export default defineComponent({ // Create connections in DOM this.instance?.connect({ uuids: uuid, - detachable: !this.isReadOnlyRoute, + detachable: !this.isReadOnlyRoute && !this.readOnlyEnv, }); setTimeout(() => { diff --git a/packages/editor-ui/src/views/WorkflowsView.vue b/packages/editor-ui/src/views/WorkflowsView.vue index b3798a2372..45eece83ab 100644 --- a/packages/editor-ui/src/views/WorkflowsView.vue +++ b/packages/editor-ui/src/views/WorkflowsView.vue @@ -112,6 +112,7 @@ import { useUsersStore } from '@/stores/users.store'; import { useWorkflowsStore } from '@/stores/workflows.store'; import { useCredentialsStore } from '@/stores/credentials.store'; import { useSourceControlStore } from '@/stores/sourceControl.store'; +import { genericHelpers } from '@/mixins/genericHelpers'; type IResourcesListLayoutInstance = Vue & { sendFiltersTelemetry: (source: string) => void }; @@ -123,6 +124,7 @@ const StatusFilter = { const WorkflowsView = defineComponent({ name: 'WorkflowsView', + mixins: [genericHelpers], components: { ResourcesListLayout, WorkflowCard, @@ -174,9 +176,6 @@ const WorkflowsView = defineComponent({ }, ]; }, - readOnlyEnv(): boolean { - return this.sourceControlStore.preferences.branchReadOnly; - }, }, methods: { addWorkflow() {