@webiny/app-audit-logs 6.4.11 → 6.6.0-alpha.1
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/components/Text.d.ts +1 -3
- package/components/Text.js +4 -9
- package/components/Text.js.map +1 -1
- package/config/list/AuditLogsListConfig.d.ts +11 -5
- package/config/list/AuditLogsListConfig.js +10 -1
- package/config/list/AuditLogsListConfig.js.map +1 -1
- package/config/list/Browser/index.d.ts +2 -3
- package/config/list/Details/PreviewTab.d.ts +15 -0
- package/config/list/Details/PreviewTab.js +32 -0
- package/config/list/Details/PreviewTab.js.map +1 -0
- package/config/list/Details/index.d.ts +8 -0
- package/config/list/Details/index.js +7 -0
- package/config/list/Details/index.js.map +1 -0
- package/features/listAuditLogs/ListAuditLogsGateway.d.ts +11 -0
- package/features/listAuditLogs/ListAuditLogsGateway.js +71 -0
- package/features/listAuditLogs/ListAuditLogsGateway.js.map +1 -0
- package/features/listAuditLogs/ListAuditLogsRepository.d.ts +11 -0
- package/features/listAuditLogs/ListAuditLogsRepository.js +35 -0
- package/features/listAuditLogs/ListAuditLogsRepository.js.map +1 -0
- package/features/listAuditLogs/ListAuditLogsUseCase.d.ts +10 -0
- package/features/listAuditLogs/ListAuditLogsUseCase.js +19 -0
- package/features/listAuditLogs/ListAuditLogsUseCase.js.map +1 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsGateway.d.ts +20 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsGateway.js +5 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsGateway.js.map +1 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsRepository.d.ts +20 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsRepository.js +5 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsRepository.js.map +1 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsUseCase.d.ts +20 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsUseCase.js +5 -0
- package/features/listAuditLogs/abstractions/ListAuditLogsUseCase.js.map +1 -0
- package/features/listAuditLogs/abstractions/index.d.ts +6 -0
- package/features/listAuditLogs/abstractions/index.js +3 -0
- package/features/listAuditLogs/feature.d.ts +3 -0
- package/features/listAuditLogs/feature.js +21 -0
- package/features/listAuditLogs/feature.js.map +1 -0
- package/features/listAuditLogs/index.d.ts +1 -0
- package/features/listAuditLogs/index.js +1 -0
- package/graphql.d.ts +1 -1
- package/graphql.js +1 -2
- package/graphql.js.map +1 -1
- package/hooks/graphql.d.ts +0 -18
- package/hooks/graphql.js +0 -44
- package/hooks/schema.d.ts +2 -3
- package/hooks/schema.js +1 -2
- package/hooks/schema.js.map +1 -1
- package/hooks/useAuditLogsList.d.ts +1 -4
- package/hooks/useAuditLogsList.js +34 -42
- package/hooks/useAuditLogsList.js.map +1 -1
- package/index.js +15 -5
- package/index.js.map +1 -1
- package/package.json +14 -17
- package/types.d.ts +2 -2
- package/views/Logs/Filters/FilterByAction.d.ts +1 -1
- package/views/Logs/Filters/FilterByAction.js +5 -3
- package/views/Logs/Filters/FilterByAction.js.map +1 -1
- package/views/Logs/Filters/FilterByApp.js +2 -1
- package/views/Logs/Filters/FilterByApp.js.map +1 -1
- package/views/Logs/Filters/FilterByCreatedBy.js +18 -10
- package/views/Logs/Filters/FilterByCreatedBy.js.map +1 -1
- package/views/Logs/Filters/FilterByCreatedOn.js +26 -27
- package/views/Logs/Filters/FilterByCreatedOn.js.map +1 -1
- package/views/Logs/Filters/FilterByEntity.d.ts +1 -1
- package/views/Logs/Filters/FilterByEntity.js +5 -3
- package/views/Logs/Filters/FilterByEntity.js.map +1 -1
- package/views/Logs/Filters/FilterByEntityId.js +2 -1
- package/views/Logs/Filters/FilterByEntityId.js.map +1 -1
- package/views/Logs/Filters/FilterByInitiator.js +16 -9
- package/views/Logs/Filters/FilterByInitiator.js.map +1 -1
- package/views/Logs/Filters/Filters.d.ts +1 -2
- package/views/Logs/Filters/Filters.js +61 -13
- package/views/Logs/Filters/Filters.js.map +1 -1
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js +4 -5
- package/views/Logs/Header/ButtonFilters/ButtonFilters.js.map +1 -1
- package/views/Logs/Header/Header.d.ts +2 -4
- package/views/Logs/Header/Header.js +4 -7
- package/views/Logs/Header/Header.js.map +1 -1
- package/views/Logs/LoadMoreButton/styled.d.ts +4 -4
- package/views/Logs/LoadMoreButton/styled.js +4 -6
- package/views/Logs/LoadMoreButton/styled.js.map +1 -1
- package/views/Logs/LogsView.js +4 -8
- package/views/Logs/LogsView.js.map +1 -1
- package/views/Logs/Preview/AuditLogDetailsPresenter.d.ts +13 -0
- package/views/Logs/Preview/AuditLogDetailsPresenter.js +36 -0
- package/views/Logs/Preview/AuditLogDetailsPresenter.js.map +1 -0
- package/views/Logs/Preview/Preview.d.ts +4 -2
- package/views/Logs/Preview/Preview.js +67 -22
- package/views/Logs/Preview/Preview.js.map +1 -1
- package/views/Logs/Preview/abstractions.d.ts +14 -0
- package/views/Logs/Preview/abstractions.js +5 -0
- package/views/Logs/Preview/abstractions.js.map +1 -0
- package/views/Logs/Preview/feature.d.ts +5 -0
- package/views/Logs/Preview/feature.js +22 -0
- package/views/Logs/Preview/feature.js.map +1 -0
- package/views/Logs/Preview/index.d.ts +2 -0
- package/views/Logs/Preview/index.js +1 -0
- package/views/Logs/Preview/tabs/AiPromptTabs.d.ts +2 -0
- package/views/Logs/Preview/tabs/AiPromptTabs.js +25 -0
- package/views/Logs/Preview/tabs/AiPromptTabs.js.map +1 -0
- package/views/Logs/Preview/tabs/LlmResponseTab.d.ts +4 -0
- package/views/Logs/Preview/tabs/LlmResponseTab.js +41 -0
- package/views/Logs/Preview/tabs/LlmResponseTab.js.map +1 -0
- package/views/Logs/Preview/tabs/SystemPromptTab.d.ts +4 -0
- package/views/Logs/Preview/tabs/SystemPromptTab.js +24 -0
- package/views/Logs/Preview/tabs/SystemPromptTab.js.map +1 -0
- package/views/Logs/Preview/tabs/UserPromptTab.d.ts +4 -0
- package/views/Logs/Preview/tabs/UserPromptTab.js +18 -0
- package/views/Logs/Preview/tabs/UserPromptTab.js.map +1 -0
- package/views/Logs/Preview/tabs/shared.d.ts +28 -0
- package/views/Logs/Preview/tabs/shared.js +16 -0
- package/views/Logs/Preview/tabs/shared.js.map +1 -0
- package/views/Logs/Table/Table.d.ts +3 -6
- package/views/Logs/Table/Table.js +25 -16
- package/views/Logs/Table/Table.js.map +1 -1
- package/views/Logs/Table/styled.d.ts +1 -16
- package/views/Logs/Table/styled.js +15 -55
- package/views/Logs/Table/styled.js.map +1 -1
- package/hooks/graphql.js.map +0 -1
- package/views/Logs/Filters/FilterByTimestamp.d.ts +0 -2
- package/views/Logs/Filters/FilterByTimestamp.js +0 -39
- package/views/Logs/Filters/FilterByTimestamp.js.map +0 -1
- package/views/Logs/Filters/styled.d.ts +0 -4
- package/views/Logs/Filters/styled.js +0 -13
- package/views/Logs/Filters/styled.js.map +0 -1
- package/views/Logs/Logs.d.ts +0 -3
- package/views/Logs/Logs.js +0 -76
- package/views/Logs/Logs.js.map +0 -1
- package/views/Logs/Preview/styled.d.ts +0 -5
- package/views/Logs/Preview/styled.js +0 -32
- package/views/Logs/Preview/styled.js.map +0 -1
|
@@ -1,16 +1 @@
|
|
|
1
|
-
|
|
2
|
-
export declare const ActionWrapper: import("@emotion/styled").StyledComponent<{
|
|
3
|
-
theme?: import("@emotion/react").Theme;
|
|
4
|
-
as?: React.ElementType;
|
|
5
|
-
} & {
|
|
6
|
-
value: ActionType;
|
|
7
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
8
|
-
export declare const wideColumn: string;
|
|
9
|
-
export declare const appColumn: string;
|
|
10
|
-
export declare const previewColumn: string;
|
|
11
|
-
export declare const TextGray: import("@emotion/styled").StyledComponent<import("~/components/Text.js").TypographyProps & {
|
|
12
|
-
theme?: import("@emotion/react").Theme;
|
|
13
|
-
}, {}, {}>;
|
|
14
|
-
export declare const TimezoneText: import("@emotion/styled").StyledComponent<import("~/components/Text.js").TypographyProps & {
|
|
15
|
-
theme?: import("@emotion/react").Theme;
|
|
16
|
-
}, {}, {}>;
|
|
1
|
+
export declare function getActionColorClasses(value: string): string;
|
|
@@ -1,57 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
padding: 0 8px;
|
|
17
|
-
width: fit-content;
|
|
18
|
-
border: 1px solid;
|
|
19
|
-
border-radius: 5px;
|
|
20
|
-
|
|
21
|
-
${({ value: actionType })=>{
|
|
22
|
-
if (ACTION_TYPES_COLORS_MAP.YELLOW.includes(actionType)) return `
|
|
23
|
-
background-color: #fac42810;
|
|
24
|
-
border-color: #fac428;
|
|
25
|
-
color: #fac428;
|
|
26
|
-
`;
|
|
27
|
-
if (ACTION_TYPES_COLORS_MAP.RED.includes(actionType)) return `
|
|
28
|
-
background-color: #ff000010;
|
|
29
|
-
border-color: #ff0000;
|
|
30
|
-
color: #ff0000;
|
|
31
|
-
`;
|
|
32
|
-
return `
|
|
33
|
-
background-color: #00ccb010;
|
|
34
|
-
border-color: #00ccb0;
|
|
35
|
-
color: #00ccb0;
|
|
36
|
-
`;
|
|
37
|
-
}}
|
|
38
|
-
`;
|
|
39
|
-
const wideColumn = css`
|
|
40
|
-
width: auto !important;
|
|
41
|
-
`;
|
|
42
|
-
const appColumn = css`
|
|
43
|
-
width: 280px !important;
|
|
44
|
-
`;
|
|
45
|
-
const previewColumn = css`
|
|
46
|
-
width: 100px !important;
|
|
47
|
-
`;
|
|
48
|
-
const TextGray = styled(Text)`
|
|
49
|
-
color: "#616161";
|
|
50
|
-
`;
|
|
51
|
-
const TimezoneText = styled(TextGray)`
|
|
52
|
-
padding-left: 6px;
|
|
53
|
-
padding-right: 6px;
|
|
54
|
-
`;
|
|
55
|
-
export { ActionWrapper, TextGray, TimezoneText, appColumn, previewColumn, wideColumn };
|
|
1
|
+
import { ActionType } from "@webiny/common-audit-logs";
|
|
2
|
+
const YELLOW_ACTIONS = [
|
|
3
|
+
ActionType.UPDATE
|
|
4
|
+
];
|
|
5
|
+
const RED_ACTIONS = [
|
|
6
|
+
ActionType.DELETE,
|
|
7
|
+
ActionType.UNPUBLISH,
|
|
8
|
+
ActionType.MOVE_TO_TRASH
|
|
9
|
+
];
|
|
10
|
+
function getActionColorClasses(value) {
|
|
11
|
+
if (YELLOW_ACTIONS.includes(value)) return "bg-warning-100 border-warning-500 text-warning-700";
|
|
12
|
+
if (RED_ACTIONS.includes(value)) return "bg-destructive-100 border-destructive-500 text-destructive-700";
|
|
13
|
+
return "bg-success-100 border-success-500 text-success-700";
|
|
14
|
+
}
|
|
15
|
+
export { getActionColorClasses };
|
|
56
16
|
|
|
57
17
|
//# sourceMappingURL=styled.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"views/Logs/Table/styled.js","sources":["../../../../src/views/Logs/Table/styled.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"views/Logs/Table/styled.js","sources":["../../../../src/views/Logs/Table/styled.tsx"],"sourcesContent":["import { ActionType } from \"@webiny/common-audit-logs\";\n\nconst YELLOW_ACTIONS: string[] = [ActionType.UPDATE];\nconst RED_ACTIONS: string[] = [ActionType.DELETE, ActionType.UNPUBLISH, ActionType.MOVE_TO_TRASH];\n\nexport function getActionColorClasses(value: string): string {\n if (YELLOW_ACTIONS.includes(value)) {\n return \"bg-warning-100 border-warning-500 text-warning-700\";\n }\n if (RED_ACTIONS.includes(value)) {\n return \"bg-destructive-100 border-destructive-500 text-destructive-700\";\n }\n return \"bg-success-100 border-success-500 text-success-700\";\n}\n"],"names":["YELLOW_ACTIONS","ActionType","RED_ACTIONS","getActionColorClasses","value"],"mappings":";AAEA,MAAMA,iBAA2B;IAACC,WAAW,MAAM;CAAC;AACpD,MAAMC,cAAwB;IAACD,WAAW,MAAM;IAAEA,WAAW,SAAS;IAAEA,WAAW,aAAa;CAAC;AAE1F,SAASE,sBAAsBC,KAAa;IAC/C,IAAIJ,eAAe,QAAQ,CAACI,QACxB,OAAO;IAEX,IAAIF,YAAY,QAAQ,CAACE,QACrB,OAAO;IAEX,OAAO;AACX"}
|
package/hooks/graphql.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks/graphql.js","sources":["../../src/hooks/graphql.ts"],"sourcesContent":["import gql from \"graphql-tag\";\nimport type { IAuditLogRaw, IAuditLogsError, IAuditLogsMeta } from \"~/types.js\";\n\nexport interface IListAuditLogsVariablesWhere {\n app?: string;\n action?: string;\n createdBy?: string;\n entity?: string;\n entityId?: string;\n createdOn_gte?: Date;\n createdOn_lte?: Date;\n}\n\nexport interface IListAuditLogsVariables {\n where: Partial<IListAuditLogsVariablesWhere>;\n after: string | undefined;\n sort: \"ASC\" | \"DESC\" | undefined;\n limit: number | undefined;\n}\n\nexport type IListAuditLogsVariablesPartial = Partial<IListAuditLogsVariables>;\n\nexport interface IListAuditLogsResponse {\n auditLogs: {\n listAuditLogs: {\n data: IAuditLogRaw[] | null;\n meta: IAuditLogsMeta | null;\n error: IAuditLogsError | null;\n };\n };\n}\n\nexport const LIST_AUDIT_LOGS = gql`\n query ListAuditLogs(\n $where: ListAuditLogsWhere!\n $sort: AuditLogsSort\n $after: String\n $limit: Number\n ) {\n auditLogs {\n listAuditLogs(where: $where, after: $after, sort: $sort, limit: $limit) {\n data {\n id\n createdBy {\n id\n displayName\n type\n }\n createdOn\n app\n action\n message\n entity\n entityId\n tags\n expiresAt\n content\n }\n meta {\n hasMoreItems\n cursor\n }\n error {\n message\n code\n data\n stack\n }\n }\n }\n }\n`;\n"],"names":["LIST_AUDIT_LOGS","gql"],"mappings":";AAgCO,MAAMA,kBAAkBC,WAAG,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCnC,CAAC"}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
import react from "react";
|
|
2
|
-
import { format } from "date-fns";
|
|
3
|
-
import { Input } from "@webiny/admin-ui";
|
|
4
|
-
import { useBind } from "@webiny/form";
|
|
5
|
-
import { TimestampFiltersContainer } from "./styled.js";
|
|
6
|
-
const formatDateTime = (date)=>{
|
|
7
|
-
if (!date) return "";
|
|
8
|
-
return format(new Date(date), "yyyy-MM-dd'T'HH:mm");
|
|
9
|
-
};
|
|
10
|
-
const getValidFilterValue = (value)=>{
|
|
11
|
-
if ("" === value) return;
|
|
12
|
-
return new Date(value);
|
|
13
|
-
};
|
|
14
|
-
const FilterByTimestamp = ()=>{
|
|
15
|
-
const bindFrom = useBind({
|
|
16
|
-
name: "data.timestamp_gte",
|
|
17
|
-
beforeChange (value, cb) {
|
|
18
|
-
cb(getValidFilterValue(value));
|
|
19
|
-
}
|
|
20
|
-
});
|
|
21
|
-
const bindTo = useBind({
|
|
22
|
-
name: "data.timestamp_lte",
|
|
23
|
-
beforeChange (value, cb) {
|
|
24
|
-
cb(getValidFilterValue(value));
|
|
25
|
-
}
|
|
26
|
-
});
|
|
27
|
-
return /*#__PURE__*/ react.createElement(TimestampFiltersContainer, null, /*#__PURE__*/ react.createElement(Input, {
|
|
28
|
-
...bindFrom,
|
|
29
|
-
value: formatDateTime(bindFrom.value),
|
|
30
|
-
type: "datetime-local"
|
|
31
|
-
}), /*#__PURE__*/ react.createElement(Input, {
|
|
32
|
-
...bindTo,
|
|
33
|
-
value: formatDateTime(bindTo.value),
|
|
34
|
-
type: "datetime-local"
|
|
35
|
-
}));
|
|
36
|
-
};
|
|
37
|
-
export { FilterByTimestamp };
|
|
38
|
-
|
|
39
|
-
//# sourceMappingURL=FilterByTimestamp.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"views/Logs/Filters/FilterByTimestamp.js","sources":["../../../../src/views/Logs/Filters/FilterByTimestamp.tsx"],"sourcesContent":["import React from \"react\";\nimport { format } from \"date-fns\";\nimport { Input } from \"@webiny/admin-ui\";\nimport { useBind } from \"@webiny/form\";\nimport { TimestampFiltersContainer } from \"./styled.js\";\n\nconst formatDateTime = (date: string) => {\n if (!date) {\n return \"\";\n }\n\n return format(new Date(date), \"yyyy-MM-dd'T'HH:mm\");\n};\n\nconst getValidFilterValue = (value: string): Date | undefined => {\n if (value === \"\") {\n return undefined;\n }\n\n return new Date(value);\n};\n\nexport const FilterByTimestamp = () => {\n const bindFrom = useBind({\n name: \"data.timestamp_gte\",\n beforeChange(value, cb) {\n cb(getValidFilterValue(value));\n }\n });\n\n const bindTo = useBind({\n name: \"data.timestamp_lte\",\n beforeChange(value, cb) {\n cb(getValidFilterValue(value));\n }\n });\n\n return (\n <TimestampFiltersContainer>\n <Input {...bindFrom} value={formatDateTime(bindFrom.value)} type=\"datetime-local\" />\n <Input {...bindTo} value={formatDateTime(bindTo.value)} type=\"datetime-local\" />\n </TimestampFiltersContainer>\n );\n};\n"],"names":["formatDateTime","date","format","Date","getValidFilterValue","value","FilterByTimestamp","bindFrom","useBind","cb","bindTo","TimestampFiltersContainer","Input"],"mappings":";;;;;AAMA,MAAMA,iBAAiB,CAACC;IACpB,IAAI,CAACA,MACD,OAAO;IAGX,OAAOC,OAAO,IAAIC,KAAKF,OAAO;AAClC;AAEA,MAAMG,sBAAsB,CAACC;IACzB,IAAIA,AAAU,OAAVA,OACA;IAGJ,OAAO,IAAIF,KAAKE;AACpB;AAEO,MAAMC,oBAAoB;IAC7B,MAAMC,WAAWC,QAAQ;QACrB,MAAM;QACN,cAAaH,KAAK,EAAEI,EAAE;YAClBA,GAAGL,oBAAoBC;QAC3B;IACJ;IAEA,MAAMK,SAASF,QAAQ;QACnB,MAAM;QACN,cAAaH,KAAK,EAAEI,EAAE;YAClBA,GAAGL,oBAAoBC;QAC3B;IACJ;IAEA,OAAO,WAAP,GACI,oBAACM,2BAAyBA,MAAAA,WAAAA,GACtB,oBAACC,OAAKA;QAAE,GAAGL,QAAQ;QAAE,OAAOP,eAAeO,SAAS,KAAK;QAAG,MAAK;sBACjE,oBAACK,OAAKA;QAAE,GAAGF,MAAM;QAAE,OAAOV,eAAeU,OAAO,KAAK;QAAG,MAAK;;AAGzE"}
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import styled from "@emotion/styled";
|
|
2
|
-
const TimestampFiltersContainer = styled.div`
|
|
3
|
-
display: flex;
|
|
4
|
-
column-gap: 16px;
|
|
5
|
-
grow: 1;
|
|
6
|
-
|
|
7
|
-
.relative {
|
|
8
|
-
height: 32px;
|
|
9
|
-
}
|
|
10
|
-
`;
|
|
11
|
-
export { TimestampFiltersContainer };
|
|
12
|
-
|
|
13
|
-
//# sourceMappingURL=styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"views/Logs/Filters/styled.js","sources":["../../../../src/views/Logs/Filters/styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\n\nexport const TimestampFiltersContainer = styled.div`\n display: flex;\n column-gap: 16px;\n grow: 1;\n\n .relative {\n height: 32px;\n }\n`;\n"],"names":["TimestampFiltersContainer","styled"],"mappings":";AAEO,MAAMA,4BAA4BC,OAAO,GAAG,CAAC;;;;;;;;AAQpD,CAAC"}
|
package/views/Logs/Logs.d.ts
DELETED
package/views/Logs/Logs.js
DELETED
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import react, { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
-
import debounce from "lodash/debounce.js";
|
|
3
|
-
import { i18n } from "@webiny/app/i18n/index.js";
|
|
4
|
-
import { EmptyView, useSecurity } from "@webiny/app-admin";
|
|
5
|
-
import { Scrollbar } from "@webiny/admin-ui";
|
|
6
|
-
import { LoadingMore } from "./LoadingMore/index.js";
|
|
7
|
-
import { LoadMoreButton } from "./LoadMoreButton/index.js";
|
|
8
|
-
import { Header } from "./Header/index.js";
|
|
9
|
-
import { Filters } from "./Filters/index.js";
|
|
10
|
-
import { Table } from "./Table/index.js";
|
|
11
|
-
import { Preview } from "./Preview/index.js";
|
|
12
|
-
import { useAuditLogsList } from "../../hooks/index.js";
|
|
13
|
-
const t = i18n.ns("app-audit-logs/views/logs");
|
|
14
|
-
const AuditLogsView = ()=>{
|
|
15
|
-
const [selectedAuditLog, setSelectedAuditLog] = useState(null);
|
|
16
|
-
const handleAuditLogSelect = useCallback((auditLog)=>setSelectedAuditLog(auditLog), []);
|
|
17
|
-
const closePreviewModal = useCallback(()=>setSelectedAuditLog(null), []);
|
|
18
|
-
const { innerHeight: windowHeight } = window;
|
|
19
|
-
const [tableHeight, setTableHeight] = useState(0);
|
|
20
|
-
const tableRef = useRef(null);
|
|
21
|
-
const { getPermissions } = useSecurity();
|
|
22
|
-
const hasAccessToUsers = Boolean(getPermissions("adminUsers").length);
|
|
23
|
-
const list = useAuditLogsList();
|
|
24
|
-
useEffect(()=>{
|
|
25
|
-
setTableHeight(tableRef?.current?.clientHeight || 0);
|
|
26
|
-
return ()=>{
|
|
27
|
-
setTableHeight(0);
|
|
28
|
-
};
|
|
29
|
-
});
|
|
30
|
-
const loadMoreOnScroll = debounce(({ scrollFrame })=>{
|
|
31
|
-
if (scrollFrame.top > 0.8 && !list.isListLoadingMore && list.meta.hasMoreItems) list.listMoreRecords();
|
|
32
|
-
}, 200);
|
|
33
|
-
return /*#__PURE__*/ react.createElement("div", {
|
|
34
|
-
className: "flex flex-col h-main-content"
|
|
35
|
-
}, /*#__PURE__*/ react.createElement(Header, {
|
|
36
|
-
title: "Audit Logs",
|
|
37
|
-
showingFilters: list.showingFilters,
|
|
38
|
-
showFilters: list.showFilters,
|
|
39
|
-
hideFilters: list.hideFilters
|
|
40
|
-
}), /*#__PURE__*/ react.createElement("div", {
|
|
41
|
-
className: "flex-1 min-h-0"
|
|
42
|
-
}, /*#__PURE__*/ react.createElement(Filters, {
|
|
43
|
-
showingFilters: list.showingFilters,
|
|
44
|
-
setWhere: list.setWhere
|
|
45
|
-
}), 0 !== list.records.length || list.isListLoading ? /*#__PURE__*/ react.createElement(react.Fragment, null, /*#__PURE__*/ react.createElement(Preview, {
|
|
46
|
-
auditLog: selectedAuditLog,
|
|
47
|
-
onClose: ()=>closePreviewModal(),
|
|
48
|
-
hasAccessToUsers: hasAccessToUsers
|
|
49
|
-
}), /*#__PURE__*/ react.createElement(Scrollbar, {
|
|
50
|
-
"data-testid": "default-data-list",
|
|
51
|
-
onScrollFrame: (scrollFrame)=>loadMoreOnScroll({
|
|
52
|
-
scrollFrame
|
|
53
|
-
})
|
|
54
|
-
}, /*#__PURE__*/ react.createElement(Table, {
|
|
55
|
-
ref: tableRef,
|
|
56
|
-
records: list.records,
|
|
57
|
-
loading: list.isListLoading && !list.isListLoadingMore,
|
|
58
|
-
handleRecordSelect: handleAuditLogSelect,
|
|
59
|
-
sorting: list.sorting,
|
|
60
|
-
onSortingChange: list.setSorting,
|
|
61
|
-
hasAccessToUsers: hasAccessToUsers
|
|
62
|
-
}), /*#__PURE__*/ react.createElement(LoadMoreButton, {
|
|
63
|
-
show: !list.isListLoading && list.meta.hasMoreItems,
|
|
64
|
-
disabled: list.isListLoadingMore,
|
|
65
|
-
windowHeight: windowHeight,
|
|
66
|
-
tableHeight: tableHeight,
|
|
67
|
-
onClick: list.listMoreRecords
|
|
68
|
-
})), list.isListLoadingMore && /*#__PURE__*/ react.createElement(LoadingMore, null)) : /*#__PURE__*/ react.createElement(EmptyView, {
|
|
69
|
-
title: t`No results found.`,
|
|
70
|
-
action: null
|
|
71
|
-
})));
|
|
72
|
-
};
|
|
73
|
-
const Logs = AuditLogsView;
|
|
74
|
-
export default Logs;
|
|
75
|
-
|
|
76
|
-
//# sourceMappingURL=Logs.js.map
|
package/views/Logs/Logs.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"views/Logs/Logs.js","sources":["../../../src/views/Logs/Logs.tsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from \"react\";\nimport debounce from \"lodash/debounce.js\";\nimport { i18n } from \"@webiny/app/i18n/index.js\";\nimport { EmptyView } from \"@webiny/app-admin\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport { Scrollbar } from \"@webiny/admin-ui\";\nimport { LoadingMore } from \"~/views/Logs/LoadingMore/index.js\";\nimport { LoadMoreButton } from \"~/views/Logs/LoadMoreButton/index.js\";\nimport { Header } from \"~/views/Logs/Header/index.js\";\nimport { Filters } from \"~/views/Logs/Filters/index.js\";\nimport { Table } from \"~/views/Logs/Table/index.js\";\nimport { Preview } from \"~/views/Logs/Preview/index.js\";\nimport { useAuditLogsList } from \"~/hooks/index.js\";\nimport type { IAuditLog } from \"~/types.js\";\n\nconst t = i18n.ns(\"app-audit-logs/views/logs\");\n\nconst AuditLogsView = () => {\n const [selectedAuditLog, setSelectedAuditLog] = useState<IAuditLog | null>(null);\n const handleAuditLogSelect = useCallback(\n (auditLog: IAuditLog) => setSelectedAuditLog(auditLog),\n []\n );\n const closePreviewModal = useCallback(() => setSelectedAuditLog(null), []);\n\n const { innerHeight: windowHeight } = window;\n const [tableHeight, setTableHeight] = useState(0);\n const tableRef = useRef<HTMLDivElement>(null);\n const { getPermissions } = useSecurity();\n const hasAccessToUsers = Boolean(getPermissions(\"adminUsers\").length);\n\n const list = useAuditLogsList();\n\n useEffect(() => {\n setTableHeight(tableRef?.current?.clientHeight || 0);\n\n return () => {\n setTableHeight(0);\n };\n });\n\n const loadMoreOnScroll = debounce(({ scrollFrame }) => {\n if (scrollFrame.top > 0.8 && !list.isListLoadingMore && list.meta.hasMoreItems) {\n list.listMoreRecords();\n }\n }, 200);\n\n return (\n <div className={\"flex flex-col h-main-content\"}>\n <Header\n title=\"Audit Logs\"\n showingFilters={list.showingFilters}\n showFilters={list.showFilters}\n hideFilters={list.hideFilters}\n />\n <div className={\"flex-1 min-h-0\"}>\n <Filters showingFilters={list.showingFilters} setWhere={list.setWhere} />\n {list.records.length === 0 && !list.isListLoading ? (\n <EmptyView title={t`No results found.`} action={null} />\n ) : (\n <>\n <Preview\n auditLog={selectedAuditLog}\n onClose={() => closePreviewModal()}\n hasAccessToUsers={hasAccessToUsers}\n />\n <Scrollbar\n data-testid=\"default-data-list\"\n onScrollFrame={scrollFrame => loadMoreOnScroll({ scrollFrame })}\n >\n <Table\n ref={tableRef}\n records={list.records}\n loading={list.isListLoading && !list.isListLoadingMore}\n handleRecordSelect={handleAuditLogSelect}\n sorting={list.sorting}\n onSortingChange={list.setSorting}\n hasAccessToUsers={hasAccessToUsers}\n />\n <LoadMoreButton\n show={!list.isListLoading && list.meta.hasMoreItems}\n disabled={list.isListLoadingMore}\n windowHeight={windowHeight}\n tableHeight={tableHeight}\n onClick={list.listMoreRecords}\n />\n </Scrollbar>\n {list.isListLoadingMore && <LoadingMore />}\n </>\n )}\n </div>\n </div>\n );\n};\n\nexport default AuditLogsView;\n"],"names":["t","i18n","AuditLogsView","selectedAuditLog","setSelectedAuditLog","useState","handleAuditLogSelect","useCallback","auditLog","closePreviewModal","windowHeight","window","tableHeight","setTableHeight","tableRef","useRef","getPermissions","useSecurity","hasAccessToUsers","Boolean","list","useAuditLogsList","useEffect","loadMoreOnScroll","debounce","scrollFrame","Header","Filters","Preview","Scrollbar","Table","LoadMoreButton","LoadingMore","EmptyView"],"mappings":";;;;;;;;;;;;AAeA,MAAMA,IAAIC,KAAK,EAAE,CAAC;AAElB,MAAMC,gBAAgB;IAClB,MAAM,CAACC,kBAAkBC,oBAAoB,GAAGC,SAA2B;IAC3E,MAAMC,uBAAuBC,YACzB,CAACC,WAAwBJ,oBAAoBI,WAC7C,EAAE;IAEN,MAAMC,oBAAoBF,YAAY,IAAMH,oBAAoB,OAAO,EAAE;IAEzE,MAAM,EAAE,aAAaM,YAAY,EAAE,GAAGC;IACtC,MAAM,CAACC,aAAaC,eAAe,GAAGR,SAAS;IAC/C,MAAMS,WAAWC,OAAuB;IACxC,MAAM,EAAEC,cAAc,EAAE,GAAGC;IAC3B,MAAMC,mBAAmBC,QAAQH,eAAe,cAAc,MAAM;IAEpE,MAAMI,OAAOC;IAEbC,UAAU;QACNT,eAAeC,UAAU,SAAS,gBAAgB;QAElD,OAAO;YACHD,eAAe;QACnB;IACJ;IAEA,MAAMU,mBAAmBC,SAAS,CAAC,EAAEC,WAAW,EAAE;QAC9C,IAAIA,YAAY,GAAG,GAAG,OAAO,CAACL,KAAK,iBAAiB,IAAIA,KAAK,IAAI,CAAC,YAAY,EAC1EA,KAAK,eAAe;IAE5B,GAAG;IAEH,OAAO,WAAP,GACI,oBAAC;QAAI,WAAW;qBACZ,oBAACM,QAAMA;QACH,OAAM;QACN,gBAAgBN,KAAK,cAAc;QACnC,aAAaA,KAAK,WAAW;QAC7B,aAAaA,KAAK,WAAW;sBAEjC,oBAAC;QAAI,WAAW;qBACZ,oBAACO,SAAOA;QAAC,gBAAgBP,KAAK,cAAc;QAAE,UAAUA,KAAK,QAAQ;QACpEA,AAAwB,MAAxBA,KAAK,OAAO,CAAC,MAAM,IAAWA,KAAK,aAAa,G,cAG7C,wDACI,oBAACQ,SAAOA;QACJ,UAAUzB;QACV,SAAS,IAAMM;QACf,kBAAkBS;sBAEtB,oBAACW,WAASA;QACN,eAAY;QACZ,eAAeJ,CAAAA,cAAeF,iBAAiB;gBAAEE;YAAY;qBAE7D,oBAACK,OAAKA;QACF,KAAKhB;QACL,SAASM,KAAK,OAAO;QACrB,SAASA,KAAK,aAAa,IAAI,CAACA,KAAK,iBAAiB;QACtD,oBAAoBd;QACpB,SAASc,KAAK,OAAO;QACrB,iBAAiBA,KAAK,UAAU;QAChC,kBAAkBF;sBAEtB,oBAACa,gBAAcA;QACX,MAAM,CAACX,KAAK,aAAa,IAAIA,KAAK,IAAI,CAAC,YAAY;QACnD,UAAUA,KAAK,iBAAiB;QAChC,cAAcV;QACd,aAAaE;QACb,SAASQ,KAAK,eAAe;SAGpCA,KAAK,iBAAiB,IAAI,WAAJ,GAAI,oBAACY,aAAWA,SA9BK,WAAH,GAC7C,oBAACC,WAASA;QAAC,OAAOjC,CAAC,CAAC,iBAAiB,CAAC;QAAE,QAAQ;;AAmCpE;AAEA,aAAeE"}
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
export declare const PayloadWrapper: import("@emotion/styled").StyledComponent<{
|
|
2
|
-
theme?: import("@emotion/react").Theme;
|
|
3
|
-
as?: React.ElementType;
|
|
4
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, {}>;
|
|
5
|
-
export declare const previewDialog: string;
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import styled from "@emotion/styled";
|
|
2
|
-
import { css } from "@emotion/css";
|
|
3
|
-
const PayloadWrapper = styled("div")`
|
|
4
|
-
#brace-editor {
|
|
5
|
-
height: 280px !important;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
.ace_print-margin,
|
|
9
|
-
.ace_active-line,
|
|
10
|
-
.ace_gutter-active-line,
|
|
11
|
-
.ace_cursor-layer {
|
|
12
|
-
display: none;
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
.ace_line,
|
|
16
|
-
.ace_gutter-cell {
|
|
17
|
-
height: 12px !important;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.ace_gutter-layer {
|
|
21
|
-
width: 47px !important;
|
|
22
|
-
}
|
|
23
|
-
`;
|
|
24
|
-
const previewDialog = css`
|
|
25
|
-
& .mdc-dialog__surface {
|
|
26
|
-
width: 800px;
|
|
27
|
-
min-width: 800px;
|
|
28
|
-
}
|
|
29
|
-
`;
|
|
30
|
-
export { PayloadWrapper, previewDialog };
|
|
31
|
-
|
|
32
|
-
//# sourceMappingURL=styled.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"views/Logs/Preview/styled.js","sources":["../../../../src/views/Logs/Preview/styled.tsx"],"sourcesContent":["import styled from \"@emotion/styled\";\nimport { css } from \"@emotion/css\";\n\nexport const PayloadWrapper = styled(\"div\")`\n #brace-editor {\n height: 280px !important;\n }\n\n .ace_print-margin,\n .ace_active-line,\n .ace_gutter-active-line,\n .ace_cursor-layer {\n display: none;\n }\n\n .ace_line,\n .ace_gutter-cell {\n height: 12px !important;\n }\n\n .ace_gutter-layer {\n width: 47px !important;\n }\n`;\n\nexport const previewDialog = css`\n & .mdc-dialog__surface {\n width: 800px;\n min-width: 800px;\n }\n`;\n"],"names":["PayloadWrapper","styled","previewDialog","css"],"mappings":";;AAGO,MAAMA,iBAAiBC,OAAO,MAAM,CAAC;;;;;;;;;;;;;;;;;;;;AAoB5C,CAAC;AAEM,MAAMC,gBAAgBC,GAAG,CAAC;;;;;AAKjC,CAAC"}
|