n8n-editor-ui 1.113.1 → 1.114.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build/cache-marker +1 -1
- package/.build/node-popularity.json +1823 -1823
- package/dist/assets/{AddDataStoreModal-C-20tjW5.js → AddDataStoreModal-gdYynAXK.js} +8 -8
- package/dist/assets/{AnimatedSpinner-WDiU4lXb.js → AnimatedSpinner-BmfqnkMh.js} +1 -1
- package/dist/assets/{AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CV4yKdOK.js → AnnotationTagsDropdown.ee.vue_vue_type_script_setup_true_lang-CVFW66bR.js} +1 -1
- package/dist/assets/{AuthView-BfD8L-MR.js → AuthView-CYJ7bCsV.js} +2 -2
- package/dist/assets/{ChangePasswordView-BHlNjnju.js → ChangePasswordView-zducTJEL.js} +3 -3
- package/dist/assets/CollectionParameter-CxZhodaL.js +4 -0
- package/dist/assets/{ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-Bm1msTtB.js → ConsumedTokensDetails.vue_vue_type_script_setup_true_lang-DFcvVtT3.js} +1 -1
- package/dist/assets/{CredentialsView-Bpi1QEHU.js → CredentialsView-CZU7hcHm.js} +19 -19
- package/dist/assets/{DataStoreActions.vue_vue_type_script_setup_true_lang-BCsNv_gY.js → DataStoreActions.vue_vue_type_script_setup_true_lang-D2PEOSYF.js} +1 -1
- package/dist/assets/{DataStoreDetailsView-BwvQ5I7d.js → DataStoreDetailsView-cCwLSizn.js} +38 -26
- package/dist/assets/{DataStoreView-Bctk8RYi.js → DataStoreView-DVBz_mE7.js} +13 -14
- package/dist/assets/{DemoFooter-CxWGBc_7.js → DemoFooter-Cyz5315_.js} +6 -6
- package/dist/assets/{EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-DqQrOg_2.js → EmptySharedSectionActionBox.vue_vue_type_script_setup_true_lang-Ber_ThA-.js} +3 -3
- package/dist/assets/{EntityNotFound-D7CGrbgk.js → EntityNotFound-E440DAgo.js} +1 -1
- package/dist/assets/{EntityUnAuthorised-BO9xlb2N.js → EntityUnAuthorised-CGA8Pnag.js} +1 -1
- package/dist/assets/{ErrorView-C1PhniXH.js → ErrorView-DRsAZvNh.js} +9 -9
- package/dist/assets/{EvaluationsRootView-C0QRKk3k.js → EvaluationsRootView-CBh2oepG.js} +5 -5
- package/dist/assets/{EvaluationsView-CYpgbXKx.js → EvaluationsView-Bk0AxB7_.js} +3 -3
- package/dist/assets/{ExecutionsTime-etWexlXm.css → ExecutionsTime-CWHk7ZwI.css} +6 -6
- package/dist/assets/{ExecutionsTime.vue_vue_type_script_setup_true_lang-Dh8inRTk.js → ExecutionsTime.vue_vue_type_script_setup_true_lang-CNY2bHYv.js} +39 -39
- package/dist/assets/{ExecutionsView-BCb0Zr7W.js → ExecutionsView-ByBXIAlI.js} +10 -10
- package/dist/assets/{FixedCollectionParameter-D4km_FeH.js → FixedCollectionParameter-B2zzgypc.js} +4 -4
- package/dist/assets/{FixedCollectionParameter-Dg7ZadcB.css → FixedCollectionParameter-TY1-sHgZ.css} +18 -18
- package/dist/assets/{ForgotMyPasswordView-CdhGWxw4.js → ForgotMyPasswordView-BgKsPtpt.js} +3 -3
- package/dist/assets/{InfoAccordion-DE2_sS98.js → InfoAccordion-CsiczXnv.js} +1 -1
- package/dist/assets/{InsightsChartAverageRuntime-D5ZE_Nla.js → InsightsChartAverageRuntime-Gy5dvV3h.js} +4 -4
- package/dist/assets/{InsightsChartFailed-BdeF-nyF.js → InsightsChartFailed-Oe0oEJCc.js} +4 -4
- package/dist/assets/{InsightsChartFailureRate-C_YnwTyc.js → InsightsChartFailureRate-DU1kHSZv.js} +4 -4
- package/dist/assets/{InsightsChartTimeSaved-cTOv1Iga.js → InsightsChartTimeSaved-CTUmcK5A.js} +4 -4
- package/dist/assets/{InsightsChartTotal-BKK9PNU1.js → InsightsChartTotal-BtVfKdlz.js} +4 -4
- package/dist/assets/{InsightsDashboard-COAZWSu2.js → InsightsDashboard-D65QIYuB.js} +11 -11
- package/dist/assets/{InsightsPaywall-BWpRemTn.js → InsightsPaywall-Bm7hpUXq.js} +1 -1
- package/dist/assets/{InsightsSummary-jcJA88u3.js → InsightsSummary-B_lIzS7D.js} +2 -3
- package/dist/assets/{InsightsTableWorkflows-Bh_NN7kQ.js → InsightsTableWorkflows-HAoS3XKw.js} +6 -7
- package/dist/assets/{Logo-DZ3J8N5N.js → Logo-oWcxWkkZ.js} +1 -1
- package/dist/assets/{LogsPanel-DSS_hDBL.js → LogsPanel-BCGl1Nn3.js} +189 -101
- package/dist/assets/{LogsPanel-CUsQIBpC.css → LogsPanel-BE9Gl1z0.css} +26 -27
- package/dist/assets/{MainHeader-6lIHYgJG.css → MainHeader-BM1jYnSL.css} +6 -6
- package/dist/assets/{MainHeader-DfMxpY4d.js → MainHeader-BTi38P2q.js} +17 -17
- package/dist/assets/{MainSidebar-a73tcV9E.css → MainSidebar-BWPXOik1.css} +156 -0
- package/dist/assets/{MainSidebar-C7fZf9ti.js → MainSidebar-f5ouPYUb.js} +204 -48
- package/dist/assets/{NodeCreation-DndFLn5s.js → NodeCreation-BeqOH71X.js} +11 -11
- package/dist/assets/{NodeCreator-DG0hCOby.js → NodeCreator-Ck3oKOFP.js} +47 -34
- package/dist/assets/{NodeDetailsView-G0hcQtkE.js → NodeDetailsView-BOC4Hg0s.js} +27 -27
- package/dist/assets/{NodeDetailsViewV2-BGHhaOjo.js → NodeDetailsViewV2-M9x7-EpG.js} +16 -16
- package/dist/assets/{NodeView-D_Lf20Cj.js → NodeView-C9_Bsqwa.js} +82 -258
- package/dist/assets/{NodeView-Chs2u0U9.css → NodeView-DoRx_8YL.css} +0 -165
- package/dist/assets/{PageViewLayout-cxvwso_r.js → PageViewLayout-BIOAQYgC.js} +1 -1
- package/dist/assets/{PrebuiltAgentTemplatesView--njlASMr.js → PrebuiltAgentTemplatesView-Bl6VzvHf.js} +2 -2
- package/dist/assets/{ProjectBreadcrumb-KIWhTojS.js → ProjectBreadcrumb-BO4fGsZ-.js} +28 -12
- package/dist/assets/{ProjectHeader-B5uv4DKo.css → ProjectHeader-BNMKpvzV.css} +9 -9
- package/dist/assets/{ProjectHeader-PFXNU0--.js → ProjectHeader-DeQSPU2Z.js} +10 -10
- package/dist/assets/{ProjectSettings-C1kZ9wA5.js → ProjectSettings-Bie7IE72.js} +169 -161
- package/dist/assets/{ProjectSettings-B5z1mrGW.css → ProjectSettings-Cj1kC16G.css} +30 -15
- package/dist/assets/{PushConnectionTracker.vue_vue_type_script_setup_true_lang-Bzf7nqUd.js → PushConnectionTracker.vue_vue_type_script_setup_true_lang-R3ag1qU9.js} +5 -5
- package/dist/assets/{ResourcesListLayout-vTwRIDRz.css → ResourcesListLayout-BseE8-rt.css} +8 -8
- package/dist/assets/{ResourcesListLayout-DQODsJpR.js → ResourcesListLayout-Dpz7rW4E.js} +42 -42
- package/dist/assets/{RunDataJson-BcUo9gnI.js → RunDataJson-D9c7DSu3.js} +3 -3
- package/dist/assets/{RunDataJsonActions-BCQ7lOd5.js → RunDataJsonActions-DSwvkK8R.js} +1 -1
- package/dist/assets/{RunDataParsedAiContent-BnKhGr-k.js → RunDataParsedAiContent-Dw4DMcCc.js} +2 -2
- package/dist/assets/{RunDataSearch-CiRa4kQq.js → RunDataSearch-CHn_C4l1.js} +59 -16
- package/dist/assets/{RunDataTable-Cb01UpR9.js → RunDataTable-BVcP67HC.js} +4 -4
- package/dist/assets/{SamlOnboarding-BqIwhbZw.js → SamlOnboarding-evZs5JmT.js} +3 -3
- package/dist/assets/{SelectedItemsInfo-DuFbVGZm.js → SelectedItemsInfo-BD8U-j2_.js} +1 -1
- package/dist/assets/{SettingsApiView-D2j7Vbwi.js → SettingsApiView-C9ICg95A.js} +23 -24
- package/dist/assets/{SettingsCommunityNodesView-oZIjk1s_.js → SettingsCommunityNodesView-BKv6oPzd.js} +31 -31
- package/dist/assets/{SettingsExternalSecrets-Cea9JY7A.js → SettingsExternalSecrets-B1fXLwpl.js} +18 -18
- package/dist/assets/{SettingsLdapView-Cg2gnd72.js → SettingsLdapView-1uB_1Kjt.js} +17 -17
- package/dist/assets/{SettingsLogStreamingView-BScR5ZFJ.js → SettingsLogStreamingView-Cg5xgDBl.js} +29 -29
- package/dist/assets/SettingsMCPView-8ZO6fO7I.js +626 -0
- package/dist/assets/SettingsMCPView-INU33iV4.css +370 -0
- package/dist/assets/{SettingsPersonalView-BfEdqrEE.js → SettingsPersonalView-hcRTSivt.js} +31 -31
- package/dist/assets/{SettingsSourceControl-CQiyVvB3.js → SettingsSourceControl-CmWbELjI.js} +208 -65
- package/dist/assets/{SettingsSso-CAAxAbK6.js → SettingsSso-DaF1HUCT.js} +61 -23
- package/dist/assets/{SettingsUsageAndPlan-CfFJy6fo.css → SettingsUsageAndPlan-CfunueCX.css} +3 -3
- package/dist/assets/{SettingsUsageAndPlan-DTV0d49_.js → SettingsUsageAndPlan-D35oEsJZ.js} +16 -17
- package/dist/assets/{SettingsUsersView-Ceq9-_wv.js → SettingsUsersView-ZRALZYsy.js} +4 -4
- package/dist/assets/{SettingsView-sqSuzp6q.js → SettingsView-CgvnNTk-.js} +13 -12
- package/dist/assets/{SetupView-DNxfN7wc.js → SetupView-ChAnZVE2.js} +3 -3
- package/dist/assets/{SetupWorkflowCredentialsButton-DUCOv6F6.js → SetupWorkflowCredentialsButton-BszdxOvj.js} +3 -3
- package/dist/assets/{SetupWorkflowFromTemplateView-DU4khxPx.js → SetupWorkflowFromTemplateView-DNXIp_P5.js} +13 -13
- package/dist/assets/{SigninView-BnzCVklk.js → SigninView-wo3QJ5sB.js} +17 -17
- package/dist/assets/{SignoutView-CQx1YcpJ.js → SignoutView-CQhFqBlf.js} +1 -1
- package/dist/assets/{SignupView-CVowy7ND.js → SignupView-DchGNZfW.js} +3 -3
- package/dist/assets/{TableBase-ChC-0JXo.js → TableBase-CtxQxn5Y.js} +1 -1
- package/dist/assets/{Tags-BElvlb53.js → Tags-BXpnsQt9.js} +1 -1
- package/dist/assets/{TemplateDetails-DFAU0IXa.js → TemplateDetails-BJTTpXQu.js} +11 -11
- package/dist/assets/{TemplateList-BqOvn2Up.js → TemplateList-Ci2Gabt3.js} +15 -15
- package/dist/assets/{TemplatesCollectionView-DUe-c9UK.js → TemplatesCollectionView-CUX1Go6k.js} +15 -15
- package/dist/assets/{TemplatesSearchView-DqlXEFp4.js → TemplatesSearchView-DPFeZwku.js} +30 -30
- package/dist/assets/{TemplatesView-e-KwnRmC.js → TemplatesView-B2kjPDKq.js} +3 -3
- package/dist/assets/{TemplatesWorkflowView-DGdEHxRG.js → TemplatesWorkflowView-DITL6wCM.js} +18 -18
- package/dist/assets/{TriggerPanel-DiD8pi0I.css → TriggerPanel-CZRJpcTa.css} +26 -24
- package/dist/assets/{TriggerPanel-BC7r1f-p.js → TriggerPanel-CrYeGN3J.js} +100 -124
- package/dist/assets/{VariablesView-q3KOFXbh.js → VariablesView-Bwp171eQ.js} +9 -9
- package/dist/assets/{VariablesView-BHcrNXsw.css → VariablesView-CO67wOhz.css} +6 -6
- package/dist/assets/{WorkerView-p9Gb5B1L.js → WorkerView-CTITbNMD.js} +27 -27
- package/dist/assets/{WorkflowActivator-jI4sUqXL.css → WorkflowActivator-BqnfTqdT.css} +2 -2
- package/dist/assets/{WorkflowActivator-3wlzZHDO.js → WorkflowActivator-ULjjOqRW.js} +35 -27
- package/dist/assets/{WorkflowExecutionsInfoAccordion-MSQf1wi3.js → WorkflowExecutionsInfoAccordion-Du8aYVAp.js} +2 -2
- package/dist/assets/{WorkflowExecutionsLandingPage-C70_LGAv.js → WorkflowExecutionsLandingPage--NydRWjB.js} +3 -3
- package/dist/assets/{WorkflowExecutionsPreview-D_xisYpD.js → WorkflowExecutionsPreview-SapcKnCv.js} +17 -17
- package/dist/assets/{WorkflowExecutionsView-DqWqyiNg.css → WorkflowExecutionsView-BI8VcrjR.css} +2 -2
- package/dist/assets/{WorkflowExecutionsView-ezc5vRrS.js → WorkflowExecutionsView-DzM_rNXF.js} +20 -20
- package/dist/assets/{WorkflowHistory-DeSZ98ik.js → WorkflowHistory-Db-y1oNT.js} +23 -23
- package/dist/assets/{WorkflowOnboardingView-XDAzh9C1.js → WorkflowOnboardingView-WrpmE_wt.js} +1 -1
- package/dist/assets/{WorkflowPreview-R4owDoRV.js → WorkflowPreview-7kOr6cGA.js} +5 -5
- package/dist/assets/{WorkflowsView-MF9XcT0u.css → WorkflowsView-Cn8b7sC6.css} +295 -18
- package/dist/assets/{WorkflowsView-BJ_oKX3h.js → WorkflowsView-DyYy_N8O.js} +314 -136
- package/dist/assets/{canvas-tCm4ovGg.js → canvas-DTKhYM6C.js} +1 -1
- package/dist/assets/{chartjs.utils-B2U_02-S.js → chartjs.utils-CJ62oVGG.js} +2 -2
- package/dist/assets/{core-BDQ6uBcD.js → core-VF74aV13.js} +1 -1
- package/dist/assets/{global-link-actions-Cz-zl4uP.js → global-link-actions-Ddo-afkv.js} +1 -1
- package/dist/assets/{index-BDDH_NIA.js → index-BOW55EQc.js} +16950 -15079
- package/dist/assets/{index-CCyQeXiT.js → index-BUUYM12e.js} +1 -1
- package/dist/assets/{index-CpPc1kM8.css → index-CTgzCbB9.css} +10049 -10911
- package/dist/assets/{pickBy-B2RJpRoj.js → pickBy-CwZEa5Ur.js} +1 -1
- package/dist/assets/{readyToRunWorkflows.store-lmsJGEVO.js → readyToRunWorkflows.store-C7dZP8KI.js} +1 -1
- package/dist/assets/{readyToRunWorkflowsV2.store-Bl7jk-i9.js → readyToRunWorkflowsV2.store-BJY-F_Le.js} +2 -2
- package/dist/assets/{templateActions-Bvze3qDu.js → templateActions-BfUcgZvZ.js} +1 -1
- package/dist/assets/{useBeforeUnload-C1FPWSkO.js → useBeforeUnload-CEwAxZFs.js} +1 -1
- package/dist/assets/{useExecutionDebugging-Dgg7jmNh.js → useExecutionDebugging-Moxdvo-v.js} +1 -1
- package/dist/assets/{useImportCurlCommand-sjcpA0Ub.js → useImportCurlCommand-C5Ra8auY.js} +1 -1
- package/dist/assets/{useProjectPages-B5KBSvIU.js → useProjectPages-D2nu5pZ9.js} +1 -1
- package/dist/assets/{usePushConnection-BEiaZIUU.js → usePushConnection-Dnr2PF2n.js} +12 -6
- package/dist/assets/{useWorkflowActivate-DykqGtLA.js → useWorkflowActivate-Ch6gRZjX.js} +1 -1
- package/dist/index.html +2 -2
- package/package.json +1 -1
- package/scripts/cache-marker.mjs +11 -0
- package/turbo.json +2 -1
- package/dist/assets/CollectionParameter-D7XE8ypc.js +0 -4
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { d as defineComponent, r as ref, x as computed, e as createBlock, g as openBlock,
|
|
2
|
-
import { P as ProjectHeader } from "./ProjectHeader-
|
|
3
|
-
import "./useProjectPages-
|
|
4
|
-
import "./readyToRunWorkflowsV2.store-
|
|
1
|
+
import { d as defineComponent, r as ref, x as computed, e as createBlock, g as openBlock, bv as createSlots, w as withCtx, Y as renderSlot, h as createElementBlock, F as Fragment, A as renderList, l as unref, eh as _sfc_main$8, n as normalizeClass, i as createVNode, J as N8nUserInfo, K as mergeProps, D as useI18n, eg as N8nSelect, _ as _export_sfc, ep as mergeModels, eq as useModel, bu as onClickOutside, j as createBaseVNode, f as createCommentVNode, aa as Tooltip, ab as _sfc_main$9, q as N8nButton, k as createTextVNode, t as toDisplayString, gr as N8nTabs, N as N8nIcon, c as useI18n$1, a9 as resolveComponent, p as N8nText, fM as ProjectSharing, ed as N8nInputLabel, d6 as N8nInput, B as withModifiers, aB as usePageRedirectionHelper, ac as I18nT, a8 as watch, gE as isProjectRole, gF as ElRadio, aN as N8nActionDropdown, en as N8nActionToggle, er as N8nDataTableServer, c7 as normalizeProps, c8 as guardReactiveProps, u as useUsersStore, av as useProjectsStore, gG as useRolesStore, bc as useCloudPlanStore, a as useToast, b as useRouter, ay as useDocumentTitle, b2 as onBeforeMount, o as onMounted, f5 as N8nFormInput, dX as deepCopy, am as useTelemetry, Z as nextTick, fB as isIconOrEmoji, V as VIEWS, ev as useDebounceFn } from "./index-BOW55EQc.js";
|
|
2
|
+
import { P as ProjectHeader } from "./ProjectHeader-DeQSPU2Z.js";
|
|
3
|
+
import "./useProjectPages-D2nu5pZ9.js";
|
|
4
|
+
import "./readyToRunWorkflowsV2.store-BJY-F_Le.js";
|
|
5
5
|
const _sfc_main$7 = /* @__PURE__ */ defineComponent({
|
|
6
6
|
__name: "UserSelect",
|
|
7
7
|
props: {
|
|
@@ -224,6 +224,7 @@ const ALL_ICON_PICKER_ICONS = [
|
|
|
224
224
|
"triangle-alert",
|
|
225
225
|
"maximize",
|
|
226
226
|
"maximize-2",
|
|
227
|
+
"mcp",
|
|
227
228
|
"external-link",
|
|
228
229
|
"arrow-left-right",
|
|
229
230
|
"file",
|
|
@@ -564,13 +565,13 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
564
565
|
emit("confirmDelete", selectedProject.value?.id);
|
|
565
566
|
};
|
|
566
567
|
return (_ctx, _cache) => {
|
|
567
|
-
const
|
|
568
|
-
const
|
|
569
|
-
const
|
|
570
|
-
const
|
|
568
|
+
const _component_N8nText = N8nText;
|
|
569
|
+
const _component_ElRadio = resolveComponent("ElRadio");
|
|
570
|
+
const _component_N8nInput = N8nInput;
|
|
571
|
+
const _component_N8nInputLabel = N8nInputLabel;
|
|
571
572
|
const _component_N8nButton = N8nButton;
|
|
572
|
-
const
|
|
573
|
-
return openBlock(), createBlock(
|
|
573
|
+
const _component_ElDialog = resolveComponent("ElDialog");
|
|
574
|
+
return openBlock(), createBlock(_component_ElDialog, {
|
|
574
575
|
modelValue: visible.value,
|
|
575
576
|
"onUpdate:modelValue": _cache[4] || (_cache[4] = ($event) => visible.value = $event),
|
|
576
577
|
title: unref(locale).baseText("projects.settings.delete.title", {
|
|
@@ -593,7 +594,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
593
594
|
}, 8, ["disabled"])
|
|
594
595
|
]),
|
|
595
596
|
default: withCtx(() => [
|
|
596
|
-
!hasMovableResources.value ? (openBlock(), createBlock(
|
|
597
|
+
!hasMovableResources.value ? (openBlock(), createBlock(_component_N8nText, {
|
|
597
598
|
key: 0,
|
|
598
599
|
color: "text-base"
|
|
599
600
|
}, {
|
|
@@ -602,21 +603,21 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
602
603
|
]),
|
|
603
604
|
_: 1
|
|
604
605
|
})) : hasMovableResources.value ? (openBlock(), createElementBlock("div", _hoisted_1$4, [
|
|
605
|
-
createVNode(
|
|
606
|
+
createVNode(_component_N8nText, { color: "text-base" }, {
|
|
606
607
|
default: withCtx(() => [
|
|
607
608
|
createTextVNode(toDisplayString(unref(locale).baseText("projects.settings.delete.message")), 1)
|
|
608
609
|
]),
|
|
609
610
|
_: 1
|
|
610
611
|
}),
|
|
611
612
|
createBaseVNode("div", _hoisted_2$1, [
|
|
612
|
-
createVNode(
|
|
613
|
+
createVNode(_component_ElRadio, {
|
|
613
614
|
"model-value": operation2.value,
|
|
614
615
|
label: "transfer",
|
|
615
616
|
class: "mb-s",
|
|
616
617
|
"onUpdate:modelValue": _cache[0] || (_cache[0] = ($event) => operation2.value = "transfer")
|
|
617
618
|
}, {
|
|
618
619
|
default: withCtx(() => [
|
|
619
|
-
createVNode(
|
|
620
|
+
createVNode(_component_N8nText, { color: "text-dark" }, {
|
|
620
621
|
default: withCtx(() => [
|
|
621
622
|
createTextVNode(toDisplayString(unref(locale).baseText("projects.settings.delete.question.transfer.label")), 1)
|
|
622
623
|
]),
|
|
@@ -629,7 +630,7 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
629
630
|
key: 0,
|
|
630
631
|
class: normalizeClass(_ctx.$style.operation)
|
|
631
632
|
}, [
|
|
632
|
-
createVNode(
|
|
633
|
+
createVNode(_component_N8nText, { color: "text-dark" }, {
|
|
633
634
|
default: withCtx(() => [
|
|
634
635
|
createTextVNode(toDisplayString(unref(locale).baseText("projects.settings.delete.question.transfer.title")), 1)
|
|
635
636
|
]),
|
|
@@ -643,14 +644,14 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
643
644
|
"empty-options-text": unref(locale).baseText("projects.sharing.noMatchingProjects")
|
|
644
645
|
}, null, 8, ["modelValue", "projects", "empty-options-text"])
|
|
645
646
|
], 2)) : createCommentVNode("", true),
|
|
646
|
-
createVNode(
|
|
647
|
+
createVNode(_component_ElRadio, {
|
|
647
648
|
"model-value": operation2.value,
|
|
648
649
|
label: "wipe",
|
|
649
650
|
class: "mb-s",
|
|
650
651
|
"onUpdate:modelValue": _cache[2] || (_cache[2] = ($event) => operation2.value = "wipe")
|
|
651
652
|
}, {
|
|
652
653
|
default: withCtx(() => [
|
|
653
|
-
createVNode(
|
|
654
|
+
createVNode(_component_N8nText, { color: "text-dark" }, {
|
|
654
655
|
default: withCtx(() => [
|
|
655
656
|
createTextVNode(toDisplayString(unref(locale).baseText("projects.settings.delete.question.wipe.label")), 1)
|
|
656
657
|
]),
|
|
@@ -663,11 +664,11 @@ const _sfc_main$5 = /* @__PURE__ */ defineComponent({
|
|
|
663
664
|
key: 1,
|
|
664
665
|
class: normalizeClass(_ctx.$style.operation)
|
|
665
666
|
}, [
|
|
666
|
-
createVNode(
|
|
667
|
+
createVNode(_component_N8nInputLabel, {
|
|
667
668
|
label: unref(locale).baseText("projects.settings.delete.question.wipe.title")
|
|
668
669
|
}, {
|
|
669
670
|
default: withCtx(() => [
|
|
670
|
-
createVNode(
|
|
671
|
+
createVNode(_component_N8nInput, {
|
|
671
672
|
modelValue: wipeConfirmText.value,
|
|
672
673
|
"onUpdate:modelValue": _cache[3] || (_cache[3] = ($event) => wipeConfirmText.value = $event),
|
|
673
674
|
"data-test-id": "project-delete-confirm-input",
|
|
@@ -715,8 +716,8 @@ const _sfc_main$4 = /* @__PURE__ */ defineComponent({
|
|
|
715
716
|
};
|
|
716
717
|
return (_ctx, _cache) => {
|
|
717
718
|
const _component_N8nButton = N8nButton;
|
|
718
|
-
const
|
|
719
|
-
return openBlock(), createBlock(
|
|
719
|
+
const _component_ElDialog = resolveComponent("ElDialog");
|
|
720
|
+
return openBlock(), createBlock(_component_ElDialog, {
|
|
720
721
|
modelValue: visible.value,
|
|
721
722
|
"onUpdate:modelValue": _cache[1] || (_cache[1] = ($event) => visible.value = $event),
|
|
722
723
|
title: unref(locale).baseText("projects.settings.role.upgrade.title"),
|
|
@@ -1033,11 +1034,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
1033
1034
|
});
|
|
1034
1035
|
const _hoisted_1 = { for: "projectName" };
|
|
1035
1036
|
const _hoisted_2 = { for: "projectDescription" };
|
|
1036
|
-
const _hoisted_3 = {
|
|
1037
|
-
const _hoisted_4 = {
|
|
1038
|
-
key: 0,
|
|
1039
|
-
class: "mr-2xs"
|
|
1040
|
-
};
|
|
1037
|
+
const _hoisted_3 = { class: "mr-2xs" };
|
|
1038
|
+
const _hoisted_4 = { for: "projectMembers" };
|
|
1041
1039
|
const _hoisted_5 = { class: "mb-xs" };
|
|
1042
1040
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
1043
1041
|
__name: "ProjectSettings",
|
|
@@ -1051,6 +1049,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1051
1049
|
const router = useRouter();
|
|
1052
1050
|
const telemetry = useTelemetry();
|
|
1053
1051
|
const documentTitle = useDocumentTitle();
|
|
1052
|
+
const showSaveError = (error) => {
|
|
1053
|
+
toast.showError(error, i18n.baseText("projects.settings.save.error.title"));
|
|
1054
|
+
};
|
|
1054
1055
|
const dialogVisible = ref(false);
|
|
1055
1056
|
const upgradeDialogVisible = ref(false);
|
|
1056
1057
|
const isDirty = ref(false);
|
|
@@ -1088,9 +1089,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1088
1089
|
});
|
|
1089
1090
|
const usersList = computed(
|
|
1090
1091
|
() => usersStore.allUsers.filter((user) => {
|
|
1091
|
-
const isAlreadySharedWithUser = (formData.value.relations || []).find(
|
|
1092
|
-
(r) => r.id === user.id
|
|
1093
|
-
);
|
|
1092
|
+
const isAlreadySharedWithUser = (formData.value.relations || []).find((r) => r.id === user.id);
|
|
1094
1093
|
return !isAlreadySharedWithUser;
|
|
1095
1094
|
})
|
|
1096
1095
|
);
|
|
@@ -1113,16 +1112,31 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1113
1112
|
guard: (member) => member.id !== usersStore.currentUser?.id && member.role !== "project:personalOwner"
|
|
1114
1113
|
}
|
|
1115
1114
|
]);
|
|
1116
|
-
const onAddMember = (userId) => {
|
|
1117
|
-
|
|
1115
|
+
const onAddMember = async (userId) => {
|
|
1116
|
+
if (!projectsStore.currentProject) return;
|
|
1118
1117
|
const user = usersStore.usersById[userId];
|
|
1119
1118
|
if (!user) return;
|
|
1120
|
-
const
|
|
1121
|
-
|
|
1122
|
-
if (
|
|
1123
|
-
|
|
1119
|
+
const role = firstLicensedRole.value;
|
|
1120
|
+
if (!role) return;
|
|
1121
|
+
if (!formData.value.relations.find((r) => r.id === userId)) {
|
|
1122
|
+
formData.value.relations.push({ id: userId, role });
|
|
1123
|
+
}
|
|
1124
|
+
try {
|
|
1125
|
+
suppressNextSync.value = true;
|
|
1126
|
+
await projectsStore.addMember(projectsStore.currentProject.id, { userId, role });
|
|
1127
|
+
toast.showMessage({
|
|
1128
|
+
type: "success",
|
|
1129
|
+
title: i18n.baseText("projects.settings.member.added.title")
|
|
1130
|
+
});
|
|
1131
|
+
telemetry.track("User added member to project", {
|
|
1132
|
+
project_id: projectsStore.currentProject.id,
|
|
1133
|
+
target_user_id: userId,
|
|
1134
|
+
role
|
|
1135
|
+
});
|
|
1136
|
+
} catch (error) {
|
|
1137
|
+
formData.value.relations = formData.value.relations.filter((r) => r.id !== userId);
|
|
1138
|
+
showSaveError(error);
|
|
1124
1139
|
}
|
|
1125
|
-
formData.value.relations.push(relation);
|
|
1126
1140
|
};
|
|
1127
1141
|
const onUpdateMemberRole = async ({ userId, role }) => {
|
|
1128
1142
|
if (!projectsStore.currentProject) {
|
|
@@ -1135,12 +1149,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1135
1149
|
const originalRole = formData.value.relations[memberIndex].role;
|
|
1136
1150
|
formData.value.relations[memberIndex].role = role;
|
|
1137
1151
|
try {
|
|
1138
|
-
|
|
1139
|
-
|
|
1140
|
-
userId: r.id,
|
|
1141
|
-
role: r.role
|
|
1142
|
-
}))
|
|
1143
|
-
});
|
|
1152
|
+
suppressNextSync.value = true;
|
|
1153
|
+
await projectsStore.updateMemberRole(projectsStore.currentProject.id, userId, role);
|
|
1144
1154
|
toast.showMessage({
|
|
1145
1155
|
type: "success",
|
|
1146
1156
|
title: i18n.baseText("projects.settings.memberRole.updated.title")
|
|
@@ -1168,9 +1178,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1168
1178
|
if (!isPersisted) return;
|
|
1169
1179
|
try {
|
|
1170
1180
|
suppressNextSync.value = true;
|
|
1171
|
-
await projectsStore.
|
|
1172
|
-
relations: current.relations.filter((r) => r.id !== userId).map((r) => ({ userId: r.id, role: r.role }))
|
|
1173
|
-
});
|
|
1181
|
+
await projectsStore.removeMember(current.id, userId);
|
|
1174
1182
|
toast.showMessage({
|
|
1175
1183
|
type: "success",
|
|
1176
1184
|
title: i18n.baseText("projects.settings.member.removed.title")
|
|
@@ -1181,7 +1189,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1181
1189
|
});
|
|
1182
1190
|
} catch (error) {
|
|
1183
1191
|
formData.value.relations.splice(idx, 0, removed);
|
|
1184
|
-
|
|
1192
|
+
showSaveError(error);
|
|
1185
1193
|
}
|
|
1186
1194
|
}
|
|
1187
1195
|
const onMembersListAction = async ({ action, userId }) => {
|
|
@@ -1191,10 +1199,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1191
1199
|
break;
|
|
1192
1200
|
}
|
|
1193
1201
|
};
|
|
1194
|
-
const
|
|
1202
|
+
const resetFormData = () => {
|
|
1195
1203
|
formData.value.relations = projectsStore.currentProject?.relations ? deepCopy(projectsStore.currentProject.relations) : [];
|
|
1196
1204
|
formData.value.name = projectsStore.currentProject?.name ?? "";
|
|
1197
1205
|
formData.value.description = projectsStore.currentProject?.description ?? "";
|
|
1206
|
+
};
|
|
1207
|
+
const onCancel = () => {
|
|
1208
|
+
resetFormData();
|
|
1198
1209
|
isDirty.value = false;
|
|
1199
1210
|
};
|
|
1200
1211
|
const makeFormDataDiff = () => {
|
|
@@ -1223,59 +1234,43 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1223
1234
|
return diff;
|
|
1224
1235
|
};
|
|
1225
1236
|
const sendTelemetry = (diff) => {
|
|
1237
|
+
const projectId = projectsStore.currentProject?.id;
|
|
1226
1238
|
if (diff.name) {
|
|
1227
|
-
telemetry.track("User changed project name", {
|
|
1228
|
-
project_id: projectsStore.currentProject?.id,
|
|
1229
|
-
name: diff.name
|
|
1230
|
-
});
|
|
1239
|
+
telemetry.track("User changed project name", { project_id: projectId, name: diff.name });
|
|
1231
1240
|
}
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
role: r.role
|
|
1238
|
-
});
|
|
1241
|
+
diff.memberAdded?.forEach((r) => {
|
|
1242
|
+
telemetry.track("User added member to project", {
|
|
1243
|
+
project_id: projectId,
|
|
1244
|
+
target_user_id: r.id,
|
|
1245
|
+
role: r.role
|
|
1239
1246
|
});
|
|
1240
|
-
}
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
target_user_id: r.id
|
|
1246
|
-
});
|
|
1247
|
+
});
|
|
1248
|
+
diff.memberRemoved?.forEach((r) => {
|
|
1249
|
+
telemetry.track("User removed member from project", {
|
|
1250
|
+
project_id: projectId,
|
|
1251
|
+
target_user_id: r.id
|
|
1247
1252
|
});
|
|
1248
|
-
}
|
|
1249
|
-
|
|
1250
|
-
|
|
1251
|
-
|
|
1252
|
-
|
|
1253
|
-
|
|
1254
|
-
role: r.role
|
|
1255
|
-
});
|
|
1253
|
+
});
|
|
1254
|
+
diff.role?.forEach((r) => {
|
|
1255
|
+
telemetry.track("User changed member role on project", {
|
|
1256
|
+
project_id: projectId,
|
|
1257
|
+
target_user_id: r.id,
|
|
1258
|
+
role: r.role
|
|
1256
1259
|
});
|
|
1257
|
-
}
|
|
1260
|
+
});
|
|
1258
1261
|
};
|
|
1259
1262
|
const updateProject = async () => {
|
|
1260
1263
|
if (!projectsStore.currentProject) {
|
|
1261
1264
|
return;
|
|
1262
1265
|
}
|
|
1263
1266
|
try {
|
|
1264
|
-
if (formData.value.relations.some((r) => r.role === "project:personalOwner")) {
|
|
1265
|
-
throw new Error("Invalid role selected for this project.");
|
|
1266
|
-
}
|
|
1267
1267
|
await projectsStore.updateProject(projectsStore.currentProject.id, {
|
|
1268
1268
|
name: formData.value.name ?? "",
|
|
1269
|
-
|
|
1270
|
-
description: formData.value.description ?? "",
|
|
1271
|
-
relations: formData.value.relations.map((r) => ({
|
|
1272
|
-
userId: r.id,
|
|
1273
|
-
role: r.role
|
|
1274
|
-
}))
|
|
1269
|
+
description: formData.value.description ?? ""
|
|
1275
1270
|
});
|
|
1276
1271
|
isDirty.value = false;
|
|
1277
1272
|
} catch (error) {
|
|
1278
|
-
|
|
1273
|
+
showSaveError(error);
|
|
1279
1274
|
throw error;
|
|
1280
1275
|
}
|
|
1281
1276
|
};
|
|
@@ -1306,12 +1301,12 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1306
1301
|
const onConfirmDelete = async (transferId) => {
|
|
1307
1302
|
try {
|
|
1308
1303
|
if (projectsStore.currentProject) {
|
|
1309
|
-
const
|
|
1304
|
+
const projectName2 = projectsStore.currentProject?.name ?? "";
|
|
1310
1305
|
await projectsStore.deleteProject(projectsStore.currentProject.id, transferId);
|
|
1311
1306
|
await router.push({ name: VIEWS.HOMEPAGE });
|
|
1312
1307
|
toast.showMessage({
|
|
1313
1308
|
title: i18n.baseText("projects.settings.delete.successful.title", {
|
|
1314
|
-
interpolate: { projectName }
|
|
1309
|
+
interpolate: { projectName: projectName2 }
|
|
1315
1310
|
}),
|
|
1316
1311
|
type: "success"
|
|
1317
1312
|
});
|
|
@@ -1328,11 +1323,18 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1328
1323
|
}
|
|
1329
1324
|
};
|
|
1330
1325
|
const onIconUpdated = async () => {
|
|
1331
|
-
|
|
1332
|
-
|
|
1333
|
-
|
|
1334
|
-
|
|
1335
|
-
|
|
1326
|
+
if (!projectsStore.currentProject) return;
|
|
1327
|
+
try {
|
|
1328
|
+
await projectsStore.updateProject(projectsStore.currentProject.id, {
|
|
1329
|
+
icon: projectIcon.value
|
|
1330
|
+
});
|
|
1331
|
+
toast.showMessage({
|
|
1332
|
+
title: i18n.baseText("projects.settings.icon.update.successful.title"),
|
|
1333
|
+
type: "success"
|
|
1334
|
+
});
|
|
1335
|
+
} catch (error) {
|
|
1336
|
+
showSaveError(error);
|
|
1337
|
+
}
|
|
1336
1338
|
};
|
|
1337
1339
|
watch(
|
|
1338
1340
|
() => projectsStore.currentProject,
|
|
@@ -1341,9 +1343,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1341
1343
|
suppressNextSync.value = false;
|
|
1342
1344
|
return;
|
|
1343
1345
|
}
|
|
1344
|
-
|
|
1345
|
-
formData.value.description = projectsStore.currentProject?.description ?? "";
|
|
1346
|
-
formData.value.relations = projectsStore.currentProject?.relations ? deepCopy(projectsStore.currentProject.relations) : [];
|
|
1346
|
+
resetFormData();
|
|
1347
1347
|
await nextTick();
|
|
1348
1348
|
selectProjectNameIfMatchesDefault();
|
|
1349
1349
|
if (projectsStore.currentProject?.icon && isIconOrEmoji(projectsStore.currentProject.icon)) {
|
|
@@ -1356,19 +1356,13 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1356
1356
|
() => formData.value.relations.map((relation) => {
|
|
1357
1357
|
const user = usersStore.usersById[relation.id];
|
|
1358
1358
|
const safeRole = isProjectRole(relation.role) ? relation.role : "project:viewer";
|
|
1359
|
-
if (!user) {
|
|
1360
|
-
return {
|
|
1361
|
-
...relation,
|
|
1362
|
-
role: safeRole,
|
|
1363
|
-
firstName: null,
|
|
1364
|
-
lastName: null,
|
|
1365
|
-
email: null
|
|
1366
|
-
};
|
|
1367
|
-
}
|
|
1368
1359
|
return {
|
|
1369
1360
|
...user,
|
|
1370
1361
|
...relation,
|
|
1371
|
-
role: safeRole
|
|
1362
|
+
role: safeRole,
|
|
1363
|
+
firstName: user?.firstName ?? null,
|
|
1364
|
+
lastName: user?.lastName ?? null,
|
|
1365
|
+
email: user?.email ?? null
|
|
1372
1366
|
};
|
|
1373
1367
|
})
|
|
1374
1368
|
);
|
|
@@ -1377,19 +1371,14 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1377
1371
|
count: relationUsers.value.length
|
|
1378
1372
|
}));
|
|
1379
1373
|
const filteredMembersData = computed(() => {
|
|
1380
|
-
if (!search2.value.trim())
|
|
1381
|
-
return membersTableData.value;
|
|
1382
|
-
}
|
|
1374
|
+
if (!search2.value.trim()) return membersTableData.value;
|
|
1383
1375
|
const searchTerm = search2.value.toLowerCase();
|
|
1384
1376
|
const filtered = relationUsers.value.filter((member) => {
|
|
1385
|
-
const fullName = `${member.firstName
|
|
1386
|
-
const email = (member.email
|
|
1377
|
+
const fullName = `${member.firstName ?? ""} ${member.lastName ?? ""}`.toLowerCase();
|
|
1378
|
+
const email = (member.email ?? "").toLowerCase();
|
|
1387
1379
|
return fullName.includes(searchTerm) || email.includes(searchTerm);
|
|
1388
1380
|
});
|
|
1389
|
-
return {
|
|
1390
|
-
items: filtered,
|
|
1391
|
-
count: filtered.length
|
|
1392
|
-
};
|
|
1381
|
+
return { items: filtered, count: filtered.length };
|
|
1393
1382
|
});
|
|
1394
1383
|
const debouncedSearch = useDebounceFn(() => {
|
|
1395
1384
|
membersTableState.value.page = 0;
|
|
@@ -1409,10 +1398,11 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1409
1398
|
selectProjectNameIfMatchesDefault();
|
|
1410
1399
|
});
|
|
1411
1400
|
return (_ctx, _cache) => {
|
|
1401
|
+
const _component_N8nText = N8nText;
|
|
1412
1402
|
const _component_N8nIconPicker = IconPicker;
|
|
1403
|
+
const _component_N8nButton = N8nButton;
|
|
1413
1404
|
const _component_N8nIcon = N8nIcon;
|
|
1414
1405
|
const _component_N8nUserSelect = N8nUserSelect;
|
|
1415
|
-
const _component_N8nButton = N8nButton;
|
|
1416
1406
|
return openBlock(), createElementBlock("div", {
|
|
1417
1407
|
class: normalizeClass(_ctx.$style.projectSettings),
|
|
1418
1408
|
"data-test-id": "project-settings-container"
|
|
@@ -1420,7 +1410,17 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1420
1410
|
createBaseVNode("div", {
|
|
1421
1411
|
class: normalizeClass(_ctx.$style.header)
|
|
1422
1412
|
}, [
|
|
1423
|
-
createVNode(ProjectHeader)
|
|
1413
|
+
createVNode(ProjectHeader),
|
|
1414
|
+
createVNode(_component_N8nText, {
|
|
1415
|
+
tag: "h1",
|
|
1416
|
+
size: "xlarge",
|
|
1417
|
+
class: "pt-xs pb-m"
|
|
1418
|
+
}, {
|
|
1419
|
+
default: withCtx(() => [
|
|
1420
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("projects.settings.info")), 1)
|
|
1421
|
+
]),
|
|
1422
|
+
_: 1
|
|
1423
|
+
})
|
|
1424
1424
|
], 2),
|
|
1425
1425
|
createBaseVNode("form", {
|
|
1426
1426
|
onSubmit: withModifiers(onSubmit, ["prevent"])
|
|
@@ -1428,7 +1428,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1428
1428
|
createBaseVNode("fieldset", null, [
|
|
1429
1429
|
createBaseVNode("label", _hoisted_1, toDisplayString(unref(i18n).baseText("projects.settings.name")), 1),
|
|
1430
1430
|
createBaseVNode("div", {
|
|
1431
|
-
class: normalizeClass(_ctx.$style
|
|
1431
|
+
class: normalizeClass(_ctx.$style.projectName)
|
|
1432
1432
|
}, [
|
|
1433
1433
|
createVNode(_component_N8nIconPicker, {
|
|
1434
1434
|
modelValue: projectIcon.value,
|
|
@@ -1449,7 +1449,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1449
1449
|
name: "name",
|
|
1450
1450
|
required: "",
|
|
1451
1451
|
"data-test-id": "project-settings-name-input",
|
|
1452
|
-
class: normalizeClass(_ctx.$style
|
|
1452
|
+
class: normalizeClass(_ctx.$style.projectNameInput),
|
|
1453
1453
|
onEnter: onSubmit,
|
|
1454
1454
|
onInput: onTextInput,
|
|
1455
1455
|
onValidate: _cache[2] || (_cache[2] = ($event) => isValid.value = $event)
|
|
@@ -1468,16 +1468,49 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1468
1468
|
maxlength: 512,
|
|
1469
1469
|
autosize: true,
|
|
1470
1470
|
"data-test-id": "project-settings-description-input",
|
|
1471
|
+
class: normalizeClass(_ctx.$style.projectDescriptionInput),
|
|
1471
1472
|
onEnter: onSubmit,
|
|
1472
1473
|
onInput: onTextInput,
|
|
1473
1474
|
onValidate: _cache[4] || (_cache[4] = ($event) => isValid.value = $event)
|
|
1474
|
-
}, null, 8, ["modelValue"])
|
|
1475
|
+
}, null, 8, ["modelValue", "class"])
|
|
1475
1476
|
]),
|
|
1477
|
+
isDirty.value ? (openBlock(), createElementBlock("fieldset", {
|
|
1478
|
+
key: 0,
|
|
1479
|
+
class: normalizeClass(_ctx.$style.buttons)
|
|
1480
|
+
}, [
|
|
1481
|
+
createBaseVNode("div", null, [
|
|
1482
|
+
createBaseVNode("small", _hoisted_3, toDisplayString(unref(i18n).baseText("projects.settings.message.unsavedChanges")), 1),
|
|
1483
|
+
createVNode(_component_N8nButton, {
|
|
1484
|
+
type: "secondary",
|
|
1485
|
+
"native-type": "button",
|
|
1486
|
+
class: "mr-2xs",
|
|
1487
|
+
"data-test-id": "project-settings-cancel-button",
|
|
1488
|
+
onClick: withModifiers(onCancel, ["stop", "prevent"])
|
|
1489
|
+
}, {
|
|
1490
|
+
default: withCtx(() => [
|
|
1491
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("projects.settings.button.cancel")), 1)
|
|
1492
|
+
]),
|
|
1493
|
+
_: 1
|
|
1494
|
+
})
|
|
1495
|
+
]),
|
|
1496
|
+
createVNode(_component_N8nButton, {
|
|
1497
|
+
disabled: !isValid.value,
|
|
1498
|
+
type: "primary",
|
|
1499
|
+
"data-test-id": "project-settings-save-button"
|
|
1500
|
+
}, {
|
|
1501
|
+
default: withCtx(() => [
|
|
1502
|
+
createTextVNode(toDisplayString(unref(i18n).baseText("projects.settings.button.save")), 1)
|
|
1503
|
+
]),
|
|
1504
|
+
_: 1
|
|
1505
|
+
}, 8, ["disabled"])
|
|
1506
|
+
], 2)) : createCommentVNode("", true),
|
|
1476
1507
|
createBaseVNode("fieldset", null, [
|
|
1477
|
-
createBaseVNode("
|
|
1508
|
+
createBaseVNode("h3", null, [
|
|
1509
|
+
createBaseVNode("label", _hoisted_4, toDisplayString(unref(i18n).baseText("projects.settings.projectMembers")), 1)
|
|
1510
|
+
]),
|
|
1478
1511
|
createVNode(_component_N8nUserSelect, {
|
|
1479
1512
|
id: "projectMembers",
|
|
1480
|
-
class: "mb-s",
|
|
1513
|
+
class: normalizeClass([_ctx.$style.userSelect, "mb-s"]),
|
|
1481
1514
|
size: "large",
|
|
1482
1515
|
users: usersList.value,
|
|
1483
1516
|
"current-user-id": unref(usersStore).currentUser?.id,
|
|
@@ -1489,7 +1522,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1489
1522
|
createVNode(_component_N8nIcon, { icon: "search" })
|
|
1490
1523
|
]),
|
|
1491
1524
|
_: 1
|
|
1492
|
-
}, 8, ["users", "current-user-id", "placeholder"]),
|
|
1525
|
+
}, 8, ["class", "users", "current-user-id", "placeholder"]),
|
|
1493
1526
|
relationUsers.value.length > 0 ? (openBlock(), createElementBlock("div", {
|
|
1494
1527
|
key: 0,
|
|
1495
1528
|
class: normalizeClass(_ctx.$style.membersTableContainer)
|
|
@@ -1521,41 +1554,10 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1521
1554
|
}, null, 8, ["table-options", "data", "current-user-id", "project-roles", "actions"])
|
|
1522
1555
|
], 2)) : createCommentVNode("", true)
|
|
1523
1556
|
]),
|
|
1524
|
-
createBaseVNode("fieldset", {
|
|
1525
|
-
class: normalizeClass(_ctx.$style.buttons)
|
|
1526
|
-
}, [
|
|
1527
|
-
createBaseVNode("div", null, [
|
|
1528
|
-
isDirty.value ? (openBlock(), createElementBlock("small", _hoisted_4, toDisplayString(unref(i18n).baseText("projects.settings.message.unsavedChanges")), 1)) : createCommentVNode("", true),
|
|
1529
|
-
createVNode(_component_N8nButton, {
|
|
1530
|
-
disabled: !isDirty.value,
|
|
1531
|
-
type: "secondary",
|
|
1532
|
-
"native-type": "button",
|
|
1533
|
-
class: "mr-2xs",
|
|
1534
|
-
"data-test-id": "project-settings-cancel-button",
|
|
1535
|
-
onClick: withModifiers(onCancel, ["stop", "prevent"])
|
|
1536
|
-
}, {
|
|
1537
|
-
default: withCtx(() => [
|
|
1538
|
-
createTextVNode(toDisplayString(unref(i18n).baseText("projects.settings.button.cancel")), 1)
|
|
1539
|
-
]),
|
|
1540
|
-
_: 1
|
|
1541
|
-
}, 8, ["disabled"])
|
|
1542
|
-
]),
|
|
1543
|
-
createVNode(_component_N8nButton, {
|
|
1544
|
-
disabled: !isDirty.value || !isValid.value,
|
|
1545
|
-
type: "primary",
|
|
1546
|
-
"data-test-id": "project-settings-save-button"
|
|
1547
|
-
}, {
|
|
1548
|
-
default: withCtx(() => [
|
|
1549
|
-
createTextVNode(toDisplayString(unref(i18n).baseText("projects.settings.button.save")), 1)
|
|
1550
|
-
]),
|
|
1551
|
-
_: 1
|
|
1552
|
-
}, 8, ["disabled"])
|
|
1553
|
-
], 2),
|
|
1554
1557
|
createBaseVNode("fieldset", null, [
|
|
1555
|
-
_cache[8] || (_cache[8] = createBaseVNode("hr", { class: "mb-2xl" }, null, -1)),
|
|
1556
1558
|
createBaseVNode("h3", _hoisted_5, toDisplayString(unref(i18n).baseText("projects.settings.danger.title")), 1),
|
|
1557
1559
|
createBaseVNode("small", null, toDisplayString(unref(i18n).baseText("projects.settings.danger.message")), 1),
|
|
1558
|
-
_cache[
|
|
1560
|
+
_cache[8] || (_cache[8] = createBaseVNode("br", null, null, -1)),
|
|
1559
1561
|
createVNode(_component_N8nButton, {
|
|
1560
1562
|
type: "tertiary",
|
|
1561
1563
|
"native-type": "button",
|
|
@@ -1588,12 +1590,16 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
1588
1590
|
};
|
|
1589
1591
|
}
|
|
1590
1592
|
});
|
|
1591
|
-
const projectSettings = "
|
|
1592
|
-
const header = "
|
|
1593
|
-
const upgrade = "
|
|
1594
|
-
const buttons = "
|
|
1595
|
-
const membersTableContainer = "
|
|
1596
|
-
const search = "
|
|
1593
|
+
const projectSettings = "_projectSettings_1kv8e_123";
|
|
1594
|
+
const header = "_header_1kv8e_147";
|
|
1595
|
+
const upgrade = "_upgrade_1kv8e_153";
|
|
1596
|
+
const buttons = "_buttons_1kv8e_157";
|
|
1597
|
+
const membersTableContainer = "_membersTableContainer_1kv8e_163";
|
|
1598
|
+
const search = "_search_1kv8e_167";
|
|
1599
|
+
const projectName = "_projectName_1kv8e_172";
|
|
1600
|
+
const projectNameInput = "_projectNameInput_1kv8e_177";
|
|
1601
|
+
const projectDescriptionInput = "_projectDescriptionInput_1kv8e_181";
|
|
1602
|
+
const userSelect = "_userSelect_1kv8e_182";
|
|
1597
1603
|
const style0 = {
|
|
1598
1604
|
projectSettings,
|
|
1599
1605
|
header,
|
|
@@ -1601,8 +1607,10 @@ const style0 = {
|
|
|
1601
1607
|
buttons,
|
|
1602
1608
|
membersTableContainer,
|
|
1603
1609
|
search,
|
|
1604
|
-
|
|
1605
|
-
|
|
1610
|
+
projectName,
|
|
1611
|
+
projectNameInput,
|
|
1612
|
+
projectDescriptionInput,
|
|
1613
|
+
userSelect
|
|
1606
1614
|
};
|
|
1607
1615
|
const cssModules = {
|
|
1608
1616
|
"$style": style0
|