Files
n8n-enterprise-unlocked/packages/editor-ui/src/components/CredentialsSelectModal.vue
Ahsan Virani 421dd72224 Introduce telemetry (#2099)
* introduce analytics

* add user survey backend

* add user survey backend

* set answers on survey submit

Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>

* change name to personalization

* lint

Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>

* N8n 2495 add personalization modal (#2280)

* update modals

* add onboarding modal

* implement questions

* introduce analytics

* simplify impl

* implement survey handling

* add personalized cateogry

* update modal behavior

* add thank you view

* handle empty cases

* rename modal

* standarize modal names

* update image, add tags to headings

* remove unused file

* remove unused interfaces

* clean up footer spacing

* introduce analytics

* refactor to fix bug

* update endpoint

* set min height

* update stories

* update naming from questions to survey

* remove spacing after core categories

* fix bug in logic

* sort nodes

* rename types

* merge with be

* rename userSurvey

* clean up rest api

* use constants for keys

* use survey keys

* clean up types

* move personalization to its own file

Co-authored-by: ahsan-virani <ahsan.virani@gmail.com>

* Survey new options (#2300)

* split up options

* fix quotes

* remove unused import

* add user created workflow event (#2301)

* simplify env vars

* fix versionCli on FE

* update personalization env

* fix event User opened Credentials panel

* fix select modal spacing

* fix nodes panel event

* fix workflow id in workflow execute event

* improve telemetry error logging

* fix config and stop process events

* add flush call on n8n stop

* ready for release

* improve telemetry process exit

* fix merge

* improve n8n stop events

Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
Co-authored-by: Mutasem <mutdmour@gmail.com>
Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-10-19 05:57:49 +02:00

104 lines
2.3 KiB
Vue

<template>
<Modal
:name="CREDENTIAL_SELECT_MODAL_KEY"
:eventBus="modalBus"
width="50%"
:center="true"
maxWidth="460px"
>
<template slot="header">
<h2 :class="$style.title">Add new credential</h2>
</template>
<template slot="content">
<div>
<div :class="$style.subtitle">Select an app or service to connect to</div>
<n8n-select
filterable
defaultFirstOption
placeholder="Search for app..."
size="xlarge"
ref="select"
:value="selected"
@change="onSelect"
>
<font-awesome-icon icon="search" slot="prefix" />
<n8n-option
v-for="credential in allCredentialTypes"
:value="credential.name"
:key="credential.name"
:label="credential.displayName"
filterable
/>
</n8n-select>
</div>
</template>
<template slot="footer">
<div :class="$style.footer">
<n8n-button
label="Continue"
float="right"
size="large"
:disabled="!selected"
@click="openCredentialType"
/>
</div>
</template>
</Modal>
</template>
<script lang="ts">
import Vue from 'vue';
import { mapGetters } from "vuex";
import Modal from './Modal.vue';
import { CREDENTIAL_SELECT_MODAL_KEY } from '../constants';
export default Vue.extend({
name: 'CredentialsSelectModal',
components: {
Modal,
},
mounted() {
setTimeout(() => {
const element = this.$refs.select as HTMLSelectElement;
if (element) {
element.focus();
}
}, 0);
},
data() {
return {
modalBus: new Vue(),
selected: '',
CREDENTIAL_SELECT_MODAL_KEY,
};
},
computed: {
...mapGetters('credentials', ['allCredentialTypes']),
},
methods: {
onSelect(type: string) {
this.selected = type;
},
openCredentialType () {
this.modalBus.$emit('close');
this.$store.dispatch('ui/openNewCredential', { type: this.selected });
this.$telemetry.track('User opened Credential modal', { credential_type: this.selected, source: 'primary_menu', new_credential: true, workflow_id: this.$store.getters.workflowId });
},
},
});
</script>
<style module lang="scss">
.title {
font-size: var(--font-size-xl);
line-height: var(--font-line-height-regular);
}
.subtitle {
margin-bottom: var(--spacing-s);
font-size: var(--font-size-m);
line-height: var(--font-line-height-xloose);
}
</style>