@strapi/admin 5.20.0 → 5.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. package/dist/admin/admin/src/StrapiApp.js +54 -8
  2. package/dist/admin/admin/src/StrapiApp.js.map +1 -1
  3. package/dist/admin/admin/src/StrapiApp.mjs +52 -6
  4. package/dist/admin/admin/src/StrapiApp.mjs.map +1 -1
  5. package/dist/admin/admin/src/components/GuidedTour/Tours.js +2 -0
  6. package/dist/admin/admin/src/components/GuidedTour/Tours.js.map +1 -1
  7. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs +2 -0
  8. package/dist/admin/admin/src/components/GuidedTour/Tours.mjs.map +1 -1
  9. package/dist/admin/admin/src/components/Widgets.js +199 -0
  10. package/dist/admin/admin/src/components/Widgets.js.map +1 -1
  11. package/dist/admin/admin/src/components/Widgets.mjs +200 -2
  12. package/dist/admin/admin/src/components/Widgets.mjs.map +1 -1
  13. package/dist/admin/admin/src/core/apis/Widgets.js.map +1 -1
  14. package/dist/admin/admin/src/core/apis/Widgets.mjs.map +1 -1
  15. package/dist/admin/admin/src/features/Tracking.js.map +1 -1
  16. package/dist/admin/admin/src/features/Tracking.mjs.map +1 -1
  17. package/dist/admin/admin/src/pages/Home/HomePage.js +32 -30
  18. package/dist/admin/admin/src/pages/Home/HomePage.js.map +1 -1
  19. package/dist/admin/admin/src/pages/Home/HomePage.mjs +33 -31
  20. package/dist/admin/admin/src/pages/Home/HomePage.mjs.map +1 -1
  21. package/dist/admin/admin/src/services/admin.js +1 -2
  22. package/dist/admin/admin/src/services/admin.js.map +1 -1
  23. package/dist/admin/admin/src/services/admin.mjs +1 -2
  24. package/dist/admin/admin/src/services/admin.mjs.map +1 -1
  25. package/dist/admin/admin/src/services/api.js +4 -1
  26. package/dist/admin/admin/src/services/api.js.map +1 -1
  27. package/dist/admin/admin/src/services/api.mjs +4 -1
  28. package/dist/admin/admin/src/services/api.mjs.map +1 -1
  29. package/dist/admin/admin/src/services/apiTokens.js +5 -4
  30. package/dist/admin/admin/src/services/apiTokens.js.map +1 -1
  31. package/dist/admin/admin/src/services/apiTokens.mjs +5 -4
  32. package/dist/admin/admin/src/services/apiTokens.mjs.map +1 -1
  33. package/dist/admin/admin/src/services/homepage.js +31 -0
  34. package/dist/admin/admin/src/services/homepage.js.map +1 -0
  35. package/dist/admin/admin/src/services/homepage.mjs +28 -0
  36. package/dist/admin/admin/src/services/homepage.mjs.map +1 -0
  37. package/dist/admin/admin/src/services/users.js +4 -2
  38. package/dist/admin/admin/src/services/users.js.map +1 -1
  39. package/dist/admin/admin/src/services/users.mjs +4 -2
  40. package/dist/admin/admin/src/services/users.mjs.map +1 -1
  41. package/dist/admin/admin/src/services/webhooks.js +9 -5
  42. package/dist/admin/admin/src/services/webhooks.js.map +1 -1
  43. package/dist/admin/admin/src/services/webhooks.mjs +9 -5
  44. package/dist/admin/admin/src/services/webhooks.mjs.map +1 -1
  45. package/dist/admin/admin/src/translations/en.json.js +12 -0
  46. package/dist/admin/admin/src/translations/en.json.js.map +1 -1
  47. package/dist/admin/admin/src/translations/en.json.mjs +12 -0
  48. package/dist/admin/admin/src/translations/en.json.mjs.map +1 -1
  49. package/dist/admin/admin/src/translations/es.json.js +9 -0
  50. package/dist/admin/admin/src/translations/es.json.js.map +1 -1
  51. package/dist/admin/admin/src/translations/es.json.mjs +9 -0
  52. package/dist/admin/admin/src/translations/es.json.mjs.map +1 -1
  53. package/dist/admin/admin/src/translations/fr.json.js +9 -0
  54. package/dist/admin/admin/src/translations/fr.json.js.map +1 -1
  55. package/dist/admin/admin/src/translations/fr.json.mjs +9 -0
  56. package/dist/admin/admin/src/translations/fr.json.mjs.map +1 -1
  57. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js +131 -0
  58. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.js.map +1 -0
  59. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs +129 -0
  60. package/dist/admin/ee/admin/src/components/AuditLogs/Widgets.mjs.map +1 -0
  61. package/dist/admin/ee/admin/src/constants.js +3 -1
  62. package/dist/admin/ee/admin/src/constants.js.map +1 -1
  63. package/dist/admin/ee/admin/src/constants.mjs +3 -2
  64. package/dist/admin/ee/admin/src/constants.mjs.map +1 -1
  65. package/dist/admin/index.js +2 -0
  66. package/dist/admin/index.js.map +1 -1
  67. package/dist/admin/index.mjs +1 -0
  68. package/dist/admin/index.mjs.map +1 -1
  69. package/dist/admin/src/components/Widgets.d.ts +2 -1
  70. package/dist/admin/src/core/apis/Widgets.d.ts +1 -0
  71. package/dist/admin/src/core/store/configure.d.ts +2 -2
  72. package/dist/admin/src/core/store/hooks.d.ts +2 -2
  73. package/dist/admin/src/features/Tracking.d.ts +1 -1
  74. package/dist/admin/src/hooks/useAdminRoles.d.ts +1 -1
  75. package/dist/admin/src/index.d.ts +1 -0
  76. package/dist/admin/src/pages/Home/HomePage.d.ts +1 -1
  77. package/dist/admin/src/pages/Settings/pages/Webhooks/hooks/useWebhooks.d.ts +4 -4
  78. package/dist/admin/src/selectors.d.ts +2 -2
  79. package/dist/admin/src/services/admin.d.ts +6 -6
  80. package/dist/admin/src/services/api.d.ts +1 -1
  81. package/dist/admin/src/services/apiTokens.d.ts +1 -1
  82. package/dist/admin/src/services/auth.d.ts +10 -10
  83. package/dist/admin/src/services/contentApi.d.ts +1 -1
  84. package/dist/admin/src/services/contentManager.d.ts +1 -1
  85. package/dist/admin/src/services/homepage.d.ts +14 -0
  86. package/dist/admin/src/services/transferTokens.d.ts +1 -1
  87. package/dist/admin/src/services/users.d.ts +8 -8
  88. package/dist/admin/src/services/webhooks.d.ts +2 -2
  89. package/dist/admin/tests/utils.d.ts +1 -1
  90. package/dist/ee/admin/src/components/AuditLogs/Widgets.d.ts +2 -0
  91. package/dist/ee/admin/src/constants.d.ts +1 -0
  92. package/dist/ee/admin/src/services/auditLogs.d.ts +1 -1
  93. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js +1 -1
  94. package/dist/server/ee/server/src/audit-logs/services/lifecycles.js.map +1 -1
  95. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs +1 -1
  96. package/dist/server/ee/server/src/audit-logs/services/lifecycles.mjs.map +1 -1
  97. package/dist/server/server/src/controllers/homepage.js +15 -0
  98. package/dist/server/server/src/controllers/homepage.js.map +1 -0
  99. package/dist/server/server/src/controllers/homepage.mjs +13 -0
  100. package/dist/server/server/src/controllers/homepage.mjs.map +1 -0
  101. package/dist/server/server/src/controllers/index.js +3 -1
  102. package/dist/server/server/src/controllers/index.js.map +1 -1
  103. package/dist/server/server/src/controllers/index.mjs +3 -1
  104. package/dist/server/server/src/controllers/index.mjs.map +1 -1
  105. package/dist/server/server/src/routes/homepage.js +17 -0
  106. package/dist/server/server/src/routes/homepage.js.map +1 -0
  107. package/dist/server/server/src/routes/homepage.mjs +15 -0
  108. package/dist/server/server/src/routes/homepage.mjs.map +1 -0
  109. package/dist/server/server/src/routes/index.js +3 -1
  110. package/dist/server/server/src/routes/index.js.map +1 -1
  111. package/dist/server/server/src/routes/index.mjs +3 -1
  112. package/dist/server/server/src/routes/index.mjs.map +1 -1
  113. package/dist/server/server/src/services/homepage.js +34 -0
  114. package/dist/server/server/src/services/homepage.js.map +1 -0
  115. package/dist/server/server/src/services/homepage.mjs +32 -0
  116. package/dist/server/server/src/services/homepage.mjs.map +1 -0
  117. package/dist/server/server/src/services/index.js +3 -1
  118. package/dist/server/server/src/services/index.js.map +1 -1
  119. package/dist/server/server/src/services/index.mjs +3 -1
  120. package/dist/server/server/src/services/index.mjs.map +1 -1
  121. package/dist/server/src/controllers/homepage.d.ts +15 -0
  122. package/dist/server/src/controllers/homepage.d.ts.map +1 -0
  123. package/dist/server/src/controllers/index.d.ts +13 -0
  124. package/dist/server/src/controllers/index.d.ts.map +1 -1
  125. package/dist/server/src/index.d.ts +26 -0
  126. package/dist/server/src/index.d.ts.map +1 -1
  127. package/dist/server/src/routes/homepage.d.ts +10 -0
  128. package/dist/server/src/routes/homepage.d.ts.map +1 -0
  129. package/dist/server/src/routes/index.d.ts.map +1 -1
  130. package/dist/server/src/services/homepage.d.ts +15 -0
  131. package/dist/server/src/services/homepage.d.ts.map +1 -0
  132. package/dist/server/src/services/index.d.ts +13 -0
  133. package/dist/server/src/services/index.d.ts.map +1 -1
  134. package/dist/shared/contracts/homepage.d.ts +30 -0
  135. package/dist/shared/contracts/homepage.d.ts.map +1 -1
  136. package/package.json +7 -7
