mirror of
https://github.com/n8n-io/n8n.git
synced 2024-12-25 20:54:07 -08:00
fix(editor): Show error in RLC if credentials are not set (#6108)
This commit is contained in:
parent
4cbb05b001
commit
2c240a0e4e
|
@ -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;
|
||||||
|
|
|
@ -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...",
|
||||||
|
|
Loading…
Reference in a new issue