@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
getDeviceMonitorConfig,
|
|
3
3
|
getLatestDeviceAlerts
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-LGNOTPUG.js";
|
|
5
5
|
import {
|
|
6
6
|
users_api_default
|
|
7
7
|
} from "./chunk-JAROCU6M.js";
|
|
@@ -14,7 +14,7 @@ import {
|
|
|
14
14
|
getSearchEndpoint,
|
|
15
15
|
getTenantCapabilities,
|
|
16
16
|
getUserCapabilities
|
|
17
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-DCK2DBOA.js";
|
|
18
18
|
import {
|
|
19
19
|
getCurrentSession,
|
|
20
20
|
getCurrentUser,
|
|
@@ -22,19 +22,21 @@ import {
|
|
|
22
22
|
getIdAttribute,
|
|
23
23
|
getOfflineThresholdSettings,
|
|
24
24
|
getRolesById,
|
|
25
|
+
getSelectedDeviceAttribute,
|
|
25
26
|
getTooltipsState,
|
|
26
|
-
getUserSettings
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
getDeploymentsById,
|
|
30
|
-
getDeploymentsByStatus
|
|
31
|
-
} from "./chunk-RX55KAKX.js";
|
|
27
|
+
getUserSettings,
|
|
28
|
+
getUsersById
|
|
29
|
+
} from "./chunk-WXL7PVI5.js";
|
|
32
30
|
import {
|
|
33
31
|
getAuditlogState,
|
|
34
32
|
getDeviceTwinIntegrations,
|
|
35
33
|
getOrganization,
|
|
36
34
|
getTenantsList
|
|
37
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-2CYOM4BK.js";
|
|
36
|
+
import {
|
|
37
|
+
getDeploymentsById,
|
|
38
|
+
getDeploymentsByStatus
|
|
39
|
+
} from "./chunk-7JKWI5FK.js";
|
|
38
40
|
import {
|
|
39
41
|
getDeviceById,
|
|
40
42
|
getDeviceFilters,
|
|
@@ -43,7 +45,7 @@ import {
|
|
|
43
45
|
getGroups,
|
|
44
46
|
getGroupsById,
|
|
45
47
|
getSelectedGroup
|
|
46
|
-
} from "./chunk-
|
|
48
|
+
} from "./chunk-YDS36ALB.js";
|
|
47
49
|
import {
|
|
48
50
|
convertDeviceListStateToFilters,
|
|
49
51
|
filtersFilter,
|
|
@@ -53,7 +55,7 @@ import {
|
|
|
53
55
|
mapTermsToFilters,
|
|
54
56
|
mergePermissions,
|
|
55
57
|
progress
|
|
56
|
-
} from "./chunk-
|
|
58
|
+
} from "./chunk-4XJMRVFI.js";
|
|
57
59
|
import {
|
|
58
60
|
getFeatures,
|
|
59
61
|
getSearchState
|
|
@@ -61,30 +63,30 @@ import {
|
|
|
61
63
|
import {
|
|
62
64
|
commonErrorFallback,
|
|
63
65
|
commonErrorHandler
|
|
64
|
-
} from "./chunk-
|
|
66
|
+
} from "./chunk-LEMVXAYP.js";
|
|
65
67
|
import {
|
|
66
68
|
actions_default
|
|
67
|
-
} from "./chunk-
|
|
69
|
+
} from "./chunk-DAPAXWA5.js";
|
|
68
70
|
import {
|
|
69
71
|
actions as actions6,
|
|
70
72
|
sliceName as sliceName6
|
|
71
|
-
} from "./chunk-
|
|
73
|
+
} from "./chunk-TUACATJA.js";
|
|
74
|
+
import {
|
|
75
|
+
actions as actions5,
|
|
76
|
+
sliceName as sliceName5
|
|
77
|
+
} from "./chunk-TI2RL5P2.js";
|
|
72
78
|
import {
|
|
73
79
|
actions as actions2,
|
|
74
80
|
sliceName as sliceName2
|
|
75
|
-
} from "./chunk-
|
|
81
|
+
} from "./chunk-HPBE6KYY.js";
|
|
76
82
|
import {
|
|
77
83
|
actions as actions4,
|
|
78
84
|
sliceName as sliceName4
|
|
79
85
|
} from "./chunk-FGKMJS3B.js";
|
|
80
|
-
import {
|
|
81
|
-
actions as actions5,
|
|
82
|
-
sliceName as sliceName5
|
|
83
|
-
} from "./chunk-XTRPX7JZ.js";
|
|
84
86
|
import {
|
|
85
87
|
actions as actions3,
|
|
86
88
|
sliceName as sliceName3
|
|
87
|
-
} from "./chunk-
|
|
89
|
+
} from "./chunk-QRGTG4YB.js";
|
|
88
90
|
import {
|
|
89
91
|
actions,
|
|
90
92
|
sliceName
|
|
@@ -104,6 +106,7 @@ import {
|
|
|
104
106
|
OWN_USER_ID,
|
|
105
107
|
PermissionTypes,
|
|
106
108
|
READ_STATES,
|
|
109
|
+
REPORT_CHART_SIZE_LIMIT,
|
|
107
110
|
SSO_TYPES,
|
|
108
111
|
TENANT_LIST_DEFAULT,
|
|
109
112
|
USER_LOGOUT,
|
|
@@ -133,13 +136,12 @@ import {
|
|
|
133
136
|
uiPermissionsById,
|
|
134
137
|
useradmApiUrlv1,
|
|
135
138
|
useradmApiUrlv2
|
|
136
|
-
} from "./chunk-
|
|
139
|
+
} from "./chunk-C5NEDBJI.js";
|
|
137
140
|
import {
|
|
138
141
|
rootfsImageVersion
|
|
139
142
|
} from "./chunk-CK6YE6AN.js";
|
|
140
143
|
import {
|
|
141
|
-
onboardingSteps
|
|
142
|
-
orderedOnboardingSteps
|
|
144
|
+
onboardingSteps
|
|
143
145
|
} from "./chunk-MRCFLG45.js";
|
|
144
146
|
import {
|
|
145
147
|
APPLICATION_JSON_CONTENT_TYPE,
|
|
@@ -148,7 +150,7 @@ import {
|
|
|
148
150
|
defaultReports,
|
|
149
151
|
headerNames,
|
|
150
152
|
locations
|
|
151
|
-
} from "./chunk-
|
|
153
|
+
} from "./chunk-UWMYZNUB.js";
|
|
152
154
|
import {
|
|
153
155
|
ALL_DEVICES,
|
|
154
156
|
ALL_RELEASES,
|
|
@@ -165,6 +167,7 @@ import {
|
|
|
165
167
|
|
|
166
168
|
// src/deploymentsSlice/thunks.ts
|
|
167
169
|
import { deepCompare, isEmpty, standardizePhases, startTimeSort } from "@northern.tech/utils/helpers";
|
|
170
|
+
import Tracking from "@northern.tech/utils/tracking";
|
|
168
171
|
import { createAsyncThunk } from "@reduxjs/toolkit";
|
|
169
172
|
import { isUUID } from "validator";
|
|
170
173
|
var { receivedDevice, setSnackbar } = actions_default;
|
|
@@ -221,6 +224,26 @@ var getDeploymentsByStatus2 = createAsyncThunk(`${sliceName2}/getDeploymentsBySt
|
|
|
221
224
|
return Promise.all(tasks);
|
|
222
225
|
});
|
|
223
226
|
});
|
|
227
|
+
var isWithinFirstMonth = (expirationDate) => {
|
|
228
|
+
if (!expirationDate) {
|
|
229
|
+
return false;
|
|
230
|
+
}
|
|
231
|
+
const endOfFirstMonth = new Date(expirationDate);
|
|
232
|
+
endOfFirstMonth.setMonth(endOfFirstMonth.getMonth() - 11);
|
|
233
|
+
return endOfFirstMonth > /* @__PURE__ */ new Date();
|
|
234
|
+
};
|
|
235
|
+
var trackDeploymentCreation = (totalDeploymentCount, hasDeployments, trial_expiration) => {
|
|
236
|
+
Tracking.event({ category: "deployments", action: "create" });
|
|
237
|
+
if (!totalDeploymentCount) {
|
|
238
|
+
if (!hasDeployments) {
|
|
239
|
+
Tracking.event({ category: "deployments", action: "create_initial_deployment" });
|
|
240
|
+
if (isWithinFirstMonth(trial_expiration)) {
|
|
241
|
+
Tracking.event({ category: "deployments", action: "create_initial_deployment_first_month" });
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
Tracking.event({ category: "deployments", action: "create_initial_deployment_user" });
|
|
245
|
+
}
|
|
246
|
+
};
|
|
224
247
|
var MAX_PREVIOUS_PHASES_COUNT = 5;
|
|
225
248
|
var createDeployment = createAsyncThunk(`${sliceName2}/createDeployment`, ({ newDeployment, hasNewRetryDefault = false }, { dispatch, getState }) => {
|
|
226
249
|
let request;
|
|
@@ -231,6 +254,9 @@ var createDeployment = createAsyncThunk(`${sliceName2}/createDeployment`, ({ new
|
|
|
231
254
|
} else {
|
|
232
255
|
request = general_api_default.post(`${deploymentsApiUrl}/deployments`, newDeployment);
|
|
233
256
|
}
|
|
257
|
+
const totalDeploymentCount = Object.values(getDeploymentsByStatus(getState())).reduce((accu, item) => accu + item.total, 0);
|
|
258
|
+
const { hasDeployments } = getGlobalSettings(getState());
|
|
259
|
+
const { trial_expiration } = getOrganization(getState());
|
|
234
260
|
return request.catch((err) => commonErrorHandler(err, "Error creating deployment.", dispatch)).then((data) => {
|
|
235
261
|
const lastslashindex = data.headers.location.lastIndexOf("/");
|
|
236
262
|
const deploymentId = data.headers.location.substring(lastslashindex + 1);
|
|
@@ -245,6 +271,7 @@ var createDeployment = createAsyncThunk(`${sliceName2}/createDeployment`, ({ new
|
|
|
245
271
|
dispatch(getSingleDeployment(deploymentId)),
|
|
246
272
|
dispatch(setSnackbar("Deployment created successfully", TIMEOUTS.fiveSeconds))
|
|
247
273
|
];
|
|
274
|
+
trackDeploymentCreation(totalDeploymentCount, hasDeployments, trial_expiration);
|
|
248
275
|
const { canManageUsers } = getUserCapabilities(getState());
|
|
249
276
|
if (canManageUsers) {
|
|
250
277
|
const { phases, retries } = newDeployment;
|
|
@@ -484,7 +511,7 @@ var saveDeltaDeploymentsConfig = createAsyncThunk(`${sliceName2}/saveDeltaDeploy
|
|
|
484
511
|
|
|
485
512
|
// src/devicesSlice/thunks.tsx
|
|
486
513
|
import { Link } from "react-router-dom";
|
|
487
|
-
import { attributeDuplicateFilter, deepCompare as deepCompare2, extractErrorMessage, getSnackbarMessage } from "@northern.tech/utils/helpers";
|
|
514
|
+
import { attributeDuplicateFilter, dateRangeToUnix, deepCompare as deepCompare2, extractErrorMessage, getSnackbarMessage } from "@northern.tech/utils/helpers";
|
|
488
515
|
import { createAsyncThunk as createAsyncThunk2 } from "@reduxjs/toolkit";
|
|
489
516
|
import { isCancel } from "axios";
|
|
490
517
|
import pluralize from "pluralize";
|
|
@@ -919,7 +946,7 @@ var getDevicesByStatus = createAsyncThunk2(`${sliceName3}/getDevicesByStatus`, (
|
|
|
919
946
|
page = defaultPage2,
|
|
920
947
|
perPage = defaultPerPage2,
|
|
921
948
|
sortOptions = [],
|
|
922
|
-
selectedAttributes =
|
|
949
|
+
selectedAttributes = getSelectedDeviceAttribute(getState())
|
|
923
950
|
} = options;
|
|
924
951
|
const state = getState();
|
|
925
952
|
const { applicableFilters, filterTerms } = convertDeviceListStateToFilters({
|
|
@@ -1032,7 +1059,6 @@ var getReportingLimits = createAsyncThunk2(
|
|
|
1032
1059
|
})
|
|
1033
1060
|
);
|
|
1034
1061
|
var ensureVersionString = (software, fallback) => software.length && software !== "artifact_name" ? software.endsWith(".version") ? software : `${software}.version` : fallback;
|
|
1035
|
-
var REPORT_CHART_SIZE_LIMIT = 6;
|
|
1036
1062
|
var getSingleReportData = (reportConfig, groups) => {
|
|
1037
1063
|
const { attribute, group, software = "" } = reportConfig;
|
|
1038
1064
|
const filters = [{ key: "status", scope: "identity", operator: DEVICE_FILTERING_OPTIONS.$eq.key, value: "accepted" }];
|
|
@@ -1112,9 +1138,17 @@ var getDeviceConnect = createAsyncThunk2(
|
|
|
1112
1138
|
({ data }) => Promise.all([dispatch(actions3.receivedDevice({ connect_status: data.status, connect_updated_ts: data.updated_ts, id })), Promise.resolve(data)])
|
|
1113
1139
|
)
|
|
1114
1140
|
);
|
|
1141
|
+
var updateTypeMap = { deploymentUpdate: "check-update", inventoryUpdate: "send-inventory" };
|
|
1142
|
+
var triggerDeviceUpdate = createAsyncThunk2(
|
|
1143
|
+
`${sliceName3}/triggerDeviceUpdate`,
|
|
1144
|
+
({ id, type }, { dispatch }) => general_api_default.post(`${deviceConnect}/devices/${id}/${updateTypeMap[type] ?? updateTypeMap.deploymentUpdate}`).then(
|
|
1145
|
+
() => new Promise((resolve) => setTimeout(() => resolve(dispatch(getDeviceById2(id))), TIMEOUTS.threeSeconds))
|
|
1146
|
+
)
|
|
1147
|
+
);
|
|
1115
1148
|
var getSessionDetails = createAsyncThunk2(`${sliceName3}/getSessionDetails`, ({ sessionId, deviceId, userId, startDate, endDate }) => {
|
|
1116
|
-
const
|
|
1117
|
-
const
|
|
1149
|
+
const { start: startUnix, end: endUnix } = dateRangeToUnix(startDate, endDate);
|
|
1150
|
+
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
1151
|
+
const createdBefore = endDate ? `&created_before=${endUnix}` : "";
|
|
1118
1152
|
const objectSearch = `&object_id=${deviceId}`;
|
|
1119
1153
|
return general_api_default.get(`${auditLogsApiUrl}/logs?per_page=500${createdAfter}${createdBefore}&actor_id=${userId}${objectSearch}`).then(
|
|
1120
1154
|
({ data: auditLogEntries }) => {
|
|
@@ -1213,12 +1247,12 @@ var deleteAuthset = createAsyncThunk2(
|
|
|
1213
1247
|
);
|
|
1214
1248
|
var preauthDevice = createAsyncThunk2(
|
|
1215
1249
|
`${sliceName3}/preauthDevice`,
|
|
1216
|
-
(authset, { dispatch }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).catch((err) => {
|
|
1250
|
+
(authset, { dispatch, rejectWithValue }) => general_api_default.post(`${deviceAuthV2}/devices`, authset).then(() => Promise.resolve(dispatch(setSnackbar2("Device was successfully added to the preauthorization list", TIMEOUTS.fiveSeconds)))).catch((err) => {
|
|
1217
1251
|
if (err.response.status === 409) {
|
|
1218
|
-
return
|
|
1252
|
+
return rejectWithValue("A device with a matching identity data set already exists");
|
|
1219
1253
|
}
|
|
1220
1254
|
return commonErrorHandler(err, "The device could not be added:", dispatch);
|
|
1221
|
-
})
|
|
1255
|
+
})
|
|
1222
1256
|
);
|
|
1223
1257
|
var decommissionDevice = createAsyncThunk2(
|
|
1224
1258
|
`${sliceName3}/decommissionDevice`,
|
|
@@ -1384,18 +1418,20 @@ var getDevicesInBounds = createAsyncThunk2(`${sliceName3}/getDevicesInBounds`, (
|
|
|
1384
1418
|
|
|
1385
1419
|
// src/onboardingSlice/thunks.ts
|
|
1386
1420
|
import { getDemoDeviceAddress } from "@northern.tech/utils/helpers";
|
|
1421
|
+
import { onboardingSteps as onboardingSteps2 } from "@northern.tech/utils/onboardingManager";
|
|
1422
|
+
import Tracking2 from "@northern.tech/utils/tracking";
|
|
1387
1423
|
import { createAsyncThunk as createAsyncThunk3 } from "@reduxjs/toolkit";
|
|
1388
1424
|
import Cookies from "universal-cookie";
|
|
1389
1425
|
var cookies = new Cookies();
|
|
1390
1426
|
var applyOnboardingFallbacks = (progress2) => {
|
|
1391
|
-
const step =
|
|
1427
|
+
const step = onboardingSteps2[progress2];
|
|
1392
1428
|
if (step && step.fallbackStep) {
|
|
1393
1429
|
return step.fallbackStep;
|
|
1394
1430
|
}
|
|
1395
1431
|
return progress2;
|
|
1396
1432
|
};
|
|
1397
1433
|
var determineProgress = (acceptedDevices, pendingDevices, releases, pastDeployments) => {
|
|
1398
|
-
const steps =
|
|
1434
|
+
const steps = Object.keys(onboardingSteps2);
|
|
1399
1435
|
let progress2 = -1;
|
|
1400
1436
|
progress2 = pendingDevices.length > 1 ? steps.findIndex((step) => step === onboardingSteps.DEVICES_PENDING_ACCEPTING_ONBOARDING) : progress2;
|
|
1401
1437
|
progress2 = acceptedDevices.length >= 1 ? steps.findIndex((step) => step === onboardingSteps.DEVICES_ACCEPTED_ONBOARDING) : progress2;
|
|
@@ -1412,7 +1448,7 @@ var deductOnboardingState = ({ devicesById, devicesByStatus, onboardingState, pa
|
|
|
1412
1448
|
const progress2 = applyOnboardingFallbacks(onboardingState.progress || determineProgress(acceptedDevices, pendingDevices, releases, pastDeployments));
|
|
1413
1449
|
return {
|
|
1414
1450
|
...onboardingState,
|
|
1415
|
-
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 ||
|
|
1451
|
+
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(onboardingSteps2).findIndex((step) => step === progress2) >= Object.keys(onboardingSteps2).length - 1 || onboardingState.disable || ![canDeploy, canManageDevices, canReadDeployments, canReadDevices, canReadReleases, canUploadReleases].every((i) => i)),
|
|
1416
1452
|
showTips: onboardingState.showTips != null ? onboardingState.showTips : true,
|
|
1417
1453
|
deviceType,
|
|
1418
1454
|
approach: onboardingState.approach || (deviceType.some((type) => type.startsWith("qemu")) ? "virtual" : "physical"),
|
|
@@ -1465,10 +1501,10 @@ var setOnboardingCanceled = createAsyncThunk3(
|
|
|
1465
1501
|
Promise.resolve(dispatch(actions4.setShowOnboardingHelp(false))),
|
|
1466
1502
|
Promise.resolve(dispatch(actions4.setShowDismissOnboardingTipsDialog(false))),
|
|
1467
1503
|
Promise.resolve(dispatch(actions4.setOnboardingComplete(true)))
|
|
1468
|
-
]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE)))
|
|
1504
|
+
]).then(() => dispatch(advanceOnboarding(onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE))).then(() => Tracking2.event({ category: "onboarding", action: onboardingSteps2.ONBOARDING_CANCELED }))
|
|
1469
1505
|
);
|
|
1470
1506
|
var advanceOnboarding = createAsyncThunk3(`${sliceName4}/advanceOnboarding`, (stepId, { dispatch, getState }) => {
|
|
1471
|
-
const steps =
|
|
1507
|
+
const steps = Object.keys(onboardingSteps2);
|
|
1472
1508
|
const progress2 = steps.findIndex((step) => step === getState().onboarding.progress);
|
|
1473
1509
|
const stepIndex = steps.findIndex((step) => step === stepId);
|
|
1474
1510
|
if (progress2 > stepIndex || getState().onboarding.progress === null) {
|
|
@@ -1476,12 +1512,13 @@ var advanceOnboarding = createAsyncThunk3(`${sliceName4}/advanceOnboarding`, (st
|
|
|
1476
1512
|
}
|
|
1477
1513
|
const madeProgress = steps[stepIndex + 1];
|
|
1478
1514
|
const state = { ...getOnboardingState(getState()), progress: madeProgress };
|
|
1479
|
-
state.complete = stepIndex + 1 >=
|
|
1515
|
+
state.complete = stepIndex + 1 >= Object.keys(onboardingSteps2).findIndex((step) => step === onboardingSteps.DEPLOYMENTS_PAST_COMPLETED_FAILURE) ? true : state.complete;
|
|
1516
|
+
Tracking2.event({ category: "onboarding", action: stepId });
|
|
1480
1517
|
return Promise.all([dispatch(actions4.setOnboardingProgress(madeProgress)), dispatch(saveUserSettings({ onboarding: state }))]);
|
|
1481
1518
|
});
|
|
1482
1519
|
|
|
1483
1520
|
// src/organizationSlice/thunks.ts
|
|
1484
|
-
import { deepCompare as deepCompare3 } from "@northern.tech/utils/helpers";
|
|
1521
|
+
import { dateRangeToUnix as dateRangeToUnix2, deepCompare as deepCompare3 } from "@northern.tech/utils/helpers";
|
|
1485
1522
|
import { createAsyncThunk as createAsyncThunk4 } from "@reduxjs/toolkit";
|
|
1486
1523
|
import { jwtDecode } from "jwt-decode";
|
|
1487
1524
|
import hashString from "md5";
|
|
@@ -1555,13 +1592,14 @@ var startUpgrade = createAsyncThunk4(
|
|
|
1555
1592
|
var cancelUpgrade = createAsyncThunk4(`${sliceName5}/cancelUpgrade`, (tenantId) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/upgrade/cancel`));
|
|
1556
1593
|
var completeUpgrade = createAsyncThunk4(
|
|
1557
1594
|
`${sliceName5}/completeUpgrade`,
|
|
1558
|
-
({ 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.
|
|
1595
|
+
({ 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(getDeviceLimit()), dispatch(getUserOrganization())]))
|
|
1559
1596
|
);
|
|
1560
1597
|
var prepareAuditlogQuery = ({ startDate, endDate, user: userFilter, type, detail: detailFilter, sort = {} }) => {
|
|
1561
1598
|
const userId = userFilter?.id || userFilter;
|
|
1562
1599
|
const detail = detailFilter?.id || detailFilter;
|
|
1563
|
-
const
|
|
1564
|
-
const
|
|
1600
|
+
const { start: startUnix, end: endUnix } = dateRangeToUnix2(startDate, endDate);
|
|
1601
|
+
const createdAfter = startDate ? `&created_after=${startUnix}` : "";
|
|
1602
|
+
const createdBefore = endDate ? `&created_before=${endUnix}` : "";
|
|
1565
1603
|
const typeSearch = type ? `&object_type=${type.value}`.toLowerCase() : "";
|
|
1566
1604
|
const userSearch = userId ? `&actor_id=${userId}` : "";
|
|
1567
1605
|
const objectSearch = type && detail ? `&${type.queryParameter}=${encodeURIComponent(detail)}` : "";
|
|
@@ -1603,7 +1641,12 @@ var setAuditlogsState = createAsyncThunk4(`${sliceName5}/setAuditlogsState`, (se
|
|
|
1603
1641
|
});
|
|
1604
1642
|
var tenantDataDivergedMessage = "The system detected there is a change in your plan or purchased add-ons. Please log out and log in again";
|
|
1605
1643
|
var addTenant = createAsyncThunk4(`${sliceName5}/createTenant`, (selectionState, { dispatch }) => {
|
|
1606
|
-
return general_api_default.post(`${tenantadmApiUrlv2}/tenants`, selectionState).then(
|
|
1644
|
+
return general_api_default.post(`${tenantadmApiUrlv2}/tenants`, selectionState).then(
|
|
1645
|
+
() => Promise.all([
|
|
1646
|
+
dispatch(setSnackbar3("Tenant was created successfully.")),
|
|
1647
|
+
new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
|
|
1648
|
+
])
|
|
1649
|
+
).catch((err) => commonErrorHandler(err, "There was an error creating tenant", dispatch, commonErrorFallback));
|
|
1607
1650
|
});
|
|
1608
1651
|
var tenantListRetrieval = async (config) => {
|
|
1609
1652
|
const { page, perPage } = config;
|
|
@@ -1631,15 +1674,20 @@ var setTenantsListState = createAsyncThunk4(`${sliceName5}/setTenantsListState`,
|
|
|
1631
1674
|
});
|
|
1632
1675
|
var editTenantDeviceLimit = createAsyncThunk4(`${sliceName5}/editDeviceLimit`, ({ newLimit, id, name }, { dispatch }) => {
|
|
1633
1676
|
return general_api_default.put(`${tenantadmApiUrlv2}/tenants/${id}/child`, { device_limit: newLimit, name }).catch((err) => commonErrorHandler(err, `Device Limit cannot be changed`, dispatch)).then(() => {
|
|
1634
|
-
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1677
|
+
return Promise.all([
|
|
1678
|
+
dispatch(setSnackbar3("Device Limit was changed successfully")),
|
|
1679
|
+
dispatch(getUserOrganization()),
|
|
1680
|
+
new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
|
|
1681
|
+
]);
|
|
1638
1682
|
});
|
|
1639
1683
|
});
|
|
1640
1684
|
var removeTenant = createAsyncThunk4(`${sliceName5}/editDeviceLimit`, ({ id }, { dispatch }) => {
|
|
1641
1685
|
return general_api_default.post(`${tenantadmApiUrlv2}/tenants/${id}/remove/start`).catch((err) => commonErrorHandler(err, `There was an error removing the tenant`, dispatch)).then(
|
|
1642
|
-
() => Promise.all([
|
|
1686
|
+
() => Promise.all([
|
|
1687
|
+
dispatch(setSnackbar3("The tenant was removed successfully")),
|
|
1688
|
+
dispatch(getUserOrganization()),
|
|
1689
|
+
new Promise((resolve) => setTimeout(() => resolve(dispatch(getTenants())), TIMEOUTS.oneSecond))
|
|
1690
|
+
])
|
|
1643
1691
|
);
|
|
1644
1692
|
});
|
|
1645
1693
|
var getUserOrganization = createAsyncThunk4(`${sliceName5}/getUserOrganization`, (_, { dispatch, getState }) => {
|
|
@@ -1663,7 +1711,10 @@ var sendSupportMessage = createAsyncThunk4(
|
|
|
1663
1711
|
);
|
|
1664
1712
|
var requestPlanChange = createAsyncThunk4(
|
|
1665
1713
|
`${sliceName5}/requestPlanChange`,
|
|
1666
|
-
({ content, tenantId }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/plan`, content).catch(
|
|
1714
|
+
({ content, tenantId }, { dispatch, rejectWithValue }) => general_api_default.post(`${tenantadmApiUrlv2}/tenants/${tenantId}/plan`, content).catch(async (err) => {
|
|
1715
|
+
await commonErrorHandler(err, "There was an error sending your request", dispatch, commonErrorFallback);
|
|
1716
|
+
rejectWithValue(err);
|
|
1717
|
+
}).then(() => Promise.resolve(dispatch(setSnackbar3({ message: "Your request was sent successfully", autoHideDuration: TIMEOUTS.fiveSeconds }))))
|
|
1667
1718
|
);
|
|
1668
1719
|
var downloadLicenseReport = createAsyncThunk4(
|
|
1669
1720
|
`${sliceName5}/downloadLicenseReport`,
|
|
@@ -1756,6 +1807,7 @@ var getSsoConfigs = createAsyncThunk4(
|
|
|
1756
1807
|
);
|
|
1757
1808
|
|
|
1758
1809
|
// src/usersSlice/thunks.ts
|
|
1810
|
+
import { HELPTOOLTIPS } from "@northern.tech/common-ui/helptips";
|
|
1759
1811
|
import { duplicateFilter, extractErrorMessage as extractErrorMessage2, isEmpty as isEmpty2, preformatWithRequestID } from "@northern.tech/utils/helpers";
|
|
1760
1812
|
import { clearAllRetryTimers } from "@northern.tech/utils/retrytimer";
|
|
1761
1813
|
import { createAsyncThunk as createAsyncThunk5 } from "@reduxjs/toolkit";
|
|
@@ -1774,7 +1826,7 @@ var handleLoginError = (err, { token2fa: has2FA, password }, rejectWithValue) =>
|
|
|
1774
1826
|
}
|
|
1775
1827
|
const twoFAError = is2FABackend ? " and verification code" : "";
|
|
1776
1828
|
const errorMessage = `There was a problem logging in. Please check your email${twoFAError ? "," : " and"} password${twoFAError}. If you still have problems, contact an administrator.`;
|
|
1777
|
-
return Promise.reject(dispatch(setSnackbar4(preformatWithRequestID(err.response, errorMessage),
|
|
1829
|
+
return Promise.reject(dispatch(setSnackbar4({ message: preformatWithRequestID(err.response, errorMessage), action: "Copy to clipboard" })));
|
|
1778
1830
|
};
|
|
1779
1831
|
var loginUser = createAsyncThunk5(
|
|
1780
1832
|
`${sliceName6}/loginUser`,
|
|
@@ -1798,19 +1850,16 @@ var loginUser = createAsyncThunk5(
|
|
|
1798
1850
|
const expiresAt = stayLoggedIn ? void 0 : now.toISOString();
|
|
1799
1851
|
setSessionInfo({ token, expiresAt });
|
|
1800
1852
|
cookies3.remove("JWT", { path: "/" });
|
|
1801
|
-
return (
|
|
1802
|
-
|
|
1803
|
-
Promise.
|
|
1804
|
-
|
|
1805
|
-
|
|
1806
|
-
|
|
1807
|
-
window.
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1811
|
-
return Promise.resolve(dispatch(actions6.successfullyLoggedIn({ expiresAt, token })));
|
|
1812
|
-
})
|
|
1813
|
-
);
|
|
1853
|
+
return dispatch(getUser(OWN_USER_ID)).unwrap().catch((e) => {
|
|
1854
|
+
cleanUp();
|
|
1855
|
+
return Promise.reject(dispatch(setSnackbar4(extractErrorMessage2(e))));
|
|
1856
|
+
}).then(() => {
|
|
1857
|
+
window.sessionStorage.removeItem("pendings-redirect");
|
|
1858
|
+
if (window.location.pathname !== "/ui/") {
|
|
1859
|
+
window.location.replace("/ui/");
|
|
1860
|
+
}
|
|
1861
|
+
return Promise.resolve(dispatch(actions6.successfullyLoggedIn({ expiresAt, token })));
|
|
1862
|
+
});
|
|
1814
1863
|
})
|
|
1815
1864
|
);
|
|
1816
1865
|
var logoutUser = createAsyncThunk5(`${sliceName6}/logoutUser`, (_, { dispatch, getState }) => {
|
|
@@ -1828,6 +1877,7 @@ var switchUserOrganization = createAsyncThunk5(`${sliceName6}/switchUserOrganiza
|
|
|
1828
1877
|
return Promise.reject();
|
|
1829
1878
|
}
|
|
1830
1879
|
return general_api_default.get(`${useradmApiUrlv1}/users/tenants/${tenantId}/token`).then(({ data: token }) => {
|
|
1880
|
+
window.sessionStorage.setItem("tenantChanged", "true");
|
|
1831
1881
|
setSessionInfo({ ...getSessionInfo(), token });
|
|
1832
1882
|
window.location.reload();
|
|
1833
1883
|
});
|
|
@@ -1868,11 +1918,18 @@ var verify2FA = createAsyncThunk5(
|
|
|
1868
1918
|
);
|
|
1869
1919
|
var getUserList = createAsyncThunk5(
|
|
1870
1920
|
`${sliceName6}/getUserList`,
|
|
1871
|
-
(_, { dispatch }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
1872
|
-
const
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1921
|
+
(_, { dispatch, getState }) => general_api_default.get(`${useradmApiUrlv1}/users`).then((res) => {
|
|
1922
|
+
const currentUsersById = getUsersById(getState());
|
|
1923
|
+
const users = res.data.reduce(
|
|
1924
|
+
(accu, item) => {
|
|
1925
|
+
accu[item.id] = {
|
|
1926
|
+
...accu[item.id],
|
|
1927
|
+
...item
|
|
1928
|
+
};
|
|
1929
|
+
return accu;
|
|
1930
|
+
},
|
|
1931
|
+
{ ...currentUsersById }
|
|
1932
|
+
);
|
|
1876
1933
|
return dispatch(actions6.receivedUserList(users));
|
|
1877
1934
|
}).catch((err) => commonErrorHandler(err, `Users couldn't be loaded.`, dispatch, commonErrorFallback))
|
|
1878
1935
|
);
|
|
@@ -1881,9 +1938,7 @@ var getUser = createAsyncThunk5(
|
|
|
1881
1938
|
(id, { dispatch, rejectWithValue }) => general_api_default.get(`${useradmApiUrlv1}/users/${id}`).then(
|
|
1882
1939
|
({ data: user }) => Promise.all([
|
|
1883
1940
|
dispatch(actions6.receivedUser(user)),
|
|
1884
|
-
// @ts-ignore
|
|
1885
1941
|
dispatch(setHideAnnouncement({ shouldHide: false, userId: user.id })),
|
|
1886
|
-
// @ts-ignore
|
|
1887
1942
|
dispatch(updateUserColumnSettings({ currentUserId: user.id })),
|
|
1888
1943
|
user
|
|
1889
1944
|
])
|
|
@@ -1930,10 +1985,7 @@ var createUser = createAsyncThunk5(
|
|
|
1930
1985
|
);
|
|
1931
1986
|
var removeUser = createAsyncThunk5(
|
|
1932
1987
|
`${sliceName6}/removeUser`,
|
|
1933
|
-
(userId, { dispatch }) => (
|
|
1934
|
-
// @ts-ignore
|
|
1935
|
-
general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions6.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
1936
|
-
)
|
|
1988
|
+
(userId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/users/${userId}`).then(() => Promise.all([dispatch(actions6.removedUser(userId)), dispatch(getUserList()), dispatch(setSnackbar4(userActions.remove.successMessage))])).catch((err) => userActionErrorHandler(err, "remove", dispatch))
|
|
1937
1989
|
);
|
|
1938
1990
|
var editUser = createAsyncThunk5(
|
|
1939
1991
|
`${sliceName6}/editUser`,
|
|
@@ -1954,7 +2006,7 @@ var enableUser2fa = createAsyncThunk5(
|
|
|
1954
2006
|
);
|
|
1955
2007
|
var disableUser2fa = createAsyncThunk5(
|
|
1956
2008
|
`${sliceName6}/disableUser2fa`,
|
|
1957
|
-
(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.
|
|
2009
|
+
(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(actions6.receivedQrCode(null))]))
|
|
1958
2010
|
);
|
|
1959
2011
|
var mapHttpPermission = (permission) => Object.entries(uiPermissionsByArea).reduce(
|
|
1960
2012
|
(accu, [area, definition]) => {
|
|
@@ -2107,7 +2159,6 @@ var getPermissionSets = createAsyncThunk5(
|
|
|
2107
2159
|
accu[permissionSet.name] = permissionSetObject;
|
|
2108
2160
|
return accu;
|
|
2109
2161
|
},
|
|
2110
|
-
// @ts-ignore
|
|
2111
2162
|
{ ...getState().users.permissionSetsById }
|
|
2112
2163
|
);
|
|
2113
2164
|
return Promise.all([dispatch(actions6.receivedPermissionSets(permissionSets)), permissionSets]);
|
|
@@ -2200,7 +2251,6 @@ var transformRoleDataToRole = (roleData, roleState = {}) => {
|
|
|
2200
2251
|
role: {
|
|
2201
2252
|
...emptyRole,
|
|
2202
2253
|
name,
|
|
2203
|
-
// @ts-ignore
|
|
2204
2254
|
description: description ? description : roleState.description,
|
|
2205
2255
|
uiPermissions: {
|
|
2206
2256
|
...emptyUiPermissions,
|
|
@@ -2243,10 +2293,7 @@ var editRole = createAsyncThunk5(`${sliceName6}/editRole`, (roleData, { dispatch
|
|
|
2243
2293
|
});
|
|
2244
2294
|
var removeRole = createAsyncThunk5(
|
|
2245
2295
|
`${sliceName6}/removeRole`,
|
|
2246
|
-
(roleId, { dispatch }) => (
|
|
2247
|
-
// @ts-ignore
|
|
2248
|
-
general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions6.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
2249
|
-
)
|
|
2296
|
+
(roleId, { dispatch }) => general_api_default.delete(`${useradmApiUrlv2}/roles/${roleId}`).then(() => Promise.all([dispatch(actions6.removedRole(roleId)), dispatch(getRoles()), dispatch(setSnackbar4(roleActions.remove.successMessage))])).catch((err) => roleActionErrorHandler(err, "remove", dispatch))
|
|
2250
2297
|
);
|
|
2251
2298
|
var getGlobalSettings2 = createAsyncThunk5(
|
|
2252
2299
|
`${sliceName6}/getGlobalSettings`,
|
|
@@ -2257,7 +2304,6 @@ var getGlobalSettings2 = createAsyncThunk5(
|
|
|
2257
2304
|
);
|
|
2258
2305
|
var saveGlobalSettings = createAsyncThunk5(
|
|
2259
2306
|
`${sliceName6}/saveGlobalSettings`,
|
|
2260
|
-
// @ts-ignore
|
|
2261
2307
|
({ beOptimistic = false, notify = false, ...settings }, { dispatch, getState }) => {
|
|
2262
2308
|
if (!window.sessionStorage.getItem(settingsKeys.initialized) && !beOptimistic) {
|
|
2263
2309
|
return;
|
|
@@ -2303,11 +2349,9 @@ var saveUserSettings = createAsyncThunk5(`${sliceName6}/saveUserSettings`, (sett
|
|
|
2303
2349
|
const tooltipState = getTooltipsState(getState());
|
|
2304
2350
|
const updatedSettings = {
|
|
2305
2351
|
...userSettings,
|
|
2306
|
-
// @ts-ignore
|
|
2307
2352
|
...settings,
|
|
2308
2353
|
onboarding: {
|
|
2309
2354
|
...onboardingState,
|
|
2310
|
-
// @ts-ignore
|
|
2311
2355
|
...settings.onboarding
|
|
2312
2356
|
},
|
|
2313
2357
|
tooltips: tooltipState
|
|
@@ -2351,10 +2395,7 @@ var generateToken = createAsyncThunk5(
|
|
|
2351
2395
|
);
|
|
2352
2396
|
var revokeToken = createAsyncThunk5(
|
|
2353
2397
|
`${sliceName6}/revokeToken`,
|
|
2354
|
-
(token, { dispatch }) => (
|
|
2355
|
-
// @ts-ignore
|
|
2356
|
-
general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
2357
|
-
)
|
|
2398
|
+
(token, { dispatch }) => general_api_default.delete(`${useradmApiUrlv1}/settings/tokens/${token.id}`).then(() => Promise.resolve(dispatch(getTokens())))
|
|
2358
2399
|
);
|
|
2359
2400
|
var setTooltipReadState = createAsyncThunk5(`${sliceName6}/setTooltipReadState`, ({ persist, ...remainder }, { dispatch }) => {
|
|
2360
2401
|
let tasks = [dispatch(actions6.setTooltipState(remainder))];
|
|
@@ -2363,23 +2404,20 @@ var setTooltipReadState = createAsyncThunk5(`${sliceName6}/setTooltipReadState`,
|
|
|
2363
2404
|
}
|
|
2364
2405
|
return Promise.all(tasks);
|
|
2365
2406
|
});
|
|
2366
|
-
var setAllTooltipsReadState = createAsyncThunk5(`${sliceName6}/toggleHelptips`, (
|
|
2367
|
-
const updatedTips =
|
|
2407
|
+
var setAllTooltipsReadState = createAsyncThunk5(`${sliceName6}/toggleHelptips`, (readState = READ_STATES.read, { dispatch }) => {
|
|
2408
|
+
const updatedTips = Object.keys(HELPTOOLTIPS).reduce((accu, id) => ({ ...accu, [id]: { readState } }), {});
|
|
2368
2409
|
return Promise.resolve(dispatch(actions6.setTooltipsState(updatedTips))).then(() => dispatch(saveUserSettings()));
|
|
2369
2410
|
});
|
|
2370
2411
|
var submitFeedback = createAsyncThunk5(
|
|
2371
2412
|
`${sliceName6}/submitFeedback`,
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
|
|
2375
|
-
|
|
2376
|
-
|
|
2377
|
-
|
|
2378
|
-
|
|
2379
|
-
|
|
2380
|
-
setTimeout(() => dispatch(actions6.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
2381
|
-
});
|
|
2382
|
-
}
|
|
2413
|
+
({ satisfaction, feedback, ...meta }, { dispatch }) => general_api_default.post(`${tenantadmApiUrlv2}/contact/support`, {
|
|
2414
|
+
subject: "feedback submission",
|
|
2415
|
+
body: JSON.stringify({ feedback, satisfaction, meta })
|
|
2416
|
+
}).then(() => {
|
|
2417
|
+
const today = /* @__PURE__ */ new Date();
|
|
2418
|
+
dispatch(saveUserSettings({ feedbackCollectedAt: today.toISOString().split("T")[0] }));
|
|
2419
|
+
setTimeout(() => dispatch(actions6.setShowFeedbackDialog(false)), TIMEOUTS.threeSeconds);
|
|
2420
|
+
})
|
|
2383
2421
|
);
|
|
2384
2422
|
|
|
2385
2423
|
// src/appSlice/thunks.ts
|
|
@@ -2538,6 +2576,7 @@ export {
|
|
|
2538
2576
|
deriveReportsData,
|
|
2539
2577
|
getReportsDataWithoutBackendSupport,
|
|
2540
2578
|
getDeviceConnect,
|
|
2579
|
+
triggerDeviceUpdate,
|
|
2541
2580
|
getSessionDetails,
|
|
2542
2581
|
getDeviceFileDownloadLink,
|
|
2543
2582
|
deviceFileUpload,
|
|
@@ -2633,4 +2672,4 @@ export {
|
|
|
2633
2672
|
setAllTooltipsReadState,
|
|
2634
2673
|
submitFeedback
|
|
2635
2674
|
};
|
|
2636
|
-
//# sourceMappingURL=chunk-
|
|
2675
|
+
//# sourceMappingURL=chunk-2JHFUQ6B.js.map
|