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

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

1248 lines
34 KiB
Vue
Raw Normal View History

<script setup lang="ts">
import { computed, onBeforeUnmount, onMounted, ref, watch } from 'vue';
import type {
2019-06-23 03:35:23 -07:00
INodeTypeDescription,
INodeParameters,
INodeProperties,
NodeParameterValue,
} from 'n8n-workflow';
import {
NodeHelpers,
NodeConnectionType,
deepCopy,
isINodePropertyCollectionList,
isINodePropertiesList,
isINodePropertyOptionsList,
displayParameter,
} from 'n8n-workflow';
import type {
CurlToJSONResponse,
INodeUi,
INodeUpdatePropertiesInformation,
IUpdateInformation,
} from '@/Interface';
2019-06-23 03:35:23 -07:00
feat: Make it possible to dynamically load community nodes (#2849) * :sparkles: Make it possible to dynamically load node packages * :zap: Fix comment * :sparkles: Make possible to dynamically install nodes from npm * Created migration for sqlite regarding community nodes * Saving to db whenever a package with nodes is installed * Created endpoint to fetch installed packages * WIP - uninstall package with nodes * Fix lint issues * Updating nodes via API * Lint and improvement fixes * Created community node helpers and removed packages taht do not contain nodes * Check for package updates when fetching installed packages * Blocked access to non-owner and preventing incorrect install of packages * Added auto healing process * Unit tests for helpers * Finishing tests for helpers * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * Add check for banned packages and fix broken tests * Create migrations for other db systems * Updated with latest changes from master * Fixed conflict errors * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * 🔥 Removing access check for the Settings sidebar item * ✨ Added inital community nodes settings screen * ⚡Added executionMode flag to settings * ✨ Implemented N8N-callout component * 💄Updating Callout component template propery names * 💄 Updating Callout component styling. * 💄Updating Callout component sizing and colors. * ✔️ Updating Callout component test snapshots after styling changes * ✨ Updating the `ActionBox` component so it supports callouts and conditional button rendering * 💄 Removing duplicate callout theme validation in the `ActionBox` component. Adding a selection control for it in the storybook. * ✨ Added warning message if instance is in the queue mode. Updated colors based on the new design. * ⚡ Added a custom permission support to router * 🔨 Implemented UM detection as a custom permission. * 👌Updating route permission logic. * ✨ Implemented installed community packages list in the settings view * 👌 Updating settings routes rules and community nodes setting view. * Allow installation of packages that failed to load * 👌 Updating `ActionBox`, `CommuntyPackageCard` components and settings loading logic. * 👌 Fixing community nodes loading state and sidebar icon spacing. * ✨ Implemented loading skeletons for community package cards * 👌 Handling errrors while loading installed package list. Updating spacing. * 👌 Updating community nodes error messages. * Added disable flag * 🐛 Fixing a community nodes update detection bug when there are missing packages. (#3497) * ✨ Added front-end support for community nodes feature flag * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * Standardize error codes (#3501) * Standardize error: 400 for request issues such as invalid package name and 500 for installation problems * Fix http status code for when package is not found * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * ✨ Implemented community package installation modal dialog * ✨ Implemented community package uninstall flow. * ✨ Finished update confirm modal UI * 💄 Replaced community nodes tooltip image with the one exported from figma. * ✨ Implemented community package update process * ✨ Updating community nodes list after successful package update * 🔒 Updating public API setting route to use new access rules. Updating express app definition in community nodes tests * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * Change output for installation request * Improve payload for update requests * 👌 Updating community nodes install modal UI * 👌 Updating community nodes confirm modal logic * 👌 Refactoring community nodes confirm modal dialog * 👌 Separating community nodes components loading states * 💄 Updating community nodes install modal spacing. * Fix behavior for installing already installed packages * 💡 Commenting community nodes install process * 🔥 Removing leftover commits of deleted Vue mutations * ✨ Updated node list to identify community nodes and handle node name clash * ✨ Implemented missing community node dialog. * 💄 Updating n8n-tabs component to support tooltips * ✨ Updating node details with community node details. * 🔨 Using back-end response when updating community packages * 👌 Updating tabs component and refactoring community nodes store mutations * 👌 Adding community node flag to node type descriptions and using it to identify community nodes * 👌 Hiding unnecessary elements from missing node details panel. * 👌 Updating missing node type descriptions for custom and community nodes * 👌 Updating community node package name detection logic * 👌 Removing communityNode flag from node description * ✨ Adding `force` flag to credentials fetching (#3527) * ✨ Adding `force` flag to credentials fetching which can be used to skip check when loading credentials * ✨ Forcing credentials loading when opening nodeView * 👌 Minor updates to community nodes details panel * tests for post endpoint * duplicate comments * Add Patch and Delete enpoints tests * 🔒 Using `pageCategory`prop to assemble the list of settings routes instead of hard-coded array (#3562) * 📈 Added front-end telemetry events for community nodes * 📈 Updating community nodes telemetry events * 💄 Updating community nodes settings UI elements based on product/design review * 💄 Updating node view & node details view for community nodes based on product/design feedback * 💄 Fixing community node text capitalisation * ✨ Adding community node install error message under the package name input field * Fixed and improved tests * Fix lint issue * feat: Migrated to npm release of riot-tmpl fork. * 📈 Updating community nodes telemetry events based on the product review * 💄 Updating community nodes UI based on the design feedback * 🔀 Merging recent node draggable panels changes * Implement self healing process * Improve error messages for package name requirement and disk space * 💄 Removing front-end error message override since appropriate response is available from the back-end * Fix lint issues * Fix installed node name * 💄 Removed additional node name parsing * 📈 Updating community nodes telemetry events * Fix postgres migration for cascading nodes when package is removed * Remove postman mock for banned packages * 📈 Adding missing telemetry event for community node documentation click * 🐛 Fixing community nodes UI bugs reported during the bug bash * Fix issue with uninstalling packages not reflecting UI * 🐛 Fixing a missing node type bug when trying to run a workflow. * Improve error detection for installing packages * 💄 Updating community nodes components styling and wording based on the product feedback * Implement telemetry be events * Add author name and email to packages * Fix telemetry be events for community packages * 📈 Updating front-end telemetry events with community nodes author data * 💄 Updating credentials documentation link logic to handle community nodes credentials * 🐛 Fixing draggable panels logic * Fix duplicate wrong import * 💄 Hiding community nodes credentials documentation links when they don't contain an absolute URL * Fix issue with detection of missing packages * 💄 Adding the `Docs` tab to community nodes * 💄 Adding a failed loading indicator to community nodes list * Prevent n8n from crashing on startup * Refactor and improve code quality * :zap: Remove not needed depenedency Co-authored-by: Omar Ajoue <krynble@gmail.com> Co-authored-by: Milorad Filipović <milorad@n8n.io> Co-authored-by: Milorad FIlipović <miloradfilipovic19@gmail.com> Co-authored-by: agobrech <ael.gobrecht@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com>
2022-07-20 07:24:03 -07:00
import {
COMMUNITY_NODES_INSTALLATION_DOCS_URL,
CUSTOM_NODES_DOCS_URL,
SHOULD_CLEAR_NODE_OUTPUTS,
feat(editor-ui): Resizable main panel (#3980) * Introduce node deprecation (#3930) :sparkles: Introduce node deprecation * :construction: Scaffold out Code node * :shirt: Fix lint * :blue_book: Create types file * :truck: Rename theme * :fire: Remove unneeded prop * :zap: Override keybindings * :zap: Expand lintings * :zap: Create editor content getter * :truck: Ensure all helpers use `$` * :sparkles: Add autocompletion * :recycle: Refactore Resize UI lib component, allow to use it in different than n8n-sticky context * :construction: Use variable width for node settings and allow for resizing * :sparkles: Use store to keep track of wide and regular main panel widths * :recycle: Extract Resize wrapper from the Sticky and create a story for it * :bug: Fixed cherry-pick conflicts * :zap: Filter out welcome note node * :zap: Convey error line number * :zap: Highlight error line * :zap: Restore logging from node * :sparkles: More autocompletions * :zap: Streamline completions * :lipstick: Fix drag-button border * :pencil2: Update placeholders * :zap: Update linter to new methods * :sparkles: Preserve main panel width in local storage * :bug: Fallback to max size size if window is too big * :fire: Remove `$nodeItem` completions * :zap: Re-update placeholders * :art: Fix formatting * :package: Update `package-lock.json` * :zap: Refresh with multi-line empty string * :recycle: Refactored DraggablePanels to use relative units and implemented independent resizing, cleaned store * :bug: Re-implement dragging indicators and move border styles to NDVDraggablePanels component * :rotating_light: Fix semis * :rotating_light: Remove unsused UI state props * :recycle: Use only relative left position and calculate right based on it, fix quirks * 🚨Fix linting error * :recycle: Store and retrieve main panel dimensions from store to make them persistable in the same app mount session * :bug: Prevent resizing of unknown nodes * :recycle: Add typings for `nodeType` prop, remove unused `convertRemToPixels` import * :label: Add typings for `nodeType` prop in NodeSettings.vue * :bug: Prevent the main panel resize below 280px * :bug: Fix inputless panel left position * :sparkles: Resize resource locator on main panel size change * :bug: Resize resource locator on window resize Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2022-09-22 08:41:15 -07:00
} from '@/constants';
feat: Make it possible to dynamically load community nodes (#2849) * :sparkles: Make it possible to dynamically load node packages * :zap: Fix comment * :sparkles: Make possible to dynamically install nodes from npm * Created migration for sqlite regarding community nodes * Saving to db whenever a package with nodes is installed * Created endpoint to fetch installed packages * WIP - uninstall package with nodes * Fix lint issues * Updating nodes via API * Lint and improvement fixes * Created community node helpers and removed packages taht do not contain nodes * Check for package updates when fetching installed packages * Blocked access to non-owner and preventing incorrect install of packages * Added auto healing process * Unit tests for helpers * Finishing tests for helpers * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * Add check for banned packages and fix broken tests * Create migrations for other db systems * Updated with latest changes from master * Fixed conflict errors * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * 🔥 Removing access check for the Settings sidebar item * ✨ Added inital community nodes settings screen * ⚡Added executionMode flag to settings * ✨ Implemented N8N-callout component * 💄Updating Callout component template propery names * 💄 Updating Callout component styling. * 💄Updating Callout component sizing and colors. * ✔️ Updating Callout component test snapshots after styling changes * ✨ Updating the `ActionBox` component so it supports callouts and conditional button rendering * 💄 Removing duplicate callout theme validation in the `ActionBox` component. Adding a selection control for it in the storybook. * ✨ Added warning message if instance is in the queue mode. Updated colors based on the new design. * ⚡ Added a custom permission support to router * 🔨 Implemented UM detection as a custom permission. * 👌Updating route permission logic. * ✨ Implemented installed community packages list in the settings view * 👌 Updating settings routes rules and community nodes setting view. * Allow installation of packages that failed to load * 👌 Updating `ActionBox`, `CommuntyPackageCard` components and settings loading logic. * 👌 Fixing community nodes loading state and sidebar icon spacing. * ✨ Implemented loading skeletons for community package cards * 👌 Handling errrors while loading installed package list. Updating spacing. * 👌 Updating community nodes error messages. * Added disable flag * 🐛 Fixing a community nodes update detection bug when there are missing packages. (#3497) * ✨ Added front-end support for community nodes feature flag * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * Standardize error codes (#3501) * Standardize error: 400 for request issues such as invalid package name and 500 for installation problems * Fix http status code for when package is not found * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * ✨ Implemented community package installation modal dialog * ✨ Implemented community package uninstall flow. * ✨ Finished update confirm modal UI * 💄 Replaced community nodes tooltip image with the one exported from figma. * ✨ Implemented community package update process * ✨ Updating community nodes list after successful package update * 🔒 Updating public API setting route to use new access rules. Updating express app definition in community nodes tests * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * Change output for installation request * Improve payload for update requests * 👌 Updating community nodes install modal UI * 👌 Updating community nodes confirm modal logic * 👌 Refactoring community nodes confirm modal dialog * 👌 Separating community nodes components loading states * 💄 Updating community nodes install modal spacing. * Fix behavior for installing already installed packages * 💡 Commenting community nodes install process * 🔥 Removing leftover commits of deleted Vue mutations * ✨ Updated node list to identify community nodes and handle node name clash * ✨ Implemented missing community node dialog. * 💄 Updating n8n-tabs component to support tooltips * ✨ Updating node details with community node details. * 🔨 Using back-end response when updating community packages * 👌 Updating tabs component and refactoring community nodes store mutations * 👌 Adding community node flag to node type descriptions and using it to identify community nodes * 👌 Hiding unnecessary elements from missing node details panel. * 👌 Updating missing node type descriptions for custom and community nodes * 👌 Updating community node package name detection logic * 👌 Removing communityNode flag from node description * ✨ Adding `force` flag to credentials fetching (#3527) * ✨ Adding `force` flag to credentials fetching which can be used to skip check when loading credentials * ✨ Forcing credentials loading when opening nodeView * 👌 Minor updates to community nodes details panel * tests for post endpoint * duplicate comments * Add Patch and Delete enpoints tests * 🔒 Using `pageCategory`prop to assemble the list of settings routes instead of hard-coded array (#3562) * 📈 Added front-end telemetry events for community nodes * 📈 Updating community nodes telemetry events * 💄 Updating community nodes settings UI elements based on product/design review * 💄 Updating node view & node details view for community nodes based on product/design feedback * 💄 Fixing community node text capitalisation * ✨ Adding community node install error message under the package name input field * Fixed and improved tests * Fix lint issue * feat: Migrated to npm release of riot-tmpl fork. * 📈 Updating community nodes telemetry events based on the product review * 💄 Updating community nodes UI based on the design feedback * 🔀 Merging recent node draggable panels changes * Implement self healing process * Improve error messages for package name requirement and disk space * 💄 Removing front-end error message override since appropriate response is available from the back-end * Fix lint issues * Fix installed node name * 💄 Removed additional node name parsing * 📈 Updating community nodes telemetry events * Fix postgres migration for cascading nodes when package is removed * Remove postman mock for banned packages * 📈 Adding missing telemetry event for community node documentation click * 🐛 Fixing community nodes UI bugs reported during the bug bash * Fix issue with uninstalling packages not reflecting UI * 🐛 Fixing a missing node type bug when trying to run a workflow. * Improve error detection for installing packages * 💄 Updating community nodes components styling and wording based on the product feedback * Implement telemetry be events * Add author name and email to packages * Fix telemetry be events for community packages * 📈 Updating front-end telemetry events with community nodes author data * 💄 Updating credentials documentation link logic to handle community nodes credentials * 🐛 Fixing draggable panels logic * Fix duplicate wrong import * 💄 Hiding community nodes credentials documentation links when they don't contain an absolute URL * Fix issue with detection of missing packages * 💄 Adding the `Docs` tab to community nodes * 💄 Adding a failed loading indicator to community nodes list * Prevent n8n from crashing on startup * Refactor and improve code quality * :zap: Remove not needed depenedency Co-authored-by: Omar Ajoue <krynble@gmail.com> Co-authored-by: Milorad Filipović <milorad@n8n.io> Co-authored-by: Milorad FIlipović <miloradfilipovic19@gmail.com> Co-authored-by: agobrech <ael.gobrecht@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com>
2022-07-20 07:24:03 -07:00
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
import NodeTitle from '@/components/NodeTitle.vue';
2019-06-23 03:35:23 -07:00
import ParameterInputList from '@/components/ParameterInputList.vue';
import NodeCredentials from '@/components/NodeCredentials.vue';
feat(editor): Add input panel to NDV (#3204) * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * refactor header out * support different nodes * update selector * add immediate input * add branch overrides * split output input run index * clean up unnessary data * add missing keys * update key names * remove unnessary css/js * fix outputs panel * set max width on input selector * fix selector to show parent nodes * fix bug when switching between nodes * add linking and refactor * add linking * fix minor issues * hide linking when cannot link * fix type * fix error state * clean up import * fix linking edge cases * hide input panel for triggers * disable for start node * format file * refactor output panel * add empty input hint * update too much data view * update slot, message under branch * no input data view * add node not run/no output data views * add tooltip support on execute prev * fix spacing in view * address output views * fix run node hint view * fix spinner * center button * update message to use node name * update title of no output data message * implement loading states * fix sizes * fix sizes * update spinner * add wire me up image * update link * update panels design * fix unclickable area bug * revert change * fix clickable bg * fix up positioning * ensure bg is clickable * fix up borders * fix height * move border to wrapper * set box shadow * set box shadow * add drag button * add dragging for main panel * set max width of panels * set min width in js * keep showing drag while dragging * fix dragging leaving modal * update trigger position of main panel * move main panel position into store * clear metadata after changing workflow * center grid correctly * add drag arrows * add dragging hover * fix cursor behavior * update no output state * show last run on open * always set to latest run * fix padding * add I wish this node would * clean up unsued data * inject run info into run * refactor out drag button * fix dragging issue * fix arrow bug * increase width of panel * change run logic * set label font sizes * update radiobutton pos * address header issues * fix prev spacing bug * fix input order * set package lock * add close modal event * complete close modal event * add input change event * add dragging event * add event on view change * add page size event * rename event * add event on page change * add link click event * add linking event * rename var * add run change event * add button events * add branch event * add structure for open event * add input type * set session id * set sessionid/source for expression events * add params to expression events * make display modes global * add display mode to tracking * add more event tracking * add has_mapping param * make main panel position global * dedupe list * fix cursor while dragging * address feedback * reduce bottom scrim * remove empty option hint * add hint tooltip * add tritary button * update param names * update parameter buttons * center empty states * move feature request message * increase max width for inputs selector * fix error dispaly padding * remove immediate * refactor search logic to return object * fix console errors * fix console errors * add node distance * refactor how input nodes listed * remove console log * set package lock * refactor recursive logic * handle overrides * handle default case without inputs * fix bug width link * fix tabs arrow bug * handle binary data case * update node execution * fix merge logic * remove console log * delete func * update package lock * add hover area * switch first input node * keep recursive order * make breadth first traversal * fix overflow bug, add pluralization * update docs url * update drop shadow * set background color for button * update input * fix truncation * update index of input dropdown * fix binary background * update telemetry * fix binary data switching * check all parent connections for executed node * check current state for executing node * fix executing states * update loading states * use pluralization for items * rename modal * update pluralization * update package lock * update empty messagE * format file * refactor out dragging logic * refactor out dragging * add back panel position * add telemetry params * add survey url as const * remove extra space, add dot * rename tabs, update telemetery, fix telemetry bug * update execute prev button * rename workflow func * rename workflow func * delete unnessary component * fix build issue * add tests for workflow search * format + add tests * remove todo comment * update iconnection type to match workflows * Revert "update iconnection type to match workflows" 3772487d985f226acab7144c7672b5696deabb55 * update func comment * fix formatting issues * add tertiary story * add spinner story * remove todo comment * remove eslint check * update empty messagE
2022-05-23 08:56:15 -07:00
import NodeSettingsTabs from '@/components/NodeSettingsTabs.vue';
2019-06-23 03:35:23 -07:00
import NodeWebhooks from '@/components/NodeWebhooks.vue';
import NDVSubConnections from '@/components/NDVSubConnections.vue';
import { get, set, unset } from 'lodash-es';
2019-06-23 03:35:23 -07:00
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
import NodeExecuteButton from './NodeExecuteButton.vue';
import { isCommunityPackageName } from '@/utils/nodeTypesUtils';
import { useWorkflowsStore } from '@/stores/workflows.store';
import { useNDVStore } from '@/stores/ndv.store';
import { useNodeTypesStore } from '@/stores/nodeTypes.store';
import { useHistoryStore } from '@/stores/history.store';
feat(editor): Add undo/redo support for canvas actions (#4787) * ✨ Added history store and mixin * ✨ Implemented node position change undo/redo * ✨ Implemented move nodes bulk command * ⚡ Not clearing the redo stack after pushing the bulk command * 🔨 Implemented commands using classes * 🔥 Removed unnecessary interfaces and actions * 🔥 Removing unused constants * 🔨 Refactoring classes file * ⚡ Adding eventBus to command obects * ✨ Added undo/redo support for adding and removing nodes * ✨ Implemented initial add/remove connections undo support * ⚡ Covering some corner cases with reconnecting nodes * ⚡ Adding undo support for reconnecting nodes * ⚡ Fixing going back and forward between undo and redo * ✨ Implemented async command revert * ⚡ Preventing push to undo if bulk redo/undo is in progress * ⚡ Handling re-connecting nodes and stopped pushing empty bulk actions to undo stack * ✨ Handling adding a node between two connected nodes * ⚡ Handling the case of removing multiple connections on the same index. Adding debounce to undo/redo keyboard calls * ⚡ Removing unnecessary timeouts, adding missing awaits, refactoring * ⚡ Resetting history when opening new workflow, fixing incorrect bulk recording when inserting node * ✔️ Fixing lint error * ⚡ Minor refactoring + some temporary debugging logs * ⚡ Preserving node properties when undoing it's removal, removing some unused repaint code * ✨ Added undo/redo support for import workflow and node enable/disable * 🔥 Removing some unused constant * ✨ Added undo/redo support for renaming nodes * ⚡ Fixing rename history recording * ✨ Added undo/redo support for duplicating nodes * 📈 Implemented telemetry events * 🔨 A bit of refactoring * ⚡ Fixing edgecases in removing connection and moving nodes * ⚡ Handling case of adding duplicate nodes when going back and forward in history * ⚡ Recording connections added directly to store * ⚡ Moving main history reset after wf is opened * 🔨 Simplifying rename recording * 📈 Adding NDV telemetry event, updating existing event name case * 📈 Updating telemetry events * ⚡ Fixing duplicate connections on undo/redo * ⚡ Stopping undo events from firing constantly on keydown * 📈 Updated telemetry event for hitting undo in NDV * ⚡ Adding undo support for disabling nodes using keyboard shortcuts * ⚡ Preventing adding duplicate connection commands to history * ⚡ Clearing redo stack when new change is added * ⚡ Preventing adding connection actions to undo stack while redoing them * 👌 Addressing PR comments part 1 * 👌 Moving undo logic for disabling nodes to `NodeView` * 👌 Implemented command comparing logic * ⚡ Fix for not clearing redo stack on every user action * ⚡ Fixing recording when moving nodes * ⚡ Fixing undo for moving connections * ⚡ Fixing tracking new nodes after latest merge * ⚡ Fixing broken bulk delete * ⚡ Preventing undo/redo when not on main node view tab * 👌 Addressing PR comments * 👌 Addressing PR comment
2022-12-09 06:07:37 -08:00
import { RenameNodeCommand } from '@/models/history';
import { useCredentialsStore } from '@/stores/credentials.store';
import type { EventBus } from 'n8n-design-system';
refactor: Migrate externalHooks mixin to composables (no-changelog) (#7930) ## Summary Provide details about your pull request and what it adds, fixes, or changes. Photos and videos are recommended. As part of NodeView refactor, this PR migrates all externalHooks calls to `useExternalHooks` composable. #### How to test the change: 1. Run using env `export N8N_DEPLOYMENT_TYPE=cloud` 2. Hooks should still run as expected ## Issues fixed Include links to Github issue or Community forum post or **Linear ticket**: > Important in order to close automatically and provide context to reviewers https://linear.app/n8n/issue/N8N-6349/externalhooks ## Review / Merge checklist - [x] PR title and summary are descriptive. **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** ([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md)) - [x] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up ticket created. - [x] Tests included. > A bug is not considered fixed, unless a test is added to prevent it from happening again. A feature is not complete without tests. > > *(internal)* You can use Slack commands to trigger [e2e tests](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#a39f9e5ba64a48b58a71d81c837e8227) or [deploy test instance](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#f6a177d32bde4b57ae2da0b8e454bfce) or [deploy early access version on Cloud](https://www.notion.so/n8n/Cloudbot-3dbe779836004972b7057bc989526998?pvs=4#fef2d36ab02247e1a0f65a74f6fb534e).
2023-12-06 07:28:09 -08:00
import { useExternalHooks } from '@/composables/useExternalHooks';
import { useNodeHelpers } from '@/composables/useNodeHelpers';
import { useToast } from '@/composables/useToast';
import { useI18n } from '@/composables/useI18n';
import { useTelemetry } from '@/composables/useTelemetry';
import { importCurlEventBus, ndvEventBus } from '@/event-bus';
import { ProjectTypes } from '@/types/projects.types';
2019-06-23 03:35:23 -07:00
const props = withDefaults(
defineProps<{
eventBus: EventBus;
dragging: boolean;
pushRef: string;
nodeType: INodeTypeDescription | null;
readOnly: boolean;
foreignCredentials: string[];
blockUI: boolean;
executable: boolean;
inputSize: number;
}>(),
{
foreignCredentials: () => [],
readOnly: false,
executable: true,
inputSize: 0,
blockUI: false,
refactor: Migrate externalHooks mixin to composables (no-changelog) (#7930) ## Summary Provide details about your pull request and what it adds, fixes, or changes. Photos and videos are recommended. As part of NodeView refactor, this PR migrates all externalHooks calls to `useExternalHooks` composable. #### How to test the change: 1. Run using env `export N8N_DEPLOYMENT_TYPE=cloud` 2. Hooks should still run as expected ## Issues fixed Include links to Github issue or Community forum post or **Linear ticket**: > Important in order to close automatically and provide context to reviewers https://linear.app/n8n/issue/N8N-6349/externalhooks ## Review / Merge checklist - [x] PR title and summary are descriptive. **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** ([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md)) - [x] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up ticket created. - [x] Tests included. > A bug is not considered fixed, unless a test is added to prevent it from happening again. A feature is not complete without tests. > > *(internal)* You can use Slack commands to trigger [e2e tests](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#a39f9e5ba64a48b58a71d81c837e8227) or [deploy test instance](https://www.notion.so/n8n/How-to-use-Test-Instances-d65f49dfc51f441ea44367fb6f67eb0a?pvs=4#f6a177d32bde4b57ae2da0b8e454bfce) or [deploy early access version on Cloud](https://www.notion.so/n8n/Cloudbot-3dbe779836004972b7057bc989526998?pvs=4#fef2d36ab02247e1a0f65a74f6fb534e).
2023-12-06 07:28:09 -08:00
},
);
const emit = defineEmits<{
stopExecution: [];
redrawRequired: [];
valueChanged: [value: IUpdateInformation];
switchSelectedNode: [nodeName: string];
openConnectionNodeCreator: [nodeName: string, connectionType: NodeConnectionType];
activate: [];
execute: [];
}>();
const nodeTypesStore = useNodeTypesStore();
const ndvStore = useNDVStore();
const workflowsStore = useWorkflowsStore();
const credentialsStore = useCredentialsStore();
const historyStore = useHistoryStore();
const telemetry = useTelemetry();
const nodeHelpers = useNodeHelpers();
const externalHooks = useExternalHooks();
const i18n = useI18n();
const { showMessage } = useToast();
const nodeValid = ref(true);
const openPanel = ref<'params' | 'settings'>('params');
const nodeValues = ref<INodeParameters>({
color: '#ff0000',
alwaysOutputData: false,
executeOnce: false,
notesInFlow: false,
onError: 'stopWorkflow',
retryOnFail: false,
maxTries: 3,
waitBetweenTries: 1000,
notes: '',
parameters: {},
});
2019-06-23 03:35:23 -07:00
// Used to prevent nodeValues from being overwritten by defaults on reopening ndv
const nodeValuesInitialized = ref(false);
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 hiddenIssuesInputs = ref<string[]>([]);
const nodeSettings = ref<INodeProperties[]>([]);
const subConnections = ref<InstanceType<typeof NDVSubConnections> | null>(null);
const currentWorkflowInstance = computed(() => workflowsStore.getCurrentWorkflow());
const currentWorkflow = computed(() =>
workflowsStore.getWorkflowById(currentWorkflowInstance.value.id),
);
const hasForeignCredential = computed(() => props.foreignCredentials.length > 0);
const isHomeProjectTeam = computed(
() => currentWorkflow.value?.homeProject?.type === ProjectTypes.Team,
);
const isReadOnly = computed(
() => props.readOnly || (hasForeignCredential.value && !isHomeProjectTeam.value),
);
const node = computed(() => 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
const isTriggerNode = computed(() => !!node.value && nodeTypesStore.isTriggerNode(node.value.type));
const isExecutable = computed(() => {
if (props.nodeType && node.value) {
const workflowNode = currentWorkflowInstance.value.getNode(node.value.name);
const inputs = NodeHelpers.getNodeInputs(
currentWorkflowInstance.value,
workflowNode!,
props.nodeType,
);
const inputNames = NodeHelpers.getConnectionTypes(inputs);
2019-06-23 03:35:23 -07:00
if (!inputNames.includes(NodeConnectionType.Main) && !isTriggerNode.value) {
return false;
}
}
2019-06-23 03:35:23 -07:00
return props.executable || props.foreignCredentials.length > 0;
});
const nodeTypeVersions = computed(() => {
if (!node.value) return [];
return nodeTypesStore.getNodeVersions(node.value.type);
});
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 latestVersion = computed(() => Math.max(...nodeTypeVersions.value));
const isLatestNodeVersion = computed(
() => !node.value?.typeVersion || latestVersion.value === node.value.typeVersion,
);
const executeButtonTooltip = computed(() => {
if (
node.value &&
isLatestNodeVersion.value &&
props.inputSize > 1 &&
!NodeHelpers.isSingleExecution(node.value.type, node.value.parameters)
) {
return i18n.baseText('nodeSettings.executeButtonTooltip.times', {
interpolate: { inputSize: props.inputSize },
});
}
return '';
});
const nodeVersionTag = computed(() => {
if (!props.nodeType || props.nodeType.hidden) {
return i18n.baseText('nodeSettings.deprecated');
}
if (isLatestNodeVersion.value) {
return i18n.baseText('nodeSettings.latest');
}
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
return i18n.baseText('nodeSettings.latestVersion', {
interpolate: { version: latestVersion.value.toString() },
});
});
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 = computed(() => {
if (props.nodeType === null) {
return [];
}
return props.nodeType?.properties ?? [];
});
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 parametersSetting = computed(() => parameters.value.filter((item) => item.isNodeSetting));
2019-06-23 03:35:23 -07:00
const parametersNoneSetting = computed(() =>
parameters.value.filter((item) => !item.isNodeSetting),
);
const outputPanelEditMode = computed(() => ndvStore.outputPanelEditMode);
2019-06-23 03:35:23 -07:00
const isCommunityNode = computed(() => !!node.value && isCommunityPackageName(node.value.type));
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 usedCredentials = computed(() =>
Object.values(workflowsStore.usedCredentials).filter((credential) =>
Object.values(node.value?.credentials || []).find(
(nodeCredential) => nodeCredential.id === credential.id,
),
),
);
const credentialOwnerName = computed(() => {
const credential = usedCredentials.value
? Object.values(usedCredentials.value).find(
(credential) => credential.id === props.foreignCredentials[0],
)
: undefined;
return credentialsStore.getCredentialOwnerName(credential);
});
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 setValue = (name: string, value: NodeParameterValue) => {
const nameParts = name.split('.');
let lastNamePart: string | undefined = nameParts.pop();
let isArray = false;
if (lastNamePart !== undefined && lastNamePart.includes('[')) {
// It includes an index so we have to extract it
const lastNameParts = lastNamePart.match(/(.*)\[(\d+)\]$/);
if (lastNameParts) {
nameParts.push(lastNameParts[1]);
lastNamePart = lastNameParts[2];
isArray = true;
}
}
// Set the value so that everything updates correctly in the UI
if (nameParts.length === 0) {
// Data is on top level
if (value === null) {
// Property should be deleted
if (lastNamePart) {
const { [lastNamePart]: removedNodeValue, ...remainingNodeValues } = nodeValues.value;
nodeValues.value = remainingNodeValues;
}
} else {
// Value should be set
nodeValues.value = {
...nodeValues.value,
[lastNamePart as string]: value,
};
}
} else {
// Data is on lower level
if (value === null) {
// Property should be deleted
let tempValue = get(nodeValues.value, nameParts.join('.')) as
| INodeParameters
| INodeParameters[];
if (lastNamePart && !Array.isArray(tempValue)) {
const { [lastNamePart]: removedNodeValue, ...remainingNodeValues } = tempValue;
tempValue = remainingNodeValues;
}
2019-06-23 03:35:23 -07:00
if (isArray && Array.isArray(tempValue) && tempValue.length === 0) {
// If a value from an array got delete and no values are left
// delete also the parent
lastNamePart = nameParts.pop();
tempValue = get(nodeValues.value, nameParts.join('.')) as INodeParameters;
if (lastNamePart) {
const { [lastNamePart]: removedArrayNodeValue, ...remainingArrayNodeValues } = tempValue;
tempValue = remainingArrayNodeValues;
}
}
} else {
// Value should be set
if (typeof value === 'object') {
set(
get(nodeValues.value, nameParts.join('.')) as Record<string, unknown>,
lastNamePart as string,
deepCopy(value),
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
);
} else {
set(
get(nodeValues.value, nameParts.join('.')) as Record<string, unknown>,
lastNamePart as string,
value,
);
}
}
}
nodeValues.value = { ...nodeValues.value };
};
/**
* Removes node values that are not valid options for the given parameter.
* This can happen when there are multiple node parameters with the same name
* but different options and display conditions
* @param nodeType The node type description
* @param nodeParameterValues Current node parameter values
* @param updatedParameter The parameter that was updated. Will be used to determine which parameters to remove based on their display conditions and option values
*/
const removeMismatchedOptionValues = (
nodeType: INodeTypeDescription,
nodeParameterValues: INodeParameters | null,
updatedParameter: { name: string; value: NodeParameterValue },
) => {
nodeType.properties.forEach((prop) => {
const displayOptions = prop.displayOptions;
// Not processing parameters that are not set or don't have options
if (!nodeParameterValues?.hasOwnProperty(prop.name) || !displayOptions || !prop.options) {
return;
}
// Only process the parameters that depend on the updated parameter
const showCondition = displayOptions.show?.[updatedParameter.name];
const hideCondition = displayOptions.hide?.[updatedParameter.name];
if (showCondition === undefined && hideCondition === undefined) {
return;
}
let hasValidOptions = true;
// Every value should be a possible option
if (isINodePropertyCollectionList(prop.options) || isINodePropertiesList(prop.options)) {
hasValidOptions = Object.keys(nodeParameterValues).every(
(key) => (prop.options ?? []).find((option) => option.name === key) !== undefined,
);
} else if (isINodePropertyOptionsList(prop.options)) {
hasValidOptions = !!prop.options.find(
(option) => option.value === nodeParameterValues[prop.name],
);
}
if (!hasValidOptions && displayParameter(nodeParameterValues, prop, node.value)) {
unset(nodeParameterValues as object, prop.name);
}
});
};
const valueChanged = (parameterData: IUpdateInformation) => {
let newValue: NodeParameterValue;
if (parameterData.hasOwnProperty('value')) {
// New value is given
newValue = parameterData.value as string | number;
} else {
// Get new value from nodeData where it is set already
newValue = get(nodeValues.value, parameterData.name) as NodeParameterValue;
}
// Save the node name before we commit the change because
// we need the old name to rename the node properly
const nodeNameBefore = parameterData.node || node.value?.name;
if (!nodeNameBefore) {
return;
}
const _node = workflowsStore.getNodeByName(nodeNameBefore);
if (_node === null) {
return;
}
if (parameterData.name === 'onError') {
// If that parameter changes, we need to redraw the connections, as the error output may need to be added or removed
emit('redrawRequired');
}
if (parameterData.name === 'name') {
// Name of node changed so we have to set also the new node name as active
// Update happens in NodeView so emit event
const sendData = {
value: newValue,
oldValue: nodeNameBefore,
name: parameterData.name,
};
emit('valueChanged', sendData);
} else if (parameterData.name === 'parameters') {
const nodeType = nodeTypesStore.getNodeType(_node.type, _node.typeVersion);
if (!nodeType) {
return;
}
// Get only the parameters which are different to the defaults
let nodeParameters = NodeHelpers.getNodeParameters(
nodeType.properties,
_node.parameters,
false,
false,
_node,
);
const oldNodeParameters = Object.assign({}, nodeParameters);
// Copy the data because it is the data of vuex so make sure that
// we do not edit it directly
nodeParameters = deepCopy(nodeParameters);
if (parameterData.value && typeof parameterData.value === 'object') {
for (const parameterName of Object.keys(parameterData.value)) {
//@ts-ignore
newValue = parameterData.value[parameterName];
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
// Remove the 'parameters.' from the beginning to just have the
// actual parameter name
const parameterPath = parameterName.split('.').slice(1).join('.');
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
// Check if the path is supposed to change an array and if so get
// the needed data like path and index
const parameterPathArray = parameterPath.match(/(.*)\[(\d+)\]$/);
// Apply the new value
//@ts-ignore
if (parameterData[parameterName] === undefined && parameterPathArray !== null) {
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
// Delete array item
const path = parameterPathArray[1];
const index = parameterPathArray[2];
const data = get(nodeParameters, path);
if (Array.isArray(data)) {
data.splice(parseInt(index, 10), 1);
set(nodeParameters as object, path, data);
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
}
} else {
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
if (newValue === undefined) {
unset(nodeParameters as object, parameterPath);
} else {
set(nodeParameters as object, parameterPath, newValue);
}
2019-06-23 03:35:23 -07:00
}
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
void externalHooks.run('nodeSettings.valueChanged', {
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
parameterPath,
newValue,
parameters: parameters.value,
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
oldNodeParameters,
});
}
}
// Get the parameters with the now new defaults according to the
// from the user actually defined parameters
nodeParameters = NodeHelpers.getNodeParameters(
nodeType.properties,
nodeParameters as INodeParameters,
true,
false,
_node,
);
for (const key of Object.keys(nodeParameters as object)) {
if (nodeParameters && nodeParameters[key] !== null && nodeParameters[key] !== undefined) {
setValue(`parameters.${key}`, nodeParameters[key] as string);
}
}
2019-06-23 03:35:23 -07:00
if (nodeParameters) {
const updateInformation: IUpdateInformation = {
name: _node.name,
value: nodeParameters,
};
workflowsStore.setNodeParameters(updateInformation);
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
nodeHelpers.updateNodeParameterIssuesByName(_node.name);
nodeHelpers.updateNodeCredentialIssuesByName(_node.name);
}
} else if (parameterData.name.startsWith('parameters.')) {
// A node parameter changed
const nodeType = nodeTypesStore.getNodeType(_node.type, _node.typeVersion);
if (!nodeType) {
return;
}
if (
parameterData.type &&
workflowsStore.nodeHasOutputConnection(_node.name) &&
SHOULD_CLEAR_NODE_OUTPUTS[nodeType.name]?.eventTypes.includes(parameterData.type) &&
SHOULD_CLEAR_NODE_OUTPUTS[nodeType.name]?.parameterPaths.includes(parameterData.name)
) {
workflowsStore.removeAllNodeConnection(_node, { preserveInputConnections: true });
showMessage({
type: 'warning',
title: i18n.baseText('nodeSettings.outputCleared.title'),
message: i18n.baseText('nodeSettings.outputCleared.message'),
fix(editor): Fix operation change failing in certain conditions (#8114) ## Summary This PR handles the case when there are multiple parameters with the same name but different `options` and `displayOptions`. In this case, if one of such fields is set, changing the dependent parameter value so the other should be shown causes an error in case their options are not compatible (this [check](https://github.com/n8n-io/n8n/blob/7806a65229878a473f5526bad0b94614e8bfa8aa/packages/workflow/src/NodeHelpers.ts#L786)). #### Example: LDAP node has two `options` properties with the same name: 1. `attributes` with predefined options (`add`, `replace`, `delete`). Shown when **Update** operation is selected 2. `attributes` with a collection of `attribute` objects. Shows for the **Create** operation Setting one of these parameter values and switching operation so the other is shown breaks the app. This PR checks if there is a value saved for such parameter and removes it before calling `getNodeParameters` in `valueChanged` handler. ## Related tickets and issues Fixes ADO-1589 ## Review / Merge checklist - [x] PR title and summary are descriptive. **Remember, the title automatically goes into the changelog. Use `(no-changelog)` otherwise.** ([conventions](https://github.com/n8n-io/n8n/blob/master/.github/pull_request_title_conventions.md)) - [ ] [Docs updated](https://github.com/n8n-io/n8n-docs) or follow-up ticket created. - [x] Tests included. > A bug is not considered fixed, unless a test is added to prevent it from happening again. > A feature is not complete without tests.
2023-12-21 23:41:20 -08:00
});
}
// Get only the parameters which are different to the defaults
let nodeParameters = NodeHelpers.getNodeParameters(
nodeType.properties,
_node.parameters,
false,
false,
_node,
);
const oldNodeParameters = Object.assign({}, nodeParameters);
// Copy the data because it is the data of vuex so make sure that
// we do not edit it directly
nodeParameters = deepCopy(nodeParameters);
// Remove the 'parameters.' from the beginning to just have the
// actual parameter name
const parameterPath = parameterData.name.split('.').slice(1).join('.');
// Check if the path is supposed to change an array and if so get
// the needed data like path and index
const parameterPathArray = parameterPath.match(/(.*)\[(\d+)\]$/);
// Apply the new value
if (parameterData.value === undefined && parameterPathArray !== null) {
// Delete array item
const path = parameterPathArray[1];
const index = parameterPathArray[2];
const data = get(nodeParameters, path);
if (Array.isArray(data)) {
data.splice(parseInt(index, 10), 1);
set(nodeParameters as object, path, data);
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
}
} else {
if (newValue === undefined) {
unset(nodeParameters as object, parameterPath);
} else {
set(nodeParameters as object, parameterPath, newValue);
}
// If value is updated, remove parameter values that have invalid options
// so getNodeParameters checks don't fail
removeMismatchedOptionValues(nodeType, nodeParameters, {
name: parameterPath,
value: newValue,
});
}
// Get the parameters with the now new defaults according to the
// from the user actually defined parameters
nodeParameters = NodeHelpers.getNodeParameters(
nodeType.properties,
nodeParameters as INodeParameters,
true,
false,
_node,
);
for (const key of Object.keys(nodeParameters as object)) {
if (nodeParameters && nodeParameters[key] !== null && nodeParameters[key] !== undefined) {
setValue(`parameters.${key}`, nodeParameters[key] as string);
}
}
2019-06-23 03:35:23 -07:00
// Update the data in vuex
const updateInformation: IUpdateInformation = {
name: _node.name,
value: nodeParameters,
};
workflowsStore.setNodeParameters(updateInformation);
void externalHooks.run('nodeSettings.valueChanged', {
parameterPath,
newValue,
parameters: parameters.value,
oldNodeParameters,
});
nodeHelpers.updateNodeParameterIssuesByName(_node.name);
nodeHelpers.updateNodeCredentialIssuesByName(_node.name);
telemetry.trackNodeParametersValuesChange(nodeType.name, parameterData);
} else {
// A property on the node itself changed
// Update data in settings
nodeValues.value = {
...nodeValues.value,
[parameterData.name]: newValue,
};
// Update data in vuex
const updateInformation = {
name: _node.name,
key: parameterData.name,
value: newValue,
};
workflowsStore.setNodeValue(updateInformation);
}
};
const setHttpNodeParameters = (parameters: CurlToJSONResponse) => {
try {
valueChanged({
node: node.value?.name,
name: 'parameters',
value: parameters as unknown as INodeParameters,
});
} catch {}
};
const onSwitchSelectedNode = (node: string) => {
emit('switchSelectedNode', node);
};
const onOpenConnectionNodeCreator = (nodeName: string, connectionType: NodeConnectionType) => {
emit('openConnectionNodeCreator', nodeName, connectionType);
};
const populateHiddenIssuesSet = () => {
if (!node.value || !workflowsStore.isNodePristine(node.value.name)) return;
hiddenIssuesInputs.value.push('credentials');
parametersNoneSetting.value.forEach((parameter) => {
hiddenIssuesInputs.value.push(parameter.name);
});
workflowsStore.setNodePristine(node.value.name, false);
};
const populateSettings = () => {
if (isExecutable.value && !isTriggerNode.value) {
nodeSettings.value.push(
...([
{
displayName: i18n.baseText('nodeSettings.alwaysOutputData.displayName'),
name: 'alwaysOutputData',
type: 'boolean',
default: false,
noDataExpression: true,
description: i18n.baseText('nodeSettings.alwaysOutputData.description'),
},
{
displayName: i18n.baseText('nodeSettings.executeOnce.displayName'),
name: 'executeOnce',
type: 'boolean',
default: false,
noDataExpression: true,
description: i18n.baseText('nodeSettings.executeOnce.description'),
},
{
displayName: i18n.baseText('nodeSettings.retryOnFail.displayName'),
name: 'retryOnFail',
type: 'boolean',
default: false,
noDataExpression: true,
description: i18n.baseText('nodeSettings.retryOnFail.description'),
},
{
displayName: i18n.baseText('nodeSettings.maxTries.displayName'),
name: 'maxTries',
type: 'number',
typeOptions: {
minValue: 2,
maxValue: 5,
},
default: 3,
displayOptions: {
show: {
retryOnFail: [true],
},
},
noDataExpression: true,
description: i18n.baseText('nodeSettings.maxTries.description'),
},
{
displayName: i18n.baseText('nodeSettings.waitBetweenTries.displayName'),
name: 'waitBetweenTries',
type: 'number',
typeOptions: {
minValue: 0,
maxValue: 5000,
},
default: 1000,
displayOptions: {
show: {
retryOnFail: [true],
},
},
noDataExpression: true,
description: i18n.baseText('nodeSettings.waitBetweenTries.description'),
},
{
displayName: i18n.baseText('nodeSettings.onError.displayName'),
name: 'onError',
type: 'options',
options: [
{
name: i18n.baseText('nodeSettings.onError.options.stopWorkflow.displayName'),
value: 'stopWorkflow',
description: i18n.baseText('nodeSettings.onError.options.stopWorkflow.description'),
},
{
name: i18n.baseText('nodeSettings.onError.options.continueRegularOutput.displayName'),
value: 'continueRegularOutput',
description: i18n.baseText(
'nodeSettings.onError.options.continueRegularOutput.description',
),
},
{
name: i18n.baseText('nodeSettings.onError.options.continueErrorOutput.displayName'),
value: 'continueErrorOutput',
description: i18n.baseText(
'nodeSettings.onError.options.continueErrorOutput.description',
),
},
],
default: 'stopWorkflow',
description: i18n.baseText('nodeSettings.onError.description'),
noDataExpression: true,
},
] as INodeProperties[]),
);
}
nodeSettings.value.push(
...([
{
displayName: i18n.baseText('nodeSettings.notes.displayName'),
name: 'notes',
type: 'string',
typeOptions: {
rows: 5,
},
default: '',
noDataExpression: true,
description: i18n.baseText('nodeSettings.notes.description'),
},
{
displayName: i18n.baseText('nodeSettings.notesInFlow.displayName'),
name: 'notesInFlow',
type: 'boolean',
default: false,
noDataExpression: true,
description: i18n.baseText('nodeSettings.notesInFlow.description'),
},
] as INodeProperties[]),
);
};
const onParameterBlur = (parameterName: string) => {
hiddenIssuesInputs.value = hiddenIssuesInputs.value.filter((name) => name !== parameterName);
};
const onWorkflowActivate = () => {
hiddenIssuesInputs.value = [];
emit('activate');
};
const onNodeExecute = () => {
hiddenIssuesInputs.value = [];
subConnections.value?.showNodeInputsIssues();
emit('execute');
};
const credentialSelected = (updateInformation: INodeUpdatePropertiesInformation) => {
// Update the values on the node
workflowsStore.updateNodeProperties(updateInformation);
const node = workflowsStore.getNodeByName(updateInformation.name);
if (node) {
// Update the issues
nodeHelpers.updateNodeCredentialIssues(node);
}
void externalHooks.run('nodeSettings.credentialSelected', { updateInformation });
};
const nameChanged = (name: string) => {
if (node.value) {
historyStore.pushCommandToUndo(new RenameNodeCommand(node.value.name, name));
}
valueChanged({
value: name,
name: 'name',
});
};
const setNodeValues = () => {
// No node selected
if (!node.value) {
nodeValuesInitialized.value = true;
return;
}
if (props.nodeType !== null) {
nodeValid.value = true;
const foundNodeSettings = [];
if (node.value.color) {
foundNodeSettings.push('color');
nodeValues.value = {
...nodeValues.value,
color: node.value.color,
};
}
if (node.value.notes) {
foundNodeSettings.push('notes');
nodeValues.value = {
...nodeValues.value,
notes: node.value.notes,
};
}
if (node.value.alwaysOutputData) {
foundNodeSettings.push('alwaysOutputData');
nodeValues.value = {
...nodeValues.value,
alwaysOutputData: node.value.alwaysOutputData,
};
}
if (node.value.executeOnce) {
foundNodeSettings.push('executeOnce');
nodeValues.value = {
...nodeValues.value,
executeOnce: node.value.executeOnce,
};
}
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
if (node.value.continueOnFail) {
foundNodeSettings.push('onError');
nodeValues.value = {
...nodeValues.value,
onError: 'continueRegularOutput',
};
}
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
if (node.value.onError) {
foundNodeSettings.push('onError');
nodeValues.value = {
...nodeValues.value,
onError: node.value.onError,
};
}
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
if (node.value.notesInFlow) {
foundNodeSettings.push('notesInFlow');
nodeValues.value = {
...nodeValues.value,
notesInFlow: node.value.notesInFlow,
};
}
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
if (node.value.retryOnFail) {
foundNodeSettings.push('retryOnFail');
nodeValues.value = {
...nodeValues.value,
retryOnFail: node.value.retryOnFail,
};
}
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
if (node.value.maxTries) {
foundNodeSettings.push('maxTries');
nodeValues.value = {
...nodeValues.value,
maxTries: node.value.maxTries,
};
}
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
if (node.value.waitBetweenTries) {
foundNodeSettings.push('waitBetweenTries');
nodeValues.value = {
...nodeValues.value,
waitBetweenTries: node.value.waitBetweenTries,
};
}
// Set default node settings
for (const nodeSetting of nodeSettings.value) {
if (!foundNodeSettings.includes(nodeSetting.name)) {
// Set default value
nodeValues.value = {
...nodeValues.value,
[nodeSetting.name]: nodeSetting.default,
};
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
}
}
nodeValues.value = {
...nodeValues.value,
parameters: deepCopy(node.value.parameters),
};
} else {
nodeValid.value = false;
}
nodeValuesInitialized.value = true;
};
const onMissingNodeTextClick = (event: MouseEvent) => {
if ((event.target as Element).localName === 'a') {
telemetry.track('user clicked cnr browse button', {
source: 'cnr missing node modal',
});
}
};
const onMissingNodeLearnMoreLinkClick = () => {
telemetry.track('user clicked cnr docs link', {
source: 'missing node modal source',
package_name: node.value?.type.split('.')[0],
node_type: node.value?.type,
});
};
const onStopExecution = () => {
emit('stopExecution');
};
const openSettings = () => {
openPanel.value = 'settings';
};
const onTabSelect = (tab: 'params' | 'settings') => {
openPanel.value = tab;
};
watch(node, () => {
setNodeValues();
});
onMounted(() => {
populateHiddenIssuesSet();
populateSettings();
setNodeValues();
props.eventBus?.on('openSettings', openSettings);
nodeHelpers.updateNodeParameterIssues(node.value as INodeUi, props.nodeType);
importCurlEventBus.on('setHttpNodeParameters', setHttpNodeParameters);
ndvEventBus.on('updateParameterValue', valueChanged);
});
onBeforeUnmount(() => {
props.eventBus?.off('openSettings', openSettings);
importCurlEventBus.off('setHttpNodeParameters', setHttpNodeParameters);
ndvEventBus.off('updateParameterValue', valueChanged);
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
});
2019-06-23 03:35:23 -07:00
</script>
<template>
<div
:class="{
'node-settings': true,
dragging: dragging,
}"
@keydown.stop
>
<div :class="$style.header">
<div class="header-side-menu">
<NodeTitle
v-if="node"
class="node-name"
:model-value="node.name"
:node-type="nodeType"
:read-only="isReadOnly"
@update:model-value="nameChanged"
></NodeTitle>
<div v-if="isExecutable">
<NodeExecuteButton
v-if="!blockUI && node && nodeValid"
data-test-id="node-execute-button"
:node-name="node.name"
:disabled="outputPanelEditMode.enabled && !isTriggerNode"
:tooltip="executeButtonTooltip"
size="small"
telemetry-source="parameters"
@execute="onNodeExecute"
@stop-execution="onStopExecution"
@value-changed="valueChanged"
/>
</div>
</div>
<NodeSettingsTabs
v-if="node && nodeValid"
:model-value="openPanel"
:node-type="nodeType"
:push-ref="pushRef"
@update:model-value="onTabSelect"
/>
</div>
<div v-if="node && !nodeValid" class="node-is-not-valid">
<p :class="$style.warningIcon">
<font-awesome-icon icon="exclamation-triangle" />
</p>
<div class="missingNodeTitleContainer mt-s mb-xs">
<n8n-text size="large" color="text-dark" bold>
{{ $locale.baseText('nodeSettings.communityNodeUnknown.title') }}
</n8n-text>
</div>
<div v-if="isCommunityNode" :class="$style.descriptionContainer">
<div class="mb-l">
<i18n-t
keypath="nodeSettings.communityNodeUnknown.description"
tag="span"
@click="onMissingNodeTextClick"
>
<template #action>
<a
:href="`https://www.npmjs.com/package/${node.type.split('.')[0]}`"
target="_blank"
>{{ node.type.split('.')[0] }}</a
>
</template>
</i18n-t>
</div>
<n8n-link
:to="COMMUNITY_NODES_INSTALLATION_DOCS_URL"
@click="onMissingNodeLearnMoreLinkClick"
>
{{ $locale.baseText('nodeSettings.communityNodeUnknown.installLink.text') }}
</n8n-link>
</div>
<i18n-t v-else keypath="nodeSettings.nodeTypeUnknown.description" tag="span">
<template #action>
<a
:href="CUSTOM_NODES_DOCS_URL"
target="_blank"
v-text="$locale.baseText('nodeSettings.nodeTypeUnknown.description.customNode')"
/>
</template>
</i18n-t>
</div>
<div v-if="node && nodeValid" class="node-parameters-wrapper" data-test-id="node-parameters">
<n8n-notice
v-if="hasForeignCredential && !isHomeProjectTeam"
:content="
$locale.baseText('nodeSettings.hasForeignCredential', {
interpolate: { owner: credentialOwnerName },
})
"
/>
<div v-show="openPanel === 'params'">
<NodeWebhooks :node="node" :node-type-description="nodeType" />
<ParameterInputList
v-if="nodeValuesInitialized"
:parameters="parametersNoneSetting"
:hide-delete="true"
:node-values="nodeValues"
:is-read-only="isReadOnly"
:hidden-issues-inputs="hiddenIssuesInputs"
path="parameters"
@value-changed="valueChanged"
@activate="onWorkflowActivate"
@parameter-blur="onParameterBlur"
>
<NodeCredentials
:node="node"
:readonly="isReadOnly"
:show-all="true"
:hide-issues="hiddenIssuesInputs.includes('credentials')"
@credential-selected="credentialSelected"
@value-changed="valueChanged"
@blur="onParameterBlur"
/>
</ParameterInputList>
<div v-if="parametersNoneSetting.length === 0" class="no-parameters">
<n8n-text>
{{ $locale.baseText('nodeSettings.thisNodeDoesNotHaveAnyParameters') }}
</n8n-text>
</div>
<div
v-if="nodeHelpers.isCustomApiCallSelected(nodeValues)"
class="parameter-item parameter-notice"
data-test-id="node-parameters-http-notice"
>
<n8n-notice
:content="
$locale.baseText('nodeSettings.useTheHttpRequestNode', {
interpolate: { nodeTypeDisplayName: nodeType?.displayName ?? '' },
})
"
/>
</div>
</div>
<div v-show="openPanel === 'settings'">
<ParameterInputList
:parameters="parametersSetting"
:node-values="nodeValues"
:is-read-only="isReadOnly"
:hide-delete="true"
:hidden-issues-inputs="hiddenIssuesInputs"
path="parameters"
@value-changed="valueChanged"
@parameter-blur="onParameterBlur"
/>
<ParameterInputList
:parameters="nodeSettings"
:hide-delete="true"
:node-values="nodeValues"
:is-read-only="isReadOnly"
:hidden-issues-inputs="hiddenIssuesInputs"
path=""
@value-changed="valueChanged"
@parameter-blur="onParameterBlur"
/>
<div class="node-version" data-test-id="node-version">
{{
$locale.baseText('nodeSettings.nodeVersion', {
interpolate: {
node: nodeType?.displayName as string,
version: (node.typeVersion ?? latestVersion).toString(),
},
})
}}
<span>({{ nodeVersionTag }})</span>
</div>
</div>
</div>
<NDVSubConnections
v-if="node"
ref="subConnections"
:root-node="node"
@switch-selected-node="onSwitchSelectedNode"
@open-connection-node-creator="onOpenConnectionNodeCreator"
/>
<n8n-block-ui :show="blockUI" />
</div>
</template>
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
<style lang="scss" module>
.header {
background-color: var(--color-background-base);
}
feat: Make it possible to dynamically load community nodes (#2849) * :sparkles: Make it possible to dynamically load node packages * :zap: Fix comment * :sparkles: Make possible to dynamically install nodes from npm * Created migration for sqlite regarding community nodes * Saving to db whenever a package with nodes is installed * Created endpoint to fetch installed packages * WIP - uninstall package with nodes * Fix lint issues * Updating nodes via API * Lint and improvement fixes * Created community node helpers and removed packages taht do not contain nodes * Check for package updates when fetching installed packages * Blocked access to non-owner and preventing incorrect install of packages * Added auto healing process * Unit tests for helpers * Finishing tests for helpers * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * Add check for banned packages and fix broken tests * Create migrations for other db systems * Updated with latest changes from master * Fixed conflict errors * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * 🔥 Removing access check for the Settings sidebar item * ✨ Added inital community nodes settings screen * ⚡Added executionMode flag to settings * ✨ Implemented N8N-callout component * 💄Updating Callout component template propery names * 💄 Updating Callout component styling. * 💄Updating Callout component sizing and colors. * ✔️ Updating Callout component test snapshots after styling changes * ✨ Updating the `ActionBox` component so it supports callouts and conditional button rendering * 💄 Removing duplicate callout theme validation in the `ActionBox` component. Adding a selection control for it in the storybook. * ✨ Added warning message if instance is in the queue mode. Updated colors based on the new design. * ⚡ Added a custom permission support to router * 🔨 Implemented UM detection as a custom permission. * 👌Updating route permission logic. * ✨ Implemented installed community packages list in the settings view * 👌 Updating settings routes rules and community nodes setting view. * Allow installation of packages that failed to load * 👌 Updating `ActionBox`, `CommuntyPackageCard` components and settings loading logic. * 👌 Fixing community nodes loading state and sidebar icon spacing. * ✨ Implemented loading skeletons for community package cards * 👌 Handling errrors while loading installed package list. Updating spacing. * 👌 Updating community nodes error messages. * Added disable flag * 🐛 Fixing a community nodes update detection bug when there are missing packages. (#3497) * ✨ Added front-end support for community nodes feature flag * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * Standardize error codes (#3501) * Standardize error: 400 for request issues such as invalid package name and 500 for installation problems * Fix http status code for when package is not found * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * ✨ Implemented community package installation modal dialog * ✨ Implemented community package uninstall flow. * ✨ Finished update confirm modal UI * 💄 Replaced community nodes tooltip image with the one exported from figma. * ✨ Implemented community package update process * ✨ Updating community nodes list after successful package update * 🔒 Updating public API setting route to use new access rules. Updating express app definition in community nodes tests * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * Change output for installation request * Improve payload for update requests * 👌 Updating community nodes install modal UI * 👌 Updating community nodes confirm modal logic * 👌 Refactoring community nodes confirm modal dialog * 👌 Separating community nodes components loading states * 💄 Updating community nodes install modal spacing. * Fix behavior for installing already installed packages * 💡 Commenting community nodes install process * 🔥 Removing leftover commits of deleted Vue mutations * ✨ Updated node list to identify community nodes and handle node name clash * ✨ Implemented missing community node dialog. * 💄 Updating n8n-tabs component to support tooltips * ✨ Updating node details with community node details. * 🔨 Using back-end response when updating community packages * 👌 Updating tabs component and refactoring community nodes store mutations * 👌 Adding community node flag to node type descriptions and using it to identify community nodes * 👌 Hiding unnecessary elements from missing node details panel. * 👌 Updating missing node type descriptions for custom and community nodes * 👌 Updating community node package name detection logic * 👌 Removing communityNode flag from node description * ✨ Adding `force` flag to credentials fetching (#3527) * ✨ Adding `force` flag to credentials fetching which can be used to skip check when loading credentials * ✨ Forcing credentials loading when opening nodeView * 👌 Minor updates to community nodes details panel * tests for post endpoint * duplicate comments * Add Patch and Delete enpoints tests * 🔒 Using `pageCategory`prop to assemble the list of settings routes instead of hard-coded array (#3562) * 📈 Added front-end telemetry events for community nodes * 📈 Updating community nodes telemetry events * 💄 Updating community nodes settings UI elements based on product/design review * 💄 Updating node view & node details view for community nodes based on product/design feedback * 💄 Fixing community node text capitalisation * ✨ Adding community node install error message under the package name input field * Fixed and improved tests * Fix lint issue * feat: Migrated to npm release of riot-tmpl fork. * 📈 Updating community nodes telemetry events based on the product review * 💄 Updating community nodes UI based on the design feedback * 🔀 Merging recent node draggable panels changes * Implement self healing process * Improve error messages for package name requirement and disk space * 💄 Removing front-end error message override since appropriate response is available from the back-end * Fix lint issues * Fix installed node name * 💄 Removed additional node name parsing * 📈 Updating community nodes telemetry events * Fix postgres migration for cascading nodes when package is removed * Remove postman mock for banned packages * 📈 Adding missing telemetry event for community node documentation click * 🐛 Fixing community nodes UI bugs reported during the bug bash * Fix issue with uninstalling packages not reflecting UI * 🐛 Fixing a missing node type bug when trying to run a workflow. * Improve error detection for installing packages * 💄 Updating community nodes components styling and wording based on the product feedback * Implement telemetry be events * Add author name and email to packages * Fix telemetry be events for community packages * 📈 Updating front-end telemetry events with community nodes author data * 💄 Updating credentials documentation link logic to handle community nodes credentials * 🐛 Fixing draggable panels logic * Fix duplicate wrong import * 💄 Hiding community nodes credentials documentation links when they don't contain an absolute URL * Fix issue with detection of missing packages * 💄 Adding the `Docs` tab to community nodes * 💄 Adding a failed loading indicator to community nodes list * Prevent n8n from crashing on startup * Refactor and improve code quality * :zap: Remove not needed depenedency Co-authored-by: Omar Ajoue <krynble@gmail.com> Co-authored-by: Milorad Filipović <milorad@n8n.io> Co-authored-by: Milorad FIlipović <miloradfilipovic19@gmail.com> Co-authored-by: agobrech <ael.gobrecht@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com>
2022-07-20 07:24:03 -07:00
.warningIcon {
color: var(--color-text-lighter);
font-size: var(--font-size-2xl);
}
.descriptionContainer {
display: flex;
flex-direction: column;
}
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
</style>
2019-06-23 03:35:23 -07:00
feat(editor): Migrate Design System and Editor UI to Vue 3 (#6476) * feat: remove vue-fragment (no-changelog) * feat: partial design-system migration * feat: migrate info-accordion and info-tip components * feat: migrate several components to vue 3 * feat: migrated several components * feat: migrate several components * feat: migrate several components * feat: migrate several components * feat: re-exported all design system components * fix: fix design for popper components * fix: editor kind of working, lots of issues to fix * fix: fix several vue 3 migration issues * fix: replace @change with @update:modelValue in several places * fix: fix translation linking * fix: fix inline-edit input * fix: fix ndv and dialog design * fix: update parameter input event bindings * fix: rename deprecated lifecycle methods * fix: fix json view mapping * build: update lock file * fix(editor): revisit last conflict with master and fix issues * fix(editor): revisit last conflict with master and fix issues * fix: fix expression editor bug causing code mirror to no longer be reactive * fix: fix resource locator bug * fix: fix vue-agile integration * fix: remove global import for vue-agile * fix: replace element-plus buttons with n8n-buttons everywhere * fix(editor): Fix various element-plus styles (#6571) * fix(editor): Fix various element-plus styles Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * Remove debugging code Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * Address PR comments Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> --------- Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * fix(editor): Fix loading in production mode [Vue 3] (#6578) Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * fix(editor): First round of e2e tests fixes with Vue 3 (#6579) * fix(editor): Fix broken smoke and workflow list e2e tests * ✔️ Fix failing canvas action tests. Updating some selectors used in credentials and workflow tests * feat: add vue 3 eslint rules and fix issues * fix: fix tags-dropdown * fix: fix white-space issues caused by i18n-t * fix: rename non-generic click events * fix: fix search in resources list layout * fix: fix datatable paginator * fix: fix popper select caret and dropdown size * fix: add width to action-dropdown * fix: fix workflow settings icon not being hidden * fix: refactor newly added code * fix: fix merge issue * fix: fix ndv credentials watcher * fix: fix workflow saving and grabber notch * fix: fix nodes list panel transition * fix: fix node title visibility * fix: fix data unpinning * fix: fix value access * fix: show input panel only if trigger panel enabled or not trigger node * fix: fix tags dropdown and executions status spcing * fix(editor): Prevent execution list to load back when leaving the route (#6697) fix(editor): prevent execution list to load back when leaving the route * fix: fix drawer visibility * fix: fix expression toggle padding * fix: fix expressions editor styling * chore: prepare for testing * fix: fix styling for el-button without patching * test: fix unit tests in design-system * test: fix most unit tests * fix: remove import cycle. * fix: fix personalization modal tests * fix further resource mapper test adjustments * fix: fix multiple tests and n8n-route attr duplication * fix: fix source control tets * fix: fixed remaining unit tests * fix: fix workflows and credentials e2e tests * fix: fix localizeNodeNames * fix: update ndv e2e tests * fix: fix popper left placement arrow * fix: fix 5-ndv e2e tests * fix: fix 6-code-node e2e tests * fix(editor): Drop click outside directive from NodeCreator (#6716) * fix(editor): Drop click outside directive from NodeCreator * fix(editor): make sure mouseup outside is unbound at least before the component is unmounted * fix: fix 10-settings-log-streaming e2e tests * fix: fix node redrawing * fix: fix tooltip buttons styling * fix: fix varous e2e suites * fix: fix 15-scheduler-node e2e suite * fix: fix route watcher * fix: fixed param name update and credential edit * feat: update event names * refactor: Remove deprecated `$data` (#6576) Co-authored-by: Alex Grozav <alex@grozav.com> * fix: fix 17-sharing e2e suite * fix: fix tags dropdown * fix: fix tags manager * fix(editor): move :deep selectors to a separate scoped style block * fix: fix sticky component and inline text edit * fix: update e2e tests * fix: remove button override references * fix(editor): Adjust spacing in templates for Vue 3 (#6744) * fix(editor): Adjust spacing in templates * fix: Undo unneeded change * fix: Undo unneeded change * fix(editor): Adjust NDV height for Vue 3 (#6742) fix(editor): Adjust NDV height * fix(editor): Restore collapsed sidebar items for Vue 3 (#6743) fix(editor): Restore collapsed sidebar items * fix: fix linting issues * fix: fix design-system deps * fix: post-merge fixes * fix: update tests * fix: increase timeout for executionslist tets * chore: fix linting issue * fix: fix 14-mapping e2e tests in ci * fix: re-enable tests * fix: fix workflow duplication e2e tests after tags update * fix(editor): Change component prop to be typed * fix: fix tags dropdown in duplicate wf modal * fix: fix focus behaviour in tags selector * fix: fix tag creation * fix: fix log streaming e2e race condition * fix(editor): Fix Vue 3 linting issues (#6748) * fix(editor): Fix Vue 3 linting issues Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * fix MainSidebar linter issues * revert pnpm lock * update pnpm lock file --------- Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Alex Grozav <alex@grozav.com> * fix(editor): Some css fixes for vue3 branch (#6749) * ✨ Fixing filter button height * ✨ Update input modal button position * ✨ Updating tags styling * ✨ Fix event logging settings spacing * 👕 Fixing lint errors * fix: fix linting issues * Revert to `// eslint-disable-next-line @typescript-eslint/no-misused-promises` disabling of mixins init Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * fix: fix css issue * fix(editor): Lint fix * fix(editor): Fix settings initialisation (#6750) Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * fix: fix initial settings loading * fix: replace realClick with click force * fix: fix randomly failing mapping e2e tests * fix(editor): Fix menu item event handling * fix: fix resource filters dropdown events (#6752) * fix: fix resource filters dropdown events * fix: remove teleported:false * fix: fix event selection event naming (#6753) * fix: removed console.log (#6754) * fix: rever await nextTick changes * fix: redo linting changes * fix(editor): Redraw node connections if adding more than one node to canvas (#6755) * fix(editor): Redraw node connections if adding more than one node to canvas Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * Update position before connection two nodes * Lint fix --------- Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Alex Grozav <alex@grozav.com> * fix(editor): Fix `ResourceMapper` unit tests (#6758) * ✔️ Fix matching columns test * ✔️ Fix multiple matching columns test * ✔️ Removing `skip` from the last test * fix: Allow pasting a big workflow (#6760) * fix: pasting a big workflow * chore: update comment * refactor: move try/catch to function * refactor: move try/catch to function * fix(editor): Fix modal layer width * fix: fix position changes * fix: undo it.only * fix: make undo/redo multiple steps more verbose * fix: Fix value survey styles (#6764) * fix: fix value survey styles * fix: lint * Revert "fix: lint" 72869c431f1448861df021be041b61c62f1e3118 * fix: lint * fix(editor): Fix collapsed sub menu * fix: Fix drawer animation (#6767) fix: drawer animation * fix(editor): Fix source control buttons (#6769) * fix(editor): Fix App loading & auth (#6768) * fix(editor): Fix App loading & auth Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * Await promises Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> * Fix eslint error Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> --------- Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> --------- Signed-off-by: Oleg Ivaniv <me@olegivaniv.com> Co-authored-by: Csaba Tuncsik <csaba@n8n.io> Co-authored-by: OlegIvaniv <me@olegivaniv.com> Co-authored-by: Milorad FIlipović <milorad@n8n.io> Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2023-07-28 00:51:07 -07:00
<style lang="scss" scoped>
2019-06-23 03:35:23 -07:00
.node-settings {
display: flex;
flex-direction: column;
:sparkles: Update credentials modal (#2154) * :zap: Generalize unique entity name generation * :zap: Standardize variable names * redo credentials * revert some changes, replace got with was * fix v-if order * fix v-if order * update linting * update gulpfile * update ssh display name * update height * update params * update info tip sizes * address design comments * update google button disabled * update icon size to 28px * update design issues * update info tab design * address design comments * update tab size * update run data spacing * address comments, update logo design * fix spacing issues * clean up store * fix create new bug * add loading state * rename prop * remove unused prop * fix select bug * remove label tag * update word break * build * address design comments * update font family of button * update menu opacity * update text * update title * address more comments * update oauth messages * add oauth validation * hide disabled state * update warning modal * show button on text input * clean up cred details * add validation errors * fix bug when deleting cred * Frontend hack to display test button * Created interfaces for testing and endpoint * Testing slack node credentials working * Adding test with node to endpoint for credential testing * Fixed linting and test detectability * Adding required for slack token * Added google sheets credential testing * update message * Adding suggestions by Ivan and Mutasem * Address comments * keep blurred when focused * update font weight of errors * add oauth banner * remove toast * Fixed code bug and added telegram credential testing * scroll to top on success * clean up duplication * Fixed telegram trigger node and added tests to typeform * refactor modal * add more validation support * refactor info tab * scroll to bottom on save, handle cred saving * refactor save button * save cred on valid * save cred on valid * scroll to top if has error * add targets on input labels * delete credentails input * revert fe changes * update validation logic * clean interface * test credentials * update banner design * show testing state * update x position * fix issues * fix focus issues * clean up validation behavior * make error relative * update banner component * update error spacing * don't close dialog * rename button * update how banners behave * if has unsaved changes first * move confirm message * add success banner * update time state * disable transitions * test on open * clean up banner behavior * update banner styling * capitalize * update error banner styling to handle long texts * avoid unnessary content jostling * add loading label * show validation warnings when opening modal * retest cred if not all props req * update scroll to auto * add error warning * update color saturation * set overflow to auto * fix bug to get credentials when connected * round down to minutes * change tab name * update casing oauth * disable credential testing if it has expressions * label same as title * add more space between close and save * remove check on making any changes * hide close on confirm modals * don't accept clicks outside dialog * fix build issues * undo test changes * fix table scrollbar logs * rename modals * fix bug with same name * refactor modal * fix tslint issue * refactor name * update name behavior * update monospace font * remove comment * refactor inputs * refactor error handling * reduce spacing changes * fix doc url oauth1 oauth2 * build * hide infotip if no inputs * address most comments * rename file * fix menu alignment * gst * update types Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2021-09-11 01:15:36 -07:00
overflow: hidden;
feat(editor): Add input panel to NDV (#3204) * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * refactor header out * support different nodes * update selector * add immediate input * add branch overrides * split output input run index * clean up unnessary data * add missing keys * update key names * remove unnessary css/js * fix outputs panel * set max width on input selector * fix selector to show parent nodes * fix bug when switching between nodes * add linking and refactor * add linking * fix minor issues * hide linking when cannot link * fix type * fix error state * clean up import * fix linking edge cases * hide input panel for triggers * disable for start node * format file * refactor output panel * add empty input hint * update too much data view * update slot, message under branch * no input data view * add node not run/no output data views * add tooltip support on execute prev * fix spacing in view * address output views * fix run node hint view * fix spinner * center button * update message to use node name * update title of no output data message * implement loading states * fix sizes * fix sizes * update spinner * add wire me up image * update link * update panels design * fix unclickable area bug * revert change * fix clickable bg * fix up positioning * ensure bg is clickable * fix up borders * fix height * move border to wrapper * set box shadow * set box shadow * add drag button * add dragging for main panel * set max width of panels * set min width in js * keep showing drag while dragging * fix dragging leaving modal * update trigger position of main panel * move main panel position into store * clear metadata after changing workflow * center grid correctly * add drag arrows * add dragging hover * fix cursor behavior * update no output state * show last run on open * always set to latest run * fix padding * add I wish this node would * clean up unsued data * inject run info into run * refactor out drag button * fix dragging issue * fix arrow bug * increase width of panel * change run logic * set label font sizes * update radiobutton pos * address header issues * fix prev spacing bug * fix input order * set package lock * add close modal event * complete close modal event * add input change event * add dragging event * add event on view change * add page size event * rename event * add event on page change * add link click event * add linking event * rename var * add run change event * add button events * add branch event * add structure for open event * add input type * set session id * set sessionid/source for expression events * add params to expression events * make display modes global * add display mode to tracking * add more event tracking * add has_mapping param * make main panel position global * dedupe list * fix cursor while dragging * address feedback * reduce bottom scrim * remove empty option hint * add hint tooltip * add tritary button * update param names * update parameter buttons * center empty states * move feature request message * increase max width for inputs selector * fix error dispaly padding * remove immediate * refactor search logic to return object * fix console errors * fix console errors * add node distance * refactor how input nodes listed * remove console log * set package lock * refactor recursive logic * handle overrides * handle default case without inputs * fix bug width link * fix tabs arrow bug * handle binary data case * update node execution * fix merge logic * remove console log * delete func * update package lock * add hover area * switch first input node * keep recursive order * make breadth first traversal * fix overflow bug, add pluralization * update docs url * update drop shadow * set background color for button * update input * fix truncation * update index of input dropdown * fix binary background * update telemetry * fix binary data switching * check all parent connections for executed node * check current state for executing node * fix executing states * update loading states * use pluralization for items * rename modal * update pluralization * update package lock * update empty messagE * format file * refactor out dragging logic * refactor out dragging * add back panel position * add telemetry params * add survey url as const * remove extra space, add dot * rename tabs, update telemetery, fix telemetry bug * update execute prev button * rename workflow func * rename workflow func * delete unnessary component * fix build issue * add tests for workflow search * format + add tests * remove todo comment * update iconnection type to match workflows * Revert "update iconnection type to match workflows" 3772487d985f226acab7144c7672b5696deabb55 * update func comment * fix formatting issues * add tertiary story * add spinner story * remove todo comment * remove eslint check * update empty messagE
2022-05-23 08:56:15 -07:00
background-color: var(--color-background-xlight);
height: 100%;
feat(editor-ui): Resizable main panel (#3980) * Introduce node deprecation (#3930) :sparkles: Introduce node deprecation * :construction: Scaffold out Code node * :shirt: Fix lint * :blue_book: Create types file * :truck: Rename theme * :fire: Remove unneeded prop * :zap: Override keybindings * :zap: Expand lintings * :zap: Create editor content getter * :truck: Ensure all helpers use `$` * :sparkles: Add autocompletion * :recycle: Refactore Resize UI lib component, allow to use it in different than n8n-sticky context * :construction: Use variable width for node settings and allow for resizing * :sparkles: Use store to keep track of wide and regular main panel widths * :recycle: Extract Resize wrapper from the Sticky and create a story for it * :bug: Fixed cherry-pick conflicts * :zap: Filter out welcome note node * :zap: Convey error line number * :zap: Highlight error line * :zap: Restore logging from node * :sparkles: More autocompletions * :zap: Streamline completions * :lipstick: Fix drag-button border * :pencil2: Update placeholders * :zap: Update linter to new methods * :sparkles: Preserve main panel width in local storage * :bug: Fallback to max size size if window is too big * :fire: Remove `$nodeItem` completions * :zap: Re-update placeholders * :art: Fix formatting * :package: Update `package-lock.json` * :zap: Refresh with multi-line empty string * :recycle: Refactored DraggablePanels to use relative units and implemented independent resizing, cleaned store * :bug: Re-implement dragging indicators and move border styles to NDVDraggablePanels component * :rotating_light: Fix semis * :rotating_light: Remove unsused UI state props * :recycle: Use only relative left position and calculate right based on it, fix quirks * 🚨Fix linting error * :recycle: Store and retrieve main panel dimensions from store to make them persistable in the same app mount session * :bug: Prevent resizing of unknown nodes * :recycle: Add typings for `nodeType` prop, remove unused `convertRemToPixels` import * :label: Add typings for `nodeType` prop in NodeSettings.vue * :bug: Prevent the main panel resize below 280px * :bug: Fix inputless panel left position * :sparkles: Resize resource locator on main panel size change * :bug: Resize resource locator on window resize Co-authored-by: Iván Ovejero <ivov.src@gmail.com>
2022-09-22 08:41:15 -07:00
width: 100%;
:zap: Update parameter inputs to be multi-line (#2299) * 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> * update parameter inputs to be multiline * update spacing * Survey new options (#2300) * split up options * fix quotes * remove unused import * refactor node credentials * add user created workflow event (#2301) * update multi params * simplify env vars * fix versionCli on FE * update personalization env * clean up node detail settings * fix event User opened Credentials panel * fix font sizes across modals * clean up input spacing * fix select modal spacing * increase spacing * fix input copy * fix webhook, tab spacing, retry button * fix button sizes * fix button size * add mini xlarge sizes * fix webhook 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 * fix input error highlighting * revert change * update toggle spacing * fix delete positioning * keep tooltip while focused * set strict size * increase left spacing * fix sort icons * remove unnessary margin * clean unused functionality * remove unnessary css * remove duplicate tracking * only show tooltip when hovering over label * update credentials section * use includes Co-authored-by: ahsan-virani <ahsan.virani@gmail.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-10-27 12:55:37 -07:00
.no-parameters {
margin-top: var(--spacing-xs);
}
2019-06-23 03:35:23 -07:00
.header-side-menu {
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
padding: var(--spacing-s) var(--spacing-s) var(--spacing-s) var(--spacing-s);
:sparkles: Update credentials modal (#2154) * :zap: Generalize unique entity name generation * :zap: Standardize variable names * redo credentials * revert some changes, replace got with was * fix v-if order * fix v-if order * update linting * update gulpfile * update ssh display name * update height * update params * update info tip sizes * address design comments * update google button disabled * update icon size to 28px * update design issues * update info tab design * address design comments * update tab size * update run data spacing * address comments, update logo design * fix spacing issues * clean up store * fix create new bug * add loading state * rename prop * remove unused prop * fix select bug * remove label tag * update word break * build * address design comments * update font family of button * update menu opacity * update text * update title * address more comments * update oauth messages * add oauth validation * hide disabled state * update warning modal * show button on text input * clean up cred details * add validation errors * fix bug when deleting cred * Frontend hack to display test button * Created interfaces for testing and endpoint * Testing slack node credentials working * Adding test with node to endpoint for credential testing * Fixed linting and test detectability * Adding required for slack token * Added google sheets credential testing * update message * Adding suggestions by Ivan and Mutasem * Address comments * keep blurred when focused * update font weight of errors * add oauth banner * remove toast * Fixed code bug and added telegram credential testing * scroll to top on success * clean up duplication * Fixed telegram trigger node and added tests to typeform * refactor modal * add more validation support * refactor info tab * scroll to bottom on save, handle cred saving * refactor save button * save cred on valid * save cred on valid * scroll to top if has error * add targets on input labels * delete credentails input * revert fe changes * update validation logic * clean interface * test credentials * update banner design * show testing state * update x position * fix issues * fix focus issues * clean up validation behavior * make error relative * update banner component * update error spacing * don't close dialog * rename button * update how banners behave * if has unsaved changes first * move confirm message * add success banner * update time state * disable transitions * test on open * clean up banner behavior * update banner styling * capitalize * update error banner styling to handle long texts * avoid unnessary content jostling * add loading label * show validation warnings when opening modal * retest cred if not all props req * update scroll to auto * add error warning * update color saturation * set overflow to auto * fix bug to get credentials when connected * round down to minutes * change tab name * update casing oauth * disable credential testing if it has expressions * label same as title * add more space between close and save * remove check on making any changes * hide close on confirm modals * don't accept clicks outside dialog * fix build issues * undo test changes * fix table scrollbar logs * rename modals * fix bug with same name * refactor modal * fix tslint issue * refactor name * update name behavior * update monospace font * remove comment * refactor inputs * refactor error handling * reduce spacing changes * fix doc url oauth1 oauth2 * build * hide infotip if no inputs * address most comments * rename file * fix menu alignment * gst * update types Co-authored-by: Iván Ovejero <ivov.src@gmail.com> Co-authored-by: Omar Ajoue <krynble@gmail.com>
2021-09-11 01:15:36 -07:00
font-size: var(--font-size-l);
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
display: flex;
justify-content: space-between;
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
.node-name {
padding-top: var(--spacing-5xs);
}
2019-06-23 03:35:23 -07:00
}
.node-is-not-valid {
feat: Make it possible to dynamically load community nodes (#2849) * :sparkles: Make it possible to dynamically load node packages * :zap: Fix comment * :sparkles: Make possible to dynamically install nodes from npm * Created migration for sqlite regarding community nodes * Saving to db whenever a package with nodes is installed * Created endpoint to fetch installed packages * WIP - uninstall package with nodes * Fix lint issues * Updating nodes via API * Lint and improvement fixes * Created community node helpers and removed packages taht do not contain nodes * Check for package updates when fetching installed packages * Blocked access to non-owner and preventing incorrect install of packages * Added auto healing process * Unit tests for helpers * Finishing tests for helpers * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * Add check for banned packages and fix broken tests * Create migrations for other db systems * Updated with latest changes from master * Fixed conflict errors * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * 🔥 Removing access check for the Settings sidebar item * ✨ Added inital community nodes settings screen * ⚡Added executionMode flag to settings * ✨ Implemented N8N-callout component * 💄Updating Callout component template propery names * 💄 Updating Callout component styling. * 💄Updating Callout component sizing and colors. * ✔️ Updating Callout component test snapshots after styling changes * ✨ Updating the `ActionBox` component so it supports callouts and conditional button rendering * 💄 Removing duplicate callout theme validation in the `ActionBox` component. Adding a selection control for it in the storybook. * ✨ Added warning message if instance is in the queue mode. Updated colors based on the new design. * ⚡ Added a custom permission support to router * 🔨 Implemented UM detection as a custom permission. * 👌Updating route permission logic. * ✨ Implemented installed community packages list in the settings view * 👌 Updating settings routes rules and community nodes setting view. * Allow installation of packages that failed to load * 👌 Updating `ActionBox`, `CommuntyPackageCard` components and settings loading logic. * 👌 Fixing community nodes loading state and sidebar icon spacing. * ✨ Implemented loading skeletons for community package cards * 👌 Handling errrors while loading installed package list. Updating spacing. * 👌 Updating community nodes error messages. * Added disable flag * 🐛 Fixing a community nodes update detection bug when there are missing packages. (#3497) * ✨ Added front-end support for community nodes feature flag * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * Standardize error codes (#3501) * Standardize error: 400 for request issues such as invalid package name and 500 for installation problems * Fix http status code for when package is not found * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * ✨ Implemented community package installation modal dialog * ✨ Implemented community package uninstall flow. * ✨ Finished update confirm modal UI * 💄 Replaced community nodes tooltip image with the one exported from figma. * ✨ Implemented community package update process * ✨ Updating community nodes list after successful package update * 🔒 Updating public API setting route to use new access rules. Updating express app definition in community nodes tests * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * Change output for installation request * Improve payload for update requests * 👌 Updating community nodes install modal UI * 👌 Updating community nodes confirm modal logic * 👌 Refactoring community nodes confirm modal dialog * 👌 Separating community nodes components loading states * 💄 Updating community nodes install modal spacing. * Fix behavior for installing already installed packages * 💡 Commenting community nodes install process * 🔥 Removing leftover commits of deleted Vue mutations * ✨ Updated node list to identify community nodes and handle node name clash * ✨ Implemented missing community node dialog. * 💄 Updating n8n-tabs component to support tooltips * ✨ Updating node details with community node details. * 🔨 Using back-end response when updating community packages * 👌 Updating tabs component and refactoring community nodes store mutations * 👌 Adding community node flag to node type descriptions and using it to identify community nodes * 👌 Hiding unnecessary elements from missing node details panel. * 👌 Updating missing node type descriptions for custom and community nodes * 👌 Updating community node package name detection logic * 👌 Removing communityNode flag from node description * ✨ Adding `force` flag to credentials fetching (#3527) * ✨ Adding `force` flag to credentials fetching which can be used to skip check when loading credentials * ✨ Forcing credentials loading when opening nodeView * 👌 Minor updates to community nodes details panel * tests for post endpoint * duplicate comments * Add Patch and Delete enpoints tests * 🔒 Using `pageCategory`prop to assemble the list of settings routes instead of hard-coded array (#3562) * 📈 Added front-end telemetry events for community nodes * 📈 Updating community nodes telemetry events * 💄 Updating community nodes settings UI elements based on product/design review * 💄 Updating node view & node details view for community nodes based on product/design feedback * 💄 Fixing community node text capitalisation * ✨ Adding community node install error message under the package name input field * Fixed and improved tests * Fix lint issue * feat: Migrated to npm release of riot-tmpl fork. * 📈 Updating community nodes telemetry events based on the product review * 💄 Updating community nodes UI based on the design feedback * 🔀 Merging recent node draggable panels changes * Implement self healing process * Improve error messages for package name requirement and disk space * 💄 Removing front-end error message override since appropriate response is available from the back-end * Fix lint issues * Fix installed node name * 💄 Removed additional node name parsing * 📈 Updating community nodes telemetry events * Fix postgres migration for cascading nodes when package is removed * Remove postman mock for banned packages * 📈 Adding missing telemetry event for community node documentation click * 🐛 Fixing community nodes UI bugs reported during the bug bash * Fix issue with uninstalling packages not reflecting UI * 🐛 Fixing a missing node type bug when trying to run a workflow. * Improve error detection for installing packages * 💄 Updating community nodes components styling and wording based on the product feedback * Implement telemetry be events * Add author name and email to packages * Fix telemetry be events for community packages * 📈 Updating front-end telemetry events with community nodes author data * 💄 Updating credentials documentation link logic to handle community nodes credentials * 🐛 Fixing draggable panels logic * Fix duplicate wrong import * 💄 Hiding community nodes credentials documentation links when they don't contain an absolute URL * Fix issue with detection of missing packages * 💄 Adding the `Docs` tab to community nodes * 💄 Adding a failed loading indicator to community nodes list * Prevent n8n from crashing on startup * Refactor and improve code quality * :zap: Remove not needed depenedency Co-authored-by: Omar Ajoue <krynble@gmail.com> Co-authored-by: Milorad Filipović <milorad@n8n.io> Co-authored-by: Milorad FIlipović <miloradfilipovic19@gmail.com> Co-authored-by: agobrech <ael.gobrecht@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com>
2022-07-20 07:24:03 -07:00
height: 75%;
2019-06-23 03:35:23 -07:00
padding: 10px;
feat: Make it possible to dynamically load community nodes (#2849) * :sparkles: Make it possible to dynamically load node packages * :zap: Fix comment * :sparkles: Make possible to dynamically install nodes from npm * Created migration for sqlite regarding community nodes * Saving to db whenever a package with nodes is installed * Created endpoint to fetch installed packages * WIP - uninstall package with nodes * Fix lint issues * Updating nodes via API * Lint and improvement fixes * Created community node helpers and removed packages taht do not contain nodes * Check for package updates when fetching installed packages * Blocked access to non-owner and preventing incorrect install of packages * Added auto healing process * Unit tests for helpers * Finishing tests for helpers * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * Add check for banned packages and fix broken tests * Create migrations for other db systems * Updated with latest changes from master * Fixed conflict errors * Improved unit tests, refactored more helpers and created integration tests for GET * Implemented detection of missing packages on init and added warning to frontend settings * 🔥 Removing access check for the Settings sidebar item * ✨ Added inital community nodes settings screen * ⚡Added executionMode flag to settings * ✨ Implemented N8N-callout component * 💄Updating Callout component template propery names * 💄 Updating Callout component styling. * 💄Updating Callout component sizing and colors. * ✔️ Updating Callout component test snapshots after styling changes * ✨ Updating the `ActionBox` component so it supports callouts and conditional button rendering * 💄 Removing duplicate callout theme validation in the `ActionBox` component. Adding a selection control for it in the storybook. * ✨ Added warning message if instance is in the queue mode. Updated colors based on the new design. * ⚡ Added a custom permission support to router * 🔨 Implemented UM detection as a custom permission. * 👌Updating route permission logic. * ✨ Implemented installed community packages list in the settings view * 👌 Updating settings routes rules and community nodes setting view. * Allow installation of packages that failed to load * 👌 Updating `ActionBox`, `CommuntyPackageCard` components and settings loading logic. * 👌 Fixing community nodes loading state and sidebar icon spacing. * ✨ Implemented loading skeletons for community package cards * 👌 Handling errrors while loading installed package list. Updating spacing. * 👌 Updating community nodes error messages. * Added disable flag * 🐛 Fixing a community nodes update detection bug when there are missing packages. (#3497) * ✨ Added front-end support for community nodes feature flag * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * Standardize error codes (#3501) * Standardize error: 400 for request issues such as invalid package name and 500 for installation problems * Fix http status code for when package is not found * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * ✨ Implemented community package installation modal dialog * ✨ Implemented community package uninstall flow. * ✨ Finished update confirm modal UI * 💄 Replaced community nodes tooltip image with the one exported from figma. * ✨ Implemented community package update process * ✨ Updating community nodes list after successful package update * 🔒 Updating public API setting route to use new access rules. Updating express app definition in community nodes tests * ✨ Implemented community package installation modal dialog * 💄 Community nodes installation modal updates: Moved links to constants and used them in translations, disabling inputs in loading state. * ✨ Implemented community packages install flow * ✨ Updated error handling based on the response codes * Change output for installation request * Improve payload for update requests * 👌 Updating community nodes install modal UI * 👌 Updating community nodes confirm modal logic * 👌 Refactoring community nodes confirm modal dialog * 👌 Separating community nodes components loading states * 💄 Updating community nodes install modal spacing. * Fix behavior for installing already installed packages * 💡 Commenting community nodes install process * 🔥 Removing leftover commits of deleted Vue mutations * ✨ Updated node list to identify community nodes and handle node name clash * ✨ Implemented missing community node dialog. * 💄 Updating n8n-tabs component to support tooltips * ✨ Updating node details with community node details. * 🔨 Using back-end response when updating community packages * 👌 Updating tabs component and refactoring community nodes store mutations * 👌 Adding community node flag to node type descriptions and using it to identify community nodes * 👌 Hiding unnecessary elements from missing node details panel. * 👌 Updating missing node type descriptions for custom and community nodes * 👌 Updating community node package name detection logic * 👌 Removing communityNode flag from node description * ✨ Adding `force` flag to credentials fetching (#3527) * ✨ Adding `force` flag to credentials fetching which can be used to skip check when loading credentials * ✨ Forcing credentials loading when opening nodeView * 👌 Minor updates to community nodes details panel * tests for post endpoint * duplicate comments * Add Patch and Delete enpoints tests * 🔒 Using `pageCategory`prop to assemble the list of settings routes instead of hard-coded array (#3562) * 📈 Added front-end telemetry events for community nodes * 📈 Updating community nodes telemetry events * 💄 Updating community nodes settings UI elements based on product/design review * 💄 Updating node view & node details view for community nodes based on product/design feedback * 💄 Fixing community node text capitalisation * ✨ Adding community node install error message under the package name input field * Fixed and improved tests * Fix lint issue * feat: Migrated to npm release of riot-tmpl fork. * 📈 Updating community nodes telemetry events based on the product review * 💄 Updating community nodes UI based on the design feedback * 🔀 Merging recent node draggable panels changes * Implement self healing process * Improve error messages for package name requirement and disk space * 💄 Removing front-end error message override since appropriate response is available from the back-end * Fix lint issues * Fix installed node name * 💄 Removed additional node name parsing * 📈 Updating community nodes telemetry events * Fix postgres migration for cascading nodes when package is removed * Remove postman mock for banned packages * 📈 Adding missing telemetry event for community node documentation click * 🐛 Fixing community nodes UI bugs reported during the bug bash * Fix issue with uninstalling packages not reflecting UI * 🐛 Fixing a missing node type bug when trying to run a workflow. * Improve error detection for installing packages * 💄 Updating community nodes components styling and wording based on the product feedback * Implement telemetry be events * Add author name and email to packages * Fix telemetry be events for community packages * 📈 Updating front-end telemetry events with community nodes author data * 💄 Updating credentials documentation link logic to handle community nodes credentials * 🐛 Fixing draggable panels logic * Fix duplicate wrong import * 💄 Hiding community nodes credentials documentation links when they don't contain an absolute URL * Fix issue with detection of missing packages * 💄 Adding the `Docs` tab to community nodes * 💄 Adding a failed loading indicator to community nodes list * Prevent n8n from crashing on startup * Refactor and improve code quality * :zap: Remove not needed depenedency Co-authored-by: Omar Ajoue <krynble@gmail.com> Co-authored-by: Milorad Filipović <milorad@n8n.io> Co-authored-by: Milorad FIlipović <miloradfilipovic19@gmail.com> Co-authored-by: agobrech <ael.gobrecht@gmail.com> Co-authored-by: Alex Grozav <alex@grozav.com>
2022-07-20 07:24:03 -07:00
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
text-align: center;
line-height: var(--font-line-height-regular);
2019-06-23 03:35:23 -07:00
}
.node-parameters-wrapper {
fix(editor): Fix i18n issues (#3072) * :bug: Fix `defaultLocale` watcher * :zap: Improve error handling for headers * :pencil2: Improve naming * :bug: Fix hiring banner check * :zap: Flatten base text keys * :zap: Fix miscorrected key * :zap: Implement pluralization * :pencil2: Update docs * :truck: Move headers fetching to `App.vue` * fix hiring banner * :zap: Fix missing import * :pencil2: Alphabetize translations * :zap: Switch to async check * feat(editor): Refactor Output Panel + fix i18n issues (#3097) * update main panel * finish up tabs * fix docs link * add icon * update node settings * clean up settings * add rename modal * fix component styles * fix spacing * truncate name * remove mixin * fix spacing * fix spacing * hide docs url * fix bug * fix renaming * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * update styles of pagination * fix ts issues * fix ts issues * use chevron icons * fix design with download button * add back to canvas button * add trigger warning disabled * show trigger warning tooltip * update button labels for triggers * update node output message * fix add-option bug * add page selector * fix pagination selector bug * fix executions bug * remove hint * add json colors * add colors for json * add color json keys * fix select options bug * update keys * address comments * update name limit * align pencil * update icon size * update radio buttons height * address comments * fix pencil bug * change buttons alignment * fully center * change order of buttons * add no output message in branch * scroll to top * change active state * fix page size * all items * update expression background * update naming * align pencil * update modal background * add schedule group * update schedule nodes messages * use ellpises for last chars * fix spacing * fix tabs issue * fix too far data bug * fix executions bug * fix table wrapping * fix rename bug * add padding * handle unkown errors * add sticky header * ignore empty input, trim node name * nudge lightness of color * center buttons * update pagination * set colors of title * increase table font, fix alignment * fix pencil bug * fix spacing * use date now * address pagination issues * delete unused keys * update keys sort * fix prepend * fix radio button position * Revert "fix radio button position" ae42781786f2e6dcfb00d1be770b19a67f533bdf Co-authored-by: Mutasem <mutdmour@gmail.com> Co-authored-by: Mutasem Aldmour <4711238+mutdmour@users.noreply.github.com>
2022-04-11 06:12:13 -07:00
overflow-y: auto;
padding: 0 var(--spacing-m) var(--spacing-l) var(--spacing-m);
flex-grow: 1;
2019-06-23 03:35:23 -07:00
}
feat(editor): Add input panel to NDV (#3204) * refactor tabs out * refactor execute button * refactor header * add more views * fix error view * fix workflow rename bug * rename component * fix small screen bug * move items, fix positions * add hover state * show selector on empty state * add empty run state * fix binary view * 1 item * add vjs styles * show empty row for every item * refactor tabs * add branch names * fix spacing * fix up spacing * add run selector * fix positioning * clean up * increase width of selector * fix up spacing * fix copy button * fix branch naming; type issues * fix docs in custom nodes * add type * hide items when run selector is shown * increase selector size * add select prepend * clean up a bit * Add pagination * add stale icon * enable stale data in execution run * Revert "enable stale data in execution run" 8edb68dbffa0aa0d8189117e1a53381cb2c27608 * move metadata to its own state * fix smaller size * add scroll buttons * update tabs on resize * update stale data on rename * remove metadata on delete * hide x * change title colors * binary data classes * remove duplicate css * add colors * delete unused keys * use event bus * refactor header out * support different nodes * update selector * add immediate input * add branch overrides * split output input run index * clean up unnessary data * add missing keys * update key names * remove unnessary css/js * fix outputs panel * set max width on input selector * fix selector to show parent nodes * fix bug when switching between nodes * add linking and refactor * add linking * fix minor issues * hide linking when cannot link * fix type * fix error state * clean up import * fix linking edge cases * hide input panel for triggers * disable for start node * format file * refactor output panel * add empty input hint * update too much data view * update slot, message under branch * no input data view * add node not run/no output data views * add tooltip support on execute prev * fix spacing in view * address output views * fix run node hint view * fix spinner * center button * update message to use node name * update title of no output data message * implement loading states * fix sizes * fix sizes * update spinner * add wire me up image * update link * update panels design * fix unclickable area bug * revert change * fix clickable bg * fix up positioning * ensure bg is clickable * fix up borders * fix height * move border to wrapper * set box shadow * set box shadow * add drag button * add dragging for main panel * set max width of panels * set min width in js * keep showing drag while dragging * fix dragging leaving modal * update trigger position of main panel * move main panel position into store * clear metadata after changing workflow * center grid correctly * add drag arrows * add dragging hover * fix cursor behavior * update no output state * show last run on open * always set to latest run * fix padding * add I wish this node would * clean up unsued data * inject run info into run * refactor out drag button * fix dragging issue * fix arrow bug * increase width of panel * change run logic * set label font sizes * update radiobutton pos * address header issues * fix prev spacing bug * fix input order * set package lock * add close modal event * complete close modal event * add input change event * add dragging event * add event on view change * add page size event * rename event * add event on page change * add link click event * add linking event * rename var * add run change event * add button events * add branch event * add structure for open event * add input type * set session id * set sessionid/source for expression events * add params to expression events * make display modes global * add display mode to tracking * add more event tracking * add has_mapping param * make main panel position global * dedupe list * fix cursor while dragging * address feedback * reduce bottom scrim * remove empty option hint * add hint tooltip * add tritary button * update param names * update parameter buttons * center empty states * move feature request message * increase max width for inputs selector * fix error dispaly padding * remove immediate * refactor search logic to return object * fix console errors * fix console errors * add node distance * refactor how input nodes listed * remove console log * set package lock * refactor recursive logic * handle overrides * handle default case without inputs * fix bug width link * fix tabs arrow bug * handle binary data case * update node execution * fix merge logic * remove console log * delete func * update package lock * add hover area * switch first input node * keep recursive order * make breadth first traversal * fix overflow bug, add pluralization * update docs url * update drop shadow * set background color for button * update input * fix truncation * update index of input dropdown * fix binary background * update telemetry * fix binary data switching * check all parent connections for executed node * check current state for executing node * fix executing states * update loading states * use pluralization for items * rename modal * update pluralization * update package lock * update empty messagE * format file * refactor out dragging logic * refactor out dragging * add back panel position * add telemetry params * add survey url as const * remove extra space, add dot * rename tabs, update telemetery, fix telemetry bug * update execute prev button * rename workflow func * rename workflow func * delete unnessary component * fix build issue * add tests for workflow search * format + add tests * remove todo comment * update iconnection type to match workflows * Revert "update iconnection type to match workflows" 3772487d985f226acab7144c7672b5696deabb55 * update func comment * fix formatting issues * add tertiary story * add spinner story * remove todo comment * remove eslint check * update empty messagE
2022-05-23 08:56:15 -07:00
&.dragging {
border-color: var(--color-primary);
box-shadow: 0px 6px 16px rgba(255, 74, 51, 0.15);
}
2019-06-23 03:35:23 -07:00
}
.parameter-content {
font-size: 0.9em;
margin-right: -15px;
margin-left: -15px;
input {
width: calc(100% - 35px);
padding: 5px;
}
select {
width: calc(100% - 20px);
padding: 5px;
}
&:before {
display: table;
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
content: ' ';
2019-06-23 03:35:23 -07:00
position: relative;
box-sizing: border-box;
clear: both;
}
}
.parameter-wrapper {
padding: 0 1em;
}
:sparkles: Implement design system (#2050) * split up main, sass imports, import new nds * migrate most buttons * update sizes based on feedback * update copy buttons * update executions list * fix issues * force message box buttons * update warning color * update more buttons * wrap message box buttons * update last component * lint fixes * add build report step * breakout imports * set package.json * fix notification bug * clean up imports * use build directories directly * update imports * remove xl size * update number inputs * fix input width * update line height, fix icon bug * fix up editor * fix spacing between buttons * Reset line height * revert changes to this * revert changes * clean up button sizes * change to outline * update select height * update tooltip * remove build report step * clean up impl * remove regenerator runtime * add design system repo * apply editorconfig * apply editor config prettier * lint issue * switch to tabs * switch to single space * update eslintrc * remove git modules * update sass package * support dart sass * add build * update dependency * update contributing.md * set repo * update versions * add tslint step * update spacing to spaces, add dev step * add test step * add test step * update browser lint rc * remove .github * delete .gitignore * set comment for icons * remove preview link * update button interface * update types * set types * clean up intro * update intro * remove assets * move into preview * remove headline comment * reduce theme build * loading executions * match deps versions * match deps versions * fix lint issues * fix lint issues * update callback * disable codacy for docs.css * fix storybook issues * add design system to docker image * update spacing around delete sort button * set line height to stop juggling headline * update sizes * clean up vars * fix scss issues * update button vars * add shade color * fix button without click * fix buttons bug * fix bug with executions list * clean up theme * update link styling * fix typo * run prettier * :art: code format * :art: code format * 🔥 remove empty files * :sparkles: N8n 2284 new inputs (#2075) * implement inputs * prettier fixes * revert unnessary change * move input components and tooltip * remove form elements * move select * update input placements * update sizes * update credentails * clean up select size * fix caret issue * update inputs * clean up select * fix tags dropdown border * clean up tags input * fix workflow name bug * clean up select here * add sizes template * fix option caret * fix input sizes * update date input size * remove tags input override * update prop * update input size * center run data inputs * update disabled colors * update execution header * update scrollbar * update text area spacing * fix items in header * update run data tooltip * remove popover * update prefix positions * add filterable demo * address design issues * fix input issues, flip boolean input to text * update input sufffix colors * remove override * speed up switch, fix toggle spacing issue * update icon * remove icon classes * clean up inputs * clean up inputs with icons * update input spacing again * update suffix position * build * Add support for xlarge inputs * fix input issues * fix input issue * update listeners * update number inputs for settings * update append/prepend spacing * clean up inputs, set expression input as text * fix type errors * fix workflow number input * fix tags dropdown bug * fix bugs * fix menu item bug * remove font weight from link element * remove default * fix select option * fix contrast issues * allow overflow x for multi selects * fix icon * update options select * fix issue that resolves expression to null * update how actions are centered * fix up selects * update selects to support limiting size * update option styles * :zap: Apply suggestions BHesseldieck Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com> * :art: code format Co-authored-by: Jan <janober@users.noreply.github.com> Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> * ⏪ Revert "🔥 remove empty files" This reverts commit e91ace4e52403f4a6b00b7be68b86fc48b7d8fef. * :zap: Remove private from n8n-design-system package * :art: Change to spaces to stay consistent with editorconfig & others package files * :zap: Fix year in license Co-authored-by: Ben Hesseldieck <1849459+BHesseldieck@users.noreply.github.com> Co-authored-by: Ben Hesseldieck <b.hesseldieck@gmail.com> Co-authored-by: Jan <janober@users.noreply.github.com> Co-authored-by: Jan Oberhauser <jan.oberhauser@gmail.com>
2021-08-29 04:36:17 -07:00
2019-06-23 03:35:23 -07:00
.color-reset-button-wrapper {
position: relative;
}
.color-reset-button {
position: absolute;
right: 7px;
top: -25px;
}
.node-version {
border-top: var(--border-base);
font-size: var(--font-size-xs);
font-size: var(--font-size-2xs);
padding: var(--spacing-xs) 0 var(--spacing-2xs) 0;
color: var(--color-text-light);
}
2019-06-23 03:35:23 -07:00
.parameter-value {
input.expression {
border-style: dashed;
border-color: #ff9600;
display: inline-block;
position: relative;
width: 100%;
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
box-sizing: border-box;
2019-06-23 03:35:23 -07:00
background-color: #793300;
}
}
</style>