@@ -0,0 +1,131 @@
1
+ 'use strict';
2
+
3
+ var jsxRuntime = require('react/jsx-runtime');
4
+ var strapiAdmin = require('@strapi/admin/strapi-admin');
5
+ var designSystem = require('@strapi/design-system');
6
+ var icons = require('@strapi/icons');
7
+ var reactIntl = require('react-intl');
8
+ var reactRouterDom = require('react-router-dom');
9
+ var styled = require('styled-components');
10
+ var RelativeTime$1 = require('../../../../../admin/src/components/RelativeTime.js');
11
+ var useQueryParams = require('../../../../../admin/src/hooks/useQueryParams.js');
12
+ var constants = require('../../constants.js');
13
+ var getActionTypesDefaultMessages = require('../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.js');
14
+ var auditLogs = require('../../services/auditLogs.js');
15
+
16
+ const RelativeTime = styled.styled(RelativeTime$1.RelativeTime)`
17
+ display: inline-block;
18
+
19
+ &::first-letter {
20
+ text-transform: uppercase;
21
+ }
22
+ `;
23
+ const LastActivityTable = ({ items })=>{
24
+ const { formatMessage } = reactIntl.useIntl();
25
+ const { trackUsage } = strapiAdmin.useTracking();
26
+ const navigate = reactRouterDom.useNavigate();
27
+ const getAuditLogDetailsLink = (item)=>{
28
+ return `/settings/audit-logs?pageSize=${constants.AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;
29
+ };
30
+ const handleRowClick = (document)=>()=>{
31
+ trackUsage('willOpenAuditLogDetails');
32
+ const link = getAuditLogDetailsLink(document);
33
+ navigate(link);
34
+ };
35
+ return /*#__PURE__*/ jsxRuntime.jsx(designSystem.Table, {
36
+ colCount: 4,
37
+ rowCount: items?.length ?? 0,
38
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Tbody, {
39
+ children: items?.map((item)=>{
40
+ const action = formatMessage({
41
+ id: `Settings.permissions.auditLogs.${item.action}`,
42
+ // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.
43
+ defaultMessage: getActionTypesDefaultMessages.getDefaultMessage(item.action)
44
+ }, {
45
+ model: item.payload.model ?? ''
46
+ });
47
+ const userDisplayName = item.user?.displayName ?? '-';
48
+ return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Tr, {
49
+ onClick: handleRowClick(item),
50
+ cursor: "pointer",
51
+ children: [
52
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
53
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
54
+ title: action,
55
+ variant: "omega",
56
+ textColor: "neutral800",
57
+ children: action
58
+ })
59
+ }),
60
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
61
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
62
+ variant: "omega",
63
+ textColor: "neutral800",
64
+ children: /*#__PURE__*/ jsxRuntime.jsx(RelativeTime, {
65
+ timestamp: new Date(item.date)
66
+ })
67
+ })
68
+ }),
69
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
70
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
71
+ title: userDisplayName,
72
+ variant: "omega",
73
+ textColor: "neutral800",
74
+ children: userDisplayName
75
+ })
76
+ }),
77
+ /*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
78
+ onClick: (e)=>e.stopPropagation(),
79
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.Box, {
80
+ display: "inline-block",
81
+ children: /*#__PURE__*/ jsxRuntime.jsx(designSystem.IconButton, {
82
+ tag: reactRouterDom.Link,
83
+ to: getAuditLogDetailsLink(item),
84
+ onClick: ()=>trackUsage('willOpenAuditLogDetails'),
85
+ label: formatMessage({
86
+ id: 'global.details',
87
+ defaultMessage: 'Details'
88
+ }),
89
+ variant: "ghost",
90
+ children: /*#__PURE__*/ jsxRuntime.jsx(icons.Eye, {})
91
+ })
92
+ })
93
+ })
94
+ ]
95
+ }, `lastActivity_auditLog_${item.id}`);
96
+ })
97
+ })
98
+ });
99
+ };
100
+ const AuditLogsWidget = ()=>{
101
+ const { formatMessage } = reactIntl.useIntl();
102
+ const [{ query }] = useQueryParams.useQueryParams();
103
+ const { data, isLoading, error } = auditLogs.useGetAuditLogsQuery({
104
+ ...query,
105
+ page: 1,
106
+ pageSize: 4,
107
+ sort: 'date:DESC'
108
+ }, {
109
+ refetchOnMountOrArgChange: true
110
+ });
111
+ if (isLoading) {
112
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
113
+ }
114
+ if (error || !data?.results) {
115
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Error, {});
116
+ }
117
+ if (data.results.length === 0) {
118
+ return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.NoData, {
119
+ children: formatMessage({
120
+ id: 'widget.last-activity.no-activity',
121
+ defaultMessage: 'No activity'
122
+ })
123
+ });
124
+ }
125
+ return /*#__PURE__*/ jsxRuntime.jsx(LastActivityTable, {
126
+ items: data.results ?? []
127
+ });
128
+ };
129
+
130
+ exports.AuditLogsWidget = AuditLogsWidget;
131
+ //# sourceMappingURL=Widgets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Widgets.js","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetails');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetails')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":"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"}
@@ -0,0 +1,129 @@
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { Widget, useTracking } from '@strapi/admin/strapi-admin';
3
+ import { Table, Tbody, Tr, Td, Typography, Box, IconButton } from '@strapi/design-system';
4
+ import { Eye } from '@strapi/icons';
5
+ import { useIntl } from 'react-intl';
6
+ import { useNavigate, Link } from 'react-router-dom';
7
+ import { styled } from 'styled-components';
8
+ import { RelativeTime as RelativeTime$1 } from '../../../../../admin/src/components/RelativeTime.mjs';
9
+ import { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams.mjs';
10
+ import { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants.mjs';
11
+ import { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages.mjs';
12
+ import { useGetAuditLogsQuery } from '../../services/auditLogs.mjs';
13
+
14
+ const RelativeTime = styled(RelativeTime$1)`
15
+ display: inline-block;
16
+
17
+ &::first-letter {
18
+ text-transform: uppercase;
19
+ }
20
+ `;
21
+ const LastActivityTable = ({ items })=>{
22
+ const { formatMessage } = useIntl();
23
+ const { trackUsage } = useTracking();
24
+ const navigate = useNavigate();
25
+ const getAuditLogDetailsLink = (item)=>{
26
+ return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;
27
+ };
28
+ const handleRowClick = (document)=>()=>{
29
+ trackUsage('willOpenAuditLogDetails');
30
+ const link = getAuditLogDetailsLink(document);
31
+ navigate(link);
32
+ };
33
+ return /*#__PURE__*/ jsx(Table, {
34
+ colCount: 4,
35
+ rowCount: items?.length ?? 0,
36
+ children: /*#__PURE__*/ jsx(Tbody, {
37
+ children: items?.map((item)=>{
38
+ const action = formatMessage({
39
+ id: `Settings.permissions.auditLogs.${item.action}`,
40
+ // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.
41
+ defaultMessage: getDefaultMessage(item.action)
42
+ }, {
43
+ model: item.payload.model ?? ''
44
+ });
45
+ const userDisplayName = item.user?.displayName ?? '-';
46
+ return /*#__PURE__*/ jsxs(Tr, {
47
+ onClick: handleRowClick(item),
48
+ cursor: "pointer",
49
+ children: [
50
+ /*#__PURE__*/ jsx(Td, {
51
+ children: /*#__PURE__*/ jsx(Typography, {
52
+ title: action,
53
+ variant: "omega",
54
+ textColor: "neutral800",
55
+ children: action
56
+ })
57
+ }),
58
+ /*#__PURE__*/ jsx(Td, {
59
+ children: /*#__PURE__*/ jsx(Typography, {
60
+ variant: "omega",
61
+ textColor: "neutral800",
62
+ children: /*#__PURE__*/ jsx(RelativeTime, {
63
+ timestamp: new Date(item.date)
64
+ })
65
+ })
66
+ }),
67
+ /*#__PURE__*/ jsx(Td, {
68
+ children: /*#__PURE__*/ jsx(Typography, {
69
+ title: userDisplayName,
70
+ variant: "omega",
71
+ textColor: "neutral800",
72
+ children: userDisplayName
73
+ })
74
+ }),
75
+ /*#__PURE__*/ jsx(Td, {
76
+ onClick: (e)=>e.stopPropagation(),
77
+ children: /*#__PURE__*/ jsx(Box, {
78
+ display: "inline-block",
79
+ children: /*#__PURE__*/ jsx(IconButton, {
80
+ tag: Link,
81
+ to: getAuditLogDetailsLink(item),
82
+ onClick: ()=>trackUsage('willOpenAuditLogDetails'),
83
+ label: formatMessage({
84
+ id: 'global.details',
85
+ defaultMessage: 'Details'
86
+ }),
87
+ variant: "ghost",
88
+ children: /*#__PURE__*/ jsx(Eye, {})
89
+ })
90
+ })
91
+ })
92
+ ]
93
+ }, `lastActivity_auditLog_${item.id}`);
94
+ })
95
+ })
96
+ });
97
+ };
98
+ const AuditLogsWidget = ()=>{
99
+ const { formatMessage } = useIntl();
100
+ const [{ query }] = useQueryParams();
101
+ const { data, isLoading, error } = useGetAuditLogsQuery({
102
+ ...query,
103
+ page: 1,
104
+ pageSize: 4,
105
+ sort: 'date:DESC'
106
+ }, {
107
+ refetchOnMountOrArgChange: true
108
+ });
109
+ if (isLoading) {
110
+ return /*#__PURE__*/ jsx(Widget.Loading, {});
111
+ }
112
+ if (error || !data?.results) {
113
+ return /*#__PURE__*/ jsx(Widget.Error, {});
114
+ }
115
+ if (data.results.length === 0) {
116
+ return /*#__PURE__*/ jsx(Widget.NoData, {
117
+ children: formatMessage({
118
+ id: 'widget.last-activity.no-activity',
119
+ defaultMessage: 'No activity'
120
+ })
121
+ });
122
+ }
123
+ return /*#__PURE__*/ jsx(LastActivityTable, {
124
+ items: data.results ?? []
125
+ });
126
+ };
127
+
128
+ export { AuditLogsWidget };
129
+ //# sourceMappingURL=Widgets.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Widgets.mjs","sources":["../../../../../../../ee/admin/src/components/AuditLogs/Widgets.tsx"],"sourcesContent":["import { useTracking, Widget } from '@strapi/admin/strapi-admin';\nimport { Box, IconButton, Table, Tbody, Td, Tr, Typography } from '@strapi/design-system';\nimport { Eye } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled } from 'styled-components';\n\nimport { RelativeTime as BaseRelativeTime } from '../../../../../admin/src/components/RelativeTime';\nimport { useQueryParams } from '../../../../../admin/src/hooks/useQueryParams';\nimport { AuditLog } from '../../../../../shared/contracts/audit-logs';\nimport { AUDIT_LOGS_DEFAULT_PAGE_SIZE } from '../../constants';\nimport { getDefaultMessage } from '../../pages/SettingsPage/pages/AuditLogs/utils/getActionTypesDefaultMessages';\nimport { useGetAuditLogsQuery } from '../../services/auditLogs';\n\nconst RelativeTime = styled(BaseRelativeTime)`\n display: inline-block;\n\n &::first-letter {\n text-transform: uppercase;\n }\n`;\n\nconst LastActivityTable = ({ items }: { items: AuditLog[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getAuditLogDetailsLink = (item: AuditLog): string => {\n return `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC&id=${item.id}`;\n };\n\n const handleRowClick = (document: AuditLog) => () => {\n trackUsage('willOpenAuditLogDetails');\n const link = getAuditLogDetailsLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={4} rowCount={items?.length ?? 0}>\n <Tbody>\n {items?.map((item) => {\n const action = formatMessage(\n {\n id: `Settings.permissions.auditLogs.${item.action}`,\n // @ts-expect-error – getDefaultMessage probably doesn't benefit from being so strongly typed unless we just add string at the end.\n defaultMessage: getDefaultMessage(item.action),\n },\n { model: (item.payload.model as string) ?? '' }\n );\n const userDisplayName = item.user?.displayName ?? '-';\n return (\n <Tr\n onClick={handleRowClick(item)}\n cursor=\"pointer\"\n key={`lastActivity_auditLog_${item.id}`}\n >\n <Td>\n <Typography title={action} variant=\"omega\" textColor=\"neutral800\">\n {action}\n </Typography>\n </Td>\n <Td>\n <Typography variant=\"omega\" textColor=\"neutral800\">\n <RelativeTime timestamp={new Date(item.date)} />\n </Typography>\n </Td>\n <Td>\n <Typography title={userDisplayName} variant=\"omega\" textColor=\"neutral800\">\n {userDisplayName}\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getAuditLogDetailsLink(item)}\n onClick={() => trackUsage('willOpenAuditLogDetails')}\n label={formatMessage({\n id: 'global.details',\n defaultMessage: 'Details',\n })}\n variant=\"ghost\"\n >\n <Eye />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n );\n })}\n </Tbody>\n </Table>\n );\n};\n\nconst AuditLogsWidget = () => {\n const { formatMessage } = useIntl();\n const [{ query }] = useQueryParams();\n const { data, isLoading, error } = useGetAuditLogsQuery(\n {\n ...query,\n page: 1,\n pageSize: 4,\n sort: 'date:DESC',\n },\n {\n refetchOnMountOrArgChange: true,\n }\n );\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data?.results) {\n return <Widget.Error />;\n }\n\n if (data.results.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'widget.last-activity.no-activity',\n defaultMessage: 'No activity',\n })}\n </Widget.NoData>\n );\n }\n\n return <LastActivityTable items={data.results ?? []} />;\n};\n\nexport { AuditLogsWidget };\n"],"names":["RelativeTime","styled","BaseRelativeTime","LastActivityTable","items","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getAuditLogDetailsLink","item","AUDIT_LOGS_DEFAULT_PAGE_SIZE","id","handleRowClick","document","link","_jsx","Table","colCount","rowCount","length","Tbody","map","action","defaultMessage","getDefaultMessage","model","payload","userDisplayName","user","displayName","_jsxs","Tr","onClick","cursor","Td","Typography","title","variant","textColor","timestamp","Date","date","e","stopPropagation","Box","display","IconButton","tag","Link","to","label","Eye","AuditLogsWidget","query","useQueryParams","data","isLoading","error","useGetAuditLogsQuery","page","pageSize","sort","refetchOnMountOrArgChange","Widget","Loading","results","Error","NoData"],"mappings":"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"}
@@ -105,6 +105,7 @@ const ADMIN_PERMISSIONS_EE = {
105
105
  }
106
106
  }
107
107
  ] : [];
108
+ const AUDIT_LOGS_DEFAULT_PAGE_SIZE = 50;
108
109
  // TODO: the constants.js file is imported before the React application is setup and
109
110
  // therefore `window.strapi` might not exist at import-time. We should probably define
110
111
  // which constant is available at which stage of the application lifecycle.
@@ -129,7 +130,7 @@ const SETTINGS_LINKS_EE = ()=>({
129
130
  id: 'global.auditLogs',
130
131
  defaultMessage: 'Audit Logs'
131
132
  },
132
- to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',
133
+ to: `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC`,
133
134
  id: 'auditLogs',
134
135
  licenseOnly: true
135
136
  }
@@ -138,6 +139,7 @@ const SETTINGS_LINKS_EE = ()=>({
138
139
  });
139
140
 
140
141
  exports.ADMIN_PERMISSIONS_EE = ADMIN_PERMISSIONS_EE;
142
+ exports.AUDIT_LOGS_DEFAULT_PAGE_SIZE = AUDIT_LOGS_DEFAULT_PAGE_SIZE;
141
143
  exports.SETTINGS_LINKS_EE = SETTINGS_LINKS_EE;
142
144
  exports.getEERoutes = getEERoutes;
143
145
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../../ee/admin/src/constants.ts"],"sourcesContent":["import type { SettingsMenu } from '../../../admin/src/constants';\nimport type { PermissionMap } from '../../../admin/src/types/permissions';\nimport type { RouteObject } from 'react-router-dom';\n\nexport const ADMIN_PERMISSIONS_EE = {\n settings: {\n auditLogs: {\n main: [{ action: 'admin::audit-logs.read', subject: null }],\n read: [{ action: 'admin::audit-logs.read', subject: null }],\n update: [{ action: 'admin::audit-logs.update', subject: null }],\n },\n 'review-workflows': {\n main: [{ action: 'admin::review-workflows.read', subject: null }],\n read: [{ action: 'admin::review-workflows.read', subject: null }],\n create: [{ action: 'admin::review-workflows.create', subject: null }],\n delete: [{ action: 'admin::review-workflows.delete', subject: null }],\n update: [{ action: 'admin::review-workflows.update', subject: null }],\n },\n sso: {\n main: [{ action: 'admin::provider-login.read', subject: null }],\n read: [{ action: 'admin::provider-login.read', subject: null }],\n update: [{ action: 'admin::provider-login.update', subject: null }],\n },\n releases: {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n },\n ],\n },\n },\n} satisfies {\n settings: Pick<PermissionMap['settings'], 'auditLogs' | 'review-workflows' | 'sso' | 'releases'>;\n};\n\n/**\n * Base EE routes, these are relative to the `root` of the app.\n * We use a function to get them so we're not looking at window\n * during build time.\n */\nexport const getEERoutes = (): RouteObject[] =>\n window.strapi.isEE\n ? [\n {\n path: 'auth/login/:authResponse',\n lazy: async () => {\n const { AuthResponse } = await import('./pages/AuthResponse');\n\n return {\n Component: AuthResponse,\n };\n },\n },\n ]\n : [];\n\n// TODO: the constants.js file is imported before the React application is setup and\n// therefore `window.strapi` might not exist at import-time. We should probably define\n// which constant is available at which stage of the application lifecycle.\nexport const SETTINGS_LINKS_EE = (): SettingsMenu => ({\n global: [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/single-sign-on',\n id: 'sso',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',\n id: 'auditLogs',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_EE","settings","auditLogs","main","action","subject","read","update","create","delete","sso","releases","getEERoutes","window","strapi","isEE","path","lazy","AuthResponse","Component","SETTINGS_LINKS_EE","global","features","isEnabled","SSO","intlLabel","id","defaultMessage","to","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../../ee/admin/src/constants.ts"],"sourcesContent":["import type { SettingsMenu } from '../../../admin/src/constants';\nimport type { PermissionMap } from '../../../admin/src/types/permissions';\nimport type { RouteObject } from 'react-router-dom';\n\nexport const ADMIN_PERMISSIONS_EE = {\n settings: {\n auditLogs: {\n main: [{ action: 'admin::audit-logs.read', subject: null }],\n read: [{ action: 'admin::audit-logs.read', subject: null }],\n update: [{ action: 'admin::audit-logs.update', subject: null }],\n },\n 'review-workflows': {\n main: [{ action: 'admin::review-workflows.read', subject: null }],\n read: [{ action: 'admin::review-workflows.read', subject: null }],\n create: [{ action: 'admin::review-workflows.create', subject: null }],\n delete: [{ action: 'admin::review-workflows.delete', subject: null }],\n update: [{ action: 'admin::review-workflows.update', subject: null }],\n },\n sso: {\n main: [{ action: 'admin::provider-login.read', subject: null }],\n read: [{ action: 'admin::provider-login.read', subject: null }],\n update: [{ action: 'admin::provider-login.update', subject: null }],\n },\n releases: {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n },\n ],\n },\n },\n} satisfies {\n settings: Pick<PermissionMap['settings'], 'auditLogs' | 'review-workflows' | 'sso' | 'releases'>;\n};\n\n/**\n * Base EE routes, these are relative to the `root` of the app.\n * We use a function to get them so we're not looking at window\n * during build time.\n */\nexport const getEERoutes = (): RouteObject[] =>\n window.strapi.isEE\n ? [\n {\n path: 'auth/login/:authResponse',\n lazy: async () => {\n const { AuthResponse } = await import('./pages/AuthResponse');\n\n return {\n Component: AuthResponse,\n };\n },\n },\n ]\n : [];\n\nexport const AUDIT_LOGS_DEFAULT_PAGE_SIZE = 50;\n\n// TODO: the constants.js file is imported before the React application is setup and\n// therefore `window.strapi` might not exist at import-time. We should probably define\n// which constant is available at which stage of the application lifecycle.\nexport const SETTINGS_LINKS_EE = (): SettingsMenu => ({\n global: [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/single-sign-on',\n id: 'sso',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC`,\n id: 'auditLogs',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_EE","settings","auditLogs","main","action","subject","read","update","create","delete","sso","releases","getEERoutes","window","strapi","isEE","path","lazy","AuthResponse","Component","AUDIT_LOGS_DEFAULT_PAGE_SIZE","SETTINGS_LINKS_EE","global","features","isEnabled","SSO","intlLabel","id","defaultMessage","to","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}
@@ -103,6 +103,7 @@ const ADMIN_PERMISSIONS_EE = {
103
103
  }
104
104
  }
