@northern.tech/store 0.3.2 → 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 +137 -94
- 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-74OJIKXF.js → chunk-2JHFUQ6B.js} +133 -96
- 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 +143 -99
- 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 +137 -94
- 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 +139 -94
- 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 +146 -100
- 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 +1605 -1539
- 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 +216 -137
- package/dist/storehooks.cjs.map +1 -1
- package/dist/storehooks.js +36 -24
- package/dist/storehooks.js.map +1 -1
- package/dist/thunks.cjs +193 -122
- 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 +135 -94
- 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-74OJIKXF.js.map +0 -1
- package/dist/chunk-A6CT6GTI.js.map +0 -1
- package/dist/chunk-ANB5BM5J.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,6 +3626,13 @@ 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
3637
|
const { start: startUnix, end: endUnix } = (0, import_helpers8.dateRangeToUnix)(startDate, endDate);
|
|
3584
3638
|
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
@@ -3681,12 +3735,12 @@ var deleteAuthset = (0, import_toolkit18.createAsyncThunk)(
|
|
|
3681
3735
|
);
|
|
3682
3736
|
var preauthDevice = (0, import_toolkit18.createAsyncThunk)(
|
|
3683
3737
|
`${sliceName3}/preauthDevice`,
|
|
3684
|
-
(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) => {
|
|
3685
3739
|
if (err.response.status === 409) {
|
|
3686
|
-
return
|
|
3740
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
3687
3741
|
}
|
|
3688
3742
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
3689
|
-
})
|
|
3743
|
+
})
|
|
3690
3744
|
);
|
|
3691
3745
|
var decommissionDevice = (0, import_toolkit18.createAsyncThunk)(
|
|
3692
3746
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -3913,6 +3967,9 @@ var changeNotificationSetting = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3913
3967
|
}
|
|
3914
3968
|
);
|
|
3915
3969
|
|
|
3970
|
+
// src/usersSlice/thunks.ts
|
|
3971
|
+
var import_helptips = require("@northern.tech/common-ui/helptips");
|
|
3972
|
+
|
|
3916
3973
|
// src/api/users-api.ts
|
|
3917
3974
|
var import_axios3 = __toESM(require("axios"), 1);
|
|
3918
3975
|
var Api2 = {
|
|
@@ -3946,7 +4003,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
3946
4003
|
}
|
|
3947
4004
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
3948
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.`;
|
|
3949
|
-
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" })));
|
|
3950
4007
|
};
|
|
3951
4008
|
var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
3952
4009
|
`${sliceName8}/loginUser`,
|
|
@@ -3970,19 +4027,16 @@ var loginUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
3970
4027
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
3971
4028
|
setSessionInfo({ token, expiresAt });
|
|
3972
4029
|
cookies2.remove("JWT", { path: "/" });
|
|
3973
|
-
return (
|
|
3974
|
-
|
|
3975
|
-
Promise.
|
|
3976
|
-
|
|
3977
|
-
|
|
3978
|
-
|
|
3979
|
-
window.
|
|
3980
|
-
|
|
3981
|
-
|
|
3982
|
-
|
|
3983
|
-
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
3984
|
-
})
|
|
3985
|
-
);
|
|
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
|
+
});
|
|
3986
4040
|
})
|
|
3987
4041
|
);
|
|
3988
4042
|
var logoutUser = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -4000,6 +4054,7 @@ var switchUserOrganization = (0, import_toolkit20.createAsyncThunk)(`${sliceName
|
|
|
4000
4054
|
return Promise.reject();
|
|
4001
4055
|
}
|
|
4002
4056
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
4057
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
4003
4058
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
4004
4059
|
window.location.reload();
|
|
4005
4060
|
});
|
|
@@ -4040,11 +4095,18 @@ var verify2FA = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4040
4095
|
);
|
|
4041
4096
|
var getUserList = (0, import_toolkit20.createAsyncThunk)(
|
|
4042
4097
|
`${sliceName8}/getUserList`,
|
|
4043
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4044
|
-
const
|
|
4045
|
-
|
|
4046
|
-
|
|
4047
|
-
|
|
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
|
+
);
|
|
4048
4110
|
return dispatch(actions8.receivedUserList(users));
|
|
4049
4111
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
4050
4112
|
);
|
|
@@ -4053,9 +4115,7 @@ var getUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4053
4115
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
4054
4116
|
({ data: user }) => Promise.all([
|
|
4055
4117
|
dispatch(actions8.receivedUser(user)),
|
|
4056
|
-
// @ts-ignore
|
|
4057
4118
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
4058
|
-
// @ts-ignore
|
|
4059
4119
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
4060
4120
|
user
|
|
4061
4121
|
])
|
|
@@ -4102,10 +4162,7 @@ var createUser = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4102
4162
|
);
|
|
4103
4163
|
var removeUser = (0, import_toolkit20.createAsyncThunk)(
|
|
4104
4164
|
`${sliceName8}/removeUser`,
|
|
4105
|
-
(userId, { dispatch }) => (
|
|
4106
|
-
// @ts-ignore
|
|
4107
|
-
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
|
-
)
|
|
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))
|
|
4109
4166
|
);
|
|
4110
4167
|
var editUser = (0, import_toolkit20.createAsyncThunk)(
|
|
4111
4168
|
`${sliceName8}/editUser`,
|
|
@@ -4126,7 +4183,7 @@ var enableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4126
4183
|
);
|
|
4127
4184
|
var disableUser2fa = (0, import_toolkit20.createAsyncThunk)(
|
|
4128
4185
|
`${sliceName8}/disableUser2fa`,
|
|
4129
|
-
(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))]))
|
|
4130
4187
|
);
|
|
4131
4188
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
4132
4189
|
(accu, [area, definition]) => {
|
|
@@ -4279,7 +4336,6 @@ var getPermissionSets = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4279
4336
|
accu[permissionSet.name] = permissionSetObject;
|
|
4280
4337
|
return accu;
|
|
4281
4338
|
},
|
|
4282
|
-
// @ts-ignore
|
|
4283
4339
|
{ ...getState().users.permissionSetsById }
|
|
4284
4340
|
);
|
|
4285
4341
|
return Promise.all([dispatch(actions8.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -4372,7 +4428,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
4372
4428
|
role: {
|
|
4373
4429
|
...emptyRole,
|
|
4374
4430
|
name,
|
|
4375
|
-
// @ts-ignore
|
|
4376
4431
|
description: description ? description : roleState.description,
|
|
4377
4432
|
uiPermissions: {
|
|
4378
4433
|
...emptyUiPermissions,
|
|
@@ -4415,10 +4470,7 @@ var editRole = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/editRole`,
|
|
|
4415
4470
|
});
|
|
4416
4471
|
var removeRole = (0, import_toolkit20.createAsyncThunk)(
|
|
4417
4472
|
`${sliceName8}/removeRole`,
|
|
4418
|
-
(roleId, { dispatch }) => (
|
|
4419
|
-
// @ts-ignore
|
|
4420
|
-
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
|
-
)
|
|
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))
|
|
4422
4474
|
);
|
|
4423
4475
|
var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
4424
4476
|
`${sliceName8}/getGlobalSettings`,
|
|
@@ -4429,7 +4481,6 @@ var getGlobalSettings2 = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4429
4481
|
);
|
|
4430
4482
|
var saveGlobalSettings = (0, import_toolkit20.createAsyncThunk)(
|
|
4431
4483
|
`${sliceName8}/saveGlobalSettings`,
|
|
4432
|
-
// @ts-ignore
|
|
4433
4484
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
4434
4485
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
4435
4486
|
return;
|
|
@@ -4475,11 +4526,9 @@ var saveUserSettings = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/sav
|
|
|
4475
4526
|
const tooltipState = getTooltipsState(getState());
|
|
4476
4527
|
const updatedSettings = {
|
|
4477
4528
|
...userSettings,
|
|
4478
|
-
// @ts-ignore
|
|
4479
4529
|
...settings,
|
|
4480
4530
|
onboarding: {
|
|
4481
4531
|
...onboardingState,
|
|
4482
|
-
// @ts-ignore
|
|
4483
4532
|
...settings.onboarding
|
|
4484
4533
|
},
|
|
4485
4534
|
tooltips: tooltipState
|
|
@@ -4523,10 +4572,7 @@ var generateToken = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4523
4572
|
);
|
|
4524
4573
|
var revokeToken = (0, import_toolkit20.createAsyncThunk)(
|
|
4525
4574
|
`${sliceName8}/revokeToken`,
|
|
4526
|
-
(token, { dispatch }) => (
|
|
4527
|
-
// @ts-ignore
|
|
4528
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4529
|
-
)
|
|
4575
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
4530
4576
|
);
|
|
4531
4577
|
var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
4532
4578
|
let tasks = [dispatch(actions8.setTooltipState(remainder))];
|
|
@@ -4535,23 +4581,20 @@ var setTooltipReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/
|
|
|
4535
4581
|
}
|
|
4536
4582
|
return Promise.all(tasks);
|
|
4537
4583
|
});
|
|
4538
|
-
var setAllTooltipsReadState = (0, import_toolkit20.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (
|
|
4539
|
-
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 } }), {});
|
|
4540
4586
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
4541
4587
|
});
|
|
4542
4588
|
var submitFeedback = (0, import_toolkit20.createAsyncThunk)(
|
|
4543
4589
|
`${sliceName8}/submitFeedback`,
|
|
4544
|
-
|
|
4545
|
-
|
|
4546
|
-
|
|
4547
|
-
|
|
4548
|
-
|
|
4549
|
-
|
|
4550
|
-
|
|
4551
|
-
|
|
4552
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
4553
|
-
});
|
|
4554
|
-
}
|
|
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
|
+
})
|
|
4555
4598
|
);
|
|
4556
4599
|
|
|
4557
4600
|
// src/appSlice/thunks.ts
|