fix(editor): Show error in RLC if credentials are not set (#6108)

This commit is contained in:
Milorad FIlipović 2023-04-27 14:28:23 +02:00 committed by GitHub
parent 4cbb05b001
commit 2c240a0e4e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 37 additions and 5 deletions

View file

@ -22,10 +22,13 @@
<n8n-text color="text-dark" align="center" tag="div"> <n8n-text color="text-dark" align="center" tag="div">
{{ $locale.baseText('resourceLocator.mode.list.error.title') }} {{ $locale.baseText('resourceLocator.mode.list.error.title') }}
</n8n-text> </n8n-text>
<n8n-text size="small" color="text-base" v-if="hasCredential"> <n8n-text size="small" color="text-base" v-if="hasCredential || credentialsNotSet">
{{ $locale.baseText('resourceLocator.mode.list.error.description.part1') }} {{ $locale.baseText('resourceLocator.mode.list.error.description.part1') }}
<a @click="openCredential">{{ <a v-if="credentialsNotSet" @click="createNewCredential">{{
$locale.baseText('resourceLocator.mode.list.error.description.part2') $locale.baseText('resourceLocator.mode.list.error.description.part2.noCredentials')
}}</a>
<a v-else-if="hasCredential" @click="openCredential">{{
$locale.baseText('resourceLocator.mode.list.error.description.part2.hasCredentials')
}}</a> }}</a>
</n8n-text> </n8n-text>
</div> </div>
@ -157,7 +160,12 @@ import { debounceHelper } from '@/mixins/debounce';
import stringify from 'fast-json-stable-stringify'; import stringify from 'fast-json-stable-stringify';
import { workflowHelpers } from '@/mixins/workflowHelpers'; import { workflowHelpers } from '@/mixins/workflowHelpers';
import { nodeHelpers } from '@/mixins/nodeHelpers'; import { nodeHelpers } from '@/mixins/nodeHelpers';
import { getAppNameFromNodeName, isResourceLocatorValue, hasOnlyListMode } from '@/utils'; import {
getAppNameFromNodeName,
isResourceLocatorValue,
hasOnlyListMode,
getMainAuthField,
} from '@/utils';
import { mapStores } from 'pinia'; import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui'; import { useUIStore } from '@/stores/ui';
import { useWorkflowsStore } from '@/stores/workflows'; import { useWorkflowsStore } from '@/stores/workflows';
@ -282,6 +290,17 @@ export default mixins(debounceHelper, workflowHelpers, nodeHelpers).extend({
} }
return !!(node && node.credentials && Object.keys(node.credentials).length === 1); return !!(node && node.credentials && Object.keys(node.credentials).length === 1);
}, },
credentialsNotSet(): boolean {
const nodeType = this.nodeTypesStore.getNodeType(this.node?.type);
if (nodeType) {
const usesCredentials =
nodeType.credentials !== undefined && nodeType.credentials.length > 0;
if (usesCredentials && !this.node?.credentials) {
return true;
}
}
return false;
},
inputPlaceholder(): string { inputPlaceholder(): string {
if (this.currentMode.placeholder) { if (this.currentMode.placeholder) {
return this.currentMode.placeholder; return this.currentMode.placeholder;
@ -503,6 +522,18 @@ export default mixins(debounceHelper, workflowHelpers, nodeHelpers).extend({
const id = node.credentials[credentialKey].id; const id = node.credentials[credentialKey].id;
this.uiStore.openExistingCredential(id); this.uiStore.openExistingCredential(id);
}, },
createNewCredential(): void {
const nodeType = this.nodeTypesStore.getNodeType(this.node?.type);
if (!nodeType) {
return;
}
const mainAuthType = getMainAuthField(nodeType);
const showAuthSelector =
mainAuthType !== null &&
Array.isArray(mainAuthType.options) &&
mainAuthType.options?.length > 0;
this.uiStore.openNewCredential('', showAuthSelector);
},
findModeByName(name: string): INodePropertyMode | null { findModeByName(name: string): INodePropertyMode | null {
if (this.parameter.modes) { if (this.parameter.modes) {
return this.parameter.modes.find((mode: INodePropertyMode) => mode.name === name) || null; return this.parameter.modes.find((mode: INodePropertyMode) => mode.name === name) || null;

View file

@ -1038,7 +1038,8 @@
"resourceLocator.mode.list.disabled.title": "Change to Fixed mode to choose From List", "resourceLocator.mode.list.disabled.title": "Change to Fixed mode to choose From List",
"resourceLocator.mode.list.error.title": "Could not load list", "resourceLocator.mode.list.error.title": "Could not load list",
"resourceLocator.mode.list.error.description.part1": "Please", "resourceLocator.mode.list.error.description.part1": "Please",
"resourceLocator.mode.list.error.description.part2": "check your credential", "resourceLocator.mode.list.error.description.part2.hasCredentials": "check your credential",
"resourceLocator.mode.list.error.description.part2.noCredentials": "add your credential",
"resourceLocator.mode.list.noResults": "No results", "resourceLocator.mode.list.noResults": "No results",
"resourceLocator.mode.list.openUrl": "Open URL", "resourceLocator.mode.list.openUrl": "Open URL",
"resourceLocator.mode.list.placeholder": "Choose...", "resourceLocator.mode.list.placeholder": "Choose...",