105
105
  ] : [];
106
+ const AUDIT_LOGS_DEFAULT_PAGE_SIZE = 50;
106
107
  // TODO: the constants.js file is imported before the React application is setup and
107
108
  // therefore `window.strapi` might not exist at import-time. We should probably define
108
109
  // which constant is available at which stage of the application lifecycle.
@@ -127,7 +128,7 @@ const SETTINGS_LINKS_EE = ()=>({
127
128
  id: 'global.auditLogs',
128
129
  defaultMessage: 'Audit Logs'
129
130
  },
130
- to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',
131
+ to: `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC`,
131
132
  id: 'auditLogs',
132
133
  licenseOnly: true
133
134
  }
@@ -135,5 +136,5 @@ const SETTINGS_LINKS_EE = ()=>({
135
136
  ]
136
137
  });
137
138
 
138
- export { ADMIN_PERMISSIONS_EE, SETTINGS_LINKS_EE, getEERoutes };
139
+ export { ADMIN_PERMISSIONS_EE, AUDIT_LOGS_DEFAULT_PAGE_SIZE, SETTINGS_LINKS_EE, getEERoutes };
139
140
  //# sourceMappingURL=constants.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.mjs","sources":["../../../../../ee/admin/src/constants.ts"],"sourcesContent":["import type { SettingsMenu } from '../../../admin/src/constants';\nimport type { PermissionMap } from '../../../admin/src/types/permissions';\nimport type { RouteObject } from 'react-router-dom';\n\nexport const ADMIN_PERMISSIONS_EE = {\n settings: {\n auditLogs: {\n main: [{ action: 'admin::audit-logs.read', subject: null }],\n read: [{ action: 'admin::audit-logs.read', subject: null }],\n update: [{ action: 'admin::audit-logs.update', subject: null }],\n },\n 'review-workflows': {\n main: [{ action: 'admin::review-workflows.read', subject: null }],\n read: [{ action: 'admin::review-workflows.read', subject: null }],\n create: [{ action: 'admin::review-workflows.create', subject: null }],\n delete: [{ action: 'admin::review-workflows.delete', subject: null }],\n update: [{ action: 'admin::review-workflows.update', subject: null }],\n },\n sso: {\n main: [{ action: 'admin::provider-login.read', subject: null }],\n read: [{ action: 'admin::provider-login.read', subject: null }],\n update: [{ action: 'admin::provider-login.update', subject: null }],\n },\n releases: {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n },\n ],\n },\n },\n} satisfies {\n settings: Pick<PermissionMap['settings'], 'auditLogs' | 'review-workflows' | 'sso' | 'releases'>;\n};\n\n/**\n * Base EE routes, these are relative to the `root` of the app.\n * We use a function to get them so we're not looking at window\n * during build time.\n */\nexport const getEERoutes = (): RouteObject[] =>\n window.strapi.isEE\n ? [\n {\n path: 'auth/login/:authResponse',\n lazy: async () => {\n const { AuthResponse } = await import('./pages/AuthResponse');\n\n return {\n Component: AuthResponse,\n };\n },\n },\n ]\n : [];\n\n// TODO: the constants.js file is imported before the React application is setup and\n// therefore `window.strapi` might not exist at import-time. We should probably define\n// which constant is available at which stage of the application lifecycle.\nexport const SETTINGS_LINKS_EE = (): SettingsMenu => ({\n global: [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/single-sign-on',\n id: 'sso',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: '/settings/audit-logs?pageSize=50&page=1&sort=date:DESC',\n id: 'auditLogs',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_EE","settings","auditLogs","main","action","subject","read","update","create","delete","sso","releases","getEERoutes","window","strapi","isEE","path","lazy","AuthResponse","Component","SETTINGS_LINKS_EE","global","features","isEnabled","SSO","intlLabel","id","defaultMessage","to","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}
