n8n/packages/editor-ui/src/components/ImportCurlModal.vue

201 lines
5 KiB
Vue
Raw Normal View History

feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
<template>
<Modal
width="700px"
:title="$locale.baseText('importCurlModal.title')"
:eventBus="modalBus"
:name="IMPORT_CURL_MODAL_KEY"
:center="true"
>
<template #content>
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
<div :class="$style.container">
<n8n-input-label :label="$locale.baseText('importCurlModal.input.label')" color="text-dark">
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
<n8n-input
:value="curlCommand"
type="textarea"
:rows="5"
:placeholder="$locale.baseText('importCurlModal.input.placeholder')"
@input="onInput"
@focus="$event.target.select()"
ref="input"
/>
</n8n-input-label>
</div>
</template>
<template #footer>
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
<div :class="$style.modalFooter">
<n8n-notice
:class="$style.notice"
:content="$locale.baseText('ImportCurlModal.notice.content')"
/>
<div>
<n8n-button
@click="importCurlCommand"
float="right"
:label="$locale.baseText('importCurlModal.button.label')"
/>
</div>
</div>
</template>
</Modal>
</template>
<script lang="ts">
import Vue from 'vue';
import Modal from './Modal.vue';
import {
IMPORT_CURL_MODAL_KEY,
CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS,
CURL_IMPORT_NODES_PROTOCOLS,
} from '../constants';
import { showMessage } from '@/mixins/showMessage';
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
import mixins from 'vue-typed-mixins';
import { INodeUi } from '@/Interface';
refactor(editor): Migrate part of the vuex store to pinia (#4484) * ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fi xing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * 👌 Addressing PR review comments * 👌 Addressing new PR comments * 👌 Updating invite id logic in signup view
2022-11-04 06:04:31 -07:00
import { mapStores } from 'pinia';
import { useUIStore } from '@/stores/ui';
import { useNDVStore } from '@/stores/ndv';
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
export default mixins(showMessage).extend({
name: 'ImportCurlModal',
components: {
Modal,
},
data() {
return {
IMPORT_CURL_MODAL_KEY,
curlCommand: '',
modalBus: new Vue(),
};
},
computed: {
...mapStores(useNDVStore, useUIStore),
refactor(editor): Migrate part of the vuex store to pinia (#4484) * ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fi xing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * 👌 Addressing PR review comments * 👌 Addressing new PR comments * 👌 Updating invite id logic in signup view
2022-11-04 06:04:31 -07:00
node(): INodeUi | null {
return this.ndvStore.activeNode;
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
},
},
methods: {
closeDialog(): void {
this.modalBus.$emit('close');
},
onInput(value: string): void {
this.curlCommand = value;
},
async importCurlCommand(): Promise<void> {
const curlCommand = this.curlCommand;
if (curlCommand === '') return;
try {
refactor(editor): Migrate part of the vuex store to pinia (#4484) * ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fi xing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * 👌 Addressing PR review comments * 👌 Addressing new PR comments * 👌 Updating invite id logic in signup view
2022-11-04 06:04:31 -07:00
const parameters = await this.uiStore.getCurlToJson(curlCommand);
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
const url = parameters['parameters.url'];
const invalidProtocol = CURL_IMPORT_NOT_SUPPORTED_PROTOCOLS.find((p) =>
url.includes(`${p}://`),
);
if (!invalidProtocol) {
refactor(editor): Migrate part of the vuex store to pinia (#4484) * ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fi xing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * 👌 Addressing PR review comments * 👌 Addressing new PR comments * 👌 Updating invite id logic in signup view
2022-11-04 06:04:31 -07:00
this.uiStore.setHttpNodeParameters({
name: IMPORT_CURL_MODAL_KEY,
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
parameters: JSON.stringify(parameters),
});
this.closeDialog();
this.sendTelemetry();
return;
// if we have a node that supports the invalid protocol
// suggest that one
} else if (CURL_IMPORT_NODES_PROTOCOLS[invalidProtocol]) {
const useNode = CURL_IMPORT_NODES_PROTOCOLS[invalidProtocol];
this.showProtocolErrorWithSupportedNode(invalidProtocol, useNode);
// we do not have a node that supports the use protocol
} else {
this.showProtocolError(invalidProtocol);
}
this.sendTelemetry({ success: false, invalidProtocol: true, protocol: invalidProtocol });
} catch (e) {
this.showInvalidcURLCommandError();
this.sendTelemetry({ success: false, invalidProtocol: false });
} finally {
refactor(editor): Migrate part of the vuex store to pinia (#4484) * ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fi xing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * 👌 Addressing PR review comments * 👌 Addressing new PR comments * 👌 Updating invite id logic in signup view
2022-11-04 06:04:31 -07:00
this.uiStore.setCurlCommand({ name: IMPORT_CURL_MODAL_KEY, command: this.curlCommand });
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
}
},
showProtocolErrorWithSupportedNode(protocol: string, node: string): void {
this.$showToast({
title: this.$locale.baseText('importParameter.showError.invalidProtocol1.title', {
interpolate: {
node,
},
}),
message: this.$locale.baseText('importParameter.showError.invalidProtocol.message', {
interpolate: {
protocol: protocol.toUpperCase(),
},
}),
type: 'error',
duration: 0,
});
},
showProtocolError(protocol: string): void {
this.$showToast({
title: this.$locale.baseText('importParameter.showError.invalidProtocol2.title'),
message: this.$locale.baseText('importParameter.showError.invalidProtocol.message', {
interpolate: {
protocol,
},
}),
type: 'error',
duration: 0,
});
},
showInvalidcURLCommandError(): void {
this.$showToast({
title: this.$locale.baseText('importParameter.showError.invalidCurlCommand.title'),
message: this.$locale.baseText('importParameter.showError.invalidCurlCommand.message'),
type: 'error',
duration: 0,
});
},
sendTelemetry(
data: { success: boolean; invalidProtocol: boolean; protocol?: string } = {
success: true,
invalidProtocol: false,
protocol: '',
},
): void {
this.$telemetry.track('User imported curl command', {
success: data.success,
invalidProtocol: data.invalidProtocol,
protocol: data.protocol,
});
},
},
mounted() {
refactor(editor): Migrate part of the vuex store to pinia (#4484) * ✨ Added pinia support. Migrated community nodes module. * ✨ Added ui pinia store, moved some data from root store to it, updated modals to work with pinia stores * ✨ Added ui pinia store and migrated a part of the root store * ✨ Migrated `settings` store to pinia * ✨ Removing vuex store refs from router * ✨ Migrated `users` module to pinia store * ⚡ Fixing errors after sync with master * ⚡ One more error after merge * ⚡ Created `workflows` pinia store. Moved large part of root store to it. Started updating references. * ✨ Finished migrating workflows store to pinia * ⚡ Renaming some getters and actions to make more sense * ✨ Finished migrating the root store to pinia * ✨ Migrated ndv store to pinia * ⚡ Renaming main panel dimensions getter so it doesn't clash with data prop name * ✔️ Fixing lint errors * ✨ Migrated `templates` store to pinia * ✨ Migrated the `nodeTypes`store * ⚡ Removed unused pieces of code and oold vuex modules * ✨ Adding vuex calls to pinia store, fi xing wrong references * 💄 Removing leftover $store refs * ⚡ Added legacy getters and mutations to store to support webhooks * ⚡ Added missing front-end hooks, updated vuex state subscriptions to pinia * ✔️ Fixing linting errors * ⚡ Removing vue composition api plugin * ⚡ Fixing main sidebar state when loading node view * 🐛 Fixing an error when activating workflows * 🐛 Fixing isses with workflow settings and executions auto-refresh * 🐛 Removing duplicate listeners which cause import error * 🐛 Fixing route authentication * ⚡ Updating freshly pulled $store refs * Adding deleted const * ⚡ Updating store references in ee features. Reseting NodeView credentials update flag when resetting workspace * ⚡ Adding return type to email submission modal * ⚡ Making NodeView only react to paste event when active * 🐛 Fixing signup view errors * 👌 Addressing PR review comments * 👌 Addressing new PR comments * 👌 Updating invite id logic in signup view
2022-11-04 06:04:31 -07:00
this.curlCommand = this.uiStore.getCurlCommand || '';
feat(HTTP Request Node): Redesign and add the ability to import cURL commands (#3860) * :zap: Initial commit * :shirt: Fix linting issue * :zap: Add import button * :zap: Remove ligh versioning * :zap: Improvements * :zap: Improvements * :fire: Remove HttpRequest2 file used for testing * :bug: Fix building issue * :zap: Small improvement * :shirt: Fix linting issue * :fire: Remove HttpRequest2 from loader * :zap: Update package-lock.json * :zap: Improvements * :zap: Small change * :bug: Fix issue retrieving splitIntoItems * :bug: Fix issue retrieving neverError parameter * :bug: Fix issue with displayOptions * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Improvements * :zap: Move cURL section to its own component * :zap: Improvements * :zap: Improvements * :zap: Add fix for batching in all versions * :zap: Add notice to cURL modal * :fire: Remove comments * :zap: Improvements * :zap: Type curl-to-json endpoint * :zap: Fix typo * :fire: Remove console.logs * :zap: Fix typo in curl-to-json endpoint * :zap: Improvements * :zap: Improvements * :zap: Update package-lock.json * :zap: Rename import modal constant * :zap: Add return types to methods * :zap: Add CSS modules to ImportParameter component * :zap: Rename ImportParameter component to use kebab-case * :zap: Improvements * :zap: update package-lock.json * :zap: Fix linting issues * Fix issue with css reference in ImportParameter component * :zap: Small improvements * :zap: Rename redirects to redirect * :zap: Allow to set multiple parameters on valueChanged * :shirt: Fix linting issue * :bug: Add mistakenly removed openExistingCredentials * :zap: Improve curl regex * :zap: Keep headers as defined in the cURL command * :zap: Account for all protocols supported by cURL * :zap: Add tests * :fire: Remove unnecessary lines * :zap: Add more testing * :zap: Add noDataExpression to dependent fields * :bug: Fix bug not handling multipart-form data correctly * :zap: Change error messages * :bug: Fix response format string for empty values * Fix typo
2022-09-29 14:28:02 -07:00
setTimeout(() => {
(this.$refs.input as HTMLTextAreaElement).focus();
});
},
});
</script>
<style module lang="scss">
.modalFooter {
justify-content: space-between;
display: flex;
flex-direction: row;
}
.notice {
margin: 0;
}
.container > * {
margin-bottom: var(--spacing-s);
&:last-child {
margin-bottom: 0;
}
}
</style>