@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/thunks.cjs
CHANGED
|
@@ -182,6 +182,7 @@ __export(thunks_exports, {
|
|
|
182
182
|
submitFeedback: () => submitFeedback,
|
|
183
183
|
switchUserOrganization: () => switchUserOrganization,
|
|
184
184
|
tenantDataDivergedMessage: () => tenantDataDivergedMessage,
|
|
185
|
+
triggerDeviceUpdate: () => triggerDeviceUpdate,
|
|
185
186
|
updateDeploymentControlMap: () => updateDeploymentControlMap,
|
|
186
187
|
updateDeviceAuth: () => updateDeviceAuth,
|
|
187
188
|
updateDevicesAuth: () => updateDevicesAuth,
|
|
@@ -203,6 +204,14 @@ var import_universal_cookie = __toESM(require("universal-cookie"), 1);
|
|
|
203
204
|
|
|
204
205
|
// src/appSlice/constants.ts
|
|
205
206
|
var import_icons_material = require("@mui/icons-material");
|
|
207
|
+
|
|
208
|
+
// ../../assets/img/flag-eu.svg
|
|
209
|
+
var flag_eu_default = "./flag-eu-5477R2P4.svg";
|
|
210
|
+
|
|
211
|
+
// ../../assets/img/flag-us.svg
|
|
212
|
+
var flag_us_default = "./flag-us-HNQAF66I.svg";
|
|
213
|
+
|
|
214
|
+
// src/appSlice/constants.ts
|
|
206
215
|
var startingDeviceCount = {
|
|
207
216
|
os: "for first 50 devices",
|
|
208
217
|
professional: "for first 250 devices"
|
|
@@ -225,36 +234,36 @@ var emptyChartSelection = { software: "", group: "", chartType: chartTypes.bar.k
|
|
|
225
234
|
var defaultReportType = "distribution";
|
|
226
235
|
var defaultReports = [{ ...emptyChartSelection, group: null, attribute: "artifact_name", type: defaultReportType }];
|
|
227
236
|
var locations = {
|
|
228
|
-
eu: { key: "eu", title: "EU", location: "eu.hosted.mender.io" },
|
|
229
|
-
us: { key: "us", title: "US", location: "hosted.mender.io" }
|
|
237
|
+
eu: { key: "eu", title: "EU", location: "eu.hosted.mender.io", icon: flag_eu_default },
|
|
238
|
+
us: { key: "us", title: "US", location: "hosted.mender.io", icon: flag_us_default }
|
|
230
239
|
};
|
|
231
240
|
var PLANS = {
|
|
232
241
|
os: {
|
|
233
242
|
id: "os",
|
|
234
243
|
name: "Basic",
|
|
235
244
|
offer: true,
|
|
236
|
-
price: "$32/month",
|
|
245
|
+
price: "$32 / month",
|
|
237
246
|
deviceCount: startingDeviceCount.os,
|
|
238
|
-
offerprice: "$23/month for first 50 devices",
|
|
247
|
+
offerprice: "$23 / month for first 50 devices",
|
|
239
248
|
price2: "for first 6 months;\n$29/month thereafter",
|
|
240
|
-
features: ["
|
|
249
|
+
features: ["Access to core features of Mender", "Basic support"]
|
|
241
250
|
},
|
|
242
251
|
professional: {
|
|
243
252
|
id: "professional",
|
|
244
253
|
name: "Professional",
|
|
245
254
|
offer: true,
|
|
246
|
-
price: "$269/month",
|
|
255
|
+
price: "$269 / month",
|
|
247
256
|
deviceCount: startingDeviceCount.professional,
|
|
248
|
-
offerprice: "$200/month for first 50 devices",
|
|
257
|
+
offerprice: "$200 / month for first 50 devices",
|
|
249
258
|
price2: "for first 6 months;\n$249/month thereafter",
|
|
250
|
-
features: ["
|
|
259
|
+
features: ["Advanced OTA features", "Higher priority support"]
|
|
251
260
|
},
|
|
252
261
|
enterprise: {
|
|
253
262
|
id: "enterprise",
|
|
254
263
|
name: "Enterprise",
|
|
255
264
|
price: "Custom pricing",
|
|
256
|
-
deviceCount: "
|
|
257
|
-
features: ["
|
|
265
|
+
deviceCount: "Unlimited devices",
|
|
266
|
+
features: ["All Mender features", "Advanced security features", "SLA-backed support"]
|
|
258
267
|
}
|
|
259
268
|
};
|
|
260
269
|
var ADDONS = {
|
|
@@ -725,6 +734,7 @@ var DEVICE_STATES = {
|
|
|
725
734
|
rejected: "rejected"
|
|
726
735
|
};
|
|
727
736
|
var geoAttributes = ["geo-lat", "geo-lon"].map((attribute) => ({ attribute, scope: "inventory" }));
|
|
737
|
+
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
728
738
|
|
|
729
739
|
// src/monitorSlice/constants.ts
|
|
730
740
|
var alertChannels = { email: "email" };
|
|
@@ -806,13 +816,16 @@ var SSO_TYPES = {
|
|
|
806
816
|
configDetails: [{ key: "startURL", label: "Start Url", getValue: getOidcStartUrl }]
|
|
807
817
|
}
|
|
808
818
|
};
|
|
809
|
-
var
|
|
810
|
-
{ title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
811
|
-
{ title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
812
|
-
{ title: "Device", queryParameter: "object_id", value: "device" },
|
|
813
|
-
{ title: "
|
|
814
|
-
|
|
815
|
-
|
|
819
|
+
var auditlogTypes = {
|
|
820
|
+
artifact: { title: "Artifact", queryParameter: "object_type", value: "artifact" },
|
|
821
|
+
deployment: { title: "Deployment", queryParameter: "object_deployment_name", value: "deployment" },
|
|
822
|
+
device: { title: "Device", queryParameter: "object_id", value: "device" },
|
|
823
|
+
user_access_token: { title: "Personal Access Token", queryParameter: "user_access_token", value: "user_access_token" },
|
|
824
|
+
user: { title: "User", queryParameter: "object_id", value: "user" },
|
|
825
|
+
tenant: { title: "Tenant", queryParameter: "object_id", value: "tenant" }
|
|
826
|
+
};
|
|
827
|
+
var AUDIT_LOGS_TYPES = [auditlogTypes.artifact, auditlogTypes.deployment, auditlogTypes.device, auditlogTypes.user_access_token, auditlogTypes.user];
|
|
828
|
+
var SP_AUDIT_LOGS_TYPES = [auditlogTypes.user, auditlogTypes.tenant];
|
|
816
829
|
var emptyWebhook = {
|
|
817
830
|
description: "",
|
|
818
831
|
enabled: true,
|
|
@@ -946,7 +959,7 @@ var uiPermissionsByArea = {
|
|
|
946
959
|
explanation: "Granting access to the audit log will allow tracing changes to devices, releases and user accounts, as well as providing information about deployments.",
|
|
947
960
|
key: "auditlog",
|
|
948
961
|
uiPermissions: [uiPermissionsById.read],
|
|
949
|
-
title: "System
|
|
962
|
+
title: "System Audit Log"
|
|
950
963
|
},
|
|
951
964
|
deployments: {
|
|
952
965
|
endpoints: [
|
|
@@ -1097,7 +1110,7 @@ var serviceProviderRolesById = {
|
|
|
1097
1110
|
},
|
|
1098
1111
|
readOnly: {
|
|
1099
1112
|
name: "Read access",
|
|
1100
|
-
value: staticRolesByName.
|
|
1113
|
+
value: staticRolesByName.readOnly,
|
|
1101
1114
|
description: "This role can see all linked organizations but cannot make any changes",
|
|
1102
1115
|
permissions: [],
|
|
1103
1116
|
uiPermissions: {
|
|
@@ -1429,7 +1442,7 @@ var getGroups = (0, import_toolkit3.createSelector)([getGroupsById], (groupsById
|
|
|
1429
1442
|
(accu, [groupname, group]) => {
|
|
1430
1443
|
const name = groupname === UNGROUPED_GROUP.id ? UNGROUPED_GROUP.name : groupname;
|
|
1431
1444
|
const groupItem = { ...group, groupId: name, name: groupname };
|
|
1432
|
-
if (group.filters
|
|
1445
|
+
if (group.filters?.length > 0) {
|
|
1433
1446
|
if (groupname !== UNGROUPED_GROUP.id) {
|
|
1434
1447
|
accu.dynamic.push(groupItem);
|
|
1435
1448
|
} else {
|
|
@@ -1504,14 +1517,15 @@ var getAuditLogEntry = (0, import_toolkit4.createSelector)([getAuditLog, getAudi
|
|
|
1504
1517
|
// src/utils.ts
|
|
1505
1518
|
var import_helpers3 = require("@northern.tech/utils/helpers");
|
|
1506
1519
|
var filterProcessors = {
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1520
|
+
[DEVICE_FILTERING_OPTIONS.$gt.key]: (val) => Number(val) || val,
|
|
1521
|
+
[DEVICE_FILTERING_OPTIONS.$gte.key]: (val) => Number(val) || val,
|
|
1522
|
+
[DEVICE_FILTERING_OPTIONS.$lt.key]: (val) => Number(val) || val,
|
|
1523
|
+
[DEVICE_FILTERING_OPTIONS.$lte.key]: (val) => Number(val) || val,
|
|
1524
|
+
[DEVICE_FILTERING_OPTIONS.$ltne.key]: (val) => Number(val) || val,
|
|
1525
|
+
[DEVICE_FILTERING_OPTIONS.$in.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1526
|
+
[DEVICE_FILTERING_OPTIONS.$nin.key]: (val) => ("" + val).split(",").map((i) => i.trim()),
|
|
1527
|
+
[DEVICE_FILTERING_OPTIONS.$exists.key]: import_helpers3.yes,
|
|
1528
|
+
[DEVICE_FILTERING_OPTIONS.$nexists.key]: () => false
|
|
1515
1529
|
};
|
|
1516
1530
|
var filterAliases = {
|
|
1517
1531
|
$nexists: { alias: DEVICE_FILTERING_OPTIONS.$exists.key, value: false }
|
|
@@ -1635,8 +1649,13 @@ var getTooltipsById = (state) => state.users.tooltips.byId;
|
|
|
1635
1649
|
var getGlobalSettings = (state) => state.users.globalSettings;
|
|
1636
1650
|
var getCurrentUserId = (state) => state.users.currentUser;
|
|
1637
1651
|
var getUsersById = (state) => state.users.byId;
|
|
1652
|
+
var getUsersList = (0, import_toolkit6.createSelector)([getUsersById], (usersById) => Object.values(usersById));
|
|
1638
1653
|
var getCurrentUser = (0, import_toolkit6.createSelector)([getUsersById, getCurrentUserId], (usersById, userId) => usersById[userId] ?? {});
|
|
1639
1654
|
var getUserSettings = (state) => state.users.userSettings;
|
|
1655
|
+
var getSelectedDeviceAttribute = (0, import_toolkit6.createSelector)(
|
|
1656
|
+
[getUserSettings],
|
|
1657
|
+
({ columnSelection }) => columnSelection.map((attribute) => ({ attribute: attribute.key, scope: attribute.scope }))
|
|
1658
|
+
);
|
|
1640
1659
|
var getIsDarkMode = (0, import_toolkit6.createSelector)([getUserSettings], ({ mode }) => isDarkMode(mode));
|
|
1641
1660
|
var getShowHelptips = (0, import_toolkit6.createSelector)(
|
|
1642
1661
|
[getTooltipsById],
|
|
@@ -1661,7 +1680,7 @@ var getOfflineThresholdSettings = (0, import_toolkit6.createSelector)([getGlobal
|
|
|
1661
1680
|
interval: offlineThreshold?.interval || DEVICE_ONLINE_CUTOFF.interval,
|
|
1662
1681
|
intervalUnit: offlineThreshold?.intervalUnit || DEVICE_ONLINE_CUTOFF.intervalName
|
|
1663
1682
|
}));
|
|
1664
|
-
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([
|
|
1683
|
+
var getRolesList = (0, import_toolkit6.createSelector)([getRolesById], (rolesById2) => Object.entries(rolesById2).map(([value, role]) => ({ value, ...role })));
|
|
1665
1684
|
var getCurrentSession = (state) => state.users.currentSession;
|
|
1666
1685
|
|
|
1667
1686
|
// src/commonSelectors.ts
|
|
@@ -1723,12 +1742,18 @@ var getUserCapabilities = (0, import_toolkit7.createSelector)([getUserRoles, get
|
|
|
1723
1742
|
});
|
|
1724
1743
|
var getTenantCapabilities = (0, import_toolkit7.createSelector)(
|
|
1725
1744
|
[getFeatures, getOrganization, getIsEnterprise],
|
|
1726
|
-
({
|
|
1745
|
+
({
|
|
1746
|
+
hasAuditlogs: isAuditlogEnabled,
|
|
1747
|
+
hasDeviceConfig: isDeviceConfigEnabled,
|
|
1748
|
+
hasDeviceConnect: isDeviceConnectEnabled,
|
|
1749
|
+
hasMonitor: isMonitorEnabled,
|
|
1750
|
+
isHosted
|
|
1751
|
+
}, { addons = [], plan = PLANS.os.id }, isEnterprise) => {
|
|
1727
1752
|
const canDelta = isEnterprise || plan === PLANS.professional.id;
|
|
1728
1753
|
const hasAuditlogs = isAuditlogEnabled && isEnterprise;
|
|
1729
|
-
const hasDeviceConfig =
|
|
1730
|
-
const hasDeviceConnect =
|
|
1731
|
-
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name ===
|
|
1754
|
+
const hasDeviceConfig = addons.some((addon) => addon.name === ADDONS.configure.id && addon.enabled) || isDeviceConfigEnabled && !isHosted;
|
|
1755
|
+
const hasDeviceConnect = addons.some((addon) => addon.name === ADDONS.troubleshoot.id && addon.enabled) || isDeviceConnectEnabled && !isHosted;
|
|
1756
|
+
const hasMonitor = isMonitorEnabled && addons.some((addon) => addon.name === ADDONS.monitor.id && addon.enabled);
|
|
1732
1757
|
return {
|
|
1733
1758
|
canDelta,
|
|
1734
1759
|
canRetry: canDelta,
|
|
@@ -1858,7 +1883,7 @@ var getAuditlogDevice = (0, import_toolkit7.createSelector)([getAuditLogEntry, g
|
|
|
1858
1883
|
var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, getRolesList], ({ service_provider }, roles) => {
|
|
1859
1884
|
if (service_provider) {
|
|
1860
1885
|
return roles.reduce((accu, role) => {
|
|
1861
|
-
if (rolesById[role.
|
|
1886
|
+
if (rolesById[role.value]) {
|
|
1862
1887
|
return accu;
|
|
1863
1888
|
}
|
|
1864
1889
|
accu.push(role);
|
|
@@ -1866,7 +1891,7 @@ var getRelevantRoles = (0, import_toolkit7.createSelector)([getOrganization, get
|
|
|
1866
1891
|
}, Object.values(serviceProviderRolesById));
|
|
1867
1892
|
}
|
|
1868
1893
|
return Object.keys(rolesById).reverse().reduce((accu, key) => {
|
|
1869
|
-
const index = accu.findIndex(({
|
|
1894
|
+
const index = accu.findIndex(({ value }) => value === key);
|
|
1870
1895
|
accu = [accu[index], ...accu.filter((item, itemIndex) => index !== itemIndex)];
|
|
1871
1896
|
return accu;
|
|
1872
1897
|
}, roles);
|
|
@@ -2852,13 +2877,12 @@ var actions_default = {
|
|
|
2852
2877
|
};
|
|
2853
2878
|
|
|
2854
2879
|
// src/store.ts
|
|
2880
|
+
var import_react_redux = require("react-redux");
|
|
2855
2881
|
var import_helpers7 = require("@northern.tech/utils/helpers");
|
|
2856
2882
|
var import_toolkit17 = require("@reduxjs/toolkit");
|
|
2857
2883
|
var { setSnackbar, uploadProgress } = actions_default;
|
|
2858
2884
|
var keys = ["sessionDeploymentChecker", settingsKeys.initialized];
|
|
2859
|
-
var resetEnvironment = () =>
|
|
2860
|
-
keys.map((key) => window.sessionStorage.removeItem(key));
|
|
2861
|
-
};
|
|
2885
|
+
var resetEnvironment = () => keys.forEach((key) => window.sessionStorage.removeItem(key));
|
|
2862
2886
|
resetEnvironment();
|
|
2863
2887
|
var commonErrorFallback = "Please check your connection.";
|
|
2864
2888
|
var commonErrorHandler = (err, errorContext, dispatch, fallback, mightBeAuthRelated = false) => {
|
|
@@ -2884,6 +2908,14 @@ var sessionReducer = (state, action) => {
|
|
|
2884
2908
|
}
|
|
2885
2909
|
return rootReducer(state, action);
|
|
2886
2910
|
};
|
|
2911
|
+
var rejectionLoggerMiddleware = () => (next) => (action) => {
|
|
2912
|
+
if (action.type.endsWith("/rejected")) {
|
|
2913
|
+
const { error } = action;
|
|
2914
|
+
console.error("Rejection in action:", action);
|
|
2915
|
+
console.error(error.stack);
|
|
2916
|
+
}
|
|
2917
|
+
return next(action);
|
|
2918
|
+
};
|
|
2887
2919
|
var getConfiguredStore = (options = {}) => {
|
|
2888
2920
|
const { preloadedState = {}, ...config } = options;
|
|
2889
2921
|
return (0, import_toolkit17.configureStore)({
|
|
@@ -2899,7 +2931,7 @@ var getConfiguredStore = (options = {}) => {
|
|
|
2899
2931
|
ignoredActionPaths: ["uploads", "snackbar", /payload\..*$/],
|
|
2900
2932
|
ignoredPaths: ["app.uploadsById", "app.snackbar", "organization.externalDeviceIntegrations"]
|
|
2901
2933
|
}
|
|
2902
|
-
})
|
|
2934
|
+
}).concat(rejectionLoggerMiddleware)
|
|
2903
2935
|
});
|
|
2904
2936
|
};
|
|
2905
2937
|
var store = getConfiguredStore({
|
|
@@ -2908,6 +2940,7 @@ var store = getConfiguredStore({
|
|
|
2908
2940
|
|
|
2909
2941
|
// src/deploymentsSlice/thunks.ts
|
|
2910
2942
|
var import_helpers8 = require("@northern.tech/utils/helpers");
|
|
2943
|
+
var import_tracking = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
2911
2944
|
var import_toolkit18 = require("@reduxjs/toolkit");
|
|
2912
2945
|
var import_validator = require("validator");
|
|
2913
2946
|
var { receivedDevice, setSnackbar: setSnackbar2 } = actions_default;
|
|
@@ -2964,6 +2997,26 @@ var getDeploymentsByStatus2 = (0, import_toolkit18.createAsyncThunk)(`${sliceNam
|
|
|
2964
2997
|
return Promise.all(tasks);
|
|
2965
2998
|
});
|
|
2966
2999
|
});
|
|
3000
|
+
var isWithinFirstMonth = (expirationDate) => {
|
|
3001
|
+
if (!expirationDate) {
|
|
3002
|
+
return false;
|
|
3003
|
+
}
|
|
3004
|
+
const endOfFirstMonth = new Date(expirationDate);
|
|
3005
|
+
endOfFirstMonth.setMonth(endOfFirstMonth.getMonth() - 11);
|
|
3006
|
+
return endOfFirstMonth > /* @__PURE__ */ new Date();
|
|
3007
|
+
};
|
|
3008
|
+
var trackDeploymentCreation = (totalDeploymentCount, hasDeployments, trial_expiration) => {
|
|
3009
|
+
import_tracking.default.event({ category: "deployments", action: "create" });
|
|
3010
|
+
if (!totalDeploymentCount) {
|
|
3011
|
+
if (!hasDeployments) {
|
|
3012
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment" });
|
|
3013
|
+
if (isWithinFirstMonth(trial_expiration)) {
|
|
3014
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_first_month" });
|
|
3015
|
+
}
|
|
3016
|
+
}
|
|
3017
|
+
import_tracking.default.event({ category: "deployments", action: "create_initial_deployment_user" });
|
|
3018
|
+
}
|
|
3019
|
+
};
|
|
2967
3020
|
var MAX_PREVIOUS_PHASES_COUNT = 5;
|
|
2968
3021
|
var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
|
|
2969
3022
|
let request;
|
|
@@ -2974,6 +3027,9 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2974
3027
|
} else {
|
|
2975
3028
|
request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
|
|
2976
3029
|
}
|
|
3030
|
+
const totalDeploymentCount = Object.values(getDeploymentsByStatus(getState())).reduce((accu, item) => accu + item.total, 0);
|
|
3031
|
+
const { hasDeployments } = getGlobalSettings(getState());
|
|
3032
|
+
const { trial_expiration } = getOrganization(getState());
|
|
2977
3033
|
return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
|
|
2978
3034
|
const lastslashindex = data.headers.location.lastIndexOf("/");
|
|
2979
3035
|
const deploymentId = data.headers.location.substring(lastslashindex + 1);
|
|
@@ -2988,6 +3044,7 @@ var createDeployment = (0, import_toolkit18.createAsyncThunk)(`${sliceName2}/cre
|
|
|
2988
3044
|
dispatch(getSingleDeployment(deploymentId)),
|
|
2989
3045
|
dispatch(setSnackbar2("Deployment created successfully", TIMEOUTS.fiveSeconds))
|
|
2990
3046
|
];
|
|
3047
|
+
trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
|
|
2991
3048
|
const { canManageUsers } = getUserCapabilities(getState());
|
|
2992
3049
|
if (canManageUsers) {
|
|
2993
3050
|
const { phases, retries } = newDeployment;
|
|
@@ -3662,7 +3719,7 @@ var getDevicesByStatus2 = (0, import_toolkit19.createAsyncThunk)(`${sliceName3}/
|
|
|
3662
3719
|
page = defaultPage2,
|
|
3663
3720
|
perPage = defaultPerPage2,
|
|
3664
3721
|
sortOptions = [],
|
|
3665
|
-
selectedAttributes =
|
|
3722
|
+
selectedAttributes = getSelectedDeviceAttribute(getState())
|
|
3666
3723
|
} = options;
|
|
3667
3724
|
const state = getState();
|
|
3668
3725
|
const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
@@ -3775,7 +3832,6 @@ var getReportingLimits = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3775
3832
|
})
|
|
3776
3833
|
);
|
|
3777
3834
|
var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
|
|
3778
|
-
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
3779
3835
|
var getSingleReportData = (reportConfig, groups) => {
|
|
3780
3836
|
const { attribute, group, software = "" } = reportConfig;
|
|
3781
3837
|
const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
|
|
@@ -3855,9 +3911,17 @@ var getDeviceConnect = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3855
3911
|
({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
|
|
3856
3912
|
)
|
|
3857
3913
|
);
|
|
3914
|
+
var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
|
|
3915
|
+
var triggerDeviceUpdate = (0, import_toolkit19.createAsyncThunk)(
|
|
3916
|
+
`${sliceName3}/triggerDeviceUpdate`,
|
|
3917
|
+
({ id, type }, { dispatch }) => general_api_default.post(`${deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
|
|
3918
|
+
() => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
|
|
3919
|
+
)
|
|
3920
|
+
);
|
|
3858
3921
|
var getSessionDetails = (0, import_toolkit19.createAsyncThunk)(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
|
|
3859
|
-
const
|
|
3860
|
-
const
|
|
3922
|
+
const { start: startUnix, end: endUnix } = (0, import_helpers9.dateRangeToUnix)(startDate, endDate);
|
|
3923
|
+
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
3924
|
+
const createdBefore = endDate ? `&created_before=${endUnix}` : "";
|
|
3861
3925
|
const objectSearch = `&object_id=${deviceId}`;
|
|
3862
3926
|
return general_api_default.get(`${auditLogsApiUrl}/logs?per_page=500${createdAfter}${createdBefore}&actor_id=${userId}${objectSearch}`).then(
|
|
3863
3927
|
({ data: auditLogEntries }) => {
|
|
@@ -3956,12 +4020,12 @@ var deleteAuthset = (0, import_toolkit19.createAsyncThunk)(
|
|
|
3956
4020
|
);
|
|
3957
4021
|
var preauthDevice = (0, import_toolkit19.createAsyncThunk)(
|
|
3958
4022
|
`${sliceName3}/preauthDevice`,
|
|
3959
|
-
(authset, { dispatch }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).catch((err) => {
|
|
4023
|
+
(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) => {
|
|
3960
4024
|
if (err.response.status === 409) {
|
|
3961
|
-
return
|
|
4025
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
3962
4026
|
}
|
|
3963
4027
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
3964
|
-
})
|
|
4028
|
+
})
|
|
3965
4029
|
);
|
|
3966
4030
|
var decommissionDevice = (0, import_toolkit19.createAsyncThunk)(
|
|
3967
4031
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -4190,18 +4254,20 @@ var changeNotificationSetting = (0, import_toolkit20.createAsyncThunk)(
|
|
|
4190
4254
|
|
|
4191
4255
|
// src/onboardingSlice/thunks.ts
|
|
4192
4256
|
var import_helpers10 = require("@northern.tech/utils/helpers");
|
|
4257
|
+
var import_onboardingManager = require("@northern.tech/utils/onboardingManager");
|
|
4258
|
+
var import_tracking2 = __toESM(require("@northern.tech/utils/tracking"), 1);
|
|
4193
4259
|
var import_toolkit21 = require("@reduxjs/toolkit");
|
|
4194
4260
|
var import_universal_cookie3 = __toESM(require("universal-cookie"), 1);
|
|
4195
4261
|
var cookies3 = new import_universal_cookie3.default();
|
|
4196
4262
|
var applyOnboardingFallbacks = (progress2) => {
|
|
4197
|
-
const step =
|
|
4263
|
+
const step = import_onboardingManager.onboardingSteps[progress2];
|
|
4198
4264
|
if (step && step.fallbackStep) {
|
|
4199
4265
|
return step.fallbackStep;
|
|
4200
4266
|
}
|
|
4201
4267
|
return progress2;
|
|
4202
4268
|
};
|
|
4203
4269
|
var determineProgress = (acceptedDevices, pendingDevices, releases, pastDeployments) => {
|
|
4204
|
-
const steps =
|
|
4270
|
+
const steps = Object.keys(import_onboardingManager.onboardingSteps);
|
|
4205
4271
|
let progress2 = -1;
|
|
4206
4272
|
progress2 = pendingDevices.length > 1 ? steps.findIndex((step) => step === onboardingSteps.DEVICES_PENDING_ACCEPTING_ONBOARDING) : progress2;
|
|
4207
4273
|
progress2 = acceptedDevices.length >= 1 ? steps.findIndex((step) => step === onboardingSteps.DEVICES_ACCEPTED_ONBOARDING) : progress2;
|
|
@@ -4218,7 +4284,7 @@ var deductOnboardingState = ({ devicesById, devicesByStatus, onboardingState, pa
|
|
|
4218
4284
|
const progress2 = applyOnboardingFallbacks(onboardingState.progress || determineProgress(acceptedDevices, pendingDevices, releases, pastDeployments));
|
|
4219
4285
|
return {
|
|
4220
4286
|
...onboardingState,
|
|
4221
|
-
complete: !!(Boolean(userCookie) || onboardingState.complete || acceptedDevices.length > 1 && pendingDevices.length > 0 && releases.length > 1 && pastDeployments.length > 1 || acceptedDevices.length >= 1 && releases.length >= 2 && pastDeployments.length > 2 || acceptedDevices.length >= 1 && pendingDevices.length > 0 && releases.length >= 2 && pastDeployments.length >= 2 ||
|
|
4287
|
+
complete: !!(Boolean(userCookie) || onboardingState.complete || acceptedDevices.length > 1 && pendingDevices.length > 0 && releases.length > 1 && pastDeployments.length > 1 || acceptedDevices.length >= 1 && releases.length >= 2 && pastDeployments.length > 2 || acceptedDevices.length >= 1 && pendingDevices.length > 0 && releases.length >= 2 && pastDeployments.length >= 2 || Object.keys(import_onboardingManager.onboardingSteps).findIndex((step) => step === progress2) >= Object.keys(import_onboardingManager.onboardingSteps).length - 1 || onboardingState.disable || ![canDeploy, canManageDevices, canReadDeployments, canReadDevices, canReadReleases, canUploadReleases].every((i) => i)),
|
|
4222
4288
|
showTips: onboardingState.showTips != null ? onboardingState.showTips : true,
|
|
4223
4289
|
deviceType,
|
|
4224
4290
|
approach: onboardingState.approach || (deviceType.some((type) => type.startsWith("qemu")) ? "virtual" : "physical"),
|
|
@@ -4271,10 +4337,10 @@ var setOnboardingCanceled = (0, import_toolkit21.createAsyncThunk)(
|
|
|
4271
4337
|
Promise.resolve(dispatch(actions5.setShowOnboardingHelp(false))),
|
|
4272
4338
|
Promise.resolve(dispatch(actions5.setShowDismissOnboardingTipsDialog(false))),
|
|
4273
4339
|
Promise.resolve(dispatch(actions5.setOnboardingComplete(true)))
|
|
4274
|
-
]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE)))
|
|
4340
|
+
]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE))).then(() => import_tracking2.default.event({ category: "onboarding", action: import_onboardingManager.onboardingSteps.ONBOARDING_CANCELED }))
|
|
4275
4341
|
);
|
|
4276
4342
|
var advanceOnboarding = (0, import_toolkit21.createAsyncThunk)(`${sliceName5}/advanceOnboarding`, (stepId, { dispatch, getState }) => {
|
|
4277
|
-
const steps =
|
|
4343
|
+
const steps = Object.keys(import_onboardingManager.onboardingSteps);
|
|
4278
4344
|
const progress2 = steps.findIndex((step) => step === getState().onboarding.progress);
|
|
4279
4345
|
const stepIndex = steps.findIndex((step) => step === stepId);
|
|
4280
4346
|
if (progress2 > stepIndex || getState().onboarding.progress === null) {
|
|
@@ -4282,7 +4348,8 @@ var advanceOnboarding = (0, import_toolkit21.createAsyncThunk)(`${sliceName5}/ad
|
|
|
4282
4348
|
}
|
|
4283
4349
|
const madeProgress = steps[stepIndex + 1];
|
|
4284
4350
|
const state = { ...getOnboardingState(getState()), progress: madeProgress };
|
|
4285
|
-
state.complete = stepIndex + 1 >=
|
|
4351
|
+
state.complete = stepIndex + 1 >= Object.keys(import_onboardingManager.onboardingSteps).findIndex((step) => step === onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE) ? true : state.complete;
|
|
4352
|
+
import_tracking2.default.event({ category: "onboarding", action: stepId });
|
|
4286
4353
|
return Promise.all([dispatch(actions5.setOnboardingProgress(madeProgress)), dispatch(saveUserSettings({ onboarding: state }))]);
|
|
4287
4354
|
});
|
|
4288
4355
|
|
|
@@ -4361,13 +4428,14 @@ var startUpgrade = (0, import_toolkit22.createAsyncThunk)(
|
|
|
4361
4428
|
var cancelUpgrade = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/cancelUpgrade`, (tenantId) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/cancel`));
|
|
4362
4429
|
var completeUpgrade = (0, import_toolkit22.createAsyncThunk)(
|
|
4363
4430
|
`${sliceName6}/completeUpgrade`,
|
|
4364
|
-
({ tenantId, plan }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/complete`, { plan }).catch((err) => commonErrorHandler(err, `There was an error upgrading your account:`, dispatch)).then(() => Promise.
|
|
4431
|
+
({ tenantId, plan, billing_profile }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/complete`, { plan, billing_profile }).catch((err) => commonErrorHandler(err, `There was an error upgrading your account:`, dispatch)).then(() => Promise.all([dispatch(getDeviceLimit2()), dispatch(getUserOrganization())]))
|
|
4365
4432
|
);
|
|
4366
4433
|
var prepareAuditlogQuery = ({ startDate, endDate, user: userFilter, type, detail: detailFilter, sort = {} }) => {
|
|
4367
4434
|
const userId = userFilter?.id || userFilter;
|
|
4368
4435
|
const detail = detailFilter?.id || detailFilter;
|
|
4369
|
-
const
|
|
4370
|
-
const
|
|
4436
|
+
const { start: startUnix, end: endUnix } = (0, import_helpers11.dateRangeToUnix)(startDate, endDate);
|
|
4437
|
+
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
4438
|
+
const createdBefore = endDate ? `&created_before=${endUnix}` : "";
|
|
4371
4439
|
const typeSearch = type ? `&object_type=${type.value}`.toLowerCase() : "";
|
|
4372
4440
|
const userSearch = userId ? `&actor_id=${userId}` : "";
|
|
4373
4441
|
const objectSearch = type && detail ? `&${type.queryParameter}=${encodeURIComponent(detail)}` : "";
|
|
@@ -4409,7 +4477,12 @@ var setAuditlogsState = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/se
|
|
|
4409
4477
|
});
|
|
4410
4478
|
var tenantDataDivergedMessage = "The system detected there is a change in your plan or purchased add-ons. Please log out and log in again";
|
|
4411
4479
|
var addTenant = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/createTenant`, (selectionState, { dispatch }) => {
|
|
4412
|
-
return general_api_default.post(`${tenantadmApiUrlv2}/tenants`, selectionState).then(
|
|
4480
|
+
return general_api_default.post(`${tenantadmApiUrlv2}/tenants`, selectionState).then(
|
|
4481
|
+
() => Promise.all([
|
|
4482
|
+
dispatch(setSnackbar4("Tenant was created successfully.")),
|
|
4483
|
+
new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
|
|
4484
|
+
])
|
|
4485
|
+
).catch((err) => commonErrorHandler(err, "There was an error creating tenant", dispatch, commonErrorFallback));
|
|
4413
4486
|
});
|
|
4414
4487
|
var tenantListRetrieval = async (config) => {
|
|
4415
4488
|
const { page, perPage } = config;
|
|
@@ -4437,15 +4510,20 @@ var setTenantsListState = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/
|
|
|
4437
4510
|
});
|
|
4438
4511
|
var editTenantDeviceLimit = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/editDeviceLimit`, ({ newLimit, id, name }, { dispatch }) => {
|
|
4439
4512
|
return general_api_default.put(`${tenantadmApiUrlv2}/tenants/${id}/child`, { device_limit: newLimit, name }).catch((err) => commonErrorHandler(err, `Device Limit cannot be changed`, dispatch)).then(() => {
|
|
4440
|
-
|
|
4441
|
-
|
|
4442
|
-
|
|
4443
|
-
|
|
4513
|
+
return Promise.all([
|
|
4514
|
+
dispatch(setSnackbar4("Device Limit was changed successfully")),
|
|
4515
|
+
dispatch(getUserOrganization()),
|
|
4516
|
+
new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
|
|
4517
|
+
]);
|
|
4444
4518
|
});
|
|
4445
4519
|
});
|
|
4446
4520
|
var removeTenant = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/editDeviceLimit`, ({ id }, { dispatch }) => {
|
|
4447
4521
|
return general_api_default.post(`${tenantadmApiUrlv2}/tenants/${id}/remove/start`).catch((err) => commonErrorHandler(err, `There was an error removing the tenant`, dispatch)).then(
|
|
4448
|
-
() => Promise.all([
|
|
4522
|
+
() => Promise.all([
|
|
4523
|
+
dispatch(setSnackbar4("The tenant was removed successfully")),
|
|
4524
|
+
dispatch(getUserOrganization()),
|
|
4525
|
+
new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
|
|
4526
|
+
])
|
|
4449
4527
|
);
|
|
4450
4528
|
});
|
|
4451
4529
|
var getUserOrganization = (0, import_toolkit22.createAsyncThunk)(`${sliceName6}/getUserOrganization`, (_, { dispatch, getState }) => {
|
|
@@ -4469,7 +4547,10 @@ var sendSupportMessage = (0, import_toolkit22.createAsyncThunk)(
|
|
|
4469
4547
|
);
|
|
4470
4548
|
var requestPlanChange = (0, import_toolkit22.createAsyncThunk)(
|
|
4471
4549
|
`${sliceName6}/requestPlanChange`,
|
|
4472
|
-
({ content, tenantId }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/plan`, content).catch(
|
|
4550
|
+
({ content, tenantId }, { dispatch, rejectWithValue }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/plan`, content).catch(async (err) => {
|
|
4551
|
+
await commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback);
|
|
4552
|
+
rejectWithValue(err);
|
|
4553
|
+
}).then(() => Promise.resolve(dispatch(setSnackbar4({ message: "Your request was sent successfully", autoHideDuration: TIMEOUTS.fiveSeconds }))))
|
|
4473
4554
|
);
|
|
4474
4555
|
var downloadLicenseReport = (0, import_toolkit22.createAsyncThunk)(
|
|
4475
4556
|
`${sliceName6}/downloadLicenseReport`,
|
|
@@ -4727,9 +4808,12 @@ var editArtifact = (0, import_toolkit23.createAsyncThunk)(
|
|
|
4727
4808
|
if (!release || index === -1) {
|
|
4728
4809
|
return dispatch(getReleases());
|
|
4729
4810
|
}
|
|
4730
|
-
|
|
4811
|
+
const updatedRelease = {
|
|
4812
|
+
...release,
|
|
4813
|
+
artifacts: release.artifacts.map((artifact, i) => i === index ? { ...artifact, description: body.description } : artifact)
|
|
4814
|
+
};
|
|
4731
4815
|
return Promise.all([
|
|
4732
|
-
dispatch(actions7.receiveRelease(
|
|
4816
|
+
dispatch(actions7.receiveRelease(updatedRelease)),
|
|
4733
4817
|
dispatch(setSnackbar5("Artifact details were updated successfully.", TIMEOUTS.fiveSeconds, "")),
|
|
4734
4818
|
dispatch(getRelease(release.name)),
|
|
4735
4819
|
dispatch(selectRelease(release.name))
|
|
@@ -4830,16 +4914,15 @@ var getReleases = (0, import_toolkit23.createAsyncThunk)(`${sliceName7}/getRelea
|
|
|
4830
4914
|
return Promise.all(tasks);
|
|
4831
4915
|
}).catch((err) => commonErrorHandler(err, `Please check your connection`, dispatch));
|
|
4832
4916
|
});
|
|
4833
|
-
var getRelease = (0, import_toolkit23.createAsyncThunk)(
|
|
4834
|
-
`${
|
|
4835
|
-
|
|
4836
|
-
|
|
4837
|
-
|
|
4838
|
-
|
|
4839
|
-
|
|
4840
|
-
|
|
4841
|
-
|
|
4842
|
-
);
|
|
4917
|
+
var getRelease = (0, import_toolkit23.createAsyncThunk)(`${sliceName7}/getReleases`, async (name, { dispatch, getState }) => {
|
|
4918
|
+
const releaseResponse = await general_api_default.get(`${deploymentsApiUrlV2}/deployments/releases/${name}`);
|
|
4919
|
+
const { data: release } = releaseResponse;
|
|
4920
|
+
if (release) {
|
|
4921
|
+
const stateRelease = getReleasesById(getState())[release.name] || {};
|
|
4922
|
+
await dispatch(actions7.receiveRelease(flattenRelease(release, stateRelease)));
|
|
4923
|
+
}
|
|
4924
|
+
return Promise.resolve(null);
|
|
4925
|
+
});
|
|
4843
4926
|
var updateReleaseInfo = (0, import_toolkit23.createAsyncThunk)(
|
|
4844
4927
|
`${sliceName7}/updateReleaseInfo`,
|
|
4845
4928
|
({ name, info }, { dispatch, getState }) => general_api_default.patch(`${deploymentsApiUrlV2}/deployments/releases/${name}`, info).catch((err) => commonErrorHandler(err, `Release details couldn't be updated.`, dispatch)).then(() => {
|
|
@@ -4867,6 +4950,9 @@ var getUpdateTypes = (0, import_toolkit23.createAsyncThunk)(
|
|
|
4867
4950
|
(_, { dispatch }) => general_api_default.get(`${deploymentsApiUrlV2}/releases/all/types`).catch((err) => commonErrorHandler(err, `Existing update types couldn't be retrieved.`, dispatch)).then(({ data: types }) => Promise.resolve(dispatch(actions7.receiveReleaseTypes(types))))
|
|
4868
4951
|
);
|
|
4869
4952
|
|
|
4953
|
+
// src/usersSlice/thunks.ts
|
|
4954
|
+
var import_helptips = require("@northern.tech/common-ui/helptips");
|
|
4955
|
+
|
|
4870
4956
|
// src/api/users-api.ts
|
|
4871
4957
|
var import_axios4 = __toESM(require("axios"), 1);
|
|
4872
4958
|
var Api2 = {
|
|
@@ -4900,7 +4986,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
4900
4986
|
}
|
|
4901
4987
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
4902
4988
|
const errorMessage = `There was a problem logging in. Please check your email${twoFAError ? "," : " and"} password${twoFAError}. If you still have problems, contact an administrator.`;
|
|
4903
|
-
return Promise.reject(dispatch(setSnackbar6((0, import_helpers13.preformatWithRequestID)(err.response, errorMessage),
|
|
4989
|
+
return Promise.reject(dispatch(setSnackbar6({ message: (0, import_helpers13.preformatWithRequestID)(err.response, errorMessage), action: "Copy to clipboard" })));
|
|
4904
4990
|
};
|
|
4905
4991
|
var loginUser = (0, import_toolkit24.createAsyncThunk)(
|
|
4906
4992
|
`${sliceName8}/loginUser`,
|
|
@@ -4924,19 +5010,16 @@ var loginUser = (0, import_toolkit24.createAsyncThunk)(
|
|
|
4924
5010
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
4925
5011
|
setSessionInfo({ token, expiresAt });
|
|
4926
5012
|
cookies5.remove("JWT", { path: "/" });
|
|
4927
|
-
return (
|
|
4928
|
-
|
|
4929
|
-
Promise.
|
|
4930
|
-
|
|
4931
|
-
|
|
4932
|
-
|
|
4933
|
-
window.
|
|
4934
|
-
|
|
4935
|
-
|
|
4936
|
-
|
|
4937
|
-
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
4938
|
-
})
|
|
4939
|
-
);
|
|
5013
|
+
return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
|
|
5014
|
+
cleanUp();
|
|
5015
|
+
return Promise.reject(dispatch(setSnackbar6((0, import_helpers13.extractErrorMessage)(e))));
|
|
5016
|
+
}).then(() => {
|
|
5017
|
+
window.sessionStorage.removeItem("pendings-redirect");
|
|
5018
|
+
if (window.location.pathname !== "/ui/") {
|
|
5019
|
+
window.location.replace("/ui/");
|
|
5020
|
+
}
|
|
5021
|
+
return Promise.resolve(dispatch(actions8.successfullyLoggedIn({ expiresAt, token })));
|
|
5022
|
+
});
|
|
4940
5023
|
})
|
|
4941
5024
|
);
|
|
4942
5025
|
var logoutUser = (0, import_toolkit24.createAsyncThunk)(`${sliceName8}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -4954,6 +5037,7 @@ var switchUserOrganization = (0, import_toolkit24.createAsyncThunk)(`${sliceName
|
|
|
4954
5037
|
return Promise.reject();
|
|
4955
5038
|
}
|
|
4956
5039
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
5040
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
4957
5041
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
4958
5042
|
window.location.reload();
|
|
4959
5043
|
});
|
|
@@ -4994,11 +5078,18 @@ var verify2FA = (0, import_toolkit24.createAsyncThunk)(
|
|
|
4994
5078
|
);
|
|
4995
5079
|
var getUserList = (0, import_toolkit24.createAsyncThunk)(
|
|
4996
5080
|
`${sliceName8}/getUserList`,
|
|
4997
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
4998
|
-
const
|
|
4999
|
-
|
|
5000
|
-
|
|
5001
|
-
|
|
5081
|
+
(_, { dispatch, getState }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
5082
|
+
const currentUsersById = getUsersById(getState());
|
|
5083
|
+
const users = res.data.reduce(
|
|
5084
|
+
(accu, item) => {
|
|
5085
|
+
accu[item.id] = {
|
|
5086
|
+
...accu[item.id],
|
|
5087
|
+
...item
|
|
5088
|
+
};
|
|
5089
|
+
return accu;
|
|
5090
|
+
},
|
|
5091
|
+
{ ...currentUsersById }
|
|
5092
|
+
);
|
|
5002
5093
|
return dispatch(actions8.receivedUserList(users));
|
|
5003
5094
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
5004
5095
|
);
|
|
@@ -5007,9 +5098,7 @@ var getUser = (0, import_toolkit24.createAsyncThunk)(
|
|
|
5007
5098
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
5008
5099
|
({ data: user }) => Promise.all([
|
|
5009
5100
|
dispatch(actions8.receivedUser(user)),
|
|
5010
|
-
// @ts-ignore
|
|
5011
5101
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
5012
|
-
// @ts-ignore
|
|
5013
5102
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
5014
5103
|
user
|
|
5015
5104
|
])
|
|
@@ -5056,10 +5145,7 @@ var createUser = (0, import_toolkit24.createAsyncThunk)(
|
|
|
5056
5145
|
);
|
|
5057
5146
|
var removeUser = (0, import_toolkit24.createAsyncThunk)(
|
|
5058
5147
|
`${sliceName8}/removeUser`,
|
|
5059
|
-
(userId, { dispatch }) => (
|
|
5060
|
-
// @ts-ignore
|
|
5061
|
-
general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar6(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
5062
|
-
)
|
|
5148
|
+
(userId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions8.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar6(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
5063
5149
|
);
|
|
5064
5150
|
var editUser = (0, import_toolkit24.createAsyncThunk)(
|
|
5065
5151
|
`${sliceName8}/editUser`,
|
|
@@ -5080,7 +5166,7 @@ var enableUser2fa = (0, import_toolkit24.createAsyncThunk)(
|
|
|
5080
5166
|
);
|
|
5081
5167
|
var disableUser2fa = (0, import_toolkit24.createAsyncThunk)(
|
|
5082
5168
|
`${sliceName8}/disableUser2fa`,
|
|
5083
|
-
(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.
|
|
5169
|
+
(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))]))
|
|
5084
5170
|
);
|
|
5085
5171
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
5086
5172
|
(accu, [area, definition]) => {
|
|
@@ -5233,7 +5319,6 @@ var getPermissionSets = (0, import_toolkit24.createAsyncThunk)(
|
|
|
5233
5319
|
accu[permissionSet.name] = permissionSetObject;
|
|
5234
5320
|
return accu;
|
|
5235
5321
|
},
|
|
5236
|
-
// @ts-ignore
|
|
5237
5322
|
{ ...getState().users.permissionSetsById }
|
|
5238
5323
|
);
|
|
5239
5324
|
return Promise.all([dispatch(actions8.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -5326,7 +5411,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
5326
5411
|
role: {
|
|
5327
5412
|
...emptyRole,
|
|
5328
5413
|
name,
|
|
5329
|
-
// @ts-ignore
|
|
5330
5414
|
description: description ? description : roleState.description,
|
|
5331
5415
|
uiPermissions: {
|
|
5332
5416
|
...emptyUiPermissions,
|
|
@@ -5369,10 +5453,7 @@ var editRole = (0, import_toolkit24.createAsyncThunk)(`${sliceName8}/editRole`,
|
|
|
5369
5453
|
});
|
|
5370
5454
|
var removeRole = (0, import_toolkit24.createAsyncThunk)(
|
|
5371
5455
|
`${sliceName8}/removeRole`,
|
|
5372
|
-
(roleId, { dispatch }) => (
|
|
5373
|
-
// @ts-ignore
|
|
5374
|
-
general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar6(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
5375
|
-
)
|
|
5456
|
+
(roleId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions8.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar6(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
5376
5457
|
);
|
|
5377
5458
|
var getGlobalSettings2 = (0, import_toolkit24.createAsyncThunk)(
|
|
5378
5459
|
`${sliceName8}/getGlobalSettings`,
|
|
@@ -5383,7 +5464,6 @@ var getGlobalSettings2 = (0, import_toolkit24.createAsyncThunk)(
|
|
|
5383
5464
|
);
|
|
5384
5465
|
var saveGlobalSettings = (0, import_toolkit24.createAsyncThunk)(
|
|
5385
5466
|
`${sliceName8}/saveGlobalSettings`,
|
|
5386
|
-
// @ts-ignore
|
|
5387
5467
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
5388
5468
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
5389
5469
|
return;
|
|
@@ -5429,11 +5509,9 @@ var saveUserSettings = (0, import_toolkit24.createAsyncThunk)(`${sliceName8}/sav
|
|
|
5429
5509
|
const tooltipState = getTooltipsState(getState());
|
|
5430
5510
|
const updatedSettings = {
|
|
5431
5511
|
...userSettings,
|
|
5432
|
-
// @ts-ignore
|
|
5433
5512
|
...settings,
|
|
5434
5513
|
onboarding: {
|
|
5435
5514
|
...onboardingState,
|
|
5436
|
-
// @ts-ignore
|
|
5437
5515
|
...settings.onboarding
|
|
5438
5516
|
},
|
|
5439
5517
|
tooltips: tooltipState
|
|
@@ -5477,10 +5555,7 @@ var generateToken = (0, import_toolkit24.createAsyncThunk)(
|
|
|
5477
5555
|
);
|
|
5478
5556
|
var revokeToken = (0, import_toolkit24.createAsyncThunk)(
|
|
5479
5557
|
`${sliceName8}/revokeToken`,
|
|
5480
|
-
(token, { dispatch }) => (
|
|
5481
|
-
// @ts-ignore
|
|
5482
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
5483
|
-
)
|
|
5558
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
5484
5559
|
);
|
|
5485
5560
|
var setTooltipReadState = (0, import_toolkit24.createAsyncThunk)(`${sliceName8}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
5486
5561
|
let tasks = [dispatch(actions8.setTooltipState(remainder))];
|
|
@@ -5489,23 +5564,20 @@ var setTooltipReadState = (0, import_toolkit24.createAsyncThunk)(`${sliceName8}/
|
|
|
5489
5564
|
}
|
|
5490
5565
|
return Promise.all(tasks);
|
|
5491
5566
|
});
|
|
5492
|
-
var setAllTooltipsReadState = (0, import_toolkit24.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (
|
|
5493
|
-
const updatedTips =
|
|
5567
|
+
var setAllTooltipsReadState = (0, import_toolkit24.createAsyncThunk)(`${sliceName8}/toggleHelptips`, (readState = READ_STATES.read, { dispatch }) => {
|
|
5568
|
+
const updatedTips = Object.keys(import_helptips.HELPTOOLTIPS).reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
|
|
5494
5569
|
return Promise.resolve(dispatch(actions8.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
5495
5570
|
});
|
|
5496
5571
|
var submitFeedback = (0, import_toolkit24.createAsyncThunk)(
|
|
5497
5572
|
`${sliceName8}/submitFeedback`,
|
|
5498
|
-
|
|
5499
|
-
|
|
5500
|
-
|
|
5501
|
-
|
|
5502
|
-
|
|
5503
|
-
|
|
5504
|
-
|
|
5505
|
-
|
|
5506
|
-
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
5507
|
-
});
|
|
5508
|
-
}
|
|
5573
|
+
({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
|
|
5574
|
+
subject: "feedback submission",
|
|
5575
|
+
body: JSON.stringify({ feedback, satisfaction, meta })
|
|
5576
|
+
}).then(() => {
|
|
5577
|
+
const today = /* @__PURE__ */ new Date();
|
|
5578
|
+
dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
|
|
5579
|
+
setTimeout(() => dispatch(actions8.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
5580
|
+
})
|
|
5509
5581
|
);
|
|
5510
5582
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5511
5583
|
0 && (module.exports = {
|
|
@@ -5661,6 +5733,7 @@ var submitFeedback = (0, import_toolkit24.createAsyncThunk)(
|
|
|
5661
5733
|
submitFeedback,
|
|
5662
5734
|
switchUserOrganization,
|
|
5663
5735
|
tenantDataDivergedMessage,
|
|
5736
|
+
triggerDeviceUpdate,
|
|
5664
5737
|
updateDeploymentControlMap,
|
|
5665
5738
|
updateDeviceAuth,
|
|
5666
5739
|
updateDevicesAuth,
|