@webiny/app-audit-logs 6.0.0-alpha.0 → 6.0.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 -1
- package/components/Text.js +1 -1
- package/components/Text.js.map +1 -1
- package/config/list/AuditLogsListConfig.js.map +1 -1
- package/config/list/Browser/index.d.ts +2 -2
- package/config/list/Browser/index.js.map +1 -1
- package/graphql.js +1 -1
- package/graphql.js.map +1 -1
- package/hooks/useAuditLogsList.d.ts +3 -3
- package/hooks/useAuditLogsList.js.map +1 -1
- package/package.json +15 -15
- package/plugins/permissionRenderer/AuditLogsPermissions.d.ts +1 -1
- package/plugins/permissionRenderer/AuditLogsPermissions.js.map +1 -1
- package/plugins/permissionRenderer/index.js.map +1 -1
- package/types.d.ts +2 -2
- package/types.js.map +1 -1
- package/utils/transformCmsContentEntriesToRecordEntries.d.ts +2 -2
- package/utils/transformCmsContentEntriesToRecordEntries.js +1 -1
- package/utils/transformCmsContentEntriesToRecordEntries.js.map +1 -1
- package/views/Logs/Filters/FilterByInitiator.js.map +1 -1
- package/views/Logs/Filters/Filters.js.map +1 -1
- package/views/Logs/LoadMoreButton/LoadMoreButton.d.ts +1 -1
- package/views/Logs/LoadMoreButton/LoadMoreButton.js.map +1 -1
- package/views/Logs/Logs.js.map +1 -1
- package/views/Logs/Preview/Preview.d.ts +1 -1
- package/views/Logs/Preview/Preview.js.map +1 -1
- package/views/Logs/Table/Table.d.ts +3 -3
- package/views/Logs/Table/Table.js.map +1 -1
package/components/Text.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TypographyProps } from "@webiny/ui/Typography";
|
|
1
|
+
import type { TypographyProps } from "@webiny/ui/Typography";
|
|
2
2
|
export declare const Text: import("@emotion/styled").StyledComponent<TypographyProps & {
|
|
3
3
|
theme?: import("@emotion/react").Theme | undefined;
|
|
4
4
|
}, {}, {}>;
|
package/components/Text.js
CHANGED
|
@@ -18,7 +18,7 @@ export const Text = /*#__PURE__*/_styled(Typography, process.env.NODE_ENV === "p
|
|
|
18
18
|
} : {
|
|
19
19
|
name: "l8l8b8",
|
|
20
20
|
styles: "white-space:nowrap;overflow:hidden;text-overflow:ellipsis",
|
|
21
|
-
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
21
|
+
map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRleHQudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNzQyIsImZpbGUiOiJUZXh0LnRzeCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBzdHlsZWQgZnJvbSBcIkBlbW90aW9uL3N0eWxlZFwiO1xuaW1wb3J0IHR5cGUgeyBUeXBvZ3JhcGh5UHJvcHMgfSBmcm9tIFwiQHdlYmlueS91aS9UeXBvZ3JhcGh5XCI7XG5pbXBvcnQgeyBUeXBvZ3JhcGh5IGFzIEJhc2VUeXBvZ3JhcGh5IH0gZnJvbSBcIkB3ZWJpbnkvdWkvVHlwb2dyYXBoeVwiO1xuXG5jb25zdCBUeXBvZ3JhcGh5ID0gKHByb3BzOiBUeXBvZ3JhcGh5UHJvcHMpID0+IHtcbiAgICByZXR1cm4gPEJhc2VUeXBvZ3JhcGh5IHRhZz17XCJzcGFuXCJ9IHsuLi5wcm9wc30gLz47XG59O1xuXG5leHBvcnQgY29uc3QgVGV4dCA9IHN0eWxlZChUeXBvZ3JhcGh5KWBcbiAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgIG92ZXJmbG93OiBoaWRkZW47XG4gICAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG5gO1xuIl19 */",
|
|
22
22
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
23
23
|
});
|
|
24
24
|
|
package/components/Text.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Typography","BaseTypography","props","createElement","Object","assign","tag","Text","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"sources":["Text.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport { Typography as BaseTypography
|
|
1
|
+
{"version":3,"names":["React","Typography","BaseTypography","props","createElement","Object","assign","tag","Text","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__"],"sources":["Text.tsx"],"sourcesContent":["import React from \"react\";\nimport styled from \"@emotion/styled\";\nimport type { TypographyProps } from \"@webiny/ui/Typography\";\nimport { Typography as BaseTypography } from \"@webiny/ui/Typography\";\n\nconst Typography = (props: TypographyProps) => {\n return <BaseTypography tag={\"span\"} {...props} />;\n};\n\nexport const Text = styled(Typography)`\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n`;\n"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AAGzB,SAASC,UAAU,IAAIC,cAAc,QAAQ,uBAAuB;AAEpE,MAAMD,UAAU,GAAIE,KAAsB,IAAK;EAC3C,oBAAOH,KAAA,CAAAI,aAAA,CAACF,cAAc,EAAAG,MAAA,CAAAC,MAAA;IAACC,GAAG,EAAE;EAAO,GAAKJ,KAAK,CAAG,CAAC;AACrD,CAAC;AAED,OAAO,MAAMK,IAAI,gBAAGC,OAAA,CAAOR,UAAU,EAAAS,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,EAAC,CAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA,EAIrC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useMemo","createConfigurableComponent","Browser","base","AuditLogsListConfig","Object","assign","Config","AuditLogsListWithConfig","WithConfig","useAuditLogsListConfig","config","useConfig","browser","filters","filtersToWhere"],"sources":["AuditLogsListConfig.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { createConfigurableComponent } from \"@webiny/react-properties\";\nimport { Browser
|
|
1
|
+
{"version":3,"names":["useMemo","createConfigurableComponent","Browser","base","AuditLogsListConfig","Object","assign","Config","AuditLogsListWithConfig","WithConfig","useAuditLogsListConfig","config","useConfig","browser","filters","filtersToWhere"],"sources":["AuditLogsListConfig.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { createConfigurableComponent } from \"@webiny/react-properties\";\nimport type { BrowserConfig } from \"./Browser\";\nimport { Browser } 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,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,2BAA2B,QAAQ,0BAA0B;AAEtE,SAASC,OAAO;AAEhB,MAAMC,IAAI,GAAGF,2BAA2B,CAAsB,qBAAqB,CAAC;AAEpF,OAAO,MAAMG,mBAAmB,GAAGC,MAAM,CAACC,MAAM,CAACH,IAAI,CAACI,MAAM,EAAE;EAAEL;AAAQ,CAAC,CAAC;AAC1E,OAAO,MAAMM,uBAAuB,GAAGL,IAAI,CAACM,UAAU;AAMtD,OAAO,SAASC,sBAAsBA,CAAA,EAAG;EACrC,MAAMC,MAAM,GAAGR,IAAI,CAACS,SAAS,CAAC,CAAC;EAE/B,MAAMC,OAAO,GAAGF,MAAM,CAACE,OAAO,IAAI,CAAC,CAAC;EAEpC,OAAOb,OAAO,CACV,OAAO;IACHa,OAAO,EAAE;MACL,GAAGA,OAAO;MACVC,OAAO,EAAE,CAAC,IAAID,OAAO,CAACC,OAAO,IAAI,EAAE,CAAC,CAAC;MACrCC,cAAc,EAAE,CAAC,IAAIF,OAAO,CAACE,cAAc,IAAI,EAAE,CAAC;IACtD;EACJ,CAAC,CAAC,EACF,CAACJ,MAAM,CACX,CAAC;AACL","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { FilterConfig } from "./Filter";
|
|
3
|
-
import { FiltersToWhereConverter } from "./FiltersToWhere";
|
|
2
|
+
import type { FilterConfig } from "./Filter";
|
|
3
|
+
import type { FiltersToWhereConverter } from "./FiltersToWhere";
|
|
4
4
|
export interface BrowserConfig {
|
|
5
5
|
filters: FilterConfig[];
|
|
6
6
|
filtersToWhere: FiltersToWhereConverter[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Filter","FiltersToWhere","Browser"],"sources":["index.ts"],"sourcesContent":["import { Filter
|
|
1
|
+
{"version":3,"names":["Filter","FiltersToWhere","Browser"],"sources":["index.ts"],"sourcesContent":["import type { FilterConfig } from \"./Filter\";\nimport { Filter } from \"./Filter\";\nimport type { FiltersToWhereConverter } from \"./FiltersToWhere\";\nimport { FiltersToWhere } from \"./FiltersToWhere\";\n\nexport interface BrowserConfig {\n filters: FilterConfig[];\n filtersToWhere: FiltersToWhereConverter[];\n}\n\nexport const Browser = {\n Filter,\n FiltersToWhere\n};\n"],"mappings":"AACA,SAASA,MAAM;AAEf,SAASC,cAAc;AAOvB,OAAO,MAAMC,OAAO,GAAG;EACnBF,MAAM;EACNC;AACJ,CAAC","ignoreList":[]}
|
package/graphql.js
CHANGED
package/graphql.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["gql","ERROR_FIELDS","LIST_USERS"],"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
|
|
1
|
+
{"version":3,"names":["gql","ERROR_FIELDS","LIST_USERS"],"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 groups {\n name\n }\n }\n error {\n ${ERROR_FIELDS}\n }\n }\n }\n }\n`;\n"],"mappings":"AAAA,OAAOA,GAAG,MAAM,aAAa;AAE7B,MAAMC,YAAY,GAAG,aAAc;AACnC;AACA;AACA;AACA,CAAC;AAED,OAAO,MAAMC,UAAe,GAAGF,GAAG;AAClC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAsBC,YAAY;AAClC;AACA;AACA;AACA;AACA,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { OnSortingChange, Sorting } from "@webiny/ui/DataTable";
|
|
2
|
-
import { ListMeta } from "@webiny/app-aco/types";
|
|
3
|
-
import { Entry } from "../utils/transformCmsContentEntriesToRecordEntries";
|
|
1
|
+
import type { OnSortingChange, Sorting } from "@webiny/ui/DataTable";
|
|
2
|
+
import type { ListMeta } from "@webiny/app-aco/types";
|
|
3
|
+
import type { Entry } from "../utils/transformCmsContentEntriesToRecordEntries";
|
|
4
4
|
export interface UseAuditLogs {
|
|
5
5
|
hideFilters: () => void;
|
|
6
6
|
isListLoading: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useQuery","debounce","useRouter","useAcoList","createSort","transformCmsContentEntriesToRecordEntries","LIST_USERS","useAuditLogsList","hasAccessToUsers","history","isListLoading","isListLoadingMore","isSearch","listMoreRecords","listTitle","meta","records","initialRecords","setSearchQuery","setListSort","setFilters","showFilters","hideFilters","showingFilters","sorting","setSorting","search","setSearch","query","URLSearchParams","location","searchQuery","get","data","listUsers","loading","usersLoading","skip","updateSearch","delete","set","push","toString","users","adminUsers","length","sort"],"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, SearchRecordItem } from \"@webiny/app-aco/types\";\n\nimport {\
|
|
1
|
+
{"version":3,"names":["useCallback","useEffect","useState","useMemo","useQuery","debounce","useRouter","useAcoList","createSort","transformCmsContentEntriesToRecordEntries","LIST_USERS","useAuditLogsList","hasAccessToUsers","history","isListLoading","isListLoadingMore","isSearch","listMoreRecords","listTitle","meta","records","initialRecords","setSearchQuery","setListSort","setFilters","showFilters","hideFilters","showingFilters","sorting","setSorting","search","setSearch","query","URLSearchParams","location","searchQuery","get","data","listUsers","loading","usersLoading","skip","updateSearch","delete","set","push","toString","users","adminUsers","length","sort"],"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 type { OnSortingChange, Sorting } from \"@webiny/ui/DataTable\";\nimport { useAcoList, createSort } from \"@webiny/app-aco\";\nimport type { ListMeta, SearchRecordItem } from \"@webiny/app-aco/types\";\n\nimport type { Entry } from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { transformCmsContentEntriesToRecordEntries } from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { LIST_USERS } from \"~/graphql\";\nimport type { 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<SearchRecordItem<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":"AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,QAAQ,EAAEC,OAAO,QAAQ,OAAO;AACjE,SAASC,QAAQ,QAAQ,qBAAqB;AAC9C,OAAOC,QAAQ,MAAM,iBAAiB;AAEtC,SAASC,SAAS,QAAQ,sBAAsB;AAEhD,SAASC,UAAU,EAAEC,UAAU,QAAQ,iBAAiB;AAIxD,SAASC,yCAAyC;AAClD,SAASC,UAAU;AA6BnB,OAAO,MAAMC,gBAAgB,GAAIC,gBAAyB,IAAmB;EACzE,MAAM;IAAEC;EAAQ,CAAC,GAAGP,SAAS,CAAC,CAAC;EAE/B,MAAM;IACFQ,aAAa;IACbC,iBAAiB;IACjBC,QAAQ;IACRC,eAAe;IACfC,SAAS;IACTC,IAAI;IACJC,OAAO,EAAEC,cAAc;IACvBC,cAAc;IACdC,WAAW;IACXC,UAAU;IACVC,WAAW;IACXC,WAAW;IACXC;EACJ,CAAC,GAAGpB,UAAU,CAA6B,CAAC;EAE5C,MAAM,CAACqB,OAAO,EAAEC,UAAU,CAAC,GAAG3B,QAAQ,CAAU,EAAE,CAAC;EACnD,MAAM,CAAC4B,MAAM,EAAEC,SAAS,CAAC,GAAG7B,QAAQ,CAAS,EAAE,CAAC;EAChD,MAAM8B,KAAK,GAAG,IAAIC,eAAe,CAACC,QAAQ,CAACJ,MAAM,CAAC;EAClD,MAAMK,WAAW,GAAGH,KAAK,CAACI,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;EAE7C,MAAM;IAAEC,IAAI,EAAEC,SAAS;IAAEC,OAAO,EAAEC;EAAa,CAAC,GAAGpC,QAAQ,CAACM,UAAU,EAAE;IACpE+B,IAAI,EAAE,CAAC7B;EACX,CAAC,CAAC;;EAEF;EACA,MAAM8B,YAAY,GAAG1C,WAAW,CAC5BK,QAAQ,CAAuB,CAAC;IAAEyB,MAAM;IAAEE;EAAM,CAAC,KAAK;IAClD,MAAMG,WAAW,GAAGH,KAAK,CAACI,GAAG,CAAC,QAAQ,CAAC;IAEvC,IAAI,OAAOD,WAAW,KAAK,QAAQ,IAAI,CAACL,MAAM,EAAE;MAC5C;IACJ;IAEAR,cAAc,CAACQ,MAAM,CAAC;IAEtB,IAAIK,WAAW,KAAKL,MAAM,EAAE;MACxB,IAAI,CAACA,MAAM,EAAE;QACT;QACAE,KAAK,CAACW,MAAM,CAAC,QAAQ,CAAC;MAC1B,CAAC,MAAM;QACH;QACAX,KAAK,CAACY,GAAG,CAAC,QAAQ,EAAEd,MAAM,CAAC;MAC/B;MACAjB,OAAO,CAACgC,IAAI,CAAC,eAAeb,KAAK,CAACc,QAAQ,CAAC,CAAC,EAAE,CAAC;IACnD;EACJ,CAAC,EAAE,GAAG,CAAC,EACP,EACJ,CAAC;;EAED;EACA7C,SAAS,CAAC,MAAM;IACZ8B,SAAS,CAACI,WAAW,CAAC;EAC1B,CAAC,EAAE,CAACA,WAAW,CAAC,CAAC;;EAEjB;EACAlC,SAAS,CAAC,MAAM;IACZyC,YAAY,CAAC;MAAEZ,MAAM;MAAEE;IAAM,CAAC,CAAC;EACnC,CAAC,EAAE,CAACF,MAAM,CAAC,CAAC;EAEZ,MAAMV,OAAO,GAAGjB,OAAO,CAAC,MAAM;IAC1B,MAAM4C,KAAa,GAAGT,SAAS,EAAEU,UAAU,EAAED,KAAK,EAAEV,IAAI,IAAI,EAAE;IAE9D,OAAO5B,yCAAyC,CAACY,cAAc,EAAE0B,KAAK,CAAC;EAC3E,CAAC,EAAE,CAAC1B,cAAc,EAAEiB,SAAS,CAAC,CAAC;EAE/BrC,SAAS,CAAC,MAAM;IACZ,IAAI,CAAC2B,OAAO,EAAEqB,MAAM,EAAE;MAClB;IACJ;IACA,MAAMC,IAAI,GAAG1C,UAAU,CAACoB,OAAO,CAAC;IAChC,IAAI,CAACsB,IAAI,EAAE;MACP;IACJ;IACA3B,WAAW,CAAC2B,IAAI,CAAC;EACrB,CAAC,EAAE,CAACtB,OAAO,CAAC,CAAC;EAEb,OAAO;IACHd,aAAa,EAAEA,aAAa,IAAI0B,YAAY;IAC5CzB,iBAAiB;IACjBC,QAAQ;IACRE,SAAS;IACTD,eAAe;IACfE,IAAI;IACJC,OAAO;IACPU,MAAM;IACNC,SAAS;IACTH,OAAO;IACPC,UAAU;IACVF,cAAc;IACdF,WAAW;IACXC,WAAW;IACXF;EACJ,CAAC;AACL,CAAC","ignoreList":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@webiny/app-audit-logs",
|
|
3
|
-
"version": "6.0.0-alpha.
|
|
3
|
+
"version": "6.0.0-alpha.1",
|
|
4
4
|
"main": "index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -12,18 +12,18 @@
|
|
|
12
12
|
"@apollo/react-hooks": "3.1.5",
|
|
13
13
|
"@emotion/react": "11.10.8",
|
|
14
14
|
"@emotion/styled": "11.10.6",
|
|
15
|
-
"@webiny/admin-ui": "6.0.0-alpha.
|
|
16
|
-
"@webiny/api-audit-logs": "6.0.0-alpha.
|
|
17
|
-
"@webiny/app": "6.0.0-alpha.
|
|
18
|
-
"@webiny/app-aco": "6.0.0-alpha.
|
|
19
|
-
"@webiny/app-admin": "6.0.0-alpha.
|
|
20
|
-
"@webiny/app-security": "6.0.0-alpha.
|
|
21
|
-
"@webiny/form": "6.0.0-alpha.
|
|
22
|
-
"@webiny/icons": "6.0.0-alpha.
|
|
23
|
-
"@webiny/plugins": "6.0.0-alpha.
|
|
24
|
-
"@webiny/react-properties": "6.0.0-alpha.
|
|
25
|
-
"@webiny/react-router": "6.0.0-alpha.
|
|
26
|
-
"@webiny/ui": "6.0.0-alpha.
|
|
15
|
+
"@webiny/admin-ui": "6.0.0-alpha.1",
|
|
16
|
+
"@webiny/api-audit-logs": "6.0.0-alpha.1",
|
|
17
|
+
"@webiny/app": "6.0.0-alpha.1",
|
|
18
|
+
"@webiny/app-aco": "6.0.0-alpha.1",
|
|
19
|
+
"@webiny/app-admin": "6.0.0-alpha.1",
|
|
20
|
+
"@webiny/app-security": "6.0.0-alpha.1",
|
|
21
|
+
"@webiny/form": "6.0.0-alpha.1",
|
|
22
|
+
"@webiny/icons": "6.0.0-alpha.1",
|
|
23
|
+
"@webiny/plugins": "6.0.0-alpha.1",
|
|
24
|
+
"@webiny/react-properties": "6.0.0-alpha.1",
|
|
25
|
+
"@webiny/react-router": "6.0.0-alpha.1",
|
|
26
|
+
"@webiny/ui": "6.0.0-alpha.1",
|
|
27
27
|
"date-fns": "2.29.3",
|
|
28
28
|
"emotion": "10.0.27",
|
|
29
29
|
"graphql-tag": "2.12.6",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
},
|
|
35
35
|
"devDependencies": {
|
|
36
36
|
"@types/react": "18.2.79",
|
|
37
|
-
"@webiny/project-utils": "6.0.0-alpha.
|
|
37
|
+
"@webiny/project-utils": "6.0.0-alpha.1",
|
|
38
38
|
"execa": "5.1.1",
|
|
39
39
|
"rimraf": "6.0.1",
|
|
40
40
|
"typescript": "5.3.3"
|
|
@@ -47,5 +47,5 @@
|
|
|
47
47
|
"build": "node ../cli/bin.js run build",
|
|
48
48
|
"watch": "node ../cli/bin.js run watch"
|
|
49
49
|
},
|
|
50
|
-
"gitHead": "
|
|
50
|
+
"gitHead": "9bd236cf5e689f209a11bec089207dcc2d41a53c"
|
|
51
51
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { SecurityPermission } from "@webiny/app-security/types";
|
|
2
|
+
import type { SecurityPermission } from "@webiny/app-security/types";
|
|
3
3
|
interface PageBuilderPermissionsProps {
|
|
4
4
|
value: SecurityPermission;
|
|
5
5
|
onChange: (value: SecurityPermission[]) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Fragment","useCallback","useMemo","Grid","Cell","Select","i18n","CannotUseAaclAlert","PermissionInfo","gridWithPaddingClass","Form","useSecurity","t","ns","AUDIT_LOGS","AUDIT_LOGS_FULL_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","AuditLogsPermissions","value","onChange","getPermission","cannotUseAAcl","onFormChange","formData","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","hasFullAccess","find","permissions","length","createElement","data","Bind","className","span","title"],"sources":["AuditLogsPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CannotUseAaclAlert,\n PermissionInfo,\n gridWithPaddingClass\n} from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport { SecurityPermission } from \"@webiny/app-security/types\";\nimport { AaclPermission } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst AUDIT_LOGS = \"al\";\nconst AUDIT_LOGS_FULL_ACCESS = \"al.*\";\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface PageBuilderPermissionsProps {\n value: SecurityPermission;\n onChange: (value: SecurityPermission[]) => void;\n}\nexport const AuditLogsPermissions = ({ value, onChange }: PageBuilderPermissionsProps) => {\n const { getPermission } = useSecurity();\n\n // We disable form elements for custom permissions if AACL cannot be used.\n const cannotUseAAcl = useMemo(() => {\n return !getPermission<AaclPermission>(\"aacl\", true);\n }, []);\n\n const onFormChange = useCallback(\n (formData: SecurityPermission) => {\n let newValue: SecurityPermission[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `al*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(AUDIT_LOGS));\n }\n\n if (formData.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (formData.accessLevel === FULL_ACCESS) {\n newValue.push({ name: AUDIT_LOGS_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === AUDIT_LOGS_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(AUDIT_LOGS));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const formData = {\n accessLevel: CUSTOM_ACCESS\n };\n\n return formData;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind }) => (\n <Fragment>\n <Grid className={gridWithPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAAcl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridWithPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === CUSTOM_ACCESS && <></>}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","Fragment","useCallback","useMemo","Grid","Cell","Select","i18n","CannotUseAaclAlert","PermissionInfo","gridWithPaddingClass","Form","useSecurity","t","ns","AUDIT_LOGS","AUDIT_LOGS_FULL_ACCESS","FULL_ACCESS","NO_ACCESS","CUSTOM_ACCESS","AuditLogsPermissions","value","onChange","getPermission","cannotUseAAcl","onFormChange","formData","newValue","Array","isArray","filter","item","name","startsWith","accessLevel","push","hasFullAccess","find","permissions","length","createElement","data","Bind","className","span","title"],"sources":["AuditLogsPermissions.tsx"],"sourcesContent":["import React, { Fragment, useCallback, useMemo } from \"react\";\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Select } from \"@webiny/ui/Select\";\nimport { i18n } from \"@webiny/app/i18n\";\nimport {\n CannotUseAaclAlert,\n PermissionInfo,\n gridWithPaddingClass\n} from \"@webiny/app-admin/components/Permissions\";\nimport { Form } from \"@webiny/form\";\nimport { useSecurity } from \"@webiny/app-security\";\nimport type { SecurityPermission } from \"@webiny/app-security/types\";\nimport type { AaclPermission } from \"@webiny/app-admin\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst AUDIT_LOGS = \"al\";\nconst AUDIT_LOGS_FULL_ACCESS = \"al.*\";\nconst FULL_ACCESS = \"full\";\nconst NO_ACCESS = \"no\";\nconst CUSTOM_ACCESS = \"custom\";\n\ninterface PageBuilderPermissionsProps {\n value: SecurityPermission;\n onChange: (value: SecurityPermission[]) => void;\n}\nexport const AuditLogsPermissions = ({ value, onChange }: PageBuilderPermissionsProps) => {\n const { getPermission } = useSecurity();\n\n // We disable form elements for custom permissions if AACL cannot be used.\n const cannotUseAAcl = useMemo(() => {\n return !getPermission<AaclPermission>(\"aacl\", true);\n }, []);\n\n const onFormChange = useCallback(\n (formData: SecurityPermission) => {\n let newValue: SecurityPermission[] = [];\n if (Array.isArray(value)) {\n // Let's just filter out the `al*` permission objects, it's easier to build new ones from scratch.\n newValue = value.filter(item => !item.name.startsWith(AUDIT_LOGS));\n }\n\n if (formData.accessLevel === NO_ACCESS) {\n onChange(newValue);\n return;\n }\n\n if (formData.accessLevel === FULL_ACCESS) {\n newValue.push({ name: AUDIT_LOGS_FULL_ACCESS });\n onChange(newValue);\n return;\n }\n\n // Handling custom access level.\n\n onChange(newValue);\n },\n [value]\n );\n\n const formData = useMemo(() => {\n if (!Array.isArray(value)) {\n return { accessLevel: NO_ACCESS };\n }\n\n const hasFullAccess = value.find(\n item => item.name === AUDIT_LOGS_FULL_ACCESS || item.name === \"*\"\n );\n if (hasFullAccess) {\n return { accessLevel: FULL_ACCESS };\n }\n\n const permissions = value.filter(item => item.name.startsWith(AUDIT_LOGS));\n if (!permissions.length) {\n return { accessLevel: NO_ACCESS };\n }\n\n const formData = {\n accessLevel: CUSTOM_ACCESS\n };\n\n return formData;\n }, []);\n\n return (\n <Form data={formData} onChange={onFormChange}>\n {({ data, Bind }) => (\n <Fragment>\n <Grid className={gridWithPaddingClass}>\n <Cell span={12}>\n {data.accessLevel === \"custom\" && cannotUseAAcl && (\n <CannotUseAaclAlert />\n )}\n </Cell>\n </Grid>\n <Grid className={gridWithPaddingClass}>\n <Cell span={6}>\n <PermissionInfo title={t`Access Level`} />\n </Cell>\n <Cell span={6}>\n <Bind name={\"accessLevel\"}>\n <Select>\n <option value={NO_ACCESS}>{t`No access`}</option>\n <option value={FULL_ACCESS}>{t`Full access`}</option>\n <option value={CUSTOM_ACCESS}>{t`Custom access`}</option>\n </Select>\n </Bind>\n </Cell>\n </Grid>\n {data.accessLevel === CUSTOM_ACCESS && <></>}\n </Fragment>\n )}\n </Form>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useEffect","ReactComponent","PermissionsIcon","i18n","plugins","Accordion","AuditLogsPermissions","AuditLogsPermissionsComponent","t","ns","createPermissions","type","name","render","props","createElement","Item","icon","Icon","label","title","description","register"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/manage_search.svg\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Accordion } from \"@webiny/admin-ui\";\nimport { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\n\nimport { AuditLogsPermissions as AuditLogsPermissionsComponent } from \"./AuditLogsPermissions\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst createPermissions = (): AdminAppPermissionRendererPlugin => {\n return {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-audit-logs\",\n render(props) {\n return (\n <Accordion.Item\n icon={\n <Accordion.Item.Icon\n icon={<PermissionsIcon />}\n label={\"Audit Logs Permissions\"}\n />\n }\n title={t`Audit Logs`}\n description={t`Manage Audit Logs app access permissions.`}\n data-testid={\"permission.al\"}\n >\n <AuditLogsPermissionsComponent {...props} />\n </Accordion.Item>\n );\n }\n };\n};\n\nexport const AuditLogsPermissions = () => {\n useEffect(() => {\n plugins.register(createPermissions());\n }, []);\n return null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,cAAc,IAAIC,eAAe,QAAQ,iCAAiC;AAEnF,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,SAAS,QAAQ,kBAAkB;AAG5C,SAASC,oBAAoB,IAAIC,6BAA6B;AAE9D,MAAMC,CAAC,GAAGL,IAAI,CAACM,EAAE,CAAC,2CAA2C,CAAC;AAE9D,MAAMC,iBAAiB,GAAGA,CAAA,KAAwC;EAC9D,OAAO;IACHC,IAAI,EAAE,gCAAgC;IACtCC,IAAI,EAAE,2CAA2C;IACjDC,MAAMA,CAACC,KAAK,EAAE;MACV,oBACIf,KAAA,CAAAgB,aAAA,CAACV,SAAS,CAACW,IAAI;QACXC,IAAI,eACAlB,KAAA,CAAAgB,aAAA,CAACV,SAAS,CAACW,IAAI,CAACE,IAAI;UAChBD,IAAI,eAAElB,KAAA,CAAAgB,aAAA,CAACb,eAAe,MAAE,CAAE;UAC1BiB,KAAK,EAAE;QAAyB,CACnC,CACJ;QACDC,KAAK,EAAEZ,CAAC,YAAa;QACrBa,WAAW,EAAEb,CAAC,2CAA4C;QAC1D,eAAa;MAAgB,gBAE7BT,KAAA,CAAAgB,aAAA,CAACR,6BAA6B,EAAKO,KAAQ,CAC/B,CAAC;IAEzB;EACJ,CAAC;AACL,CAAC;AAED,OAAO,MAAMR,oBAAoB,GAAGA,CAAA,KAAM;EACtCN,SAAS,CAAC,MAAM;IACZI,OAAO,CAACkB,QAAQ,CAACZ,iBAAiB,CAAC,CAAC,CAAC;EACzC,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useEffect","ReactComponent","PermissionsIcon","i18n","plugins","Accordion","AuditLogsPermissions","AuditLogsPermissionsComponent","t","ns","createPermissions","type","name","render","props","createElement","Item","icon","Icon","label","title","description","register"],"sources":["index.tsx"],"sourcesContent":["import React, { useEffect } from \"react\";\nimport { ReactComponent as PermissionsIcon } from \"@webiny/icons/manage_search.svg\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { plugins } from \"@webiny/plugins\";\nimport { Accordion } from \"@webiny/admin-ui\";\nimport type { AdminAppPermissionRendererPlugin } from \"@webiny/app-admin/types\";\n\nimport { AuditLogsPermissions as AuditLogsPermissionsComponent } from \"./AuditLogsPermissions\";\n\nconst t = i18n.ns(\"app-audit-logs/plugins/permissionRenderer\");\n\nconst createPermissions = (): AdminAppPermissionRendererPlugin => {\n return {\n type: \"admin-app-permissions-renderer\",\n name: \"admin-app-permissions-renderer-audit-logs\",\n render(props) {\n return (\n <Accordion.Item\n icon={\n <Accordion.Item.Icon\n icon={<PermissionsIcon />}\n label={\"Audit Logs Permissions\"}\n />\n }\n title={t`Audit Logs`}\n description={t`Manage Audit Logs app access permissions.`}\n data-testid={\"permission.al\"}\n >\n <AuditLogsPermissionsComponent {...props} />\n </Accordion.Item>\n );\n }\n };\n};\n\nexport const AuditLogsPermissions = () => {\n useEffect(() => {\n plugins.register(createPermissions());\n }, []);\n return null;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,SAAS,QAAQ,OAAO;AACxC,SAASC,cAAc,IAAIC,eAAe,QAAQ,iCAAiC;AAEnF,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,OAAO,QAAQ,iBAAiB;AACzC,SAASC,SAAS,QAAQ,kBAAkB;AAG5C,SAASC,oBAAoB,IAAIC,6BAA6B;AAE9D,MAAMC,CAAC,GAAGL,IAAI,CAACM,EAAE,CAAC,2CAA2C,CAAC;AAE9D,MAAMC,iBAAiB,GAAGA,CAAA,KAAwC;EAC9D,OAAO;IACHC,IAAI,EAAE,gCAAgC;IACtCC,IAAI,EAAE,2CAA2C;IACjDC,MAAMA,CAACC,KAAK,EAAE;MACV,oBACIf,KAAA,CAAAgB,aAAA,CAACV,SAAS,CAACW,IAAI;QACXC,IAAI,eACAlB,KAAA,CAAAgB,aAAA,CAACV,SAAS,CAACW,IAAI,CAACE,IAAI;UAChBD,IAAI,eAAElB,KAAA,CAAAgB,aAAA,CAACb,eAAe,MAAE,CAAE;UAC1BiB,KAAK,EAAE;QAAyB,CACnC,CACJ;QACDC,KAAK,EAAEZ,CAAC,YAAa;QACrBa,WAAW,EAAEb,CAAC,2CAA4C;QAC1D,eAAa;MAAgB,gBAE7BT,KAAA,CAAAgB,aAAA,CAACR,6BAA6B,EAAKO,KAAQ,CAC/B,CAAC;IAEzB;EACJ,CAAC;AACL,CAAC;AAED,OAAO,MAAMR,oBAAoB,GAAGA,CAAA,KAAM;EACtCN,SAAS,CAAC,MAAM;IACZI,OAAO,CAACkB,QAAQ,CAACZ,iBAAiB,CAAC,CAAC,CAAC;EACzC,CAAC,EAAE,EAAE,CAAC;EACN,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
package/types.d.ts
CHANGED
package/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["ActionType"],"sources":["types.ts"],"sourcesContent":["export enum ActionType {\n CREATE = \"CREATE\",\n UPDATE = \"UPDATE\",\n DELETE = \"DELETE\",\n MOVE_TO_TRASH = \"MOVE_TO_TRASH\",\n RESTORE_FROM_TRASH = \"RESTORE_FROM_TRASH\",\n PUBLISH = \"PUBLISH\",\n UNPUBLISH = \"UNPUBLISH\",\n IMPORT = \"IMPORT\",\n EXPORT = \"EXPORT\"\n}\n\nexport interface AuditLog {\n id: string;\n message: string;\n app: string;\n entity: string;\n entityId: string;\n action: ActionType;\n data: string;\n timestamp: Date;\n initiator: string;\n}\n\nexport interface User {\n id: string;\n firstName: string;\n lastName: string;\n
|
|
1
|
+
{"version":3,"names":["ActionType"],"sources":["types.ts"],"sourcesContent":["export enum ActionType {\n CREATE = \"CREATE\",\n UPDATE = \"UPDATE\",\n DELETE = \"DELETE\",\n MOVE_TO_TRASH = \"MOVE_TO_TRASH\",\n RESTORE_FROM_TRASH = \"RESTORE_FROM_TRASH\",\n PUBLISH = \"PUBLISH\",\n UNPUBLISH = \"UNPUBLISH\",\n IMPORT = \"IMPORT\",\n EXPORT = \"EXPORT\"\n}\n\nexport interface AuditLog {\n id: string;\n message: string;\n app: string;\n entity: string;\n entityId: string;\n action: ActionType;\n data: string;\n timestamp: Date;\n initiator: string;\n}\n\nexport interface User {\n id: string;\n firstName: string;\n lastName: string;\n groups?: {\n name: string;\n }[];\n}\n"],"mappings":"AAAA,WAAYA,UAAU,0BAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAVA,UAAU;EAAA,OAAVA,UAAU;AAAA","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { SearchRecordItem } from "@webiny/app-aco/types";
|
|
2
|
-
import { ActionType, AuditLog, User } from "../types";
|
|
1
|
+
import type { SearchRecordItem } from "@webiny/app-aco/types";
|
|
2
|
+
import type { ActionType, AuditLog, User } from "../types";
|
|
3
3
|
export type Entry = {
|
|
4
4
|
id: string;
|
|
5
5
|
message: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["auditLogsApps","transformCmsContentEntriesToRecordEntries","items","users","map","id","data","app","find","entity","entities","type","action","actions","user","initiator","message","displayName","label","value","link","linkToEntity","encodeURIComponent","entityId","savedOn","timestamp","name","firstName","lastName","role","
|
|
1
|
+
{"version":3,"names":["auditLogsApps","transformCmsContentEntriesToRecordEntries","items","users","map","id","data","app","find","entity","entities","type","action","actions","user","initiator","message","displayName","label","value","link","linkToEntity","encodeURIComponent","entityId","savedOn","timestamp","name","firstName","lastName","role","groups"],"sources":["transformCmsContentEntriesToRecordEntries.ts"],"sourcesContent":["import type { SearchRecordItem } from \"@webiny/app-aco/types\";\nimport { auditLogsApps } from \"@webiny/api-audit-logs/config\";\n\nimport type { ActionType, AuditLog, User } from \"~/types\";\n\nexport type Entry = {\n id: string;\n message: string;\n app: string;\n entity: {\n value: string;\n label: string;\n link?: string;\n };\n entityId: string;\n action: {\n label: string;\n value: ActionType;\n };\n data: string;\n savedOn: Date;\n initiator: {\n id: string;\n name: string;\n role: string;\n };\n};\n\nexport const transformCmsContentEntriesToRecordEntries = (\n items: SearchRecordItem<AuditLog>[],\n users: User[]\n): Entry[] => {\n return items.map(({ id, data }) => {\n const app = auditLogsApps.find(app => app.app === data.app);\n const entity = app?.entities?.find(entity => entity.type === data.entity);\n const action = entity?.actions?.find(action => action.type === data.action);\n const user = users.find(user => user.id === data.initiator);\n\n return {\n id,\n message: data.message,\n app: app?.displayName || \"-\",\n entity: {\n label: entity?.displayName || \"-\",\n value: data.entity,\n link: entity?.linkToEntity && entity.linkToEntity(encodeURIComponent(data.entityId))\n },\n entityId: data.entityId,\n action: {\n label: action?.displayName || \"-\",\n value: data.action\n },\n data: data.data,\n savedOn: data.timestamp,\n initiator: {\n id: data.initiator,\n name: `${user?.firstName} ${user?.lastName}`,\n role: user?.groups?.[0]?.name || \"\"\n }\n };\n });\n};\n"],"mappings":"AACA,SAASA,aAAa,QAAQ,+BAA+B;AA2B7D,OAAO,MAAMC,yCAAyC,GAAGA,CACrDC,KAAmC,EACnCC,KAAa,KACH;EACV,OAAOD,KAAK,CAACE,GAAG,CAAC,CAAC;IAAEC,EAAE;IAAEC;EAAK,CAAC,KAAK;IAC/B,MAAMC,GAAG,GAAGP,aAAa,CAACQ,IAAI,CAACD,GAAG,IAAIA,GAAG,CAACA,GAAG,KAAKD,IAAI,CAACC,GAAG,CAAC;IAC3D,MAAME,MAAM,GAAGF,GAAG,EAAEG,QAAQ,EAAEF,IAAI,CAACC,MAAM,IAAIA,MAAM,CAACE,IAAI,KAAKL,IAAI,CAACG,MAAM,CAAC;IACzE,MAAMG,MAAM,GAAGH,MAAM,EAAEI,OAAO,EAAEL,IAAI,CAACI,MAAM,IAAIA,MAAM,CAACD,IAAI,KAAKL,IAAI,CAACM,MAAM,CAAC;IAC3E,MAAME,IAAI,GAAGX,KAAK,CAACK,IAAI,CAACM,IAAI,IAAIA,IAAI,CAACT,EAAE,KAAKC,IAAI,CAACS,SAAS,CAAC;IAE3D,OAAO;MACHV,EAAE;MACFW,OAAO,EAAEV,IAAI,CAACU,OAAO;MACrBT,GAAG,EAAEA,GAAG,EAAEU,WAAW,IAAI,GAAG;MAC5BR,MAAM,EAAE;QACJS,KAAK,EAAET,MAAM,EAAEQ,WAAW,IAAI,GAAG;QACjCE,KAAK,EAAEb,IAAI,CAACG,MAAM;QAClBW,IAAI,EAAEX,MAAM,EAAEY,YAAY,IAAIZ,MAAM,CAACY,YAAY,CAACC,kBAAkB,CAAChB,IAAI,CAACiB,QAAQ,CAAC;MACvF,CAAC;MACDA,QAAQ,EAAEjB,IAAI,CAACiB,QAAQ;MACvBX,MAAM,EAAE;QACJM,KAAK,EAAEN,MAAM,EAAEK,WAAW,IAAI,GAAG;QACjCE,KAAK,EAAEb,IAAI,CAACM;MAChB,CAAC;MACDN,IAAI,EAAEA,IAAI,CAACA,IAAI;MACfkB,OAAO,EAAElB,IAAI,CAACmB,SAAS;MACvBV,SAAS,EAAE;QACPV,EAAE,EAAEC,IAAI,CAACS,SAAS;QAClBW,IAAI,EAAE,GAAGZ,IAAI,EAAEa,SAAS,IAAIb,IAAI,EAAEc,QAAQ,EAAE;QAC5CC,IAAI,EAAEf,IAAI,EAAEgB,MAAM,GAAG,CAAC,CAAC,EAAEJ,IAAI,IAAI;MACrC;IACJ,CAAC;EACL,CAAC,CAAC;AACN,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","useQuery","useBind","Select","LIST_USERS","getValidFilterValue","value","undefined","FilterByInitiator","data","listUsers","bind","name","beforeChange","cb","options","users","adminUsers","label","map","user","firstName","lastName","id","createElement","Object","assign","size","placeholder"],"sources":["FilterByInitiator.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\n\nimport { useBind } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\n\nimport { LIST_USERS } from \"~/graphql\";\nimport { User } from \"~/types\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByInitiator = () => {\n const { data: listUsers } = useQuery(LIST_USERS);\n const bind = useBind({\n name: \"data.initiator\",\n beforeChange(value, cb) {\n cb(getValidFilterValue(value));\n }\n });\n\n const options = useMemo(() => {\n const users: User[] = listUsers?.adminUsers?.users?.data || [];\n\n return [\n { label: \"All\", value: \"all\" },\n ...users.map(user => ({ label: `${user.firstName} ${user.lastName}`, value: user.id }))\n ];\n }, [listUsers]);\n\n return (\n <Select {...bind} size={\"medium\"} placeholder={\"Filter by Initiator\"} options={options} />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,OAAO,QAAQ,cAAc;AACtC,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,SAASC,UAAU;AAGnB,MAAMC,mBAAmB,GAAIC,KAAa,IAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAED,OAAO,MAAME,iBAAiB,GAAGA,CAAA,KAAM;EACnC,MAAM;IAAEC,IAAI,EAAEC;EAAU,CAAC,GAAGT,QAAQ,CAACG,UAAU,CAAC;EAChD,MAAMO,IAAI,GAAGT,OAAO,CAAC;IACjBU,IAAI,EAAE,gBAAgB;IACtBC,YAAYA,CAACP,KAAK,EAAEQ,EAAE,EAAE;MACpBA,EAAE,CAACT,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,MAAMS,OAAO,GAAGf,OAAO,CAAC,MAAM;IAC1B,MAAMgB,KAAa,GAAGN,SAAS,EAAEO,UAAU,EAAED,KAAK,EAAEP,IAAI,IAAI,EAAE;IAE9D,OAAO,CACH;MAAES,KAAK,EAAE,KAAK;MAAEZ,KAAK,EAAE;IAAM,CAAC,EAC9B,GAAGU,KAAK,CAACG,GAAG,CAACC,IAAI,KAAK;MAAEF,KAAK,EAAE,GAAGE,IAAI,CAACC,SAAS,IAAID,IAAI,CAACE,QAAQ,EAAE;MAAEhB,KAAK,EAAEc,IAAI,CAACG;IAAG,CAAC,CAAC,CAAC,CAC1F;EACL,CAAC,EAAE,CAACb,SAAS,CAAC,CAAC;EAEf,oBACIX,KAAA,CAAAyB,aAAA,CAACrB,MAAM,EAAAsB,MAAA,CAAAC,MAAA,KAAKf,IAAI;IAAEgB,IAAI,EAAE,QAAS;IAACC,WAAW,EAAE,qBAAsB;IAACb,OAAO,EAAEA;EAAQ,EAAE,CAAC;AAElG,CAAC","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useMemo","useQuery","useBind","Select","LIST_USERS","getValidFilterValue","value","undefined","FilterByInitiator","data","listUsers","bind","name","beforeChange","cb","options","users","adminUsers","label","map","user","firstName","lastName","id","createElement","Object","assign","size","placeholder"],"sources":["FilterByInitiator.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { useQuery } from \"@apollo/react-hooks\";\n\nimport { useBind } from \"@webiny/form\";\nimport { Select } from \"@webiny/ui/Select\";\n\nimport { LIST_USERS } from \"~/graphql\";\nimport type { User } from \"~/types\";\n\nconst getValidFilterValue = (value: string): string | undefined => {\n if (value === \"all\" || value === \"\") {\n return undefined;\n }\n return value;\n};\n\nexport const FilterByInitiator = () => {\n const { data: listUsers } = useQuery(LIST_USERS);\n const bind = useBind({\n name: \"data.initiator\",\n beforeChange(value, cb) {\n cb(getValidFilterValue(value));\n }\n });\n\n const options = useMemo(() => {\n const users: User[] = listUsers?.adminUsers?.users?.data || [];\n\n return [\n { label: \"All\", value: \"all\" },\n ...users.map(user => ({ label: `${user.firstName} ${user.lastName}`, value: user.id }))\n ];\n }, [listUsers]);\n\n return (\n <Select {...bind} size={\"medium\"} placeholder={\"Filter by Initiator\"} options={options} />\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,QAAQ,QAAQ,qBAAqB;AAE9C,SAASC,OAAO,QAAQ,cAAc;AACtC,SAASC,MAAM,QAAQ,mBAAmB;AAE1C,SAASC,UAAU;AAGnB,MAAMC,mBAAmB,GAAIC,KAAa,IAAyB;EAC/D,IAAIA,KAAK,KAAK,KAAK,IAAIA,KAAK,KAAK,EAAE,EAAE;IACjC,OAAOC,SAAS;EACpB;EACA,OAAOD,KAAK;AAChB,CAAC;AAED,OAAO,MAAME,iBAAiB,GAAGA,CAAA,KAAM;EACnC,MAAM;IAAEC,IAAI,EAAEC;EAAU,CAAC,GAAGT,QAAQ,CAACG,UAAU,CAAC;EAChD,MAAMO,IAAI,GAAGT,OAAO,CAAC;IACjBU,IAAI,EAAE,gBAAgB;IACtBC,YAAYA,CAACP,KAAK,EAAEQ,EAAE,EAAE;MACpBA,EAAE,CAACT,mBAAmB,CAACC,KAAK,CAAC,CAAC;IAClC;EACJ,CAAC,CAAC;EAEF,MAAMS,OAAO,GAAGf,OAAO,CAAC,MAAM;IAC1B,MAAMgB,KAAa,GAAGN,SAAS,EAAEO,UAAU,EAAED,KAAK,EAAEP,IAAI,IAAI,EAAE;IAE9D,OAAO,CACH;MAAES,KAAK,EAAE,KAAK;MAAEZ,KAAK,EAAE;IAAM,CAAC,EAC9B,GAAGU,KAAK,CAACG,GAAG,CAACC,IAAI,KAAK;MAAEF,KAAK,EAAE,GAAGE,IAAI,CAACC,SAAS,IAAID,IAAI,CAACE,QAAQ,EAAE;MAAEhB,KAAK,EAAEc,IAAI,CAACG;IAAG,CAAC,CAAC,CAAC,CAC1F;EACL,CAAC,EAAE,CAACb,SAAS,CAAC,CAAC;EAEf,oBACIX,KAAA,CAAAyB,aAAA,CAACrB,MAAM,EAAAsB,MAAA,CAAAC,MAAA,KAAKf,IAAI;IAAEgB,IAAI,EAAE,QAAS;IAACC,WAAW,EAAE,qBAAsB;IAACb,OAAO,EAAEA;EAAQ,EAAE,CAAC;AAElG,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useMemo","Filters","BaseFilters","useAuditLogsListConfig","showingFilters","setFilters","hasAccessToUsers","browser","applyFilters","data","Object","keys","length","convertedFilters","filtersToWhere","reduce","converter","filters","filter","name","createElement","show","onChange"],"sources":["Filters.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport { Filters as BaseFilters
|
|
1
|
+
{"version":3,"names":["React","useMemo","Filters","BaseFilters","useAuditLogsListConfig","showingFilters","setFilters","hasAccessToUsers","browser","applyFilters","data","Object","keys","length","convertedFilters","filtersToWhere","reduce","converter","filters","filter","name","createElement","show","onChange"],"sources":["Filters.tsx"],"sourcesContent":["import React, { useMemo } from \"react\";\nimport type { FiltersOnSubmit } from \"@webiny/app-admin\";\nimport { Filters as BaseFilters } from \"@webiny/app-admin\";\nimport { useAuditLogsListConfig } from \"~/config/list\";\n\ntype FiltersProps = {\n showingFilters: boolean;\n setFilters: (data: Record<string, any>) => void;\n hasAccessToUsers: boolean;\n};\n\nexport const Filters = ({ showingFilters, setFilters, hasAccessToUsers }: FiltersProps) => {\n const { browser } = useAuditLogsListConfig();\n\n const applyFilters: FiltersOnSubmit = data => {\n if (!Object.keys(data).length) {\n return;\n }\n\n const convertedFilters = browser.filtersToWhere.reduce(\n (data, converter) => converter(data),\n data\n );\n\n setFilters(convertedFilters);\n };\n\n const filters = useMemo(() => {\n if (hasAccessToUsers) {\n return browser.filters;\n }\n\n return browser.filters.filter(filter => filter.name !== \"initiator\");\n }, [browser, hasAccessToUsers]);\n\n return <BaseFilters filters={filters} show={showingFilters} onChange={applyFilters} />;\n};\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AAEtC,SAASC,OAAO,IAAIC,WAAW,QAAQ,mBAAmB;AAC1D,SAASC,sBAAsB;AAQ/B,OAAO,MAAMF,OAAO,GAAGA,CAAC;EAAEG,cAAc;EAAEC,UAAU;EAAEC;AAA+B,CAAC,KAAK;EACvF,MAAM;IAAEC;EAAQ,CAAC,GAAGJ,sBAAsB,CAAC,CAAC;EAE5C,MAAMK,YAA6B,GAAGC,IAAI,IAAI;IAC1C,IAAI,CAACC,MAAM,CAACC,IAAI,CAACF,IAAI,CAAC,CAACG,MAAM,EAAE;MAC3B;IACJ;IAEA,MAAMC,gBAAgB,GAAGN,OAAO,CAACO,cAAc,CAACC,MAAM,CAClD,CAACN,IAAI,EAAEO,SAAS,KAAKA,SAAS,CAACP,IAAI,CAAC,EACpCA,IACJ,CAAC;IAEDJ,UAAU,CAACQ,gBAAgB,CAAC;EAChC,CAAC;EAED,MAAMI,OAAO,GAAGjB,OAAO,CAAC,MAAM;IAC1B,IAAIM,gBAAgB,EAAE;MAClB,OAAOC,OAAO,CAACU,OAAO;IAC1B;IAEA,OAAOV,OAAO,CAACU,OAAO,CAACC,MAAM,CAACA,MAAM,IAAIA,MAAM,CAACC,IAAI,KAAK,WAAW,CAAC;EACxE,CAAC,EAAE,CAACZ,OAAO,EAAED,gBAAgB,CAAC,CAAC;EAE/B,oBAAOP,KAAA,CAAAqB,aAAA,CAAClB,WAAW;IAACe,OAAO,EAAEA,OAAQ;IAACI,IAAI,EAAEjB,cAAe;IAACkB,QAAQ,EAAEd;EAAa,CAAE,CAAC;AAC1F,CAAC","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","i18n","ButtonPrimary","Container","t","ns","LoadMoreButton","disabled","windowHeight","tableHeight","show","onClick","createElement","flat"],"sources":["LoadMoreButton.tsx"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"names":["React","i18n","ButtonPrimary","Container","t","ns","LoadMoreButton","disabled","windowHeight","tableHeight","show","onClick","createElement","flat"],"sources":["LoadMoreButton.tsx"],"sourcesContent":["import type { ReactElement } from \"react\";\nimport React from \"react\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport { ButtonPrimary } from \"@webiny/ui/Button\";\n\nimport { Container } from \"./styled\";\n\nconst t = i18n.ns(\"app-audit-logs/views/logs/load-more-button\");\n\nexport interface LoadMoreButtonProps {\n windowHeight: number;\n tableHeight: number;\n onClick: () => void;\n disabled?: boolean;\n show: boolean;\n}\n\nexport const LoadMoreButton = ({\n disabled,\n windowHeight,\n tableHeight,\n show,\n onClick\n}: LoadMoreButtonProps): ReactElement | null => {\n if (show && windowHeight > tableHeight) {\n return (\n <Container>\n <ButtonPrimary\n onClick={onClick}\n disabled={disabled}\n flat={true}\n >{t`Load more records`}</ButtonPrimary>\n </Container>\n );\n }\n\n return null;\n};\n"],"mappings":"AACA,OAAOA,KAAK,MAAM,OAAO;AAEzB,SAASC,IAAI,QAAQ,kBAAkB;AACvC,SAASC,aAAa,QAAQ,mBAAmB;AAEjD,SAASC,SAAS;AAElB,MAAMC,CAAC,GAAGH,IAAI,CAACI,EAAE,CAAC,4CAA4C,CAAC;AAU/D,OAAO,MAAMC,cAAc,GAAGA,CAAC;EAC3BC,QAAQ;EACRC,YAAY;EACZC,WAAW;EACXC,IAAI;EACJC;AACiB,CAAC,KAA0B;EAC5C,IAAID,IAAI,IAAIF,YAAY,GAAGC,WAAW,EAAE;IACpC,oBACIT,KAAA,CAAAY,aAAA,CAACT,SAAS,qBACNH,KAAA,CAAAY,aAAA,CAACV,aAAa;MACVS,OAAO,EAAEA,OAAQ;MACjBJ,QAAQ,EAAEA,QAAS;MACnBM,IAAI,EAAE;IAAK,GACbT,CAAC,mBAAmC,CAC/B,CAAC;EAEpB;EAEA,OAAO,IAAI;AACf,CAAC","ignoreList":[]}
|
package/views/Logs/Logs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useRef","useState","useEffect","debounce","i18n","EmptyView","Scrollbar","useSecurity","LoadingMore","LoadMoreButton","Header","Filters","Table","Preview","useAuditLogsList","MainContainer","Wrapper","t","ns","AuditLogsView","selectedAuditLog","setSelectedAuditLog","handleAuditLogSelect","auditLog","closePreviewModal","innerHeight","windowHeight","window","tableHeight","setTableHeight","tableRef","getPermissions","hasAccessToUsers","Boolean","length","list","current","clientHeight","loadMoreOnScroll","scrollFrame","top","listMoreRecords","createElement","Fragment","title","searchValue","search","onSearchChange","setSearch","showingFilters","showFilters","hideFilters","setFilters","records","isListLoading","action","onClose","onScrollFrame","ref","loading","handleRecordSelect","sorting","onSortingChange","setSorting","show","meta","hasMoreItems","disabled","isListLoadingMore","onClick"],"sources":["Logs.tsx"],"sourcesContent":["import React, { useCallback, useRef, useState, useEffect } from \"react\";\nimport debounce from \"lodash/debounce\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nimport { LoadingMore } from \"~/views/Logs/LoadingMore\";\nimport { LoadMoreButton } from \"~/views/Logs/LoadMoreButton\";\nimport { Header } from \"~/views/Logs/Header\";\nimport { Filters } from \"~/views/Logs/Filters\";\nimport { Table } from \"~/views/Logs/Table\";\nimport { Preview } from \"~/views/Logs/Preview\";\nimport { useAuditLogsList } from \"~/hooks\";\nimport { Entry } from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { MainContainer, Wrapper } from \"./styled\";\n\nconst t = i18n.ns(\"app-audit-logs/views/logs\");\n\nconst AuditLogsView = () => {\n const [selectedAuditLog, setSelectedAuditLog] = useState<Entry | null>(null);\n const handleAuditLogSelect = useCallback(\n (auditLog: Entry) => 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\n const { getPermissions } = useSecurity();\n const hasAccessToUsers = Boolean(getPermissions(\"adminUsers\").length);\n\n const list = useAuditLogsList(hasAccessToUsers);\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) {\n list.listMoreRecords();\n }\n }, 200);\n\n return (\n <>\n <MainContainer>\n <Header\n title=\"Audit Logs\"\n searchValue={list.search}\n onSearchChange={list.setSearch}\n showingFilters={list.showingFilters}\n showFilters={list.showFilters}\n hideFilters={list.hideFilters}\n />\n <Wrapper>\n <Filters\n showingFilters={list.showingFilters}\n setFilters={list.setFilters}\n hasAccessToUsers={hasAccessToUsers}\n />\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}\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 </Wrapper>\n </MainContainer>\n </>\n );\n};\n\nexport default AuditLogsView;\n"],"mappings":"AAAA,OAAOA,KAAK,IAAIC,WAAW,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,SAAS,QAAQ,OAAO;AACvE,OAAOC,QAAQ,MAAM,iBAAiB;AAEtC,SAASC,IAAI,QAAQ,kBAAkB;AACvC,OAAOC,SAAS,MAAM,wCAAwC;AAC9D,SAASC,SAAS,QAAQ,sBAAsB;AAChD,SAASC,WAAW,QAAQ,sBAAsB;AAElD,SAASC,WAAW;AACpB,SAASC,cAAc;AACvB,SAASC,MAAM;AACf,SAASC,OAAO;AAChB,SAASC,KAAK;AACd,SAASC,OAAO;AAChB,SAASC,gBAAgB;AAEzB,SAASC,aAAa,EAAEC,OAAO;AAE/B,MAAMC,CAAC,GAAGb,IAAI,CAACc,EAAE,CAAC,2BAA2B,CAAC;AAE9C,MAAMC,aAAa,GAAGA,CAAA,KAAM;EACxB,MAAM,CAACC,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGpB,QAAQ,CAAe,IAAI,CAAC;EAC5E,MAAMqB,oBAAoB,GAAGvB,WAAW,CACnCwB,QAAe,IAAKF,mBAAmB,CAACE,QAAQ,CAAC,EAClD,EACJ,CAAC;EACD,MAAMC,iBAAiB,GAAGzB,WAAW,CAAC,MAAMsB,mBAAmB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;EAE1E,MAAM;IAAEI,WAAW,EAAEC;EAAa,CAAC,GAAGC,MAAM;EAC5C,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG5B,QAAQ,CAAC,CAAC,CAAC;EACjD,MAAM6B,QAAQ,GAAG9B,MAAM,CAAiB,IAAI,CAAC;EAE7C,MAAM;IAAE+B;EAAe,CAAC,GAAGxB,WAAW,CAAC,CAAC;EACxC,MAAMyB,gBAAgB,GAAGC,OAAO,CAACF,cAAc,CAAC,YAAY,CAAC,CAACG,MAAM,CAAC;EAErE,MAAMC,IAAI,GAAGrB,gBAAgB,CAACkB,gBAAgB,CAAC;EAE/C9B,SAAS,CAAC,MAAM;IACZ2B,cAAc,CAACC,QAAQ,EAAEM,OAAO,EAAEC,YAAY,IAAI,CAAC,CAAC;IAEpD,OAAO,MAAM;MACTR,cAAc,CAAC,CAAC,CAAC;IACrB,CAAC;EACL,CAAC,CAAC;EAEF,MAAMS,gBAAgB,GAAGnC,QAAQ,CAAC,CAAC;IAAEoC;EAAY,CAAC,KAAK;IACnD,IAAIA,WAAW,CAACC,GAAG,GAAG,GAAG,EAAE;MACvBL,IAAI,CAACM,eAAe,CAAC,CAAC;IAC1B;EACJ,CAAC,EAAE,GAAG,CAAC;EAEP,oBACI3C,KAAA,CAAA4C,aAAA,CAAA5C,KAAA,CAAA6C,QAAA,qBACI7C,KAAA,CAAA4C,aAAA,CAAC3B,aAAa,qBACVjB,KAAA,CAAA4C,aAAA,CAAChC,MAAM;IACHkC,KAAK,EAAC,YAAY;IAClBC,WAAW,EAAEV,IAAI,CAACW,MAAO;IACzBC,cAAc,EAAEZ,IAAI,CAACa,SAAU;IAC/BC,cAAc,EAAEd,IAAI,CAACc,cAAe;IACpCC,WAAW,EAAEf,IAAI,CAACe,WAAY;IAC9BC,WAAW,EAAEhB,IAAI,CAACgB;EAAY,CACjC,CAAC,eACFrD,KAAA,CAAA4C,aAAA,CAAC1B,OAAO,qBACJlB,KAAA,CAAA4C,aAAA,CAAC/B,OAAO;IACJsC,cAAc,EAAEd,IAAI,CAACc,cAAe;IACpCG,UAAU,EAAEjB,IAAI,CAACiB,UAAW;IAC5BpB,gBAAgB,EAAEA;EAAiB,CACtC,CAAC,EACDG,IAAI,CAACkB,OAAO,CAACnB,MAAM,KAAK,CAAC,IAAI,CAACC,IAAI,CAACmB,aAAa,gBAC7CxD,KAAA,CAAA4C,aAAA,CAACrC,SAAS;IAACuC,KAAK,EAAE3B,CAAC,mBAAoB;IAACsC,MAAM,EAAE;EAAK,CAAE,CAAC,gBAExDzD,KAAA,CAAA4C,aAAA,CAAA5C,KAAA,CAAA6C,QAAA,qBACI7C,KAAA,CAAA4C,aAAA,CAAC7B,OAAO;IACJU,QAAQ,EAAEH,gBAAiB;IAC3BoC,OAAO,EAAEA,CAAA,KAAMhC,iBAAiB,CAAC,CAAE;IACnCQ,gBAAgB,EAAEA;EAAiB,CACtC,CAAC,eACFlC,KAAA,CAAA4C,aAAA,CAACpC,SAAS;IACN,eAAY,mBAAmB;IAC/BmD,aAAa,EAAElB,WAAW,IAAID,gBAAgB,CAAC;MAAEC;IAAY,CAAC;EAAE,gBAEhEzC,KAAA,CAAA4C,aAAA,CAAC9B,KAAK;IACF8C,GAAG,EAAE5B,QAAS;IACduB,OAAO,EAAElB,IAAI,CAACkB,OAAQ;IACtBM,OAAO,EAAExB,IAAI,CAACmB,aAAc;IAC5BM,kBAAkB,EAAEtC,oBAAqB;IACzCuC,OAAO,EAAE1B,IAAI,CAAC0B,OAAQ;IACtBC,eAAe,EAAE3B,IAAI,CAAC4B,UAAW;IACjC/B,gBAAgB,EAAEA;EAAiB,CACtC,CAAC,eACFlC,KAAA,CAAA4C,aAAA,CAACjC,cAAc;IACXuD,IAAI,EAAE,CAAC7B,IAAI,CAACmB,aAAa,IAAInB,IAAI,CAAC8B,IAAI,CAACC,YAAa;IACpDC,QAAQ,EAAEhC,IAAI,CAACiC,iBAAkB;IACjC1C,YAAY,EAAEA,YAAa;IAC3BE,WAAW,EAAEA,WAAY;IACzByC,OAAO,EAAElC,IAAI,CAACM;EAAgB,CACjC,CACM,CAAC,EACXN,IAAI,CAACiC,iBAAiB,iBAAItE,KAAA,CAAA4C,aAAA,CAAClC,WAAW,MAAE,CAC3C,CAED,CACE,CACjB,CAAC;AAEX,CAAC;AAED,eAAeW,aAAa","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","useCallback","useRef","useState","useEffect","debounce","i18n","EmptyView","Scrollbar","useSecurity","LoadingMore","LoadMoreButton","Header","Filters","Table","Preview","useAuditLogsList","MainContainer","Wrapper","t","ns","AuditLogsView","selectedAuditLog","setSelectedAuditLog","handleAuditLogSelect","auditLog","closePreviewModal","innerHeight","windowHeight","window","tableHeight","setTableHeight","tableRef","getPermissions","hasAccessToUsers","Boolean","length","list","current","clientHeight","loadMoreOnScroll","scrollFrame","top","listMoreRecords","createElement","Fragment","title","searchValue","search","onSearchChange","setSearch","showingFilters","showFilters","hideFilters","setFilters","records","isListLoading","action","onClose","onScrollFrame","ref","loading","handleRecordSelect","sorting","onSortingChange","setSorting","show","meta","hasMoreItems","disabled","isListLoadingMore","onClick"],"sources":["Logs.tsx"],"sourcesContent":["import React, { useCallback, useRef, useState, useEffect } from \"react\";\nimport debounce from \"lodash/debounce\";\n\nimport { i18n } from \"@webiny/app/i18n\";\nimport EmptyView from \"@webiny/app-admin/components/EmptyView\";\nimport { Scrollbar } from \"@webiny/ui/Scrollbar\";\nimport { useSecurity } from \"@webiny/app-security\";\n\nimport { LoadingMore } from \"~/views/Logs/LoadingMore\";\nimport { LoadMoreButton } from \"~/views/Logs/LoadMoreButton\";\nimport { Header } from \"~/views/Logs/Header\";\nimport { Filters } from \"~/views/Logs/Filters\";\nimport { Table } from \"~/views/Logs/Table\";\nimport { Preview } from \"~/views/Logs/Preview\";\nimport { useAuditLogsList } from \"~/hooks\";\nimport type { Entry } from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { MainContainer, Wrapper } from \"./styled\";\n\nconst t = i18n.ns(\"app-audit-logs/views/logs\");\n\nconst AuditLogsView = () => {\n const [selectedAuditLog, setSelectedAuditLog] = useState<Entry | null>(null);\n const handleAuditLogSelect = useCallback(\n (auditLog: Entry) => 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\n const { getPermissions } = useSecurity();\n const hasAccessToUsers = Boolean(getPermissions(\"adminUsers\").length);\n\n const list = useAuditLogsList(hasAccessToUsers);\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) {\n list.listMoreRecords();\n }\n }, 200);\n\n return (\n <>\n <MainContainer>\n <Header\n title=\"Audit Logs\"\n searchValue={list.search}\n onSearchChange={list.setSearch}\n showingFilters={list.showingFilters}\n showFilters={list.showFilters}\n hideFilters={list.hideFilters}\n />\n <Wrapper>\n <Filters\n showingFilters={list.showingFilters}\n setFilters={list.setFilters}\n hasAccessToUsers={hasAccessToUsers}\n />\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}\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 </Wrapper>\n </MainContainer>\n </>\n );\n};\n\nexport default AuditLogsView;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { Entry } from "../../../utils/transformCmsContentEntriesToRecordEntries";
|
|
2
|
+
import type { Entry } from "../../../utils/transformCmsContentEntriesToRecordEntries";
|
|
3
3
|
type HeaderProps = {
|
|
4
4
|
auditLog: Entry | null;
|
|
5
5
|
onClose: () => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","format","addMinutes","Grid","Cell","Dialog","DialogContent","DialogTitle","DialogCancel","DialogActions","CodeEditor","Tooltip","Action","Text","PayloadWrapper","previewDialog","Preview","auditLog","onClose","hasAccessToUsers","date","Date","savedOn","createElement","open","className","message","tabIndex","span","use","app","placement","content","getTimezoneOffset","entity","label","link","href","target","entityId","action","value","initiator","id","name","role","mode","theme","JSON","stringify","parse","data","readOnly","onClick"],"sources":["Preview.tsx"],"sourcesContent":["import React from \"react\";\nimport { format, addMinutes } from \"date-fns\";\n\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Dialog, DialogContent, DialogTitle, DialogCancel, DialogActions } from \"@webiny/ui/Dialog\";\nimport { CodeEditor } from \"@webiny/ui/CodeEditor\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\n\nimport { Action } from \"~/views/Logs/Table\";\nimport { Text } from \"~/components/Text\";\nimport { Entry } from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { PayloadWrapper, previewDialog } from \"./styled\";\n\ntype HeaderProps = {\n auditLog: Entry | null;\n onClose: () => void;\n hasAccessToUsers: boolean;\n};\n\nexport const Preview = ({ auditLog, onClose, hasAccessToUsers }: HeaderProps) => {\n if (!auditLog) {\n return null;\n }\n\n const date = new Date(auditLog.savedOn);\n\n return (\n <Dialog open={!!auditLog} onClose={onClose} className={previewDialog}>\n <DialogTitle>\n {auditLog.message}\n <div className=\"title-actions\" tabIndex={0}></div>\n </DialogTitle>\n\n <DialogContent>\n <Grid>\n <Cell span={6}>\n <Text use=\"overline\">Application</Text>\n <br />\n <Text use=\"subtitle2\">{auditLog.app}</Text>\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Date</Text>\n <br />\n <Tooltip\n placement=\"right\"\n content={`UTC: ${format(\n addMinutes(date, date.getTimezoneOffset()),\n \"yyyy-MM-dd HH:mm:ss\"\n )}`}\n >\n <Text use={\"subtitle2\"}>{format(date, \"yyyy-MM-dd HH:mm:ss (O)\")}</Text>\n </Tooltip>\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Entity</Text>\n <br />\n <Text use=\"subtitle2\">{auditLog.entity.label}</Text>\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Entity Id</Text>\n <br />\n {auditLog.entity.link ? (\n <a href={auditLog.entity.link} target={\"blank\"}>\n <Text use=\"subtitle2\">{auditLog.entityId}</Text>\n </a>\n ) : (\n <Text use=\"subtitle2\">{auditLog.entityId}</Text>\n )}\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Action</Text>\n <br />\n <Action label={auditLog.action.label} value={auditLog.action.value} />\n </Cell>\n {hasAccessToUsers && (\n <Cell span={6}>\n <Text use=\"overline\">Initiator</Text>\n <br />\n <a href={`/admin-users?id=${auditLog.initiator.id}`} target={\"blank\"}>\n <Text use={\"subtitle2\"}>{auditLog.initiator.name}</Text>\n </a>\n <Text use={\"body2\"}>{` (${auditLog.initiator.role})`}</Text>\n </Cell>\n )}\n <Cell span={12}>\n <Text use=\"overline\">Payload</Text>\n <PayloadWrapper>\n <CodeEditor\n mode=\"json\"\n theme=\"chrome\"\n value={JSON.stringify(JSON.parse(auditLog.data), null, 2)}\n readOnly\n />\n </PayloadWrapper>\n </Cell>\n </Grid>\n </DialogContent>\n <DialogActions>\n <DialogCancel onClick={onClose}>Close</DialogCancel>\n </DialogActions>\n </Dialog>\n );\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["React","format","addMinutes","Grid","Cell","Dialog","DialogContent","DialogTitle","DialogCancel","DialogActions","CodeEditor","Tooltip","Action","Text","PayloadWrapper","previewDialog","Preview","auditLog","onClose","hasAccessToUsers","date","Date","savedOn","createElement","open","className","message","tabIndex","span","use","app","placement","content","getTimezoneOffset","entity","label","link","href","target","entityId","action","value","initiator","id","name","role","mode","theme","JSON","stringify","parse","data","readOnly","onClick"],"sources":["Preview.tsx"],"sourcesContent":["import React from \"react\";\nimport { format, addMinutes } from \"date-fns\";\n\nimport { Grid, Cell } from \"@webiny/ui/Grid\";\nimport { Dialog, DialogContent, DialogTitle, DialogCancel, DialogActions } from \"@webiny/ui/Dialog\";\nimport { CodeEditor } from \"@webiny/ui/CodeEditor\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\n\nimport { Action } from \"~/views/Logs/Table\";\nimport { Text } from \"~/components/Text\";\nimport type { Entry } from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { PayloadWrapper, previewDialog } from \"./styled\";\n\ntype HeaderProps = {\n auditLog: Entry | null;\n onClose: () => void;\n hasAccessToUsers: boolean;\n};\n\nexport const Preview = ({ auditLog, onClose, hasAccessToUsers }: HeaderProps) => {\n if (!auditLog) {\n return null;\n }\n\n const date = new Date(auditLog.savedOn);\n\n return (\n <Dialog open={!!auditLog} onClose={onClose} className={previewDialog}>\n <DialogTitle>\n {auditLog.message}\n <div className=\"title-actions\" tabIndex={0}></div>\n </DialogTitle>\n\n <DialogContent>\n <Grid>\n <Cell span={6}>\n <Text use=\"overline\">Application</Text>\n <br />\n <Text use=\"subtitle2\">{auditLog.app}</Text>\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Date</Text>\n <br />\n <Tooltip\n placement=\"right\"\n content={`UTC: ${format(\n addMinutes(date, date.getTimezoneOffset()),\n \"yyyy-MM-dd HH:mm:ss\"\n )}`}\n >\n <Text use={\"subtitle2\"}>{format(date, \"yyyy-MM-dd HH:mm:ss (O)\")}</Text>\n </Tooltip>\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Entity</Text>\n <br />\n <Text use=\"subtitle2\">{auditLog.entity.label}</Text>\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Entity Id</Text>\n <br />\n {auditLog.entity.link ? (\n <a href={auditLog.entity.link} target={\"blank\"}>\n <Text use=\"subtitle2\">{auditLog.entityId}</Text>\n </a>\n ) : (\n <Text use=\"subtitle2\">{auditLog.entityId}</Text>\n )}\n </Cell>\n <Cell span={6}>\n <Text use=\"overline\">Action</Text>\n <br />\n <Action label={auditLog.action.label} value={auditLog.action.value} />\n </Cell>\n {hasAccessToUsers && (\n <Cell span={6}>\n <Text use=\"overline\">Initiator</Text>\n <br />\n <a href={`/admin-users?id=${auditLog.initiator.id}`} target={\"blank\"}>\n <Text use={\"subtitle2\"}>{auditLog.initiator.name}</Text>\n </a>\n <Text use={\"body2\"}>{` (${auditLog.initiator.role})`}</Text>\n </Cell>\n )}\n <Cell span={12}>\n <Text use=\"overline\">Payload</Text>\n <PayloadWrapper>\n <CodeEditor\n mode=\"json\"\n theme=\"chrome\"\n value={JSON.stringify(JSON.parse(auditLog.data), null, 2)}\n readOnly\n />\n </PayloadWrapper>\n </Cell>\n </Grid>\n </DialogContent>\n <DialogActions>\n <DialogCancel onClick={onClose}>Close</DialogCancel>\n </DialogActions>\n </Dialog>\n );\n};\n"],"mappings":"AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,MAAM,EAAEC,UAAU,QAAQ,UAAU;AAE7C,SAASC,IAAI,EAAEC,IAAI,QAAQ,iBAAiB;AAC5C,SAASC,MAAM,EAAEC,aAAa,EAAEC,WAAW,EAAEC,YAAY,EAAEC,aAAa,QAAQ,mBAAmB;AACnG,SAASC,UAAU,QAAQ,uBAAuB;AAClD,SAASC,OAAO,QAAQ,oBAAoB;AAE5C,SAASC,MAAM;AACf,SAASC,IAAI;AAEb,SAASC,cAAc,EAAEC,aAAa;AAQtC,OAAO,MAAMC,OAAO,GAAGA,CAAC;EAAEC,QAAQ;EAAEC,OAAO;EAAEC;AAA8B,CAAC,KAAK;EAC7E,IAAI,CAACF,QAAQ,EAAE;IACX,OAAO,IAAI;EACf;EAEA,MAAMG,IAAI,GAAG,IAAIC,IAAI,CAACJ,QAAQ,CAACK,OAAO,CAAC;EAEvC,oBACItB,KAAA,CAAAuB,aAAA,CAAClB,MAAM;IAACmB,IAAI,EAAE,CAAC,CAACP,QAAS;IAACC,OAAO,EAAEA,OAAQ;IAACO,SAAS,EAAEV;EAAc,gBACjEf,KAAA,CAAAuB,aAAA,CAAChB,WAAW,QACPU,QAAQ,CAACS,OAAO,eACjB1B,KAAA,CAAAuB,aAAA;IAAKE,SAAS,EAAC,eAAe;IAACE,QAAQ,EAAE;EAAE,CAAM,CACxC,CAAC,eAEd3B,KAAA,CAAAuB,aAAA,CAACjB,aAAa,qBACVN,KAAA,CAAAuB,aAAA,CAACpB,IAAI,qBACDH,KAAA,CAAAuB,aAAA,CAACnB,IAAI;IAACwB,IAAI,EAAE;EAAE,gBACV5B,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAU,GAAC,aAAiB,CAAC,eACvC7B,KAAA,CAAAuB,aAAA,WAAK,CAAC,eACNvB,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAW,GAAEZ,QAAQ,CAACa,GAAU,CACxC,CAAC,eACP9B,KAAA,CAAAuB,aAAA,CAACnB,IAAI;IAACwB,IAAI,EAAE;EAAE,gBACV5B,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAU,GAAC,MAAU,CAAC,eAChC7B,KAAA,CAAAuB,aAAA,WAAK,CAAC,eACNvB,KAAA,CAAAuB,aAAA,CAACZ,OAAO;IACJoB,SAAS,EAAC,OAAO;IACjBC,OAAO,EAAE,QAAQ/B,MAAM,CACnBC,UAAU,CAACkB,IAAI,EAAEA,IAAI,CAACa,iBAAiB,CAAC,CAAC,CAAC,EAC1C,qBACJ,CAAC;EAAG,gBAEJjC,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAE;EAAY,GAAE5B,MAAM,CAACmB,IAAI,EAAE,yBAAyB,CAAQ,CAClE,CACP,CAAC,eACPpB,KAAA,CAAAuB,aAAA,CAACnB,IAAI;IAACwB,IAAI,EAAE;EAAE,gBACV5B,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAU,GAAC,QAAY,CAAC,eAClC7B,KAAA,CAAAuB,aAAA,WAAK,CAAC,eACNvB,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAW,GAAEZ,QAAQ,CAACiB,MAAM,CAACC,KAAY,CACjD,CAAC,eACPnC,KAAA,CAAAuB,aAAA,CAACnB,IAAI;IAACwB,IAAI,EAAE;EAAE,gBACV5B,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAU,GAAC,WAAe,CAAC,eACrC7B,KAAA,CAAAuB,aAAA,WAAK,CAAC,EACLN,QAAQ,CAACiB,MAAM,CAACE,IAAI,gBACjBpC,KAAA,CAAAuB,aAAA;IAAGc,IAAI,EAAEpB,QAAQ,CAACiB,MAAM,CAACE,IAAK;IAACE,MAAM,EAAE;EAAQ,gBAC3CtC,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAW,GAAEZ,QAAQ,CAACsB,QAAe,CAChD,CAAC,gBAEJvC,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAW,GAAEZ,QAAQ,CAACsB,QAAe,CAEjD,CAAC,eACPvC,KAAA,CAAAuB,aAAA,CAACnB,IAAI;IAACwB,IAAI,EAAE;EAAE,gBACV5B,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAU,GAAC,QAAY,CAAC,eAClC7B,KAAA,CAAAuB,aAAA,WAAK,CAAC,eACNvB,KAAA,CAAAuB,aAAA,CAACX,MAAM;IAACuB,KAAK,EAAElB,QAAQ,CAACuB,MAAM,CAACL,KAAM;IAACM,KAAK,EAAExB,QAAQ,CAACuB,MAAM,CAACC;EAAM,CAAE,CACnE,CAAC,EACNtB,gBAAgB,iBACbnB,KAAA,CAAAuB,aAAA,CAACnB,IAAI;IAACwB,IAAI,EAAE;EAAE,gBACV5B,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAU,GAAC,WAAe,CAAC,eACrC7B,KAAA,CAAAuB,aAAA,WAAK,CAAC,eACNvB,KAAA,CAAAuB,aAAA;IAAGc,IAAI,EAAE,mBAAmBpB,QAAQ,CAACyB,SAAS,CAACC,EAAE,EAAG;IAACL,MAAM,EAAE;EAAQ,gBACjEtC,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAE;EAAY,GAAEZ,QAAQ,CAACyB,SAAS,CAACE,IAAW,CACxD,CAAC,eACJ5C,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAE;EAAQ,GAAE,KAAKZ,QAAQ,CAACyB,SAAS,CAACG,IAAI,GAAU,CACzD,CACT,eACD7C,KAAA,CAAAuB,aAAA,CAACnB,IAAI;IAACwB,IAAI,EAAE;EAAG,gBACX5B,KAAA,CAAAuB,aAAA,CAACV,IAAI;IAACgB,GAAG,EAAC;EAAU,GAAC,SAAa,CAAC,eACnC7B,KAAA,CAAAuB,aAAA,CAACT,cAAc,qBACXd,KAAA,CAAAuB,aAAA,CAACb,UAAU;IACPoC,IAAI,EAAC,MAAM;IACXC,KAAK,EAAC,QAAQ;IACdN,KAAK,EAAEO,IAAI,CAACC,SAAS,CAACD,IAAI,CAACE,KAAK,CAACjC,QAAQ,CAACkC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAE;IAC1DC,QAAQ;EAAA,CACX,CACW,CACd,CACJ,CACK,CAAC,eAChBpD,KAAA,CAAAuB,aAAA,CAACd,aAAa,qBACVT,KAAA,CAAAuB,aAAA,CAACf,YAAY;IAAC6C,OAAO,EAAEnC;EAAQ,GAAC,OAAmB,CACxC,CACX,CAAC;AAEjB,CAAC","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import { OnSortingChange, Sorting } from "@webiny/ui/DataTable";
|
|
3
|
-
import { Entry } from "../../../utils/transformCmsContentEntriesToRecordEntries";
|
|
4
|
-
import { ActionType } from "../../../types";
|
|
2
|
+
import type { OnSortingChange, Sorting } from "@webiny/ui/DataTable";
|
|
3
|
+
import type { Entry } from "../../../utils/transformCmsContentEntriesToRecordEntries";
|
|
4
|
+
import type { ActionType } from "../../../types";
|
|
5
5
|
type ActionProps = {
|
|
6
6
|
label: string;
|
|
7
7
|
value: ActionType;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","forwardRef","useMemo","format","addMinutes","ReactComponent","PreviewIcon","DataTable","IconButton","Tooltip","Text","ActionWrapper","TextGray","TimezoneText","wideColumn","appColumn","previewColumn","Action","label","value","createElement","use","Table","props","ref","records","loading","handleRecordSelect","sorting","onSortingChange","hasAccessToUsers","columns","savedOn","header","cell","date","Date","placement","content","getTimezoneOffset","enableSorting","app","entity","entityId","Fragment","link","href","target","className","action","message","initiator","id","name","preview","auditLog","onClick","icon","tableSorting","Array","isArray","length","desc","data","loadingInitial","stickyRows","displayName"],"sources":["Table.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\nimport { format, addMinutes } from \"date-fns\";\n\nimport { ReactComponent as PreviewIcon } from \"@webiny/icons/info.svg\";\nimport { Columns,
|
|
1
|
+
{"version":3,"names":["React","forwardRef","useMemo","format","addMinutes","ReactComponent","PreviewIcon","DataTable","IconButton","Tooltip","Text","ActionWrapper","TextGray","TimezoneText","wideColumn","appColumn","previewColumn","Action","label","value","createElement","use","Table","props","ref","records","loading","handleRecordSelect","sorting","onSortingChange","hasAccessToUsers","columns","savedOn","header","cell","date","Date","placement","content","getTimezoneOffset","enableSorting","app","entity","entityId","Fragment","link","href","target","className","action","message","initiator","id","name","preview","auditLog","onClick","icon","tableSorting","Array","isArray","length","desc","data","loadingInitial","stickyRows","displayName"],"sources":["Table.tsx"],"sourcesContent":["import React, { forwardRef, useMemo } from \"react\";\nimport { format, addMinutes } from \"date-fns\";\n\nimport { ReactComponent as PreviewIcon } from \"@webiny/icons/info.svg\";\nimport type { Columns, OnSortingChange, Sorting } from \"@webiny/ui/DataTable\";\nimport { DataTable } from \"@webiny/ui/DataTable\";\nimport { IconButton } from \"@webiny/ui/Button\";\nimport { Tooltip } from \"@webiny/ui/Tooltip\";\n\nimport type { Entry } from \"~/utils/transformCmsContentEntriesToRecordEntries\";\nimport { Text } from \"~/components/Text\";\nimport {\n ActionWrapper,\n TextGray,\n TimezoneText,\n wideColumn,\n appColumn,\n previewColumn\n} from \"./styled\";\nimport type { ActionType } from \"~/types\";\n\ntype ActionProps = {\n label: string;\n value: ActionType;\n};\n\nexport const Action = ({ label, value }: ActionProps) => {\n return (\n <ActionWrapper value={value}>\n <Text use={\"subtitle1\"}>{label}</Text>\n </ActionWrapper>\n );\n};\n\nexport interface TableProps {\n records: Entry[];\n loading?: boolean;\n handleRecordSelect: (auditLog: Entry) => void;\n sorting: Sorting;\n onSortingChange: OnSortingChange;\n hasAccessToUsers: boolean;\n}\n\nexport interface EntryWithPreview extends Entry {\n /**\n * We need the preview property because data table is expecting it in columns.\n */\n preview?: string;\n}\n\nexport const Table = forwardRef<HTMLDivElement, TableProps>((props, ref) => {\n const { records, loading, handleRecordSelect, sorting, onSortingChange, hasAccessToUsers } =\n props;\n\n const columns: Columns<EntryWithPreview> = {\n savedOn: {\n header: \"Timestamp\",\n cell: ({ savedOn }) => {\n const date = new Date(savedOn);\n\n return (\n <Tooltip\n placement=\"right\"\n content={`UTC: ${format(\n addMinutes(date, date.getTimezoneOffset()),\n \"yyyy-MM-dd HH:mm:ss\"\n )}`}\n >\n <Text use={\"subtitle1\"}>{format(date, \"yyyy-MM-dd HH:mm:ss\")}</Text>\n <TimezoneText use={\"body2\"}>{format(date, \"(O)\")}</TimezoneText>\n </Tooltip>\n );\n },\n enableSorting: true\n },\n app: {\n header: \"App/Entity\",\n cell: ({ app, entity, entityId }) => (\n <>\n <Text use={\"subtitle1\"}>{app}</Text>\n {entity && <TextGray use={\"body2\"}>{` [Entity: ${entity.label}]`}</TextGray>}\n <br />\n <TextGray use={\"body2\"}>{`ID: `}</TextGray>\n {entity.link ? (\n <a href={entity.link} target={\"blank\"}>\n <Text use={\"body2\"}>{entityId}</Text>\n </a>\n ) : (\n <Text use={\"body2\"}>{entityId}</Text>\n )}\n </>\n ),\n className: appColumn\n },\n action: {\n header: \"Action\",\n cell: ({ action }) => <Action label={action.label} value={action.value} />\n },\n message: {\n header: \"Message\",\n cell: ({ message }) => <Text use={\"subtitle1\"}>{message}</Text>,\n className: wideColumn\n },\n ...(hasAccessToUsers && {\n initiator: {\n header: \"Initiator\",\n cell: ({ initiator }) => (\n <a href={`/admin-users?id=${initiator.id}`} target={\"blank\"}>\n <Text use={\"subtitle1\"}>{initiator.name}</Text>\n </a>\n )\n }\n }),\n preview: {\n header: \"\",\n cell: auditLog => (\n <IconButton onClick={() => handleRecordSelect(auditLog)} icon={<PreviewIcon />} />\n ),\n className: previewColumn\n }\n };\n\n const tableSorting = useMemo(() => {\n if (!Array.isArray(sorting) || sorting.length === 0) {\n return [\n {\n id: \"savedOn\",\n desc: true\n }\n ];\n }\n\n return sorting;\n }, [sorting]);\n\n return (\n <div ref={ref}>\n <DataTable\n columns={columns}\n data={records}\n loadingInitial={loading}\n stickyRows={1}\n sorting={tableSorting}\n onSortingChange={onSortingChange}\n />\n </div>\n );\n});\n\nTable.displayName = \"Table\";\n"],"mappings":"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","ignoreList":[]}
|