1
+ {"version":3,"file":"constants.mjs","sources":["../../../../../ee/admin/src/constants.ts"],"sourcesContent":["import type { SettingsMenu } from '../../../admin/src/constants';\nimport type { PermissionMap } from '../../../admin/src/types/permissions';\nimport type { RouteObject } from 'react-router-dom';\n\nexport const ADMIN_PERMISSIONS_EE = {\n settings: {\n auditLogs: {\n main: [{ action: 'admin::audit-logs.read', subject: null }],\n read: [{ action: 'admin::audit-logs.read', subject: null }],\n update: [{ action: 'admin::audit-logs.update', subject: null }],\n },\n 'review-workflows': {\n main: [{ action: 'admin::review-workflows.read', subject: null }],\n read: [{ action: 'admin::review-workflows.read', subject: null }],\n create: [{ action: 'admin::review-workflows.create', subject: null }],\n delete: [{ action: 'admin::review-workflows.delete', subject: null }],\n update: [{ action: 'admin::review-workflows.update', subject: null }],\n },\n sso: {\n main: [{ action: 'admin::provider-login.read', subject: null }],\n read: [{ action: 'admin::provider-login.read', subject: null }],\n update: [{ action: 'admin::provider-login.update', subject: null }],\n },\n releases: {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n },\n ],\n },\n },\n} satisfies {\n settings: Pick<PermissionMap['settings'], 'auditLogs' | 'review-workflows' | 'sso' | 'releases'>;\n};\n\n/**\n * Base EE routes, these are relative to the `root` of the app.\n * We use a function to get them so we're not looking at window\n * during build time.\n */\nexport const getEERoutes = (): RouteObject[] =>\n window.strapi.isEE\n ? [\n {\n path: 'auth/login/:authResponse',\n lazy: async () => {\n const { AuthResponse } = await import('./pages/AuthResponse');\n\n return {\n Component: AuthResponse,\n };\n },\n },\n ]\n : [];\n\nexport const AUDIT_LOGS_DEFAULT_PAGE_SIZE = 50;\n\n// TODO: the constants.js file is imported before the React application is setup and\n// therefore `window.strapi` might not exist at import-time. We should probably define\n// which constant is available at which stage of the application lifecycle.\nexport const SETTINGS_LINKS_EE = (): SettingsMenu => ({\n global: [\n ...(window.strapi.features.isEnabled(window.strapi.features.SSO)\n ? [\n {\n intlLabel: { id: 'Settings.sso.title', defaultMessage: 'Single Sign-On' },\n to: '/settings/single-sign-on',\n id: 'sso',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n\n admin: [\n ...(window.strapi.features.isEnabled(window.strapi.features.AUDIT_LOGS)\n ? [\n {\n intlLabel: { id: 'global.auditLogs', defaultMessage: 'Audit Logs' },\n to: `/settings/audit-logs?pageSize=${AUDIT_LOGS_DEFAULT_PAGE_SIZE}&page=1&sort=date:DESC`,\n id: 'auditLogs',\n licenseOnly: true,\n },\n ]\n : []),\n ],\n});\n"],"names":["ADMIN_PERMISSIONS_EE","settings","auditLogs","main","action","subject","read","update","create","delete","sso","releases","getEERoutes","window","strapi","isEE","path","lazy","AuthResponse","Component","AUDIT_LOGS_DEFAULT_PAGE_SIZE","SETTINGS_LINKS_EE","global","features","isEnabled","SSO","intlLabel","id","defaultMessage","to","licenseOnly","admin","AUDIT_LOGS"],"mappings":"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"}
@@ -31,6 +31,7 @@ var useRBAC = require('./admin/src/hooks/useRBAC.js');
31
31
  var useClipboard = require('./admin/src/hooks/useClipboard.js');
