@northern.tech/store 0.3.1 → 0.3.3
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/dist/actions.cjs +20 -17
- package/dist/actions.cjs.map +1 -1
- package/dist/actions.js +8 -8
- package/dist/api/general-api.js +2 -2
- package/dist/api/types/Tenant.ts +17 -12
- package/dist/api/users-api.js +2 -2
- package/dist/appSlice/constants.cjs +18 -10
- package/dist/appSlice/constants.cjs.map +1 -1
- package/dist/appSlice/constants.d.cts +41 -84
- package/dist/appSlice/constants.d.ts +41 -84
- package/dist/appSlice/constants.js +1 -1
- package/dist/appSlice/index.js +2 -2
- package/dist/appSlice/thunks.cjs +140 -96
- package/dist/appSlice/thunks.cjs.map +1 -1
- package/dist/appSlice/thunks.js +19 -19
- package/dist/auth.js +2 -2
- package/dist/{chunk-Q6M5TTDQ.js → chunk-2CYOM4BK.js} +1 -1
- package/dist/chunk-2CYOM4BK.js.map +1 -0
- package/dist/{chunk-APHL4JZP.js → chunk-2JHFUQ6B.js} +141 -102
- package/dist/chunk-2JHFUQ6B.js.map +1 -0
- package/dist/{chunk-YETZPQFR.js → chunk-4XJMRVFI.js} +12 -11
- package/dist/chunk-4XJMRVFI.js.map +1 -0
- package/dist/{chunk-RX55KAKX.js → chunk-7JKWI5FK.js} +2 -2
- package/dist/{chunk-A6CT6GTI.js → chunk-C5NEDBJI.js} +17 -11
- package/dist/chunk-C5NEDBJI.js.map +1 -0
- package/dist/{chunk-NNADGHSL.js → chunk-DAPAXWA5.js} +8 -8
- package/dist/{chunk-ANB5BM5J.js → chunk-DCK2DBOA.js} +27 -20
- package/dist/chunk-DCK2DBOA.js.map +1 -0
- package/dist/{chunk-E5LEU5PF.js → chunk-HPBE6KYY.js} +2 -2
- package/dist/{chunk-2RJIDREZ.js → chunk-LEMVXAYP.js} +25 -16
- package/dist/chunk-LEMVXAYP.js.map +1 -0
- package/dist/{chunk-NI4SZOCF.js → chunk-LGNOTPUG.js} +9 -9
- package/dist/{chunk-MDC7Y3EX.js → chunk-LTKOV26W.js} +22 -20
- package/dist/chunk-LTKOV26W.js.map +1 -0
- package/dist/{chunk-YTQUNAZP.js → chunk-QRGTG4YB.js} +2 -2
- package/dist/{chunk-XTRPX7JZ.js → chunk-TI2RL5P2.js} +2 -2
- package/dist/chunk-TI2RL5P2.js.map +1 -0
- package/dist/{chunk-YGBFDXXA.js → chunk-TUACATJA.js} +2 -2
- package/dist/{chunk-25AKG5HH.js → chunk-UWMYZNUB.js} +19 -11
- package/dist/chunk-UWMYZNUB.js.map +1 -0
- package/dist/{chunk-UEP36GCI.js → chunk-VMNMD6KF.js} +2 -2
- package/dist/{chunk-KAQJH2YL.js → chunk-WXL7PVI5.js} +12 -4
- package/dist/chunk-WXL7PVI5.js.map +1 -0
- package/dist/{chunk-VOCOFE4I.js → chunk-X7IEZBM4.js} +2 -2
- package/dist/{chunk-XXHONFSQ.js → chunk-YDS36ALB.js} +3 -3
- package/dist/{chunk-XXHONFSQ.js.map → chunk-YDS36ALB.js.map} +1 -1
- package/dist/commonSelectors.cjs +40 -18
- package/dist/commonSelectors.cjs.map +1 -1
- package/dist/commonSelectors.d.cts +54 -46
- package/dist/commonSelectors.d.ts +54 -46
- package/dist/commonSelectors.js +9 -9
- package/dist/constants.cjs +35 -19
- package/dist/constants.cjs.map +1 -1
- package/dist/constants.d.cts +3 -3
- package/dist/constants.d.ts +3 -3
- package/dist/constants.js +6 -2
- package/dist/deploymentdevicehook.cjs +146 -101
- package/dist/deploymentdevicehook.cjs.map +1 -1
- package/dist/deploymentdevicehook.d.cts +1 -1
- package/dist/deploymentdevicehook.d.ts +1 -1
- package/dist/deploymentdevicehook.js +24 -22
- package/dist/deploymentdevicehook.js.map +1 -1
- package/dist/deploymentsSlice/constants.cjs +8 -8
- package/dist/deploymentsSlice/constants.cjs.map +1 -1
- package/dist/deploymentsSlice/constants.js +2 -2
- package/dist/deploymentsSlice/index.cjs +8 -8
- package/dist/deploymentsSlice/index.cjs.map +1 -1
- package/dist/deploymentsSlice/index.js +3 -3
- package/dist/deploymentsSlice/selectors.cjs +8 -8
- package/dist/deploymentsSlice/selectors.cjs.map +1 -1
- package/dist/deploymentsSlice/selectors.js +3 -3
- package/dist/deploymentsSlice/thunks.cjs +140 -96
- package/dist/deploymentsSlice/thunks.cjs.map +1 -1
- package/dist/deploymentsSlice/thunks.js +19 -19
- package/dist/devicesSlice/constants.cjs +11 -8
- package/dist/devicesSlice/constants.cjs.map +1 -1
- package/dist/devicesSlice/constants.d.cts +2 -1
- package/dist/devicesSlice/constants.d.ts +2 -1
- package/dist/devicesSlice/constants.js +4 -2
- package/dist/devicesSlice/index.cjs +8 -8
- package/dist/devicesSlice/index.cjs.map +1 -1
- package/dist/devicesSlice/index.js +3 -3
- package/dist/devicesSlice/selectors.cjs +9 -9
- package/dist/devicesSlice/selectors.cjs.map +1 -1
- package/dist/devicesSlice/selectors.js +3 -3
- package/dist/devicesSlice/thunks.cjs +142 -96
- package/dist/devicesSlice/thunks.cjs.map +1 -1
- package/dist/devicesSlice/thunks.d.cts +12 -2
- package/dist/devicesSlice/thunks.d.ts +12 -2
- package/dist/devicesSlice/thunks.js +21 -19
- package/dist/flag-eu-5477R2P4.svg +130 -0
- package/dist/flag-us-HNQAF66I.svg +63 -0
- package/dist/monitorSlice/constants.cjs +8 -8
- package/dist/monitorSlice/constants.cjs.map +1 -1
- package/dist/monitorSlice/constants.js +2 -2
- package/dist/monitorSlice/index.cjs +8 -8
- package/dist/monitorSlice/index.cjs.map +1 -1
- package/dist/monitorSlice/index.js +3 -3
- package/dist/monitorSlice/thunks.cjs +59 -37
- package/dist/monitorSlice/thunks.cjs.map +1 -1
- package/dist/monitorSlice/thunks.js +17 -17
- package/dist/onboardingSlice/thunks.cjs +149 -102
- package/dist/onboardingSlice/thunks.cjs.map +1 -1
- package/dist/onboardingSlice/thunks.d.cts +1 -32
- package/dist/onboardingSlice/thunks.d.ts +1 -32
- package/dist/onboardingSlice/thunks.js +19 -19
- package/dist/organizationSlice/constants.cjs +22 -17
- package/dist/organizationSlice/constants.cjs.map +1 -1
- package/dist/organizationSlice/constants.d.cts +33 -1
- package/dist/organizationSlice/constants.d.ts +33 -1
- package/dist/organizationSlice/constants.js +4 -2
- package/dist/organizationSlice/index.cjs +18 -15
- package/dist/organizationSlice/index.cjs.map +1 -1
- package/dist/organizationSlice/index.d.cts +26 -1012
- package/dist/organizationSlice/index.d.ts +26 -1012
- package/dist/organizationSlice/index.js +3 -3
- package/dist/organizationSlice/selectors.cjs.map +1 -1
- package/dist/organizationSlice/selectors.d.cts +9 -1
- package/dist/organizationSlice/selectors.d.ts +9 -1
- package/dist/organizationSlice/selectors.js +3 -3
- package/dist/organizationSlice/thunks.cjs +1608 -1540
- package/dist/organizationSlice/thunks.cjs.map +1 -1
- package/dist/organizationSlice/thunks.d.cts +61 -36
- package/dist/organizationSlice/thunks.d.ts +61 -36
- package/dist/organizationSlice/thunks.js +19 -19
- package/dist/organizationSlice/types.cjs +19 -0
- package/dist/organizationSlice/types.cjs.map +1 -0
- package/dist/organizationSlice/types.d.cts +114 -0
- package/dist/organizationSlice/types.d.ts +114 -0
- package/dist/organizationSlice/types.js +1 -0
- package/dist/organizationSlice/types.js.map +1 -0
- package/dist/releasesSlice/index.js +2 -2
- package/dist/releasesSlice/selectors.cjs +11 -0
- package/dist/releasesSlice/selectors.cjs.map +1 -1
- package/dist/releasesSlice/selectors.js +4 -4
- package/dist/releasesSlice/thunks.cjs +73 -49
- package/dist/releasesSlice/thunks.cjs.map +1 -1
- package/dist/releasesSlice/thunks.d.cts +1 -4
- package/dist/releasesSlice/thunks.d.ts +1 -4
- package/dist/releasesSlice/thunks.js +17 -17
- package/dist/selectors.cjs +46 -18
- package/dist/selectors.cjs.map +1 -1
- package/dist/selectors.d.cts +9 -1
- package/dist/selectors.d.ts +9 -1
- package/dist/selectors.js +36 -30
- package/dist/store.cjs +36 -23
- package/dist/store.cjs.map +1 -1
- package/dist/store.d.cts +12 -231
- package/dist/store.d.ts +12 -231
- package/dist/store.js +13 -11
- package/dist/storehooks.cjs +222 -141
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +36 -24
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +199 -126
- package/dist/thunks.cjs.map +1 -1
- package/dist/thunks.d.cts +5 -1
- package/dist/thunks.d.ts +5 -1
- package/dist/thunks.js +21 -19
- package/dist/usersSlice/constants.cjs +10 -10
- package/dist/usersSlice/constants.cjs.map +1 -1
- package/dist/usersSlice/constants.js +2 -2
- package/dist/usersSlice/index.cjs +10 -10
- package/dist/usersSlice/index.cjs.map +1 -1
- package/dist/usersSlice/index.js +3 -3
- package/dist/usersSlice/selectors.cjs +35 -13
- package/dist/usersSlice/selectors.cjs.map +1 -1
- package/dist/usersSlice/selectors.d.cts +44 -1
- package/dist/usersSlice/selectors.d.ts +44 -1
- package/dist/usersSlice/selectors.js +12 -6
- package/dist/usersSlice/thunks.cjs +138 -96
- package/dist/usersSlice/thunks.cjs.map +1 -1
- package/dist/usersSlice/thunks.d.cts +10 -9
- package/dist/usersSlice/thunks.d.ts +10 -9
- package/dist/usersSlice/thunks.js +19 -19
- package/dist/utils.cjs +17 -16
- package/dist/utils.cjs.map +1 -1
- package/dist/utils.js +3 -3
- package/package.json +7 -7
- package/dist/chunk-25AKG5HH.js.map +0 -1
- package/dist/chunk-2RJIDREZ.js.map +0 -1
- package/dist/chunk-A6CT6GTI.js.map +0 -1
- package/dist/chunk-ANB5BM5J.js.map +0 -1
- package/dist/chunk-APHL4JZP.js.map +0 -1
- package/dist/chunk-KAQJH2YL.js.map +0 -1
- package/dist/chunk-MDC7Y3EX.js.map +0 -1
- package/dist/chunk-Q6M5TTDQ.js.map +0 -1
- package/dist/chunk-XTRPX7JZ.js.map +0 -1
- package/dist/chunk-YETZPQFR.js.map +0 -1
- /package/dist/{chunk-RX55KAKX.js.map → chunk-7JKWI5FK.js.map} +0 -0
- /package/dist/{chunk-NNADGHSL.js.map → chunk-DAPAXWA5.js.map} +0 -0
- /package/dist/{chunk-E5LEU5PF.js.map → chunk-HPBE6KYY.js.map} +0 -0
- /package/dist/{chunk-NI4SZOCF.js.map → chunk-LGNOTPUG.js.map} +0 -0
- /package/dist/{chunk-YTQUNAZP.js.map → chunk-QRGTG4YB.js.map} +0 -0
- /package/dist/{chunk-YGBFDXXA.js.map → chunk-TUACATJA.js.map} +0 -0
- /package/dist/{chunk-UEP36GCI.js.map → chunk-VMNMD6KF.js.map} +0 -0
- /package/dist/{chunk-VOCOFE4I.js.map → chunk-X7IEZBM4.js.map} +0 -0
package/dist/appSlice/thunks.cjs
CHANGED
|
@@ -71,28 +71,28 @@ var PLANS = {
|
|
|
71
71
|
id: "os",
|
|
72
72
|
name: "Basic",
|
|
73
73
|
offer: true,
|
|
74
|
-
price: "$32/month",
|
|
74
|
+
price: "$32 / month",
|
|
75
75
|
deviceCount: startingDeviceCount.os,
|
|
76
|
-
offerprice: "$23/month for first 50 devices",
|
|
76
|
+
offerprice: "$23 / month for first 50 devices",
|
|
77
77
|
price2: "for first 6 months;\n$29/month thereafter",
|
|
78
|
-
features: ["
|
|
78
|
+
features: ["Access to core features of Mender", "Basic support"]
|
|
79
79
|
},
|
|
80
80
|
professional: {
|
|
81
81
|
id: "professional",
|
|
82
82
|
name: "Professional",
|
|
83
83
|
offer: true,
|
|
84
|
-
price: "$269/month",
|
|
84
|
+
price: "$269 / month",
|
|
85
85
|
deviceCount: startingDeviceCount.professional,
|
|
86
|
-
offerprice: "$200/month for first 50 devices",
|
|
86
|
+
offerprice: "$200 / month for first 50 devices",
|
|
87
87
|
price2: "for first 6 months;\n$249/month thereafter",
|
|
88
|
-
features: ["
|
|
88
|
+
features: ["Advanced OTA features", "Higher priority support"]
|
|
89
89
|
},
|
|
90
90
|
enterprise: {
|
|
91
91
|
id: "enterprise",
|
|
92
92
|
name: "Enterprise",
|
|
93
93
|
price: "Custom pricing",
|
|
94
|
-
deviceCount: "
|
|
95
|
-
features: ["
|
|
94
|
+
deviceCount: "Unlimited devices",
|
|
95
|
+
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
96
96
|
}
|
|
97
97
|
};
|
|
98
98
|
var ADDONS = {
|
|
@@ -563,6 +563,7 @@ var DEVICE_STATES = {
|
|
|
563
563
|
rejected: "rejected"
|
|
564
564
|
};
|
|
565
565
|
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
566
|
+
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
566
567
|
|
|
567
568
|
// src/monitorSlice/constants.ts
|
|
568
569
|
var alertChannels = { email: "email" };
|
|
@@ -644,13 +645,16 @@ var SSO_TYPES = {
|
|
|
644
645
|
configDetails: [{ key: "startURL", label: "Start Url", getValue: getOidcStartUrl }]
|
|
645
646
|
}
|
|
646
647
|
};
|
|
647
|
-
var
|
|
648
|
-
{ title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
649
|
-
{ title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
650
|
-
{ title: "Device", queryParameter: "object_id", value: "device" },
|
|
651
|
-
{ title: "
|
|
652
|
-
|
|
653
|
-
|
|
648
|
+
var auditlogTypes = {
|
|
649
|
+
artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
650
|
+
deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
651
|
+
device: { title: "Device", queryParameter: "object_id", value: "device" },
|
|
652
|
+
user_access_token: { title: "Personal Access Token", queryParameter: "user_access_token", value: "user_access_token" },
|
|
653
|
+
user: { title: "User", queryParameter: "object_id", value: "user" },
|
|
654
|
+
tenant: { title: "Tenant", queryParameter: "object_id", value: "tenant" }
|
|
655
|
+
};
|
|
656
|
+
var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
|
|
657
|
+
var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
|
|
654
658
|
var emptyWebhook = {
|
|
655
659
|
description: "",
|
|
656
660
|
enabled: true,
|
|
@@ -783,7 +787,7 @@ var uiPermissionsByArea = {
|
|
|
783
787
|
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
784
788
|
key: "auditlog",
|
|
785
789
|
uiPermissions: [uiPermissionsById.read],
|
|
786
|
-
title: "System
|
|
790
|
+
title: "System Audit Log"
|
|
787
791
|
},
|
|
788
792
|
deployments: {
|
|
789
793
|
endpoints: [
|
|
@@ -934,7 +938,7 @@ var serviceProviderRolesById = {
|
|
|
934
938
|
},
|
|
935
939
|
readOnly: {
|
|
936
940
|
name: "Read access",
|
|
937
|
-
value: staticRolesByName.
|
|
941
|
+
value: staticRolesByName.readOnly,
|
|
938
942
|
description: "This role can see all linked organizations but cannot make any changes",
|
|
939
943
|
permissions: [],
|
|
940
944
|
uiPermissions: {
|
|
@@ -1266,7 +1270,7 @@ var getGroups = (0, import_toolkit3.createSelector)([getGroupsById], (groupsById
|
|
|
1266
1270
|
(accu, [groupname, group]) => {
|
|
1267
1271
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
1268
1272
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
1269
|
-
if (group.filters
|
|
1273
|
+
if (group.filters?.length > 0) {
|
|
1270
1274
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
1271
1275
|
accu.dynamic.push(groupItem);
|
|
1272
1276
|
} else {
|
|
@@ -1339,14 +1343,15 @@ var getAuditLogEntry = (0, import_toolkit4.createSelector)([getAuditLog, getAudi
|
|
|
1339
1343
|
// src/utils.ts
|
|
1340
1344
|
var import_helpers3 = require("@northern.tech/utils/helpers");
|
|
1341
1345
|
var filterProcessors = {
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1346
|
+
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1347
|
+
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1348
|
+
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1349
|
+
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1350
|
+
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1351
|
+
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1352
|
+
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1353
|
+
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1354
|
+
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1350
1355
|
};
|
|
1351
1356
|
var filterAliases = {
|
|
1352
1357
|
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
@@ -1470,8 +1475,13 @@ var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
|
1470
1475
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
1471
1476
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
1472
1477
|
var getUsersById = (state) => state.users.byId;
|
|
1478
|
+
var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
1473
1479
|
var getCurrentUser = (0, import_toolkit6.createSelector)([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});
|
|
1474
1480
|
var getUserSettings = (state) => state.users.userSettings;
|
|
1481
|
+
var getSelectedDeviceAttribute = (0, import_toolkit6.createSelector)(
|
|
1482
|
+
[getUserSettings],
|
|
1483
|
+
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
1484
|
+
);
|
|
1475
1485
|
var getIsDarkMode = (0, import_toolkit6.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
1476
1486
|
var getShowHelptips = (0, import_toolkit6.createSelector)(
|
|
1477
1487
|
[getTooltipsById],
|
|
@@ -1496,7 +1506,7 @@ var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobal
|
|
|
1496
1506
|
interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,
|
|
1497
1507
|
intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
|
|
1498
1508
|
}));
|
|
1499
|
-
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([
|
|
1509
|
+
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
|
|
1500
1510
|
|
|
1501
1511
|
// src/commonSelectors.ts
|
|
1502
1512
|
var getIsEnterprise = (0, import_toolkit7.createSelector)(
|
|
@@ -1557,12 +1567,18 @@ var getUserCapabilities = (0, import_toolkit7.createSelector)([getUserRoles, get
|
|
|
1557
1567
|
});
|
|
1558
1568
|
var getTenantCapabilities = (0, import_toolkit7.createSelector)(
|
|
1559
1569
|
[getFeatures, getOrganization, getIsEnterprise],
|
|
1560
|
-
({
|
|
1570
|
+
({
|
|
1571
|
+
hasAuditlogs: isAuditlogEnabled,
|
|
1572
|
+
hasDeviceConfig: isDeviceConfigEnabled,
|
|
1573
|
+
hasDeviceConnect: isDeviceConnectEnabled,
|
|
1574
|
+
hasMonitor: isMonitorEnabled,
|
|
1575
|
+
isHosted
|
|
1576
|
+
}, { addons = [], plan = PLANS.os.id }, isEnterprise) => {
|
|
1561
1577
|
const canDelta = isEnterprise || plan === PLANS.professional.id;
|
|
1562
1578
|
const hasAuditlogs = isAuditlogEnabled && isEnterprise;
|
|
1563
|
-
const hasDeviceConfig =
|
|
1564
|
-
const hasDeviceConnect =
|
|
1565
|
-
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name ===
|
|
1579
|
+
const hasDeviceConfig = addons.some((addon) => addon.name === ADDONS.configure.id && addon.enabled) || isDeviceConfigEnabled && !isHosted;
|
|
1580
|
+
const hasDeviceConnect = addons.some((addon) => addon.name === ADDONS.troubleshoot.id && addon.enabled) || isDeviceConnectEnabled && !isHosted;
|
|
1581
|
+
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name === ADDONS.monitor.id && addon.enabled);
|
|
1566
1582
|
return {
|
|
1567
1583
|
canDelta,
|
|
1568
1584
|
canRetry: canDelta,
|
|
@@ -1692,7 +1708,7 @@ var getAuditlogDevice = (0, import_toolkit7.createSelector)([getAuditLogEntry, g
|
|
|
1692
1708
|
var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
1693
1709
|
if (service_provider) {
|
|
1694
1710
|
return roles.reduce((accu, role) => {
|
|
1695
|
-
if (rolesById[role.
|
|
1711
|
+
if (rolesById[role.value]) {
|
|
1696
1712
|
return accu;
|
|
1697
1713
|
}
|
|
1698
1714
|
accu.push(role);
|
|
@@ -1700,7 +1716,7 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1700
1716
|
}, Object.values(serviceProviderRolesById));
|
|
1701
1717
|
}
|
|
1702
1718
|
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
1703
|
-
const index = accu.findIndex(({
|
|
1719
|
+
const index = accu.findIndex(({ value }) => value === key);
|
|
1704
1720
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
1705
1721
|
return accu;
|
|
1706
1722
|
}, roles);
|
|
@@ -2576,13 +2592,12 @@ var actions_default = {
|
|
|
2576
2592
|
};
|
|
2577
2593
|
|
|
2578
2594
|
// src/store.ts
|
|
2595
|
+
var import_react_redux = require("react-redux");
|
|
2579
2596
|
var import_helpers6 = require("@northern.tech/utils/helpers");
|
|
2580
2597
|
var import_toolkit16 = require("@reduxjs/toolkit");
|
|
2581
2598
|
var { setSnackbar, uploadProgress } = actions_default;
|
|
2582
2599
|
var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
|
|
2583
|
-
var resetEnvironment = () =>
|
|
2584
|
-
keys.map((key) => window.sessionStorage.removeItem(key));
|
|
2585
|
-
};
|
|
2600
|
+
var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
|
|
2586
2601
|
resetEnvironment();
|
|
2587
2602
|
var commonErrorFallback = "Please check your connection.";
|
|
2588
2603
|
var commonErrorHandler = (err, errorContext, dispatch, fallback, mightBeAuthRelated = false) => {
|
|
@@ -2608,6 +2623,14 @@ var sessionReducer = (state, action) => {
|
|
|
2608
2623
|
}
|
|
2609
2624
|
return rootReducer(state, action);
|
|
2610
2625
|
};
|
|
2626
|
+
var rejectionLoggerMiddleware = () => (next) => (action) => {
|
|
2627
|
+
if (action.type.endsWith("/rejected")) {
|
|
2628
|
+
const { error } = action;
|
|
2629
|
+
console.error("Rejection in action:", action);
|
|
2630
|
+
console.error(error.stack);
|
|
2631
|
+
}
|
|
2632
|
+
return next(action);
|
|
2633
|
+
};
|
|
2611
2634
|
var getConfiguredStore = (options = {}) => {
|
|
2612
2635
|
const { preloadedState = {}, ...config } = options;
|
|
2613
2636
|
return (0, import_toolkit16.configureStore)({
|
|
@@ -2623,7 +2646,7 @@ var getConfiguredStore = (options = {}) => {
|
|
|
2623
2646
|
ignoredActionPaths: ["uploads", "snackbar", /payload\..*$/],
|
|
2624
2647
|
ignoredPaths: ["app.uploadsById", "app.snackbar", "organization.externalDeviceIntegrations"]
|
|
2625
2648
|
}
|
|
2626
|
-
})
|
|
2649
|
+
}).concat(rejectionLoggerMiddleware)
|
|
2627
2650
|
});
|
|
2628
2651
|
};
|
|
2629
2652
|
var store = getConfiguredStore({
|
|
@@ -2632,6 +2655,7 @@ var store = getConfiguredStore({
|
|
|
2632
2655
|
|
|
2633
2656
|
// src/deploymentsSlice/thunks.ts
|
|
2634
2657
|
var import_helpers7 = require("@northern.tech/utils/helpers");
|
|
2658
|
+
var import_tracking = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
2635
2659
|
var import_toolkit17 = require("@reduxjs/toolkit");
|
|
2636
2660
|
var import_validator = require("validator");
|
|
2637
2661
|
var { receivedDevice, setSnackbar: setSnackbar2 } = actions_default;
|
|
@@ -2688,6 +2712,26 @@ var getDeploymentsByStatus2 = (0, import_toolkit17.createAsyncThunk)(`${sliceNam
|
|
|
2688
2712
|
return Promise.all(tasks);
|
|
2689
2713
|
});
|
|
2690
2714
|
});
|
|
2715
|
+
var isWithinFirstMonth = (expirationDate) => {
|
|
2716
|
+
if (!expirationDate) {
|
|
2717
|
+
return false;
|
|
2718
|
+
}
|
|
2719
|
+
const endOfFirstMonth = new Date(expirationDate);
|
|
2720
|
+
endOfFirstMonth.setMonth(endOfFirstMonth.getMonth() - 11);
|
|
2721
|
+
return endOfFirstMonth > /* @__PURE__ */ new Date();
|
|
2722
|
+
};
|
|
2723
|
+
var trackDeploymentCreation = (totalDeploymentCount, hasDeployments, trial_expiration) => {
|
|
2724
|
+
import_tracking.default.event({ category: "deployments", action: "create" });
|
|
2725
|
+
if (!totalDeploymentCount) {
|
|
2726
|
+
if (!hasDeployments) {
|
|
2727
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment" });
|
|
2728
|
+
if (isWithinFirstMonth(trial_expiration)) {
|
|
2729
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_first_month" });
|
|
2730
|
+
}
|
|
2731
|
+
}
|
|
2732
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_user" });
|
|
2733
|
+
}
|
|
2734
|
+
};
|
|
2691
2735
|
var MAX_PREVIOUS_PHASES_COUNT = 5;
|
|
2692
2736
|
var createDeployment = (0, import_toolkit17.createAsyncThunk)(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
|
|
2693
2737
|
let request;
|
|
@@ -2698,6 +2742,9 @@ var createDeployment = (0, import_toolkit17.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2698
2742
|
} else {
|
|
2699
2743
|
request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
|
|
2700
2744
|
}
|
|
2745
|
+
const totalDeploymentCount = Object.values(getDeploymentsByStatus(getState())).reduce((accu, item) => accu + item.total, 0);
|
|
2746
|
+
const { hasDeployments } = getGlobalSettings(getState());
|
|
2747
|
+
const { trial_expiration } = getOrganization(getState());
|
|
2701
2748
|
return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
|
|
2702
2749
|
const lastslashindex = data.headers.location.lastIndexOf("/");
|
|
2703
2750
|
const deploymentId = data.headers.location.substring(lastslashindex + 1);
|
|
@@ -2712,6 +2759,7 @@ var createDeployment = (0, import_toolkit17.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2712
2759
|
dispatch(getSingleDeployment(deploymentId)),
|
|
2713
2760
|
dispatch(setSnackbar2("Deployment created successfully", TIMEOUTS.fiveSeconds))
|
|
2714
2761
|
];
|
|
2762
|
+
trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
|
|
2715
2763
|
const { canManageUsers } = getUserCapabilities(getState());
|
|
2716
2764
|
if (canManageUsers) {
|
|
2717
2765
|
const { phases, retries } = newDeployment;
|
|
@@ -3386,7 +3434,7 @@ var getDevicesByStatus2 = (0, import_toolkit18.createAsyncThunk)(`${sliceName3}/
|
|
|
3386
3434
|
page = defaultPage2,
|
|
3387
3435
|
perPage = defaultPerPage2,
|
|
3388
3436
|
sortOptions = [],
|
|
3389
|
-
selectedAttributes =
|
|
3437
|
+
selectedAttributes = getSelectedDeviceAttribute(getState())
|
|
3390
3438
|
} = options;
|
|
3391
3439
|
const state = getState();
|
|
3392
3440
|
const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
@@ -3499,7 +3547,6 @@ var getReportingLimits = (0, import_toolkit18.createAsyncThunk)(
|
|
|
3499
3547
|
})
|
|
3500
3548
|
);
|
|
3501
3549
|
var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
|
|
3502
|
-
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
3503
3550
|
var getSingleReportData = (reportConfig, groups) => {
|
|
3504
3551
|
const { attribute, group, software = "" } = reportConfig;
|
|
3505
3552
|
const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
|
|
@@ -3579,9 +3626,17 @@ var getDeviceConnect = (0, import_toolkit18.createAsyncThunk)(
|
|
|
3579
3626
|
({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
|
|
3580
3627
|
)
|
|
3581
3628
|
);
|
|
3629
|
+
var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
|
|
3630
|
+
var triggerDeviceUpdate = (0, import_toolkit18.createAsyncThunk)(
|
|
3631
|
+
`${sliceName3}/triggerDeviceUpdate`,
|
|
3632
|
+
({ id, type }, { dispatch }) => general_api_default.post(`${deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
|
|
3633
|
+
() => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
|
|
3634
|
+
)
|
|
3635
|
+
);
|
|
3582
3636
|
var getSessionDetails = (0, import_toolkit18.createAsyncThunk)(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
|
|
3583
|
-
const
|
|
3584
|
-
const
|
|
3637
|
+
const { start: startUnix, end: endUnix } = (0, import_helpers8.dateRangeToUnix)(startDate, endDate);
|
|
3638
|
+
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
3639
|
+
const createdBefore = endDate ? `&created_before=${endUnix}` : "";
|
|
3585
3640
|
const objectSearch = `&object_id=${deviceId}`;
|
|
3586
3641
|
return general_api_default.get(`${auditLogsApiUrl}/logs?per_page=500${createdAfter}${createdBefore}&actor_id=${userId}${objectSearch}`).then(
|
|
3587
3642
|
({ data: auditLogEntries }) => {
|
|
@@ -3680,12 +3735,12 @@ var deleteAuthset = (0, import_toolkit18.createAsyncThunk)(
|
|
|
3680
3735
|
);
|
|
3681
3736
|
var preauthDevice = (0, import_toolkit18.createAsyncThunk)(
|
|
3682
3737
|
`${sliceName3}/preauthDevice`,
|
|
3683
|
-
(authset, { dispatch }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).catch((err) => {
|
|
3738
|
+
(authset, { dispatch, rejectWithValue }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).then(() => Promise.resolve(dispatch(setSnackbar3("Device was successfully added to the preauthorization list", TIMEOUTS.fiveSeconds)))).catch((err) => {
|
|
3684
3739
|
if (err.response.status === 409) {
|
|
3685
|
-
return
|
|
3740
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
3686
3741
|
}
|
|
3687
3742
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
3688
|
-
})
|
|
3743
|
+
})
|
|
3689
3744
|
);
|
|
3690
3745
|
var decommissionDevice = (0, import_toolkit18.createAsyncThunk)(
|
|
3691
3746
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -3912,6 +3967,9 @@ var changeNotificationSetting = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3912
3967
|
}
|
|
3913
3968
|
);
|
|
3914
3969
|
|
|
3970
|
+
// src/usersSlice/thunks.ts
|
|
3971
|
+
var import_helptips = require("@northern.tech/common-ui/helptips");
|
|
3972
|
+
|
|
3915
3973
|
// src/api/users-api.ts
|
|
3916
3974
|
var import_axios3 = __toESM(require("axios"), 1);
|
|
3917
3975
|
var Api2 = {
|
|
@@ -3945,7 +4003,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
3945
4003
|
}
|
|
3946
4004
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
3947
4005
|
const errorMessage = `There was a problem logging in. Please check your email${twoFAError ? "," : " and"} password${twoFAError}. If you still have problems, contact an administrator.`;
|
|
3948
|
-
return Promise.reject(dispatch(setSnackbar4((0, import_helpers9.preformatWithRequestID)(err.response, errorMessage),
|
|
4006
|
+
return Promise.reject(dispatch(setSnackbar4({ message: (0, import_helpers9.preformatWithRequestID)(err.response, errorMessage), action: "Copy to clipboard" })));
|
|
3949
4007
|
};
|
|
3950
4008
|
var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
3951
4009
|
`${sliceName8}/loginUser`,
|
|
@@ -3969,19 +4027,16 @@ var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3969
4027
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
3970
4028
|
setSessionInfo({ token, expiresAt });
|
|
3971
4029
|
cookies2.remove("JWT", { path: "/" });
|
|
3972
|
-
return (
|
|
3973
|
-
|
|
3974
|
-
Promise.
|
|
3975
|
-
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
window.
|
|
3979
|
-
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
3983
|
-
})
|
|
3984
|
-
);
|
|
4030
|
+
return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
|
|
4031
|
+
cleanUp();
|
|
4032
|
+
return Promise.reject(dispatch(setSnackbar4((0, import_helpers9.extractErrorMessage)(e))));
|
|
4033
|
+
}).then(() => {
|
|
4034
|
+
window.sessionStorage.removeItem("pendings-redirect");
|
|
4035
|
+
if (window.location.pathname !== "/ui/") {
|
|
4036
|
+
window.location.replace("/ui/");
|
|
4037
|
+
}
|
|
4038
|
+
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
4039
|
+
});
|
|
3985
4040
|
})
|
|
3986
4041
|
);
|
|
3987
4042
|
var logoutUser = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -3999,6 +4054,7 @@ var switchUserOrganization = (0, import_toolkit20.createAsyncThunk)(`${sliceName
|
|
|
3999
4054
|
return Promise.reject();
|
|
4000
4055
|
}
|
|
4001
4056
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
4057
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
4002
4058
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
4003
4059
|
window.location.reload();
|
|
4004
4060
|
});
|
|
@@ -4039,11 +4095,18 @@ var verify2FA = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4039
4095
|
);
|
|
4040
4096
|
var getUserList = (0, import_toolkit20.createAsyncThunk)(
|
|
4041
4097
|
`${sliceName8}/getUserList`,
|
|
4042
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4043
|
-
const
|
|
4044
|
-
|
|
4045
|
-
|
|
4046
|
-
|
|
4098
|
+
(_, { dispatch, getState }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4099
|
+
const currentUsersById = getUsersById(getState());
|
|
4100
|
+
const users = res.data.reduce(
|
|
4101
|
+
(accu, item) => {
|
|
4102
|
+
accu[item.id] = {
|
|
4103
|
+
...accu[item.id],
|
|
4104
|
+
...item
|
|
4105
|
+
};
|
|
4106
|
+
return accu;
|
|
4107
|
+
},
|
|
4108
|
+
{ ...currentUsersById }
|
|
4109
|
+
);
|
|
4047
4110
|
return dispatch(actions8.receivedUserList(users));
|
|
4048
4111
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
4049
4112
|
);
|
|
@@ -4052,9 +4115,7 @@ var getUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4052
4115
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
4053
4116
|
({ data: user }) => Promise.all([
|
|
4054
4117
|
dispatch(actions8.receivedUser(user)),
|
|
4055
|
-
// @ts-ignore
|
|
4056
4118
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
4057
|
-
// @ts-ignore
|
|
4058
4119
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
4059
4120
|
user
|
|
4060
4121
|
])
|
|
@@ -4101,10 +4162,7 @@ var createUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4101
4162
|
);
|
|
4102
4163
|
var removeUser = (0, import_toolkit20.createAsyncThunk)(
|
|
4103
4164
|
`${sliceName8}/removeUser`,
|
|
4104
|
-
(userId, { dispatch }) => (
|
|
4105
|
-
// @ts-ignore
|
|
4106
|
-
general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
4107
|
-
)
|
|
4165
|
+
(userId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
4108
4166
|
);
|
|
4109
4167
|
var editUser = (0, import_toolkit20.createAsyncThunk)(
|
|
4110
4168
|
`${sliceName8}/editUser`,
|
|
@@ -4125,7 +4183,7 @@ var enableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4125
4183
|
);
|
|
4126
4184
|
var disableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
4127
4185
|
`${sliceName8}/disableUser2fa`,
|
|
4128
|
-
(userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.
|
|
4186
|
+
(userId = OWN_USER_ID, { dispatch }) => general_api_default.post(`${useradmApiUrlv1}/users/${userId}/2fa/disable`).catch((err) => commonErrorHandler(err, `There was an error disabling Two Factor authentication for the user.`, dispatch)).then(() => Promise.all([dispatch(getUser(userId)), dispatch(actions8.receivedQrCode(null))]))
|
|
4129
4187
|
);
|
|
4130
4188
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
4131
4189
|
(accu, [area, definition]) => {
|
|
@@ -4278,7 +4336,6 @@ var getPermissionSets = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4278
4336
|
accu[permissionSet.name] = permissionSetObject;
|
|
4279
4337
|
return accu;
|
|
4280
4338
|
},
|
|
4281
|
-
// @ts-ignore
|
|
4282
4339
|
{ ...getState().users.permissionSetsById }
|
|
4283
4340
|
);
|
|
4284
4341
|
return Promise.all([dispatch(actions8.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -4371,7 +4428,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
4371
4428
|
role: {
|
|
4372
4429
|
...emptyRole,
|
|
4373
4430
|
name,
|
|
4374
|
-
// @ts-ignore
|
|
4375
4431
|
description: description ? description : roleState.description,
|
|
4376
4432
|
uiPermissions: {
|
|
4377
4433
|
...emptyUiPermissions,
|
|
@@ -4414,10 +4470,7 @@ var editRole = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/editRole`,
|
|
|
4414
4470
|
});
|
|
4415
4471
|
var removeRole = (0, import_toolkit20.createAsyncThunk)(
|
|
4416
4472
|
`${sliceName8}/removeRole`,
|
|
4417
|
-
(roleId, { dispatch }) => (
|
|
4418
|
-
// @ts-ignore
|
|
4419
|
-
general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
4420
|
-
)
|
|
4473
|
+
(roleId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
4421
4474
|
);
|
|
4422
4475
|
var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
4423
4476
|
`${sliceName8}/getGlobalSettings`,
|
|
@@ -4428,7 +4481,6 @@ var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4428
4481
|
);
|
|
4429
4482
|
var saveGlobalSettings = (0, import_toolkit20.createAsyncThunk)(
|
|
4430
4483
|
`${sliceName8}/saveGlobalSettings`,
|
|
4431
|
-
// @ts-ignore
|
|
4432
4484
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
4433
4485
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
4434
4486
|
return;
|
|
@@ -4474,11 +4526,9 @@ var saveUserSettings = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/sav
|
|
|
4474
4526
|
const tooltipState = getTooltipsState(getState());
|
|
4475
4527
|
const updatedSettings = {
|
|
4476
4528
|
...userSettings,
|
|
4477
|
-
// @ts-ignore
|
|
4478
4529
|
...settings,
|
|
4479
4530
|
onboarding: {
|
|
4480
4531
|
...onboardingState,
|
|
4481
|
-
// @ts-ignore
|
|
4482
4532
|
...settings.onboarding
|
|
4483
4533
|
},
|
|
4484
4534
|
tooltips: tooltipState
|
|
@@ -4522,10 +4572,7 @@ var generateToken = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4522
4572
|
);
|
|
4523
4573
|
var revokeToken = (0, import_toolkit20.createAsyncThunk)(
|
|
4524
4574
|
`${sliceName8}/revokeToken`,
|
|
4525
|
-
(token, { dispatch }) => (
|
|
4526
|
-
// @ts-ignore
|
|
4527
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4528
|
-
)
|
|
4575
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4529
4576
|
);
|
|
4530
4577
|
var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
4531
4578
|
let tasks = [dispatch(actions8.setTooltipState(remainder))];
|
|
@@ -4534,23 +4581,20 @@ var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/
|
|
|
4534
4581
|
}
|
|
4535
4582
|
return Promise.all(tasks);
|
|
4536
4583
|
});
|
|
4537
|
-
var setAllTooltipsReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (
|
|
4538
|
-
const updatedTips =
|
|
4584
|
+
var setAllTooltipsReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (readState = READ_STATES.read, { dispatch }) => {
|
|
4585
|
+
const updatedTips = Object.keys(import_helptips.HELPTOOLTIPS).reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
|
|
4539
4586
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
4540
4587
|
});
|
|
4541
4588
|
var submitFeedback = (0, import_toolkit20.createAsyncThunk)(
|
|
4542
4589
|
`${sliceName8}/submitFeedback`,
|
|
4543
|
-
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4552
|
-
});
|
|
4553
|
-
}
|
|
4590
|
+
({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
|
|
4591
|
+
subject: "feedback submission",
|
|
4592
|
+
body: JSON.stringify({ feedback, satisfaction, meta })
|
|
4593
|
+
}).then(() => {
|
|
4594
|
+
const today = /* @__PURE__ */ new Date();
|
|
4595
|
+
dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
|
|
4596
|
+
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4597
|
+
})
|
|
4554
4598
|
);
|
|
4555
4599
|
|
|
4556
4600
|
// src/appSlice/thunks.ts
|