dce-reactkit 3.9.4-beta-logreviewer.4 → 3.9.4-beta-logreviewer.6
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/cjs/index.js +114 -51
- package/dist/cjs/index.js.map +1 -1
- package/dist/esm/index.js +114 -51
- package/dist/esm/index.js.map +1 -1
- package/package.json +1 -1
- package/src/components/LogReviewer.tsx +157 -68
- package/src/server/initServer.ts +7 -0
package/dist/cjs/index.js
CHANGED
|
@@ -3555,12 +3555,12 @@ var ActionType$6;
|
|
|
3555
3555
|
ActionType["UpdateActionErrorFilterState"] = "update-action-error-filter-state";
|
|
3556
3556
|
// Update the advanced filter state
|
|
3557
3557
|
ActionType["UpdateAdvancedFilterState"] = "update-advanced-filter-state";
|
|
3558
|
-
// Increment the page number
|
|
3559
|
-
ActionType["IncrementPageNumber"] = "increment-page-number";
|
|
3560
|
-
// Decrement the page number
|
|
3561
|
-
ActionType["DecrementPageNumber"] = "decrement-page-number";
|
|
3562
3558
|
// Set has another page
|
|
3563
3559
|
ActionType["SetHasAnotherPage"] = "set-has-another-page";
|
|
3560
|
+
// Set the number of pages
|
|
3561
|
+
ActionType["SetNumPages"] = "set-num-pages";
|
|
3562
|
+
// Set page number
|
|
3563
|
+
ActionType["SetPageNumber"] = "set-page-number";
|
|
3564
3564
|
})(ActionType$6 || (ActionType$6 = {}));
|
|
3565
3565
|
/**
|
|
3566
3566
|
* Reducer that executes actions
|
|
@@ -3571,10 +3571,10 @@ var ActionType$6;
|
|
|
3571
3571
|
const reducer$7 = (state, action) => {
|
|
3572
3572
|
switch (action.type) {
|
|
3573
3573
|
case ActionType$6.StartLoading: {
|
|
3574
|
-
return Object.assign(Object.assign({}, state), { loading: true });
|
|
3574
|
+
return Object.assign(Object.assign({}, state), { loading: true, showSpinner: action.filtersChanged });
|
|
3575
3575
|
}
|
|
3576
3576
|
case ActionType$6.FinishLoading: {
|
|
3577
|
-
return Object.assign(Object.assign({}, state), { loading: false, logs: action.logs });
|
|
3577
|
+
return Object.assign(Object.assign({}, state), { loading: false, showSpinner: false, logs: action.logs });
|
|
3578
3578
|
}
|
|
3579
3579
|
case ActionType$6.ToggleFilterDrawer: {
|
|
3580
3580
|
return Object.assign(Object.assign({}, state), { expandedFilterDrawer: (state.expandedFilterDrawer === action.filterDrawer
|
|
@@ -3585,7 +3585,7 @@ const reducer$7 = (state, action) => {
|
|
|
3585
3585
|
return Object.assign(Object.assign({}, state), { expandedFilterDrawer: undefined });
|
|
3586
3586
|
}
|
|
3587
3587
|
case ActionType$6.ResetFilters: {
|
|
3588
|
-
return Object.assign(Object.assign({}, state), { dateFilterState: action.initDateFilterState, contextFilterState: action.initContextFilterState, tagFilterState: action.initTagFilterState, actionErrorFilterState: action.initActionErrorFilterState, advancedFilterState: action.initAdvancedFilterState,
|
|
3588
|
+
return Object.assign(Object.assign({}, state), { dateFilterState: action.initDateFilterState, contextFilterState: action.initContextFilterState, tagFilterState: action.initTagFilterState, actionErrorFilterState: action.initActionErrorFilterState, advancedFilterState: action.initAdvancedFilterState, pageNumber: 1 });
|
|
3589
3589
|
}
|
|
3590
3590
|
case ActionType$6.UpdateDateFilterState: {
|
|
3591
3591
|
return Object.assign(Object.assign({}, state), { dateFilterState: action.dateFilterState });
|
|
@@ -3602,15 +3602,15 @@ const reducer$7 = (state, action) => {
|
|
|
3602
3602
|
case ActionType$6.UpdateAdvancedFilterState: {
|
|
3603
3603
|
return Object.assign(Object.assign({}, state), { advancedFilterState: action.advancedFilterState });
|
|
3604
3604
|
}
|
|
3605
|
-
case ActionType$6.IncrementPageNumber: {
|
|
3606
|
-
return Object.assign(Object.assign({}, state), { pageNumber: state.pageNumber + 1 });
|
|
3607
|
-
}
|
|
3608
|
-
case ActionType$6.DecrementPageNumber: {
|
|
3609
|
-
return Object.assign(Object.assign({}, state), { pageNumber: state.pageNumber - 1 });
|
|
3610
|
-
}
|
|
3611
3605
|
case ActionType$6.SetHasAnotherPage: {
|
|
3612
3606
|
return Object.assign(Object.assign({}, state), { hasAnotherPage: action.hasAnotherPage });
|
|
3613
3607
|
}
|
|
3608
|
+
case ActionType$6.SetNumPages: {
|
|
3609
|
+
return Object.assign(Object.assign({}, state), { numPages: action.numPages });
|
|
3610
|
+
}
|
|
3611
|
+
case ActionType$6.SetPageNumber: {
|
|
3612
|
+
return Object.assign(Object.assign({}, state), { pageNumber: action.pageNumber });
|
|
3613
|
+
}
|
|
3614
3614
|
default: {
|
|
3615
3615
|
return state;
|
|
3616
3616
|
}
|
|
@@ -3728,6 +3728,7 @@ const LogReviewer = (props) => {
|
|
|
3728
3728
|
// Initial state
|
|
3729
3729
|
const initialState = {
|
|
3730
3730
|
loading: true,
|
|
3731
|
+
showSpinner: true,
|
|
3731
3732
|
logs: [],
|
|
3732
3733
|
expandedFilterDrawer: undefined,
|
|
3733
3734
|
dateFilterState: initDateFilterState,
|
|
@@ -3737,29 +3738,25 @@ const LogReviewer = (props) => {
|
|
|
3737
3738
|
advancedFilterState: initAdvancedFilterState,
|
|
3738
3739
|
pageNumber: 1,
|
|
3739
3740
|
hasAnotherPage: false,
|
|
3740
|
-
|
|
3741
|
+
numPages: 1,
|
|
3741
3742
|
};
|
|
3742
3743
|
// Initialize state
|
|
3743
3744
|
const [state, dispatch] = React.useReducer(reducer$7, initialState);
|
|
3744
3745
|
// Destructure common state
|
|
3745
|
-
const { loading, logs, expandedFilterDrawer, dateFilterState, contextFilterState, tagFilterState, actionErrorFilterState, advancedFilterState, pageNumber, hasAnotherPage,
|
|
3746
|
+
const { loading, showSpinner, logs, expandedFilterDrawer, dateFilterState, contextFilterState, tagFilterState, actionErrorFilterState, advancedFilterState, pageNumber, hasAnotherPage, numPages, } = state;
|
|
3746
3747
|
/*------------------------------------------------------------------------*/
|
|
3747
3748
|
/* ------------------------- Component Functions ------------------------ */
|
|
3748
3749
|
/*------------------------------------------------------------------------*/
|
|
3749
3750
|
/**
|
|
3750
3751
|
* Fetch logs from the server based on current filters
|
|
3751
3752
|
*/
|
|
3752
|
-
const fetchLogs = () => __awaiter(void 0, void 0, void 0, function* () {
|
|
3753
|
-
|
|
3753
|
+
const fetchLogs = (opts) => __awaiter(void 0, void 0, void 0, function* () {
|
|
3754
|
+
const { filters, pageNum, filtersChanged, } = opts;
|
|
3755
|
+
dispatch({
|
|
3756
|
+
type: ActionType$6.StartLoading,
|
|
3757
|
+
filtersChanged,
|
|
3758
|
+
});
|
|
3754
3759
|
try {
|
|
3755
|
-
// Prepare filter parameters
|
|
3756
|
-
const filters = {
|
|
3757
|
-
dateFilterState,
|
|
3758
|
-
contextFilterState,
|
|
3759
|
-
tagFilterState,
|
|
3760
|
-
actionErrorFilterState,
|
|
3761
|
-
advancedFilterState,
|
|
3762
|
-
};
|
|
3763
3760
|
// Send filters to the server
|
|
3764
3761
|
let fetchedLogs = [];
|
|
3765
3762
|
// Get logs from server
|
|
@@ -3767,8 +3764,9 @@ const LogReviewer = (props) => {
|
|
|
3767
3764
|
path: LOG_REVIEW_GET_LOGS_ROUTE,
|
|
3768
3765
|
method: 'GET',
|
|
3769
3766
|
params: {
|
|
3770
|
-
pageNumber,
|
|
3767
|
+
pageNumber: pageNum,
|
|
3771
3768
|
filters,
|
|
3769
|
+
countDocuments: filtersChanged,
|
|
3772
3770
|
},
|
|
3773
3771
|
});
|
|
3774
3772
|
fetchedLogs = fetchedLogs.concat(response.items);
|
|
@@ -3776,11 +3774,22 @@ const LogReviewer = (props) => {
|
|
|
3776
3774
|
type: ActionType$6.SetHasAnotherPage,
|
|
3777
3775
|
hasAnotherPage: response.hasAnotherPage,
|
|
3778
3776
|
});
|
|
3777
|
+
if (filtersChanged && response.numPages) {
|
|
3778
|
+
dispatch({
|
|
3779
|
+
type: ActionType$6.SetNumPages,
|
|
3780
|
+
numPages: response.numPages,
|
|
3781
|
+
});
|
|
3782
|
+
}
|
|
3779
3783
|
// Update logs in state
|
|
3780
3784
|
dispatch({
|
|
3781
3785
|
type: ActionType$6.FinishLoading,
|
|
3782
3786
|
logs: fetchedLogs,
|
|
3783
3787
|
});
|
|
3788
|
+
// Update page number
|
|
3789
|
+
dispatch({
|
|
3790
|
+
type: ActionType$6.SetPageNumber,
|
|
3791
|
+
pageNumber: pageNum,
|
|
3792
|
+
});
|
|
3784
3793
|
}
|
|
3785
3794
|
catch (err) {
|
|
3786
3795
|
return showFatalError(err);
|
|
@@ -3789,14 +3798,20 @@ const LogReviewer = (props) => {
|
|
|
3789
3798
|
/*------------------------------------------------------------------------*/
|
|
3790
3799
|
/* ------------------------- Lifecycle Functions ------------------------ */
|
|
3791
3800
|
/*------------------------------------------------------------------------*/
|
|
3792
|
-
|
|
3793
|
-
* Fetch logs whenever page number changes or filters are reset
|
|
3794
|
-
*/
|
|
3801
|
+
// Fetch logs on mount
|
|
3795
3802
|
React.useEffect(() => {
|
|
3796
|
-
fetchLogs(
|
|
3797
|
-
|
|
3798
|
-
|
|
3799
|
-
|
|
3803
|
+
fetchLogs({
|
|
3804
|
+
filters: {
|
|
3805
|
+
dateFilterState,
|
|
3806
|
+
contextFilterState,
|
|
3807
|
+
tagFilterState,
|
|
3808
|
+
actionErrorFilterState,
|
|
3809
|
+
advancedFilterState,
|
|
3810
|
+
},
|
|
3811
|
+
pageNum: 1,
|
|
3812
|
+
filtersChanged: true,
|
|
3813
|
+
});
|
|
3814
|
+
}, []);
|
|
3800
3815
|
/*------------------------------------------------------------------------*/
|
|
3801
3816
|
/* ------------------------------- Render ------------------------------- */
|
|
3802
3817
|
/*------------------------------------------------------------------------*/
|
|
@@ -3806,7 +3821,7 @@ const LogReviewer = (props) => {
|
|
|
3806
3821
|
// Body that will be filled with the contents of the panel
|
|
3807
3822
|
let body;
|
|
3808
3823
|
/* ------------- Loading ------------ */
|
|
3809
|
-
if (
|
|
3824
|
+
if (showSpinner) {
|
|
3810
3825
|
body = (React__default["default"].createElement("div", { className: "text-center p-5" },
|
|
3811
3826
|
React__default["default"].createElement(LoadingSpinner, null)));
|
|
3812
3827
|
}
|
|
@@ -3815,9 +3830,17 @@ const LogReviewer = (props) => {
|
|
|
3815
3830
|
/* ------------ Pagination -------------- */
|
|
3816
3831
|
/*----------------------------------------*/
|
|
3817
3832
|
const paginationControls = logs.length > 0 && (React__default["default"].createElement("div", { className: "text-center mt-3" },
|
|
3818
|
-
React__default["default"].createElement("button", { type: "button", className: "btn btn-secondary me-2", disabled: pageNumber <= 1, onClick: () => {
|
|
3819
|
-
|
|
3820
|
-
|
|
3833
|
+
React__default["default"].createElement("button", { type: "button", className: "btn btn-secondary me-2", disabled: pageNumber <= 1 || loading, onClick: () => {
|
|
3834
|
+
fetchLogs({
|
|
3835
|
+
filters: {
|
|
3836
|
+
dateFilterState,
|
|
3837
|
+
contextFilterState,
|
|
3838
|
+
tagFilterState,
|
|
3839
|
+
actionErrorFilterState,
|
|
3840
|
+
advancedFilterState,
|
|
3841
|
+
},
|
|
3842
|
+
pageNum: pageNumber - 1,
|
|
3843
|
+
filtersChanged: false,
|
|
3821
3844
|
});
|
|
3822
3845
|
} },
|
|
3823
3846
|
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faArrowLeft, className: "me-2" }),
|
|
@@ -3825,10 +3848,22 @@ const LogReviewer = (props) => {
|
|
|
3825
3848
|
React__default["default"].createElement("span", { className: "mx-3" },
|
|
3826
3849
|
"Page",
|
|
3827
3850
|
' ',
|
|
3828
|
-
pageNumber
|
|
3829
|
-
|
|
3830
|
-
|
|
3831
|
-
|
|
3851
|
+
pageNumber,
|
|
3852
|
+
' ',
|
|
3853
|
+
"of",
|
|
3854
|
+
' ',
|
|
3855
|
+
numPages),
|
|
3856
|
+
React__default["default"].createElement("button", { type: "button", className: "btn btn-secondary ms-2", disabled: !hasAnotherPage || loading, onClick: () => {
|
|
3857
|
+
fetchLogs({
|
|
3858
|
+
filters: {
|
|
3859
|
+
dateFilterState,
|
|
3860
|
+
contextFilterState,
|
|
3861
|
+
tagFilterState,
|
|
3862
|
+
actionErrorFilterState,
|
|
3863
|
+
advancedFilterState,
|
|
3864
|
+
},
|
|
3865
|
+
pageNum: pageNumber + 1,
|
|
3866
|
+
filtersChanged: false,
|
|
3832
3867
|
});
|
|
3833
3868
|
} },
|
|
3834
3869
|
"Next Page",
|
|
@@ -3881,6 +3916,17 @@ const LogReviewer = (props) => {
|
|
|
3881
3916
|
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faList, className: "me-2" }),
|
|
3882
3917
|
"Advanced"),
|
|
3883
3918
|
React__default["default"].createElement("button", { type: "button", id: "LogReviewer-reset-filters-button", className: "btn btn-light", "aria-label": "reset filters", onClick: () => {
|
|
3919
|
+
fetchLogs({
|
|
3920
|
+
filters: {
|
|
3921
|
+
dateFilterState: initDateFilterState,
|
|
3922
|
+
contextFilterState: initContextFilterState,
|
|
3923
|
+
tagFilterState: initTagFilterState,
|
|
3924
|
+
actionErrorFilterState: initActionErrorFilterState,
|
|
3925
|
+
advancedFilterState: initAdvancedFilterState,
|
|
3926
|
+
},
|
|
3927
|
+
pageNum: 1,
|
|
3928
|
+
filtersChanged: true,
|
|
3929
|
+
});
|
|
3884
3930
|
dispatch({
|
|
3885
3931
|
type: ActionType$6.ResetFilters,
|
|
3886
3932
|
initActionErrorFilterState,
|
|
@@ -3900,7 +3946,17 @@ const LogReviewer = (props) => {
|
|
|
3900
3946
|
dispatch({
|
|
3901
3947
|
type: ActionType$6.HideFilterDrawer,
|
|
3902
3948
|
});
|
|
3903
|
-
fetchLogs(
|
|
3949
|
+
fetchLogs({
|
|
3950
|
+
filters: {
|
|
3951
|
+
dateFilterState,
|
|
3952
|
+
contextFilterState,
|
|
3953
|
+
tagFilterState,
|
|
3954
|
+
actionErrorFilterState,
|
|
3955
|
+
advancedFilterState,
|
|
3956
|
+
},
|
|
3957
|
+
pageNum: 1,
|
|
3958
|
+
filtersChanged: true,
|
|
3959
|
+
});
|
|
3904
3960
|
} },
|
|
3905
3961
|
React__default["default"].createElement(reactFontawesome.FontAwesomeIcon, { icon: freeSolidSvgIcons.faSearch }),
|
|
3906
3962
|
' ',
|
|
@@ -4281,14 +4337,16 @@ const LogReviewer = (props) => {
|
|
|
4281
4337
|
filterToggles,
|
|
4282
4338
|
filterDrawer && (React__default["default"].createElement(Drawer, { customBackgroundColor: "#eee" }, filterDrawer))));
|
|
4283
4339
|
// Main body
|
|
4284
|
-
|
|
4285
|
-
|
|
4286
|
-
|
|
4287
|
-
React__default["default"].createElement(
|
|
4288
|
-
|
|
4289
|
-
React__default["default"].createElement("
|
|
4290
|
-
|
|
4291
|
-
|
|
4340
|
+
if (!showSpinner) {
|
|
4341
|
+
body = (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
4342
|
+
filters,
|
|
4343
|
+
React__default["default"].createElement("div", { className: "mt-2" },
|
|
4344
|
+
React__default["default"].createElement(IntelliTable, { title: "Matching Logs:", csvName: `Logs from ${getHumanReadableDate()}`, id: "logs", data: logs, columns: columns }),
|
|
4345
|
+
logs.length === 0 && (React__default["default"].createElement("div", { className: "alert alert-warning text-center mt-2" },
|
|
4346
|
+
React__default["default"].createElement("h4", { className: "m-1" }, "No Logs to Show"),
|
|
4347
|
+
React__default["default"].createElement("div", null, "Either your filters are too strict or no matching logs have been created yet."))),
|
|
4348
|
+
paginationControls)));
|
|
4349
|
+
}
|
|
4292
4350
|
/* ---------- Wrap in Modal --------- */
|
|
4293
4351
|
return (React__default["default"].createElement("div", { className: "LogReviewer-outer-container" },
|
|
4294
4352
|
React__default["default"].createElement("style", null, style$2),
|
|
@@ -13810,10 +13868,11 @@ const initServer = (opts) => {
|
|
|
13810
13868
|
paramTypes: {
|
|
13811
13869
|
pageNumber: ParamType$1.Int,
|
|
13812
13870
|
filters: ParamType$1.JSON,
|
|
13871
|
+
countDocuments: ParamType$1.Boolean,
|
|
13813
13872
|
},
|
|
13814
13873
|
handler: ({ params }) => __awaiter(void 0, void 0, void 0, function* () {
|
|
13815
13874
|
// Get user info
|
|
13816
|
-
const { pageNumber, userId, isAdmin, filters, } = params;
|
|
13875
|
+
const { pageNumber, userId, isAdmin, filters, countDocuments, } = params;
|
|
13817
13876
|
const { dateFilterState, contextFilterState, tagFilterState, actionErrorFilterState, advancedFilterState, } = filters;
|
|
13818
13877
|
// Validate user
|
|
13819
13878
|
const canReview = yield canReviewLogs(userId, isAdmin);
|
|
@@ -13980,6 +14039,10 @@ const initServer = (opts) => {
|
|
|
13980
14039
|
perPage: 50,
|
|
13981
14040
|
pageNumber,
|
|
13982
14041
|
});
|
|
14042
|
+
// Count documents if requested
|
|
14043
|
+
if (countDocuments) {
|
|
14044
|
+
response.numPages = Math.ceil((yield _logCollection.count(query)) / 50);
|
|
14045
|
+
}
|
|
13983
14046
|
// Return response
|
|
13984
14047
|
return response;
|
|
13985
14048
|
}),
|