32
32
  var useElementOnScreen = require('./admin/src/hooks/useElementOnScreen.js');
33
33
  var users = require('./admin/src/services/users.js');
34
+ var homepage = require('./admin/src/services/homepage.js');
34
35
  var translatedErrors = require('./admin/src/utils/translatedErrors.js');
35
36
  var getFetchClient = require('./admin/src/utils/getFetchClient.js');
36
37
  var baseQuery = require('./admin/src/utils/baseQuery.js');
@@ -78,6 +79,7 @@ exports.useRBAC = useRBAC.useRBAC;
78
79
  exports.useClipboard = useClipboard.useClipboard;
79
80
  exports.useElementOnScreen = useElementOnScreen.useElementOnScreen;
80
81
  exports.useAdminUsers = users.useAdminUsers;
82
+ exports.useGetCountDocumentsQuery = homepage.useGetCountDocumentsQuery;
81
83
  exports.translatedErrors = translatedErrors.translatedErrors;
82
84
  exports.FetchError = getFetchClient.FetchError;
83
85
  exports.getFetchClient = getFetchClient.getFetchClient;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -29,6 +29,7 @@ export { useRBAC } from './admin/src/hooks/useRBAC.mjs';
29
29
  export { useClipboard } from './admin/src/hooks/useClipboard.mjs';
