@webiny/app-audit-logs 5.38.0-beta.0
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/LICENSE +21 -0
- package/README.md +1 -0
- package/components/Text.d.ts +6 -0
- package/components/Text.js +16 -0
- package/components/Text.js.map +1 -0
- package/config/list/AuditLogsListConfig.d.ts +22 -0
- package/config/list/AuditLogsListConfig.js +34 -0
- package/config/list/AuditLogsListConfig.js.map +1 -0
- package/config/list/Browser/Filter.d.ts +17 -0
- package/config/list/Browser/Filter.js +54 -0
- package/config/list/Browser/Filter.js.map +1 -0
- package/config/list/Browser/FiltersToWhere.d.ts +7 -0
- package/config/list/Browser/FiltersToWhere.js +23 -0
- package/config/list/Browser/FiltersToWhere.js.map +1 -0
- package/config/list/Browser/index.d.ts +17 -0
- package/config/list/Browser/index.js +15 -0
- package/config/list/Browser/index.js.map +1 -0
- package/config/list/index.d.ts +1 -0
- package/config/list/index.js +18 -0
- package/config/list/index.js.map +1 -0
- package/constants/index.d.ts +1 -0
- package/constants/index.js +10 -0
- package/constants/index.js.map +1 -0
- package/graphql.d.ts +1 -0
- package/graphql.js +15 -0
- package/graphql.js.map +1 -0
- package/hooks/index.d.ts +1 -0
- package/hooks/index.js +18 -0
- package/hooks/index.js.map +1 -0
- package/hooks/useAuditLogsList.d.ts +21 -0
- package/hooks/useAuditLogsList.js +117 -0
- package/hooks/useAuditLogsList.js.map +1 -0
- package/index.d.ts +2 -0
- package/index.js +53 -0
- package/index.js.map +1 -0
- package/package.json +59 -0
- package/plugins/permissionRenderer/AuditLogsPermissions.d.ts +8 -0
- package/plugins/permissionRenderer/AuditLogsPermissions.js +118 -0
- package/plugins/permissionRenderer/AuditLogsPermissions.js.map +1 -0
- package/plugins/permissionRenderer/index.d.ts +2 -0
- package/plugins/permissionRenderer/index.js +40 -0
- package/plugins/permissionRenderer/index.js.map +1 -0
- package/types.d.ts +19 -0
- package/types.js +7 -0
- package/types.js.map +1 -0
- package/utils/transformCmsContentEntriesToRecordEntries.d.ts +25 -0
- package/utils/transformCmsContentEntriesToRecordEntries.js +51 -0
- package/utils/transformCmsContentEntriesToRecordEntries.js.map +1 -0
- package/views/Logs/Filters/FilterByAction.d.ts +2 -0
- package/views/Logs/Filters/FilterByAction.js +64 -0
- package/views/Logs/Filters/FilterByAction.js.map +1 -0
- package/views/Logs/Filters/FilterByApp.d.ts +2 -0
- package/views/Logs/Filters/FilterByApp.js +46 -0
- package/views/Logs/Filters/FilterByApp.js.map +1 -0
- package/views/Logs/Filters/FilterByEntity.d.ts +2 -0
- package/views/Logs/Filters/FilterByEntity.js +62 -0
- package/views/Logs/Filters/FilterByEntity.js.map +1 -0
- package/views/Logs/Filters/FilterByInitiator.d.ts +2 -0
- package/views/Logs/Filters/FilterByInitiator.js +51 -0
- package/views/Logs/Filters/FilterByInitiator.js.map +1 -0
- package/views/Logs/Filters/FilterByTimestamp.d.ts +2 -0
- package/views/Logs/Filters/FilterByTimestamp.js +48 -0
- package/views/Logs/Filters/FilterByTimestamp.js.map +1 -0
- package/views/Logs/Filters/Filters.d.ts +8 -0
- package/views/Logs/Filters/Filters.js +43 -0
- package/views/Logs/Filters/Filters.js.map +1 -0
- package/views/Logs/Filters/index.d.ts +6 -0
- package/views/Logs/Filters/index.js +73 -0
- package/views/Logs/Filters/index.js.map +1 -0
- package/views/Logs/Filters/styled.d.ts +7 -0
- package/views/Logs/Filters/styled.js +15 -0
- package/views/Logs/Filters/styled.js.map +1 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.d.ts +8 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js +44 -0
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js.map +1 -0
- package/views/Logs/Header/ButtonFilters/index.d.ts +1 -0
- package/views/Logs/Header/ButtonFilters/index.js +18 -0
- package/views/Logs/Header/ButtonFilters/index.js.map +1 -0
- package/views/Logs/Header/Header.d.ts +11 -0
- package/views/Logs/Header/Header.js +55 -0
- package/views/Logs/Header/Header.js.map +1 -0
- package/views/Logs/Header/index.d.ts +1 -0
- package/views/Logs/Header/index.js +18 -0
- package/views/Logs/Header/index.js.map +1 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.d.ts +9 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.js +32 -0
- package/views/Logs/LoadMoreButton/LoadMoreButton.js.map +1 -0
- package/views/Logs/LoadMoreButton/index.d.ts +1 -0
- package/views/Logs/LoadMoreButton/index.js +18 -0
- package/views/Logs/LoadMoreButton/index.js.map +1 -0
- package/views/Logs/LoadMoreButton/styled.d.ts +7 -0
- package/views/Logs/LoadMoreButton/styled.js +15 -0
- package/views/Logs/LoadMoreButton/styled.js.map +1 -0
- package/views/Logs/LoadingMore/index.d.ts +2 -0
- package/views/Logs/LoadingMore/index.js +26 -0
- package/views/Logs/LoadingMore/index.js.map +1 -0
- package/views/Logs/LoadingMore/styled.d.ts +11 -0
- package/views/Logs/LoadingMore/styled.js +20 -0
- package/views/Logs/LoadingMore/styled.js.map +1 -0
- package/views/Logs/Logs.d.ts +3 -0
- package/views/Logs/Logs.js +108 -0
- package/views/Logs/Logs.js.map +1 -0
- package/views/Logs/LogsModule.d.ts +2 -0
- package/views/Logs/LogsModule.js +32 -0
- package/views/Logs/LogsModule.js.map +1 -0
- package/views/Logs/Preview/Preview.d.ts +9 -0
- package/views/Logs/Preview/Preview.js +97 -0
- package/views/Logs/Preview/Preview.js.map +1 -0
- package/views/Logs/Preview/index.d.ts +1 -0
- package/views/Logs/Preview/index.js +18 -0
- package/views/Logs/Preview/index.js.map +1 -0
- package/views/Logs/Preview/styled.d.ts +8 -0
- package/views/Logs/Preview/styled.js +18 -0
- package/views/Logs/Preview/styled.js.map +1 -0
- package/views/Logs/Table/Table.d.ts +19 -0
- package/views/Logs/Table/Table.js +145 -0
- package/views/Logs/Table/Table.js.map +1 -0
- package/views/Logs/Table/index.d.ts +1 -0
- package/views/Logs/Table/index.js +18 -0
- package/views/Logs/Table/index.js.map +1 -0
- package/views/Logs/Table/styled.d.ts +22 -0
- package/views/Logs/Table/styled.js +49 -0
- package/views/Logs/Table/styled.js.map +1 -0
- package/views/Logs/styled.d.ts +11 -0
- package/views/Logs/styled.js +20 -0
- package/views/Logs/styled.js.map +1 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) Webiny
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
# `@webiny/app-audit-logs`
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const Text: import("@emotion/styled").StyledComponent<import("@webiny/ui/Typography/Typography").TypographyProps & {
|
|
3
|
+
children?: import("react").ReactNode;
|
|
4
|
+
} & {
|
|
5
|
+
theme?: import("@emotion/react").Theme | undefined;
|
|
6
|
+
}, {}, {}>;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.Text = void 0;
|
|
8
|
+
var _styled = _interopRequireDefault(require("@emotion/styled"));
|
|
9
|
+
var _Typography = require("@webiny/ui/Typography");
|
|
10
|
+
var Text = /*#__PURE__*/(0, _styled.default)(_Typography.Typography, {
|
|
11
|
+
label: "Text",
|
|
12
|
+
target: "e5vot4i0"
|
|
13
|
+
})("white-space:nowrap;overflow:hidden;text-overflow:ellipsis;");
|
|
14
|
+
exports.Text = Text;
|
|
15
|
+
|
|
16
|
+
//# sourceMappingURL=Text.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_styled","_interopRequireDefault","require","_Typography","Text","styled","Typography","label","target","exports"],"sources":["Text.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { Typography } from \"@webiny/ui/Typography\";\n\nexport const Text = styled(Typography)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n"],"mappings":";;;;;;;AAAA,IAAAA,OAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AAEO,IAAME,IAAI,oBAAGC,eAAM,EAACC,sBAAU;EAAAC,KAAA;EAAAC,MAAA;AAAA,gEAIpC;AAACC,OAAA,CAAAL,IAAA,GAAAA,IAAA"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
export declare const AuditLogsListConfig: (({ children }: {
|
|
3
|
+
children: import("react").ReactNode;
|
|
4
|
+
}) => JSX.Element) & {
|
|
5
|
+
Browser: {
|
|
6
|
+
Filter: import("@webiny/react-composition").ComposableFC<import("./Browser/Filter").FilterProps> & {
|
|
7
|
+
createDecorator: (decorator: import("@webiny/react-composition").Decorator<import("./Browser/Filter").FilterProps>) => (props: {
|
|
8
|
+
name: string;
|
|
9
|
+
}) => JSX.Element;
|
|
10
|
+
};
|
|
11
|
+
FiltersToWhere: ({ converter }: {
|
|
12
|
+
converter: import("./Browser/FiltersToWhere").FiltersToWhereConverter;
|
|
13
|
+
}) => JSX.Element;
|
|
14
|
+
};
|
|
15
|
+
};
|
|
16
|
+
export declare const AuditLogsListWithConfig: ({ onProperties, children }: import("@webiny/react-properties").WithConfigProps) => JSX.Element;
|
|
17
|
+
export declare function useAuditLogsListConfig(): {
|
|
18
|
+
browser: {
|
|
19
|
+
filters: import("./Browser/Filter").FilterConfig[];
|
|
20
|
+
filtersToWhere: import("./Browser/FiltersToWhere").FiltersToWhereConverter[];
|
|
21
|
+
};
|
|
22
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.AuditLogsListWithConfig = exports.AuditLogsListConfig = void 0;
|
|
8
|
+
exports.useAuditLogsListConfig = useAuditLogsListConfig;
|
|
9
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
10
|
+
var _objectSpread2 = _interopRequireDefault(require("@babel/runtime/helpers/objectSpread2"));
|
|
11
|
+
var _react = require("react");
|
|
12
|
+
var _reactProperties = require("@webiny/react-properties");
|
|
13
|
+
var _Browser = require("./Browser");
|
|
14
|
+
var base = (0, _reactProperties.createConfigurableComponent)("AuditLogsListConfig");
|
|
15
|
+
var AuditLogsListConfig = Object.assign(base.Config, {
|
|
16
|
+
Browser: _Browser.Browser
|
|
17
|
+
});
|
|
18
|
+
exports.AuditLogsListConfig = AuditLogsListConfig;
|
|
19
|
+
var AuditLogsListWithConfig = base.WithConfig;
|
|
20
|
+
exports.AuditLogsListWithConfig = AuditLogsListWithConfig;
|
|
21
|
+
function useAuditLogsListConfig() {
|
|
22
|
+
var config = base.useConfig();
|
|
23
|
+
var browser = config.browser || {};
|
|
24
|
+
return (0, _react.useMemo)(function () {
|
|
25
|
+
return {
|
|
26
|
+
browser: (0, _objectSpread2.default)((0, _objectSpread2.default)({}, browser), {}, {
|
|
27
|
+
filters: (0, _toConsumableArray2.default)(browser.filters || []),
|
|
28
|
+
filtersToWhere: (0, _toConsumableArray2.default)(browser.filtersToWhere || [])
|
|
29
|
+
})
|
|
30
|
+
};
|
|
31
|
+
}, [config]);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
//# sourceMappingURL=AuditLogsListConfig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactProperties","_Browser","base","createConfigurableComponent","AuditLogsListConfig","Object","assign","Config","Browser","exports","AuditLogsListWithConfig","WithConfig","useAuditLogsListConfig","config","useConfig","browser","useMemo","_objectSpread2","default","filters","_toConsumableArray2","filtersToWhere"],"sources":["AuditLogsListConfig.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { createConfigurableComponent } from \"@webiny/react-properties\";\nimport { Browser, BrowserConfig } from \"./Browser\";\n\nconst base = createConfigurableComponent<AuditLogsListConfig>(\"AuditLogsListConfig\");\n\nexport const AuditLogsListConfig = Object.assign(base.Config, { Browser });\nexport const AuditLogsListWithConfig = base.WithConfig;\n\ninterface AuditLogsListConfig {\n browser: BrowserConfig;\n}\n\nexport function useAuditLogsListConfig() {\n const config = base.useConfig();\n\n const browser = config.browser || {};\n\n return useMemo(\n () => ({\n browser: {\n ...browser,\n filters: [...(browser.filters || [])],\n filtersToWhere: [...(browser.filtersToWhere || [])]\n }\n }),\n [config]\n );\n}\n"],"mappings":";;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AAEA,IAAMG,IAAI,GAAG,IAAAC,4CAA2B,EAAsB,qBAAqB,CAAC;AAE7E,IAAMC,mBAAmB,GAAGC,MAAM,CAACC,MAAM,CAACJ,IAAI,CAACK,MAAM,EAAE;EAAEC,OAAO,EAAPA;AAAQ,CAAC,CAAC;AAACC,OAAA,CAAAL,mBAAA,GAAAA,mBAAA;AACpE,IAAMM,uBAAuB,GAAGR,IAAI,CAACS,UAAU;AAACF,OAAA,CAAAC,uBAAA,GAAAA,uBAAA;AAMhD,SAASE,sBAAsBA,CAAA,EAAG;EACrC,IAAMC,MAAM,GAAGX,IAAI,CAACY,SAAS,CAAC,CAAC;EAE/B,IAAMC,OAAO,GAAGF,MAAM,CAACE,OAAO,IAAI,CAAC,CAAC;EAEpC,OAAO,IAAAC,cAAO,EACV;IAAA,OAAO;MACHD,OAAO,MAAAE,cAAA,CAAAC,OAAA,MAAAD,cAAA,CAAAC,OAAA,MACAH,OAAO;QACVI,OAAO,MAAAC,mBAAA,CAAAF,OAAA,EAAOH,OAAO,CAACI,OAAO,IAAI,EAAE,CAAE;QACrCE,cAAc,MAAAD,mBAAA,CAAAF,OAAA,EAAOH,OAAO,CAACM,cAAc,IAAI,EAAE;MAAE;IAE3D,CAAC;EAAA,CAAC,EACF,CAACR,MAAM,CACX,CAAC;AACL"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
export interface FilterConfig {
|
|
3
|
+
name: string;
|
|
4
|
+
element: React.ReactElement;
|
|
5
|
+
}
|
|
6
|
+
export interface FilterProps {
|
|
7
|
+
name: string;
|
|
8
|
+
element?: React.ReactElement<unknown>;
|
|
9
|
+
remove?: boolean;
|
|
10
|
+
before?: string;
|
|
11
|
+
after?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const Filter: import("@webiny/app-admin").ComposableFC<FilterProps> & {
|
|
14
|
+
createDecorator: (decorator: import("@webiny/app-admin").Decorator<FilterProps>) => (props: {
|
|
15
|
+
name: string;
|
|
16
|
+
}) => JSX.Element;
|
|
17
|
+
};
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.Filter = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactProperties = require("@webiny/react-properties");
|
|
10
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
11
|
+
var BaseFilter = (0, _appAdmin.makeComposable)("Filter", function (_ref) {
|
|
12
|
+
var name = _ref.name,
|
|
13
|
+
element = _ref.element,
|
|
14
|
+
_ref$after = _ref.after,
|
|
15
|
+
after = _ref$after === void 0 ? undefined : _ref$after,
|
|
16
|
+
_ref$before = _ref.before,
|
|
17
|
+
before = _ref$before === void 0 ? undefined : _ref$before,
|
|
18
|
+
_ref$remove = _ref.remove,
|
|
19
|
+
remove = _ref$remove === void 0 ? false : _ref$remove;
|
|
20
|
+
var getId = (0, _reactProperties.useIdGenerator)("filter");
|
|
21
|
+
var placeAfter = after !== undefined ? getId(after) : undefined;
|
|
22
|
+
var placeBefore = before !== undefined ? getId(before) : undefined;
|
|
23
|
+
return /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
|
|
24
|
+
id: "browser",
|
|
25
|
+
name: "browser"
|
|
26
|
+
}, /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
|
|
27
|
+
id: getId(name),
|
|
28
|
+
name: "filters",
|
|
29
|
+
remove: remove,
|
|
30
|
+
array: true,
|
|
31
|
+
before: placeBefore,
|
|
32
|
+
after: placeAfter
|
|
33
|
+
}, /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
|
|
34
|
+
id: getId(name, "name"),
|
|
35
|
+
name: "name",
|
|
36
|
+
value: name
|
|
37
|
+
}), element ? /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
|
|
38
|
+
id: getId(name, "element"),
|
|
39
|
+
name: "element",
|
|
40
|
+
value: element
|
|
41
|
+
}) : null));
|
|
42
|
+
});
|
|
43
|
+
var createDecorator = (0, _appAdmin.createDecoratorFactory)()(BaseFilter, function (decoratorProps, componentProps) {
|
|
44
|
+
if (decoratorProps.name === "*") {
|
|
45
|
+
return true;
|
|
46
|
+
}
|
|
47
|
+
return decoratorProps.name === componentProps.name;
|
|
48
|
+
});
|
|
49
|
+
var Filter = Object.assign(BaseFilter, {
|
|
50
|
+
createDecorator: createDecorator
|
|
51
|
+
});
|
|
52
|
+
exports.Filter = Filter;
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=Filter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactProperties","_appAdmin","BaseFilter","makeComposable","_ref","name","element","_ref$after","after","undefined","_ref$before","before","_ref$remove","remove","getId","useIdGenerator","placeAfter","placeBefore","default","createElement","Property","id","array","value","createDecorator","createDecoratorFactory","decoratorProps","componentProps","Filter","Object","assign","exports"],"sources":["Filter.tsx"],"sourcesContent":["import React from \"react\";\nimport { Property, useIdGenerator } from \"@webiny/react-properties\";\nimport { makeComposable, createDecoratorFactory } from \"@webiny/app-admin\";\n\nexport interface FilterConfig {\n name: string;\n element: React.ReactElement;\n}\n\nexport interface FilterProps {\n name: string;\n element?: React.ReactElement<unknown>;\n remove?: boolean;\n before?: string;\n after?: string;\n}\n\nconst BaseFilter = makeComposable<FilterProps>(\n \"Filter\",\n ({ name, element, after = undefined, before = undefined, remove = false }) => {\n const getId = useIdGenerator(\"filter\");\n\n const placeAfter = after !== undefined ? getId(after) : undefined;\n const placeBefore = before !== undefined ? getId(before) : undefined;\n\n return (\n <Property id=\"browser\" name={\"browser\"}>\n <Property\n id={getId(name)}\n name={\"filters\"}\n remove={remove}\n array={true}\n before={placeBefore}\n after={placeAfter}\n >\n <Property id={getId(name, \"name\")} name={\"name\"} value={name} />\n {element ? (\n <Property id={getId(name, \"element\")} name={\"element\"} value={element} />\n ) : null}\n </Property>\n </Property>\n );\n }\n);\n\nconst createDecorator = createDecoratorFactory<{ name: string }>()(\n BaseFilter,\n (decoratorProps, componentProps) => {\n if (decoratorProps.name === \"*\") {\n return true;\n }\n\n return decoratorProps.name === componentProps.name;\n }\n);\n\nexport const Filter = Object.assign(BaseFilter, { createDecorator });\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAeA,IAAMG,UAAU,GAAG,IAAAC,wBAAc,EAC7B,QAAQ,EACR,UAAAC,IAAA,EAA8E;EAAA,IAA3EC,IAAI,GAAAD,IAAA,CAAJC,IAAI;IAAEC,OAAO,GAAAF,IAAA,CAAPE,OAAO;IAAAC,UAAA,GAAAH,IAAA,CAAEI,KAAK;IAALA,KAAK,GAAAD,UAAA,cAAGE,SAAS,GAAAF,UAAA;IAAAG,WAAA,GAAAN,IAAA,CAAEO,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAGD,SAAS,GAAAC,WAAA;IAAAE,WAAA,GAAAR,IAAA,CAAES,MAAM;IAANA,MAAM,GAAAD,WAAA,cAAG,KAAK,GAAAA,WAAA;EACnE,IAAME,KAAK,GAAG,IAAAC,+BAAc,EAAC,QAAQ,CAAC;EAEtC,IAAMC,UAAU,GAAGR,KAAK,KAAKC,SAAS,GAAGK,KAAK,CAACN,KAAK,CAAC,GAAGC,SAAS;EACjE,IAAMQ,WAAW,GAAGN,MAAM,KAAKF,SAAS,GAAGK,KAAK,CAACH,MAAM,CAAC,GAAGF,SAAS;EAEpE,oBACIZ,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACnB,gBAAA,CAAAoB,QAAQ;IAACC,EAAE,EAAC,SAAS;IAAChB,IAAI,EAAE;EAAU,gBACnCR,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACnB,gBAAA,CAAAoB,QAAQ;IACLC,EAAE,EAAEP,KAAK,CAACT,IAAI,CAAE;IAChBA,IAAI,EAAE,SAAU;IAChBQ,MAAM,EAAEA,MAAO;IACfS,KAAK,EAAE,IAAK;IACZX,MAAM,EAAEM,WAAY;IACpBT,KAAK,EAAEQ;EAAW,gBAElBnB,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACnB,gBAAA,CAAAoB,QAAQ;IAACC,EAAE,EAAEP,KAAK,CAACT,IAAI,EAAE,MAAM,CAAE;IAACA,IAAI,EAAE,MAAO;IAACkB,KAAK,EAAElB;EAAK,CAAE,CAAC,EAC/DC,OAAO,gBACJT,MAAA,CAAAqB,OAAA,CAAAC,aAAA,CAACnB,gBAAA,CAAAoB,QAAQ;IAACC,EAAE,EAAEP,KAAK,CAACT,IAAI,EAAE,SAAS,CAAE;IAACA,IAAI,EAAE,SAAU;IAACkB,KAAK,EAAEjB;EAAQ,CAAE,CAAC,GACzE,IACE,CACJ,CAAC;AAEnB,CACJ,CAAC;AAED,IAAMkB,eAAe,GAAG,IAAAC,gCAAsB,EAAmB,CAAC,CAC9DvB,UAAU,EACV,UAACwB,cAAc,EAAEC,cAAc,EAAK;EAChC,IAAID,cAAc,CAACrB,IAAI,KAAK,GAAG,EAAE;IAC7B,OAAO,IAAI;EACf;EAEA,OAAOqB,cAAc,CAACrB,IAAI,KAAKsB,cAAc,CAACtB,IAAI;AACtD,CACJ,CAAC;AAEM,IAAMuB,MAAM,GAAGC,MAAM,CAACC,MAAM,CAAC5B,UAAU,EAAE;EAAEsB,eAAe,EAAfA;AAAgB,CAAC,CAAC;AAACO,OAAA,CAAAH,MAAA,GAAAA,MAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.FiltersToWhere = void 0;
|
|
8
|
+
var _react = _interopRequireDefault(require("react"));
|
|
9
|
+
var _reactProperties = require("@webiny/react-properties");
|
|
10
|
+
var FiltersToWhere = function FiltersToWhere(_ref) {
|
|
11
|
+
var converter = _ref.converter;
|
|
12
|
+
return /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
|
|
13
|
+
id: "browser",
|
|
14
|
+
name: "browser"
|
|
15
|
+
}, /*#__PURE__*/_react.default.createElement(_reactProperties.Property, {
|
|
16
|
+
name: "filtersToWhere",
|
|
17
|
+
array: true,
|
|
18
|
+
value: converter
|
|
19
|
+
}));
|
|
20
|
+
};
|
|
21
|
+
exports.FiltersToWhere = FiltersToWhere;
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=FiltersToWhere.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireDefault","require","_reactProperties","FiltersToWhere","_ref","converter","default","createElement","Property","id","name","array","value","exports"],"sources":["FiltersToWhere.tsx"],"sourcesContent":["import React from \"react\";\nimport { Property } from \"@webiny/react-properties\";\n\nexport interface FiltersToWhereConverter {\n (filters: Record<string, any>): Record<string, any>;\n}\n\nexport const FiltersToWhere = ({ converter }: { converter: FiltersToWhereConverter }) => {\n return (\n <Property id=\"browser\" name={\"browser\"}>\n <Property name={\"filtersToWhere\"} array={true} value={converter} />\n </Property>\n );\n};\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,gBAAA,GAAAD,OAAA;AAMO,IAAME,cAAc,GAAG,SAAjBA,cAAcA,CAAAC,IAAA,EAA8D;EAAA,IAAxDC,SAAS,GAAAD,IAAA,CAATC,SAAS;EACtC,oBACIN,MAAA,CAAAO,OAAA,CAAAC,aAAA,CAACL,gBAAA,CAAAM,QAAQ;IAACC,EAAE,EAAC,SAAS;IAACC,IAAI,EAAE;EAAU,gBACnCX,MAAA,CAAAO,OAAA,CAAAC,aAAA,CAACL,gBAAA,CAAAM,QAAQ;IAACE,IAAI,EAAE,gBAAiB;IAACC,KAAK,EAAE,IAAK;IAACC,KAAK,EAAEP;EAAU,CAAE,CAC5D,CAAC;AAEnB,CAAC;AAACQ,OAAA,CAAAV,cAAA,GAAAA,cAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
import { FilterConfig } from "./Filter";
|
|
3
|
+
import { FiltersToWhereConverter } from "./FiltersToWhere";
|
|
4
|
+
export interface BrowserConfig {
|
|
5
|
+
filters: FilterConfig[];
|
|
6
|
+
filtersToWhere: FiltersToWhereConverter[];
|
|
7
|
+
}
|
|
8
|
+
export declare const Browser: {
|
|
9
|
+
Filter: import("@webiny/react-composition").ComposableFC<import("./Filter").FilterProps> & {
|
|
10
|
+
createDecorator: (decorator: import("@webiny/react-composition").Decorator<import("./Filter").FilterProps>) => (props: {
|
|
11
|
+
name: string;
|
|
12
|
+
}) => JSX.Element;
|
|
13
|
+
};
|
|
14
|
+
FiltersToWhere: ({ converter }: {
|
|
15
|
+
converter: FiltersToWhereConverter;
|
|
16
|
+
}) => JSX.Element;
|
|
17
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.Browser = void 0;
|
|
7
|
+
var _Filter = require("./Filter");
|
|
8
|
+
var _FiltersToWhere = require("./FiltersToWhere");
|
|
9
|
+
var Browser = {
|
|
10
|
+
Filter: _Filter.Filter,
|
|
11
|
+
FiltersToWhere: _FiltersToWhere.FiltersToWhere
|
|
12
|
+
};
|
|
13
|
+
exports.Browser = Browser;
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_Filter","require","_FiltersToWhere","Browser","Filter","FiltersToWhere","exports"],"sources":["index.ts"],"sourcesContent":["import { Filter, FilterConfig } from \"./Filter\";\nimport { FiltersToWhere, FiltersToWhereConverter } from \"./FiltersToWhere\";\n\nexport interface BrowserConfig {\n filters: FilterConfig[];\n filtersToWhere: FiltersToWhereConverter[];\n}\n\nexport const Browser = {\n Filter,\n FiltersToWhere\n};\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,eAAA,GAAAD,OAAA;AAOO,IAAME,OAAO,GAAG;EACnBC,MAAM,EAANA,cAAM;EACNC,cAAc,EAAdA;AACJ,CAAC;AAACC,OAAA,CAAAH,OAAA,GAAAA,OAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./AuditLogsListConfig";
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _AuditLogsListConfig = require("./AuditLogsListConfig");
|
|
7
|
+
Object.keys(_AuditLogsListConfig).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _AuditLogsListConfig[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _AuditLogsListConfig[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_AuditLogsListConfig","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from \"./AuditLogsListConfig\";\n"],"mappings":";;;;;AAAA,IAAAA,oBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,oBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,oBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,oBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LOCAL_STORAGE_LATEST_VISITED_FOLDER = "webiny_audit_logs_latest_visited_folder";
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LOCAL_STORAGE_LATEST_VISITED_FOLDER = void 0;
|
|
7
|
+
var LOCAL_STORAGE_LATEST_VISITED_FOLDER = "webiny_audit_logs_latest_visited_folder";
|
|
8
|
+
exports.LOCAL_STORAGE_LATEST_VISITED_FOLDER = LOCAL_STORAGE_LATEST_VISITED_FOLDER;
|
|
9
|
+
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["LOCAL_STORAGE_LATEST_VISITED_FOLDER","exports"],"sources":["index.ts"],"sourcesContent":["export const LOCAL_STORAGE_LATEST_VISITED_FOLDER = \"webiny_audit_logs_latest_visited_folder\";\n"],"mappings":";;;;;;AAAO,IAAMA,mCAAmC,GAAG,yCAAyC;AAACC,OAAA,CAAAD,mCAAA,GAAAA,mCAAA"}
|
package/graphql.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const LIST_USERS: any;
|
package/graphql.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.LIST_USERS = void 0;
|
|
8
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
9
|
+
var _graphqlTag = _interopRequireDefault(require("graphql-tag"));
|
|
10
|
+
var _templateObject;
|
|
11
|
+
var ERROR_FIELDS = /* GraphQL */"\n code\n message\n data\n";
|
|
12
|
+
var LIST_USERS = (0, _graphqlTag.default)(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n query ListUsers {\n adminUsers {\n users: listUsers {\n data {\n id\n firstName\n lastName\n group {\n name\n }\n }\n error {\n ", "\n }\n }\n }\n }\n"])), ERROR_FIELDS);
|
|
13
|
+
exports.LIST_USERS = LIST_USERS;
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=graphql.js.map
|
package/graphql.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_graphqlTag","_interopRequireDefault","require","_templateObject","ERROR_FIELDS","LIST_USERS","gql","_taggedTemplateLiteral2","default","exports"],"sources":["graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\n\nconst ERROR_FIELDS = /* GraphQL */ `\n code\n message\n data\n`;\n\nexport const LIST_USERS: any = gql`\n query ListUsers {\n adminUsers {\n users: listUsers {\n data {\n id\n firstName\n lastName\n group {\n name\n }\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"mappings":";;;;;;;;AAAA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAA8B,IAAAC,eAAA;AAE9B,IAAMC,YAAY,GAAG,kDAIpB;AAEM,IAAMC,UAAe,OAAGC,mBAAG,EAAAH,eAAA,KAAAA,eAAA,OAAAI,uBAAA,CAAAC,OAAA,kZAaZJ,YAAY,CAKjC;AAACK,OAAA,CAAAJ,UAAA,GAAAA,UAAA"}
|
package/hooks/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./useAuditLogsList";
|
package/hooks/index.js
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
var _useAuditLogsList = require("./useAuditLogsList");
|
|
7
|
+
Object.keys(_useAuditLogsList).forEach(function (key) {
|
|
8
|
+
if (key === "default" || key === "__esModule") return;
|
|
9
|
+
if (key in exports && exports[key] === _useAuditLogsList[key]) return;
|
|
10
|
+
Object.defineProperty(exports, key, {
|
|
11
|
+
enumerable: true,
|
|
12
|
+
get: function get() {
|
|
13
|
+
return _useAuditLogsList[key];
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_useAuditLogsList","require","Object","keys","forEach","key","exports","defineProperty","enumerable","get"],"sources":["index.ts"],"sourcesContent":["export * from \"./useAuditLogsList\";\n"],"mappings":";;;;;AAAA,IAAAA,iBAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,iBAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,iBAAA,CAAAK,GAAA;EAAAH,MAAA,CAAAK,cAAA,CAAAD,OAAA,EAAAD,GAAA;IAAAG,UAAA;IAAAC,GAAA,WAAAA,IAAA;MAAA,OAAAT,iBAAA,CAAAK,GAAA;IAAA;EAAA;AAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { OnSortingChange, Sorting } from "@webiny/ui/DataTable";
|
|
2
|
+
import { ListMeta } from "@webiny/app-aco/types";
|
|
3
|
+
import { Entry } from "../utils/transformCmsContentEntriesToRecordEntries";
|
|
4
|
+
export interface UseAuditLogs {
|
|
5
|
+
hideFilters: () => void;
|
|
6
|
+
isListLoading: boolean;
|
|
7
|
+
isListLoadingMore: boolean;
|
|
8
|
+
isSearch: boolean;
|
|
9
|
+
listMoreRecords: () => void;
|
|
10
|
+
listTitle?: string;
|
|
11
|
+
meta: ListMeta;
|
|
12
|
+
records: Entry[];
|
|
13
|
+
search: string;
|
|
14
|
+
setSearch: (value: string) => void;
|
|
15
|
+
setSorting: OnSortingChange;
|
|
16
|
+
showFilters: () => void;
|
|
17
|
+
showingFilters: boolean;
|
|
18
|
+
sorting: Sorting;
|
|
19
|
+
setFilters: (data: Record<string, any>) => void;
|
|
20
|
+
}
|
|
21
|
+
export declare const useAuditLogsList: (hasAccessToUsers: boolean) => UseAuditLogs;
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useAuditLogsList = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _reactHooks = require("@apollo/react-hooks");
|
|
11
|
+
var _debounce = _interopRequireDefault(require("lodash/debounce"));
|
|
12
|
+
var _reactRouter = require("@webiny/react-router");
|
|
13
|
+
var _appAco = require("@webiny/app-aco");
|
|
14
|
+
var _transformCmsContentEntriesToRecordEntries = require("../utils/transformCmsContentEntriesToRecordEntries");
|
|
15
|
+
var _graphql = require("../graphql");
|
|
16
|
+
var useAuditLogsList = function useAuditLogsList(hasAccessToUsers) {
|
|
17
|
+
var _useRouter = (0, _reactRouter.useRouter)(),
|
|
18
|
+
history = _useRouter.history;
|
|
19
|
+
var _useAcoList = (0, _appAco.useAcoList)(),
|
|
20
|
+
isListLoading = _useAcoList.isListLoading,
|
|
21
|
+
isListLoadingMore = _useAcoList.isListLoadingMore,
|
|
22
|
+
isSearch = _useAcoList.isSearch,
|
|
23
|
+
listMoreRecords = _useAcoList.listMoreRecords,
|
|
24
|
+
listTitle = _useAcoList.listTitle,
|
|
25
|
+
meta = _useAcoList.meta,
|
|
26
|
+
initialRecords = _useAcoList.records,
|
|
27
|
+
setSearchQuery = _useAcoList.setSearchQuery,
|
|
28
|
+
setListSort = _useAcoList.setListSort,
|
|
29
|
+
setFilters = _useAcoList.setFilters,
|
|
30
|
+
showFilters = _useAcoList.showFilters,
|
|
31
|
+
hideFilters = _useAcoList.hideFilters,
|
|
32
|
+
showingFilters = _useAcoList.showingFilters;
|
|
33
|
+
var _useState = (0, _react.useState)([]),
|
|
34
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
35
|
+
sorting = _useState2[0],
|
|
36
|
+
setSorting = _useState2[1];
|
|
37
|
+
var _useState3 = (0, _react.useState)(""),
|
|
38
|
+
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
39
|
+
search = _useState4[0],
|
|
40
|
+
setSearch = _useState4[1];
|
|
41
|
+
var query = new URLSearchParams(location.search);
|
|
42
|
+
var searchQuery = query.get("search") || "";
|
|
43
|
+
var _useQuery = (0, _reactHooks.useQuery)(_graphql.LIST_USERS, {
|
|
44
|
+
skip: !hasAccessToUsers
|
|
45
|
+
}),
|
|
46
|
+
listUsers = _useQuery.data,
|
|
47
|
+
usersLoading = _useQuery.loading;
|
|
48
|
+
|
|
49
|
+
// Search-related logics: update `searchQuery` state and querystring
|
|
50
|
+
var updateSearch = (0, _react.useCallback)((0, _debounce.default)(function (_ref) {
|
|
51
|
+
var search = _ref.search,
|
|
52
|
+
query = _ref.query;
|
|
53
|
+
var searchQuery = query.get("search");
|
|
54
|
+
if (typeof searchQuery !== "string" && !search) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
setSearchQuery(search);
|
|
58
|
+
if (searchQuery !== search) {
|
|
59
|
+
if (!search) {
|
|
60
|
+
// In case of empty `search` - remove it from `querystring`
|
|
61
|
+
query.delete("search");
|
|
62
|
+
} else {
|
|
63
|
+
// Otherwise, add it to `querystring`
|
|
64
|
+
query.set("search", search);
|
|
65
|
+
}
|
|
66
|
+
history.push("/audit-logs?".concat(query.toString()));
|
|
67
|
+
}
|
|
68
|
+
}, 500), []);
|
|
69
|
+
|
|
70
|
+
// Set "search" from search "query" on page load.
|
|
71
|
+
(0, _react.useEffect)(function () {
|
|
72
|
+
setSearch(searchQuery);
|
|
73
|
+
}, [searchQuery]);
|
|
74
|
+
|
|
75
|
+
// When "search" changes, trigger search-related logics
|
|
76
|
+
(0, _react.useEffect)(function () {
|
|
77
|
+
updateSearch({
|
|
78
|
+
search: search,
|
|
79
|
+
query: query
|
|
80
|
+
});
|
|
81
|
+
}, [search]);
|
|
82
|
+
var records = (0, _react.useMemo)(function () {
|
|
83
|
+
var _listUsers$adminUsers, _listUsers$adminUsers2;
|
|
84
|
+
var users = (listUsers === null || listUsers === void 0 ? void 0 : (_listUsers$adminUsers = listUsers.adminUsers) === null || _listUsers$adminUsers === void 0 ? void 0 : (_listUsers$adminUsers2 = _listUsers$adminUsers.users) === null || _listUsers$adminUsers2 === void 0 ? void 0 : _listUsers$adminUsers2.data) || [];
|
|
85
|
+
return (0, _transformCmsContentEntriesToRecordEntries.transformCmsContentEntriesToRecordEntries)(initialRecords, users);
|
|
86
|
+
}, [initialRecords, listUsers]);
|
|
87
|
+
(0, _react.useEffect)(function () {
|
|
88
|
+
if (!(sorting !== null && sorting !== void 0 && sorting.length)) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
var sort = (0, _appAco.createSort)(sorting);
|
|
92
|
+
if (!sort) {
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
setListSort(sort);
|
|
96
|
+
}, [sorting]);
|
|
97
|
+
return {
|
|
98
|
+
isListLoading: isListLoading || usersLoading,
|
|
99
|
+
isListLoadingMore: isListLoadingMore,
|
|
100
|
+
isSearch: isSearch,
|
|
101
|
+
listTitle: listTitle,
|
|
102
|
+
listMoreRecords: listMoreRecords,
|
|
103
|
+
meta: meta,
|
|
104
|
+
records: records,
|
|
105
|
+
search: search,
|
|
106
|
+
setSearch: setSearch,
|
|
107
|
+
sorting: sorting,
|
|
108
|
+
setSorting: setSorting,
|
|
109
|
+
showingFilters: showingFilters,
|
|
110
|
+
showFilters: showFilters,
|
|
111
|
+
hideFilters: hideFilters,
|
|
112
|
+
setFilters: setFilters
|
|
113
|
+
};
|
|
114
|
+
};
|
|
115
|
+
exports.useAuditLogsList = useAuditLogsList;
|
|
116
|
+
|
|
117
|
+
//# sourceMappingURL=useAuditLogsList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactHooks","_debounce","_interopRequireDefault","_reactRouter","_appAco","_transformCmsContentEntriesToRecordEntries","_graphql","useAuditLogsList","hasAccessToUsers","_useRouter","useRouter","history","_useAcoList","useAcoList","isListLoading","isListLoadingMore","isSearch","listMoreRecords","listTitle","meta","initialRecords","records","setSearchQuery","setListSort","setFilters","showFilters","hideFilters","showingFilters","_useState","useState","_useState2","_slicedToArray2","default","sorting","setSorting","_useState3","_useState4","search","setSearch","query","URLSearchParams","location","searchQuery","get","_useQuery","useQuery","LIST_USERS","skip","listUsers","data","usersLoading","loading","updateSearch","useCallback","debounce","_ref","delete","set","push","concat","toString","useEffect","useMemo","_listUsers$adminUsers","_listUsers$adminUsers2","users","adminUsers","transformCmsContentEntriesToRecordEntries","length","sort","createSort","exports"],"sources":["useAuditLogsList.ts"],"sourcesContent":["import { useCallback, useEffect, useState, useMemo } from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\nimport debounce from \"lodash/debounce\";\n\nimport { useRouter } from \"@webiny/react-router\";\nimport { OnSortingChange, Sorting } from \"@webiny/ui/DataTable\";\nimport { useAcoList, createSort } from \"@webiny/app-aco\";\nimport { ListMeta } from \"@webiny/app-aco/types\";\n\nimport {\n Entry,\n transformCmsContentEntriesToRecordEntries\n} from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { LIST_USERS } from \"~/graphql\";\nimport { AuditLog, User } from \"~/types\";\n\ninterface UpdateSearchCallableParams {\n search: string;\n query: URLSearchParams;\n}\ninterface UpdateSearchCallable {\n (params: UpdateSearchCallableParams): void;\n}\n\nexport interface UseAuditLogs {\n hideFilters: () => void;\n isListLoading: boolean;\n isListLoadingMore: boolean;\n isSearch: boolean;\n listMoreRecords: () => void;\n listTitle?: string;\n meta: ListMeta;\n records: Entry[];\n search: string;\n setSearch: (value: string) => void;\n setSorting: OnSortingChange;\n showFilters: () => void;\n showingFilters: boolean;\n sorting: Sorting;\n setFilters: (data: Record<string, any>) => void;\n}\n\nexport const useAuditLogsList = (hasAccessToUsers: boolean): UseAuditLogs => {\n const { history } = useRouter();\n\n const {\n isListLoading,\n isListLoadingMore,\n isSearch,\n listMoreRecords,\n listTitle,\n meta,\n records: initialRecords,\n setSearchQuery,\n setListSort,\n setFilters,\n showFilters,\n hideFilters,\n showingFilters\n } = useAcoList<AuditLog>();\n\n const [sorting, setSorting] = useState<Sorting>([]);\n const [search, setSearch] = useState<string>(\"\");\n const query = new URLSearchParams(location.search);\n const searchQuery = query.get(\"search\") || \"\";\n\n const { data: listUsers, loading: usersLoading } = useQuery(LIST_USERS, {\n skip: !hasAccessToUsers\n });\n\n // Search-related logics: update `searchQuery` state and querystring\n const updateSearch = useCallback(\n debounce<UpdateSearchCallable>(({ search, query }) => {\n const searchQuery = query.get(\"search\");\n\n if (typeof searchQuery !== \"string\" && !search) {\n return;\n }\n\n setSearchQuery(search);\n\n if (searchQuery !== search) {\n if (!search) {\n // In case of empty `search` - remove it from `querystring`\n query.delete(\"search\");\n } else {\n // Otherwise, add it to `querystring`\n query.set(\"search\", search);\n }\n history.push(`/audit-logs?${query.toString()}`);\n }\n }, 500),\n []\n );\n\n // Set \"search\" from search \"query\" on page load.\n useEffect(() => {\n setSearch(searchQuery);\n }, [searchQuery]);\n\n // When \"search\" changes, trigger search-related logics\n useEffect(() => {\n updateSearch({ search, query });\n }, [search]);\n\n const records = useMemo(() => {\n const users: User[] = listUsers?.adminUsers?.users?.data || [];\n\n return transformCmsContentEntriesToRecordEntries(initialRecords, users);\n }, [initialRecords, listUsers]);\n\n useEffect(() => {\n if (!sorting?.length) {\n return;\n }\n const sort = createSort(sorting);\n if (!sort) {\n return;\n }\n setListSort(sort);\n }, [sorting]);\n\n return {\n isListLoading: isListLoading || usersLoading,\n isListLoadingMore,\n isSearch,\n listTitle,\n listMoreRecords,\n meta,\n records,\n search,\n setSearch,\n sorting,\n setSorting,\n showingFilters,\n showFilters,\n hideFilters,\n setFilters\n };\n};\n"],"mappings":"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"}
|
package/index.d.ts
ADDED
package/index.js
ADDED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
|
|
4
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard").default;
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.AuditLogs = void 0;
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _reactHooks = require("@apollo/react-hooks");
|
|
11
|
+
var _quick_reference_all = require("@material-symbols/svg-400/outlined/quick_reference_all.svg");
|
|
12
|
+
var _appAdmin = require("@webiny/app-admin");
|
|
13
|
+
var _appSecurity = require("@webiny/app-security");
|
|
14
|
+
var _appAco = require("@webiny/app-aco");
|
|
15
|
+
var _list = require("./config/list");
|
|
16
|
+
var _LogsModule = require("./views/Logs/LogsModule");
|
|
17
|
+
var _permissionRenderer = require("./plugins/permissionRenderer");
|
|
18
|
+
var _Logs = _interopRequireDefault(require("./views/Logs/Logs"));
|
|
19
|
+
var _constants = require("./constants");
|
|
20
|
+
var AuditLogs = function AuditLogs() {
|
|
21
|
+
var client = (0, _reactHooks.useApolloClient)();
|
|
22
|
+
var createNavigateFolderStorageKey = (0, _react.useCallback)(function () {
|
|
23
|
+
return _constants.LOCAL_STORAGE_LATEST_VISITED_FOLDER;
|
|
24
|
+
}, []);
|
|
25
|
+
var _useWcp = (0, _appAdmin.useWcp)(),
|
|
26
|
+
canUseFeature = _useWcp.canUseFeature;
|
|
27
|
+
if (!canUseFeature("auditLogs")) {
|
|
28
|
+
return null;
|
|
29
|
+
}
|
|
30
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_LogsModule.LogsModule, null), /*#__PURE__*/_react.default.createElement(_appAdmin.Plugin, null, /*#__PURE__*/_react.default.createElement(_appSecurity.HasPermission, {
|
|
31
|
+
any: ["al.*"]
|
|
32
|
+
}, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
|
|
33
|
+
name: "auditLogs",
|
|
34
|
+
label: "Audit Logs",
|
|
35
|
+
icon: /*#__PURE__*/_react.default.createElement(_quick_reference_all.ReactComponent, null)
|
|
36
|
+
}, /*#__PURE__*/_react.default.createElement(_appAdmin.AddMenu, {
|
|
37
|
+
name: "auditLogs.logs",
|
|
38
|
+
label: "Logs",
|
|
39
|
+
path: "/audit-logs"
|
|
40
|
+
})), /*#__PURE__*/_react.default.createElement(_appAdmin.AddRoute, {
|
|
41
|
+
exact: true,
|
|
42
|
+
path: "/audit-logs"
|
|
43
|
+
}, /*#__PURE__*/_react.default.createElement(_appAdmin.Layout, {
|
|
44
|
+
title: "Audit Logs - Logs"
|
|
45
|
+
}, /*#__PURE__*/_react.default.createElement(_list.AuditLogsListWithConfig, null, /*#__PURE__*/_react.default.createElement(_appAco.AcoProvider, {
|
|
46
|
+
id: "AuditLogs",
|
|
47
|
+
client: client,
|
|
48
|
+
createNavigateFolderStorageKey: createNavigateFolderStorageKey
|
|
49
|
+
}, /*#__PURE__*/_react.default.createElement(_Logs.default, null))))))), /*#__PURE__*/_react.default.createElement(_permissionRenderer.AuditLogsPermissions, null));
|
|
50
|
+
};
|
|
51
|
+
exports.AuditLogs = AuditLogs;
|
|
52
|
+
|
|
53
|
+
//# sourceMappingURL=index.js.map
|
package/index.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactHooks","_quick_reference_all","_appAdmin","_appSecurity","_appAco","_list","_LogsModule","_permissionRenderer","_Logs","_interopRequireDefault","_constants","AuditLogs","client","useApolloClient","createNavigateFolderStorageKey","useCallback","LOCAL_STORAGE_LATEST_VISITED_FOLDER","_useWcp","useWcp","canUseFeature","default","createElement","Fragment","LogsModule","Plugin","HasPermission","any","AddMenu","name","label","icon","ReactComponent","path","AddRoute","exact","Layout","title","AuditLogsListWithConfig","AcoProvider","id","AuditLogsPermissions","exports"],"sources":["index.tsx"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { ReactComponent as Icon } from \"@material-symbols/svg-400/outlined/quick_reference_all.svg\";\n\nimport { AddMenu, AddRoute, Layout, Plugin, useWcp } from \"@webiny/app-admin\";\nimport { HasPermission } from \"@webiny/app-security\";\nimport { AcoProvider } from \"@webiny/app-aco\";\n\nimport { AuditLogsListWithConfig } from \"~/config/list\";\nimport { LogsModule } from \"~/views/Logs/LogsModule\";\nimport { AuditLogsPermissions } from \"~/plugins/permissionRenderer\";\nimport AuditLogsView from \"~/views/Logs/Logs\";\nimport { LOCAL_STORAGE_LATEST_VISITED_FOLDER } from \"~/constants\";\n\nexport const AuditLogs: React.FC = () => {\n const client = useApolloClient();\n\n const createNavigateFolderStorageKey = useCallback(() => {\n return LOCAL_STORAGE_LATEST_VISITED_FOLDER;\n }, []);\n\n const { canUseFeature } = useWcp();\n if (!canUseFeature(\"auditLogs\")) {\n return null;\n }\n\n return (\n <>\n <LogsModule />\n <Plugin>\n <HasPermission any={[\"al.*\"]}>\n <AddMenu name=\"auditLogs\" label={`Audit Logs`} icon={<Icon />}>\n <AddMenu name={\"auditLogs.logs\"} label={`Logs`} path=\"/audit-logs\" />\n </AddMenu>\n <AddRoute exact path={\"/audit-logs\"}>\n <Layout title={\"Audit Logs - Logs\"}>\n <AuditLogsListWithConfig>\n <AcoProvider\n id=\"AuditLogs\"\n client={client}\n createNavigateFolderStorageKey={createNavigateFolderStorageKey}\n >\n <AuditLogsView />\n </AcoProvider>\n </AuditLogsListWithConfig>\n </Layout>\n </AddRoute>\n </HasPermission>\n </Plugin>\n <AuditLogsPermissions />\n </>\n );\n};\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,WAAA,GAAAD,OAAA;AACA,IAAAE,oBAAA,GAAAF,OAAA;AAEA,IAAAG,SAAA,GAAAH,OAAA;AACA,IAAAI,YAAA,GAAAJ,OAAA;AACA,IAAAK,OAAA,GAAAL,OAAA;AAEA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,WAAA,GAAAP,OAAA;AACA,IAAAQ,mBAAA,GAAAR,OAAA;AACA,IAAAS,KAAA,GAAAC,sBAAA,CAAAV,OAAA;AACA,IAAAW,UAAA,GAAAX,OAAA;AAEO,IAAMY,SAAmB,GAAG,SAAtBA,SAAmBA,CAAA,EAAS;EACrC,IAAMC,MAAM,GAAG,IAAAC,2BAAe,EAAC,CAAC;EAEhC,IAAMC,8BAA8B,GAAG,IAAAC,kBAAW,EAAC,YAAM;IACrD,OAAOC,8CAAmC;EAC9C,CAAC,EAAE,EAAE,CAAC;EAEN,IAAAC,OAAA,GAA0B,IAAAC,gBAAM,EAAC,CAAC;IAA1BC,aAAa,GAAAF,OAAA,CAAbE,aAAa;EACrB,IAAI,CAACA,aAAa,CAAC,WAAW,CAAC,EAAE;IAC7B,OAAO,IAAI;EACf;EAEA,oBACItB,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAAAxB,MAAA,CAAAuB,OAAA,CAAAE,QAAA,qBACIzB,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACf,WAAA,CAAAiB,UAAU,MAAE,CAAC,eACd1B,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACnB,SAAA,CAAAsB,MAAM,qBACH3B,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAAClB,YAAA,CAAAsB,aAAa;IAACC,GAAG,EAAE,CAAC,MAAM;EAAE,gBACzB7B,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACnB,SAAA,CAAAyB,OAAO;IAACC,IAAI,EAAC,WAAW;IAACC,KAAK,cAAe;IAACC,IAAI,eAAEjC,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACpB,oBAAA,CAAA8B,cAAI,MAAE;EAAE,gBAC1DlC,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACnB,SAAA,CAAAyB,OAAO;IAACC,IAAI,EAAE,gBAAiB;IAACC,KAAK,QAAS;IAACG,IAAI,EAAC;EAAa,CAAE,CAC/D,CAAC,eACVnC,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACnB,SAAA,CAAA+B,QAAQ;IAACC,KAAK;IAACF,IAAI,EAAE;EAAc,gBAChCnC,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACnB,SAAA,CAAAiC,MAAM;IAACC,KAAK,EAAE;EAAoB,gBAC/BvC,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAAChB,KAAA,CAAAgC,uBAAuB,qBACpBxC,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACjB,OAAA,CAAAkC,WAAW;IACRC,EAAE,EAAC,WAAW;IACd3B,MAAM,EAAEA,MAAO;IACfE,8BAA8B,EAAEA;EAA+B,gBAE/DjB,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACb,KAAA,CAAAY,OAAa,MAAE,CACP,CACQ,CACrB,CACF,CACC,CACX,CAAC,eACTvB,MAAA,CAAAuB,OAAA,CAAAC,aAAA,CAACd,mBAAA,CAAAiC,oBAAoB,MAAE,CACzB,CAAC;AAEX,CAAC;AAACC,OAAA,CAAA9B,SAAA,GAAAA,SAAA"}
|