Files
n8n-enterprise-unlocked/packages/editor-ui/src/components/CredentialEdit/CredentialInputs.vue
Alex Grozav b5b44d1b59 feat: Add credentials E2E test suite and page object (#4596)
* fix: Fix inferred type of X cannot be named error after pnpm update

* feat: Change page objects to expose actions and getters. Add credential creation suite
2022-11-22 11:37:26 +02:00

60 lines
1.4 KiB
Vue

<template>
<div @keydown.stop :class="$style.container" v-if="credentialProperties.length">
<form v-for="parameter in credentialProperties" :key="parameter.name" autocomplete="off" data-test-id="credential-connection-parameter">
<!-- Why form? to break up inputs, to prevent Chrome autofill -->
<n8n-notice
v-if="parameter.type === 'notice'"
:content="parameter.displayName"
/>
<parameter-input-expanded
v-else
:parameter="parameter"
:value="credentialData[parameter.name]"
:documentationUrl="documentationUrl"
:showValidationWarnings="showValidationWarnings"
eventSource="credentials"
@change="valueChanged"
/>
</form>
</div>
</template>
<script lang="ts">
import Vue from 'vue';
import { IUpdateInformation } from '../../Interface';
import ParameterInputExpanded from '../ParameterInputExpanded.vue';
export default Vue.extend({
name: 'CredentialsInput',
props: [
'credentialProperties',
'credentialData', // ICredentialsDecryptedResponse
'documentationUrl',
'showValidationWarnings',
],
components: {
ParameterInputExpanded,
},
methods: {
valueChanged(parameterData: IUpdateInformation) {
const name = parameterData.name.split('.').pop();
this.$emit('change', {
name,
value: parameterData.value,
});
},
},
});
</script>
<style lang="scss" module>
.container {
> * {
margin-bottom: var(--spacing-l);
}
}
</style>