30
30
  export { useElementOnScreen } from './admin/src/hooks/useElementOnScreen.mjs';
31
31
  export { useAdminUsers } from './admin/src/services/users.mjs';
32
+ export { useGetCountDocumentsQuery } from './admin/src/services/homepage.mjs';
32
33
  export { translatedErrors } from './admin/src/utils/translatedErrors.mjs';
33
34
  export { FetchError, getFetchClient, isFetchError } from './admin/src/utils/getFetchClient.mjs';
34
35
  export { fetchBaseQuery, isBaseQueryError } from './admin/src/utils/baseQuery.mjs';
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,2 +1,3 @@
1
1
  declare const ProfileWidget: () => import("react/jsx-runtime").JSX.Element;
2
- export { ProfileWidget };
2
+ declare const KeyStatisticsWidget: () => import("react/jsx-runtime").JSX.Element;
3
+ export { ProfileWidget, KeyStatisticsWidget };
@@ -15,6 +15,7 @@ type WidgetArgs = {
15
15
  pluginId?: string;
16
16
  id: string;
17
17
  permissions?: Array<Pick<Permission, 'action'> & Partial<Omit<Permission, 'action'>>>;
18
+ roles?: string[];
18
19
  };
19
20
  type WidgetWithUID = Omit<WidgetArgs, 'id' | 'pluginId'> & {
20
21
  uid: WidgetUID;
@@ -8,10 +8,10 @@ type PreloadState = Partial<{
8
8
  * which we're trying to phase out. App Middlewares could potentially be improved...?
9
9
  */
10
10
  declare const configureStoreImpl: (preloadedState?: PreloadState, appMiddlewares?: Array<() => Middleware>, injectedReducers?: Record<string, Reducer>) => import("@reduxjs/toolkit/dist/configureStore").ToolkitStore<{
11
- readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, never, "adminApi">;
11
+ readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, "GuidedTourMeta" | "HomepageKeyStatistics", "adminApi">;
12
12
  readonly admin_app: AppState;
13
13
  }, import("redux").AnyAction, (import("@reduxjs/toolkit").ThunkMiddleware<{
14
- readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, never, "adminApi">;
14
+ readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, "GuidedTourMeta" | "HomepageKeyStatistics", "adminApi">;
15
15
  readonly admin_app: AppState;
16
16
  }, import("redux").AnyAction> | Middleware<{}, import("@reduxjs/toolkit/query").RootState<{}, string, "adminApi">, import("@reduxjs/toolkit").ThunkDispatch<any, any, import("redux").AnyAction>>)[]>;
17
17
  type Store = ReturnType<typeof configureStoreImpl> & {
@@ -6,10 +6,10 @@ declare const useTypedDispatch: () => AppDispatch;
6
6
  declare const useTypedStore: () => Store;
7
7
  declare const useTypedSelector: TypedUseSelectorHook<RootState>;
8
8
  declare const createTypedSelector: <TResult>(selector: Selector<RootState, TResult>) => ((state: {
9
- readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, never, "adminApi">;
9
+ readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, "GuidedTourMeta" | "HomepageKeyStatistics", "adminApi">;
10
10
  readonly admin_app: import("./configure").AppState;
11
11
  }) => TResult) & import("reselect").OutputSelectorFields<(args_0: {
12
- readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, never, "adminApi">;
12
+ readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, "GuidedTourMeta" | "HomepageKeyStatistics", "adminApi">;
13
13
  readonly admin_app: import("./configure").AppState;
14
14
  }) => TResult, {
15
15
  clearCache: () => void;
@@ -25,7 +25,7 @@ declare const TrackingProvider: ({ children }: TrackingProviderProps) => import(
25
25
  * event so understanding which properties go with which event is very helpful.
26
26
  */
27
27
  export interface EventWithoutProperties {
28
- name: 'changeComponentsOrder' | 'didAddComponentToDynamicZone' | 'didBulkDeleteEntries' | 'didNotBulkDeleteEntries' | 'didChangeDisplayedFields' | 'didCheckDraftRelations' | 'didClickGuidedTourHomepageApiTokens' | 'didClickGuidedTourHomepageContentManager' | 'didClickGuidedTourHomepageContentTypeBuilder' | 'didClickGuidedTourStep1CollectionType' | 'didClickGuidedTourStep2ContentManager' | 'didClickGuidedTourStep3ApiTokens' | 'didClickonBlogSection' | 'didClickonCodeExampleSection' | 'didClickonReadTheDocumentationSection' | 'didClickOnTryStrapiCloudSection' | 'didClickonTutorialSection' | 'didCreateGuidedTourCollectionType' | 'didCreateGuidedTourEntry' | 'didCreateNewRole' | 'didCreateRole' | 'didDeleteToken' | 'didDuplicateRole' | 'didEditEditSettings' | 'didEditEmailTemplates' | 'didEditFieldNameOnContentType' | 'didEditListSettings' | 'didEditMediaLibraryConfig' | 'didEditNameOfContentType' | 'didGenerateGuidedTourApiTokens' | 'didGoToMarketplace' | 'didLaunchGuidedtour' | 'didMissMarketplacePlugin' | 'didNotCreateFirstAdmin' | 'didNotSaveComponent' | 'didPluginLearnMore' | 'didBulkPublishEntries' | 'didNotBulkPublishEntries' | 'didUnpublishEntry' | 'didBulkUnpublishEntries' | 'didNotBulkUnpublishEntries' | 'didSaveComponent' | 'didSaveContentType' | 'didSearch' | 'didSkipGuidedtour' | 'didSubmitPlugin' | 'didSubmitProvider' | 'didUpdateConditions' | 'didSelectAllMediaLibraryElements' | 'didSelectContentTypeFieldSettings' | 'didSelectContentTypeSettings' | 'didEditAuthenticationProvider' | 'didRestoreHistoryVersion' | 'hasClickedCTBAddFieldBanner' | 'removeComponentFromDynamicZone' | 'willAddMoreFieldToContentType' | 'willBulkDeleteEntries' | 'willBulkPublishEntries' | 'willBulkUnpublishEntries' | 'willChangeNumberOfEntriesPerPage' | 'willCheckDraftRelations' | 'willCreateComponent' | 'willCreateComponentFromAttributesModal' | 'willCreateContentType' | 'willCreateFirstAdmin' | 'willCreateNewRole' | 'willCreateRole' | 'willCreateSingleType' | 'willCreateStage' | 'willCreateWorkflow' | 'willDeleteEntryFromList' | 'willDeleteFieldOfContentType' | 'willDuplicateRole' | 'willEditEditLayout' | 'willEditEmailTemplates' | 'willEditEntryFromButton' | 'willEditEntryFromHome' | 'willEditEntryFromList' | 'willEditFieldOfContentType' | 'willEditMediaLibraryConfig' | 'willEditNameOfContentType' | 'willEditNameOfSingleType' | 'willEditAuthenticationProvider' | 'willEditFieldNameOnContentType' | 'willEditStage' | 'willFilterEntries' | 'willInstallPlugin' | 'willUnpublishEntry' | 'willSaveComponent' | 'willSaveContentType' | 'willSaveContentTypeLayout' | 'didEditFieldNameOnContentType' | 'didCreateRelease' | 'didLaunchGuidedtour';
28
+ name: 'changeComponentsOrder' | 'didAddComponentToDynamicZone' | 'didBulkDeleteEntries' | 'didNotBulkDeleteEntries' | 'didChangeDisplayedFields' | 'didCheckDraftRelations' | 'didClickGuidedTourHomepageApiTokens' | 'didClickGuidedTourHomepageContentManager' | 'didClickGuidedTourHomepageContentTypeBuilder' | 'didClickGuidedTourStep1CollectionType' | 'didClickGuidedTourStep2ContentManager' | 'didClickGuidedTourStep3ApiTokens' | 'didClickonBlogSection' | 'didClickonCodeExampleSection' | 'didClickonReadTheDocumentationSection' | 'didClickOnTryStrapiCloudSection' | 'didClickonTutorialSection' | 'didCreateGuidedTourCollectionType' | 'didCreateGuidedTourEntry' | 'didCreateNewRole' | 'didCreateRole' | 'didDeleteToken' | 'didDuplicateRole' | 'didEditEditSettings' | 'didEditEmailTemplates' | 'didEditFieldNameOnContentType' | 'didEditListSettings' | 'didEditMediaLibraryConfig' | 'didEditNameOfContentType' | 'didGenerateGuidedTourApiTokens' | 'didGoToMarketplace' | 'didLaunchGuidedtour' | 'didMissMarketplacePlugin' | 'didNotCreateFirstAdmin' | 'didNotSaveComponent' | 'didPluginLearnMore' | 'didBulkPublishEntries' | 'didNotBulkPublishEntries' | 'didUnpublishEntry' | 'didBulkUnpublishEntries' | 'didNotBulkUnpublishEntries' | 'didSaveComponent' | 'didSaveContentType' | 'didSearch' | 'didSkipGuidedtour' | 'didSubmitPlugin' | 'didSubmitProvider' | 'didUpdateConditions' | 'didSelectAllMediaLibraryElements' | 'didSelectContentTypeFieldSettings' | 'didSelectContentTypeSettings' | 'didEditAuthenticationProvider' | 'didRestoreHistoryVersion' | 'hasClickedCTBAddFieldBanner' | 'removeComponentFromDynamicZone' | 'willAddMoreFieldToContentType' | 'willBulkDeleteEntries' | 'willBulkPublishEntries' | 'willBulkUnpublishEntries' | 'willChangeNumberOfEntriesPerPage' | 'willCheckDraftRelations' | 'willCreateComponent' | 'willCreateComponentFromAttributesModal' | 'willCreateContentType' | 'willCreateFirstAdmin' | 'willCreateNewRole' | 'willCreateRole' | 'willCreateSingleType' | 'willCreateStage' | 'willCreateWorkflow' | 'willDeleteEntryFromList' | 'willDeleteFieldOfContentType' | 'willDuplicateRole' | 'willEditEditLayout' | 'willEditEmailTemplates' | 'willEditEntryFromButton' | 'willEditEntryFromHome' | 'willEditEntryFromList' | 'willEditReleaseFromHome' | 'willEditFieldOfContentType' | 'willEditMediaLibraryConfig' | 'willEditNameOfContentType' | 'willEditNameOfSingleType' | 'willEditAuthenticationProvider' | 'willEditFieldNameOnContentType' | 'willEditStage' | 'willFilterEntries' | 'willInstallPlugin' | 'willOpenAuditLogDetails' | 'willUnpublishEntry' | 'willSaveComponent' | 'willSaveContentType' | 'willSaveContentTypeLayout' | 'didEditFieldNameOnContentType' | 'didCreateRelease' | 'didLaunchGuidedtour';
29
29
  properties?: never;
30
30
  }
31
31
  interface DidAccessAuthenticatedAdministrationEvent {
@@ -8,7 +8,7 @@ export declare const useAdminRoles: (params?: GetRolesParams, queryOptions?: Par
8
8
  error: any;
9
9
  isError: any;
10
10
  isLoading: any;
11
- refetch: () => import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<void | GetRolesParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "User" | "LicenseLimits" | "Role" | "RolePermissions", (import("..").SanitizedAdminRole & {
11
+ refetch: () => import("@reduxjs/toolkit/query").QueryActionCreatorResult<import("@reduxjs/toolkit/query").QueryDefinition<void | GetRolesParams, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("..").QueryArguments, unknown, import("..").BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "User" | "LicenseLimits" | "Role" | "RolePermissions", (import("..").SanitizedAdminRole & {
12
12
  usersCount?: number | undefined;
13
13
  })[], "adminApi">>;
14
14
  };
@@ -44,6 +44,7 @@ export { useRBAC, type AllowedActions } from './hooks/useRBAC';
44
44
  export { useClipboard } from './hooks/useClipboard';
45
45
  export { useElementOnScreen } from './hooks/useElementOnScreen';
46
46
  export { useAdminUsers } from './services/users';
47
+ export { useGetCountDocumentsQuery } from './services/homepage';
47
48
  /**
48
49
  * Types
49
50
  */
@@ -3,7 +3,7 @@ import type { WidgetType } from '@strapi/admin/strapi-admin';
3
3
  interface WidgetRootProps extends Pick<WidgetType, 'title' | 'icon' | 'permissions' | 'link'> {
4
4
  children: React.ReactNode;
5
5
  }
6
- export declare const WidgetRoot: ({ title, icon, permissions, children, link, }: WidgetRootProps) => import("react/jsx-runtime").JSX.Element;
6
+ export declare const WidgetRoot: ({ title, icon, children, link }: WidgetRootProps) => import("react/jsx-runtime").JSX.Element;
7
7
  declare const HomePageCE: () => import("react/jsx-runtime").JSX.Element;
8
8
  declare const HomePage: () => import("react/jsx-runtime").JSX.Element | null;
9
9
  export { HomePage, HomePageCE };
@@ -6,14 +6,14 @@ declare const useWebhooks: (args?: GetWebhook.Params | void, queryArgs?: Paramet
6
6
  webhooks: import("@strapi/types/dist/modules/webhook-store").Webhook[] | undefined;
7
7
  isLoading: boolean;
8
8
  error: BaseQueryError | SerializedError;
9
- createWebhook: import("@reduxjs/toolkit/dist/query/react/buildHooks").MutationTrigger<import("@reduxjs/toolkit/query").MutationDefinition<Omit<import("@strapi/types/dist/modules/webhook-store").Webhook, "id" | "isEnabled">, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "Webhook", import("@strapi/types/dist/modules/webhook-store").Webhook, "adminApi">>;
10
- updateWebhook: import("@reduxjs/toolkit/dist/query/react/buildHooks").MutationTrigger<import("@reduxjs/toolkit/query").MutationDefinition<Partial<import("@strapi/types/dist/modules/webhook-store").Webhook> & import("../../../../../../../shared/contracts/webhooks").UpdateWebhook.Params, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "Webhook", import("@strapi/types/dist/modules/webhook-store").Webhook, "adminApi">>;
11
- triggerWebhook: import("@reduxjs/toolkit/dist/query/react/buildHooks").MutationTrigger<import("@reduxjs/toolkit/query").MutationDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "Webhook", {
9
+ createWebhook: import("@reduxjs/toolkit/dist/query/react/buildHooks").MutationTrigger<import("@reduxjs/toolkit/query").MutationDefinition<Omit<import("@strapi/types/dist/modules/webhook-store").Webhook, "id" | "isEnabled">, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "Webhook", import("@strapi/types/dist/modules/webhook-store").Webhook, "adminApi">>;
10
+ updateWebhook: import("@reduxjs/toolkit/dist/query/react/buildHooks").MutationTrigger<import("@reduxjs/toolkit/query").MutationDefinition<Partial<import("@strapi/types/dist/modules/webhook-store").Webhook> & import("../../../../../../../shared/contracts/webhooks").UpdateWebhook.Params, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "Webhook", import("@strapi/types/dist/modules/webhook-store").Webhook, "adminApi">>;
11
+ triggerWebhook: import("@reduxjs/toolkit/dist/query/react/buildHooks").MutationTrigger<import("@reduxjs/toolkit/query").MutationDefinition<string, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "Webhook", {
12
12
  statusCode: number;
13
13
  message?: string | undefined;
14
14
  }, "adminApi">>;
15
15
  deleteManyWebhooks: import("@reduxjs/toolkit/dist/query/react/buildHooks").MutationTrigger<import("@reduxjs/toolkit/query").MutationDefinition<{
16
16
  ids: string[];
17
- }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "Webhook", {}, "adminApi">>;
17
+ }, import("@reduxjs/toolkit/query").BaseQueryFn<string | import("../../../../../utils/baseQuery").QueryArguments, unknown, BaseQueryError>, "GuidedTourMeta" | "HomepageKeyStatistics" | "Webhook", {}, "adminApi">>;
18
18
  };
19
19
  export { useWebhooks };
@@ -5,10 +5,10 @@
5
5
  * we were using the correct path. Which is state.admin_app.permissions
6
6
  */
7
7
  export declare const selectAdminPermissions: ((state: {
8
- readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, never, "adminApi">;
8
+ readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, "GuidedTourMeta" | "HomepageKeyStatistics", "adminApi">;
9
9
  readonly admin_app: import("./reducer").AppState;
10
10
  }) => Partial<import("./types/permissions").PermissionMap>) & import("reselect").OutputSelectorFields<(args_0: {
11
- readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, never, "adminApi">;
11
+ readonly adminApi: import("@reduxjs/toolkit/query").CombinedState<{}, "GuidedTourMeta" | "HomepageKeyStatistics", "adminApi">;
12
12
  readonly admin_app: import("./reducer").AppState;
13
13
  }) => Partial<import("./types/permissions").PermissionMap>, {
14
14
  clearCache: () => void;