@strapi/content-manager 5.20.0 → 5.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/admin/components/Widgets.js +4 -5
- package/dist/admin/components/Widgets.js.map +1 -1
- package/dist/admin/components/Widgets.mjs +5 -6
- package/dist/admin/components/Widgets.mjs.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js +12 -2
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.js.map +1 -1
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs +12 -2
- package/dist/admin/pages/ListView/components/BulkActions/PublishAction.mjs.map +1 -1
- package/dist/admin/services/homepage.js +2 -11
- package/dist/admin/services/homepage.js.map +1 -1
- package/dist/admin/services/homepage.mjs +3 -11
- package/dist/admin/services/homepage.mjs.map +1 -1
- package/dist/admin/src/history/services/historyVersion.d.ts +1 -1
- package/dist/admin/src/preview/services/preview.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/components.d.ts +2 -2
- package/dist/admin/src/services/contentTypes.d.ts +3 -3
- package/dist/admin/src/services/documents.d.ts +16 -16
- package/dist/admin/src/services/homepage.d.ts +2 -6
- package/dist/admin/src/services/init.d.ts +1 -1
- package/dist/admin/src/services/relations.d.ts +2 -2
- package/dist/admin/src/services/uid.d.ts +3 -3
- package/dist/admin/src/utils/api.d.ts +1 -1
- package/dist/admin/utils/api.js +1 -1
- package/dist/admin/utils/api.js.map +1 -1
- package/dist/admin/utils/api.mjs +1 -1
- package/dist/admin/utils/api.mjs.map +1 -1
- package/package.json +5 -5
@@ -31,10 +31,9 @@ function _interopNamespaceDefault(e) {
|
|
31
31
|
|
32
32
|
var React__namespace = /*#__PURE__*/_interopNamespaceDefault(React);
|
33
33
|
|
34
|
-
const CellTypography = styledComponents.styled(designSystem.Typography)
|
35
|
-
|
36
|
-
|
37
|
-
})`
|
34
|
+
const CellTypography = styledComponents.styled(designSystem.Typography)`
|
35
|
+
display: block;
|
36
|
+
max-width: 14.4rem;
|
38
37
|
overflow: hidden;
|
39
38
|
text-overflow: ellipsis;
|
40
39
|
white-space: nowrap;
|
@@ -354,7 +353,7 @@ const DonutChartSVG = ({ data })=>{
|
|
354
353
|
};
|
355
354
|
const ChartEntriesWidget = ()=>{
|
356
355
|
const { formatMessage } = reactIntl.useIntl();
|
357
|
-
const { data: countDocuments, isLoading, error } =
|
356
|
+
const { data: countDocuments, isLoading, error } = strapiAdmin.useGetCountDocumentsQuery();
|
358
357
|
if (isLoading) {
|
359
358
|
return /*#__PURE__*/ jsxRuntime.jsx(strapiAdmin.Widget.Loading, {});
|
360
359
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Widgets.js","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Widget, useTracking } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Tr,\n Typography,\n Portal,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery, useGetCountDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography).attrs({ maxWidth: '14.4rem', display: 'block' })`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ChartEntriesWidget\n * -----------------------------------------------------------------------------------------------*/\nconst RADIUS = 80;\nconst STROKE = 10;\nconst CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);\n\ntype ThemeColor = keyof DefaultTheme['colors'];\n\nconst ArcChart = styled.circle<{ $arcColor: ThemeColor }>`\n stroke: ${({ theme, $arcColor }) => theme.colors[$arcColor]};\n`;\n\nconst TextChart = styled.tspan<{ $textColor: ThemeColor }>`\n text-transform: lowercase;\n fill: ${({ theme, $textColor }) => theme.colors[$textColor]};\n`;\n\nconst KeyChartItem = styled(Flex)`\n width: 100%;\n\n ${({ theme }) => theme.breakpoints.small} {\n width: auto;\n }\n`;\n\ninterface ChartData {\n label: string;\n count: number;\n color: ThemeColor;\n}\n\nconst DonutChartSVG = ({ data }: { data: ChartData[] }) => {\n const { locale } = useIntl();\n const { formatMessage } = useIntl();\n const total = data.reduce((acc, curr) => acc + curr.count, 0);\n const [tooltip, setTooltip] = React.useState<{\n visible: boolean;\n x: number;\n y: number;\n value: ChartData | null;\n isTouch?: boolean;\n }>({ visible: false, x: 0, y: 0, value: null });\n\n let cumulativePercent = 0;\n\n const handleMouseOver = (e: React.MouseEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x: e.clientX,\n y: e.clientY,\n value,\n });\n };\n const handleMouseOut = () => {\n setTooltip((t) => ({ ...t, visible: false }));\n };\n\n const handleFocus = (e: React.FocusEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x:\n e.currentTarget.getBoundingClientRect().width / 2 +\n e.currentTarget.getBoundingClientRect().left,\n y:\n e.currentTarget.getBoundingClientRect().height +\n e.currentTarget.getBoundingClientRect().top,\n value,\n });\n };\n\n return (\n <Flex direction=\"column\" gap={6} margin=\"auto\">\n <svg\n width={RADIUS * 2}\n height={RADIUS * 2}\n viewBox={`0 0 ${RADIUS * 2} ${RADIUS * 2}`}\n style={{ position: 'relative', zIndex: 1 }}\n >\n <g transform={`rotate(-90 ${RADIUS} ${RADIUS})`}>\n {data.map((value) => {\n const percent = (value.count / total) * 100;\n const arcLength = (percent / 100) * CIRCUMFERENCE;\n const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;\n const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);\n const el = (\n <ArcChart\n key={value.label}\n cx={RADIUS}\n cy={RADIUS}\n r={RADIUS - STROKE / 2}\n fill=\"none\"\n strokeWidth={STROKE}\n strokeDasharray={dashArray}\n strokeDashoffset={dashOffset}\n style={{ transition: 'stroke-dashoffset 0.3s', cursor: 'pointer' }}\n tabIndex={0}\n aria-describedby={tooltip.visible ? 'chart-tooltip' : undefined}\n onFocus={(e) => handleFocus(e, value)}\n onBlur={handleMouseOut}\n onMouseMove={(e) => handleMouseOver(e, value)}\n onMouseLeave={handleMouseOut}\n $arcColor={value.color}\n />\n );\n cumulativePercent += percent;\n return el;\n })}\n </g>\n <text x={RADIUS} y={RADIUS} textAnchor=\"middle\" fontSize=\"2.4rem\" fontWeight=\"bold\">\n <TextChart x={RADIUS} dy=\"0\" $textColor=\"neutral800\">\n {new Intl.NumberFormat(locale, {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(total)}\n </TextChart>\n <TextChart\n x={RADIUS}\n dy=\"1.4em\"\n fontSize=\"1.4rem\"\n fontWeight=\"normal\"\n $textColor=\"neutral600\"\n >\n {formatMessage({\n id: 'content-manager.widget.chart-entries.title',\n defaultMessage: 'entries',\n })}\n </TextChart>\n </text>\n </svg>\n {tooltip.visible && tooltip.value && (\n <Portal\n style={{\n position: 'fixed',\n left: 16,\n top: 16,\n zIndex: 2,\n transform: `translate(${tooltip.x}px, ${tooltip.y}px)`,\n }}\n data-testid=\"entries-chart-tooltip\"\n >\n <Box\n background=\"neutral900\"\n padding={2}\n borderRadius={1}\n textAlign=\"center\"\n role=\"tooltip\"\n aria-live=\"polite\"\n >\n <Typography textColor=\"neutral0\">\n {formatMessage(\n {\n id: 'content-manager.widget.chart-entries.tooltip',\n defaultMessage: '{count} items',\n },\n {\n count: tooltip.value.count,\n label: tooltip.value.label,\n }\n )}\n </Typography>\n </Box>\n </Portal>\n )}\n <Flex gap={4} wrap=\"wrap\">\n {data.map(\n (value) =>\n value.count > 0 && (\n <KeyChartItem gap={1} key={value.label}>\n <Box background={value.color} padding={2} borderRadius={1} />\n <Typography variant=\"pi\">{value.label}</Typography>\n </KeyChartItem>\n )\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst ChartEntriesWidget = () => {\n const { formatMessage } = useIntl();\n const { data: countDocuments, isLoading, error } = useGetCountDocumentsQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error) {\n return <Widget.Error />;\n }\n\n const { draft, published, modified } = countDocuments ?? {\n draft: 0,\n published: 0,\n modified: 0,\n };\n\n const total = draft + published + modified;\n\n if (!total) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return (\n <Flex minHeight=\"100%\">\n <DonutChartSVG\n data={[\n {\n label: formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'Draft',\n }),\n count: draft,\n color: 'secondary500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.modified',\n defaultMessage: 'Modified',\n }),\n count: modified,\n color: 'alternative500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'Published',\n }),\n count: published,\n color: 'success500',\n },\n ]}\n />\n </Flex>\n );\n};\n\nexport { ChartEntriesWidget, LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","attrs","maxWidth","display","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget","RADIUS","STROKE","CIRCUMFERENCE","Math","PI","ArcChart","circle","theme","$arcColor","colors","TextChart","tspan","$textColor","KeyChartItem","Flex","breakpoints","small","DonutChartSVG","total","reduce","acc","curr","count","tooltip","setTooltip","React","useState","visible","x","y","value","cumulativePercent","handleMouseOver","clientX","clientY","handleMouseOut","t","handleFocus","currentTarget","getBoundingClientRect","width","left","height","top","direction","gap","margin","svg","viewBox","style","position","zIndex","g","transform","percent","arcLength","dashArray","dashOffset","el","cx","cy","r","fill","strokeWidth","strokeDasharray","strokeDashoffset","transition","tabIndex","aria-describedby","undefined","onFocus","onBlur","onMouseMove","onMouseLeave","color","text","textAnchor","fontSize","fontWeight","dy","Intl","NumberFormat","notation","maximumFractionDigits","format","Portal","data-testid","background","padding","borderRadius","textAlign","role","aria-live","wrap","ChartEntriesWidget","countDocuments","useGetCountDocumentsQuery","draft","published","modified","minHeight"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Widgets.js","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Widget, useTracking, useGetCountDocumentsQuery } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Tr,\n Typography,\n Portal,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography)`\n display: block;\n max-width: 14.4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ChartEntriesWidget\n * -----------------------------------------------------------------------------------------------*/\nconst RADIUS = 80;\nconst STROKE = 10;\nconst CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);\n\ntype ThemeColor = keyof DefaultTheme['colors'];\n\nconst ArcChart = styled.circle<{ $arcColor: ThemeColor }>`\n stroke: ${({ theme, $arcColor }) => theme.colors[$arcColor]};\n`;\n\nconst TextChart = styled.tspan<{ $textColor: ThemeColor }>`\n text-transform: lowercase;\n fill: ${({ theme, $textColor }) => theme.colors[$textColor]};\n`;\n\nconst KeyChartItem = styled(Flex)`\n width: 100%;\n\n ${({ theme }) => theme.breakpoints.small} {\n width: auto;\n }\n`;\n\ninterface ChartData {\n label: string;\n count: number;\n color: ThemeColor;\n}\n\nconst DonutChartSVG = ({ data }: { data: ChartData[] }) => {\n const { locale } = useIntl();\n const { formatMessage } = useIntl();\n const total = data.reduce((acc, curr) => acc + curr.count, 0);\n const [tooltip, setTooltip] = React.useState<{\n visible: boolean;\n x: number;\n y: number;\n value: ChartData | null;\n isTouch?: boolean;\n }>({ visible: false, x: 0, y: 0, value: null });\n\n let cumulativePercent = 0;\n\n const handleMouseOver = (e: React.MouseEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x: e.clientX,\n y: e.clientY,\n value,\n });\n };\n const handleMouseOut = () => {\n setTooltip((t) => ({ ...t, visible: false }));\n };\n\n const handleFocus = (e: React.FocusEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x:\n e.currentTarget.getBoundingClientRect().width / 2 +\n e.currentTarget.getBoundingClientRect().left,\n y:\n e.currentTarget.getBoundingClientRect().height +\n e.currentTarget.getBoundingClientRect().top,\n value,\n });\n };\n\n return (\n <Flex direction=\"column\" gap={6} margin=\"auto\">\n <svg\n width={RADIUS * 2}\n height={RADIUS * 2}\n viewBox={`0 0 ${RADIUS * 2} ${RADIUS * 2}`}\n style={{ position: 'relative', zIndex: 1 }}\n >\n <g transform={`rotate(-90 ${RADIUS} ${RADIUS})`}>\n {data.map((value) => {\n const percent = (value.count / total) * 100;\n const arcLength = (percent / 100) * CIRCUMFERENCE;\n const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;\n const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);\n const el = (\n <ArcChart\n key={value.label}\n cx={RADIUS}\n cy={RADIUS}\n r={RADIUS - STROKE / 2}\n fill=\"none\"\n strokeWidth={STROKE}\n strokeDasharray={dashArray}\n strokeDashoffset={dashOffset}\n style={{ transition: 'stroke-dashoffset 0.3s', cursor: 'pointer' }}\n tabIndex={0}\n aria-describedby={tooltip.visible ? 'chart-tooltip' : undefined}\n onFocus={(e) => handleFocus(e, value)}\n onBlur={handleMouseOut}\n onMouseMove={(e) => handleMouseOver(e, value)}\n onMouseLeave={handleMouseOut}\n $arcColor={value.color}\n />\n );\n cumulativePercent += percent;\n return el;\n })}\n </g>\n <text x={RADIUS} y={RADIUS} textAnchor=\"middle\" fontSize=\"2.4rem\" fontWeight=\"bold\">\n <TextChart x={RADIUS} dy=\"0\" $textColor=\"neutral800\">\n {new Intl.NumberFormat(locale, {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(total)}\n </TextChart>\n <TextChart\n x={RADIUS}\n dy=\"1.4em\"\n fontSize=\"1.4rem\"\n fontWeight=\"normal\"\n $textColor=\"neutral600\"\n >\n {formatMessage({\n id: 'content-manager.widget.chart-entries.title',\n defaultMessage: 'entries',\n })}\n </TextChart>\n </text>\n </svg>\n {tooltip.visible && tooltip.value && (\n <Portal\n style={{\n position: 'fixed',\n left: 16,\n top: 16,\n zIndex: 2,\n transform: `translate(${tooltip.x}px, ${tooltip.y}px)`,\n }}\n data-testid=\"entries-chart-tooltip\"\n >\n <Box\n background=\"neutral900\"\n padding={2}\n borderRadius={1}\n textAlign=\"center\"\n role=\"tooltip\"\n aria-live=\"polite\"\n >\n <Typography textColor=\"neutral0\">\n {formatMessage(\n {\n id: 'content-manager.widget.chart-entries.tooltip',\n defaultMessage: '{count} items',\n },\n {\n count: tooltip.value.count,\n label: tooltip.value.label,\n }\n )}\n </Typography>\n </Box>\n </Portal>\n )}\n <Flex gap={4} wrap=\"wrap\">\n {data.map(\n (value) =>\n value.count > 0 && (\n <KeyChartItem gap={1} key={value.label}>\n <Box background={value.color} padding={2} borderRadius={1} />\n <Typography variant=\"pi\">{value.label}</Typography>\n </KeyChartItem>\n )\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst ChartEntriesWidget = () => {\n const { formatMessage } = useIntl();\n const { data: countDocuments, isLoading, error } = useGetCountDocumentsQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error) {\n return <Widget.Error />;\n }\n\n const { draft, published, modified } = countDocuments ?? {\n draft: 0,\n published: 0,\n modified: 0,\n };\n\n const total = draft + published + modified;\n\n if (!total) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return (\n <Flex minHeight=\"100%\">\n <DonutChartSVG\n data={[\n {\n label: formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'Draft',\n }),\n count: draft,\n color: 'secondary500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.modified',\n defaultMessage: 'Modified',\n }),\n count: modified,\n color: 'alternative500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'Published',\n }),\n count: published,\n color: 'success500',\n },\n ]}\n />\n </Flex>\n );\n};\n\nexport { ChartEntriesWidget, LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","display","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget","RADIUS","STROKE","CIRCUMFERENCE","Math","PI","ArcChart","circle","theme","$arcColor","colors","TextChart","tspan","$textColor","KeyChartItem","Flex","breakpoints","small","DonutChartSVG","total","reduce","acc","curr","count","tooltip","setTooltip","React","useState","visible","x","y","value","cumulativePercent","handleMouseOver","clientX","clientY","handleMouseOut","t","handleFocus","currentTarget","getBoundingClientRect","width","left","height","top","direction","gap","margin","svg","viewBox","style","position","zIndex","g","transform","percent","arcLength","dashArray","dashOffset","el","cx","cy","r","fill","strokeWidth","strokeDasharray","strokeDashoffset","transition","tabIndex","aria-describedby","undefined","onFocus","onBlur","onMouseMove","onMouseLeave","color","text","textAnchor","fontSize","fontWeight","dy","Intl","NumberFormat","notation","maximumFractionDigits","format","Portal","data-testid","background","padding","borderRadius","textAlign","role","aria-live","wrap","ChartEntriesWidget","countDocuments","useGetCountDocumentsQuery","draft","published","modified","minHeight"],"mappings":"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"}
|
@@ -1,19 +1,18 @@
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
2
2
|
import * as React from 'react';
|
3
|
-
import { Widget, useTracking } from '@strapi/admin/strapi-admin';
|
3
|
+
import { Widget, useGetCountDocumentsQuery, useTracking } from '@strapi/admin/strapi-admin';
|
4
4
|
import { Typography, Flex, Table, Tbody, Tr, Td, Box, IconButton, Portal } from '@strapi/design-system';
|
5
5
|
import { Pencil } from '@strapi/icons';
|
6
6
|
import { useIntl } from 'react-intl';
|
7
7
|
import { useNavigate, Link } from 'react-router-dom';
|
8
8
|
import { styled } from 'styled-components';
|
9
9
|
import { DocumentStatus } from '../pages/EditView/components/DocumentStatus.mjs';
|
10
|
-
import { useGetRecentDocumentsQuery
|
10
|
+
import { useGetRecentDocumentsQuery } from '../services/homepage.mjs';
|
11
11
|
import { RelativeTime } from './RelativeTime.mjs';
|
12
12
|
|
13
|
-
const CellTypography = styled(Typography)
|
14
|
-
|
15
|
-
|
16
|
-
})`
|
13
|
+
const CellTypography = styled(Typography)`
|
14
|
+
display: block;
|
15
|
+
max-width: 14.4rem;
|
17
16
|
overflow: hidden;
|
18
17
|
text-overflow: ellipsis;
|
19
18
|
white-space: nowrap;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Widget, useTracking } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Tr,\n Typography,\n Portal,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery, useGetCountDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography).attrs({ maxWidth: '14.4rem', display: 'block' })`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ChartEntriesWidget\n * -----------------------------------------------------------------------------------------------*/\nconst RADIUS = 80;\nconst STROKE = 10;\nconst CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);\n\ntype ThemeColor = keyof DefaultTheme['colors'];\n\nconst ArcChart = styled.circle<{ $arcColor: ThemeColor }>`\n stroke: ${({ theme, $arcColor }) => theme.colors[$arcColor]};\n`;\n\nconst TextChart = styled.tspan<{ $textColor: ThemeColor }>`\n text-transform: lowercase;\n fill: ${({ theme, $textColor }) => theme.colors[$textColor]};\n`;\n\nconst KeyChartItem = styled(Flex)`\n width: 100%;\n\n ${({ theme }) => theme.breakpoints.small} {\n width: auto;\n }\n`;\n\ninterface ChartData {\n label: string;\n count: number;\n color: ThemeColor;\n}\n\nconst DonutChartSVG = ({ data }: { data: ChartData[] }) => {\n const { locale } = useIntl();\n const { formatMessage } = useIntl();\n const total = data.reduce((acc, curr) => acc + curr.count, 0);\n const [tooltip, setTooltip] = React.useState<{\n visible: boolean;\n x: number;\n y: number;\n value: ChartData | null;\n isTouch?: boolean;\n }>({ visible: false, x: 0, y: 0, value: null });\n\n let cumulativePercent = 0;\n\n const handleMouseOver = (e: React.MouseEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x: e.clientX,\n y: e.clientY,\n value,\n });\n };\n const handleMouseOut = () => {\n setTooltip((t) => ({ ...t, visible: false }));\n };\n\n const handleFocus = (e: React.FocusEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x:\n e.currentTarget.getBoundingClientRect().width / 2 +\n e.currentTarget.getBoundingClientRect().left,\n y:\n e.currentTarget.getBoundingClientRect().height +\n e.currentTarget.getBoundingClientRect().top,\n value,\n });\n };\n\n return (\n <Flex direction=\"column\" gap={6} margin=\"auto\">\n <svg\n width={RADIUS * 2}\n height={RADIUS * 2}\n viewBox={`0 0 ${RADIUS * 2} ${RADIUS * 2}`}\n style={{ position: 'relative', zIndex: 1 }}\n >\n <g transform={`rotate(-90 ${RADIUS} ${RADIUS})`}>\n {data.map((value) => {\n const percent = (value.count / total) * 100;\n const arcLength = (percent / 100) * CIRCUMFERENCE;\n const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;\n const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);\n const el = (\n <ArcChart\n key={value.label}\n cx={RADIUS}\n cy={RADIUS}\n r={RADIUS - STROKE / 2}\n fill=\"none\"\n strokeWidth={STROKE}\n strokeDasharray={dashArray}\n strokeDashoffset={dashOffset}\n style={{ transition: 'stroke-dashoffset 0.3s', cursor: 'pointer' }}\n tabIndex={0}\n aria-describedby={tooltip.visible ? 'chart-tooltip' : undefined}\n onFocus={(e) => handleFocus(e, value)}\n onBlur={handleMouseOut}\n onMouseMove={(e) => handleMouseOver(e, value)}\n onMouseLeave={handleMouseOut}\n $arcColor={value.color}\n />\n );\n cumulativePercent += percent;\n return el;\n })}\n </g>\n <text x={RADIUS} y={RADIUS} textAnchor=\"middle\" fontSize=\"2.4rem\" fontWeight=\"bold\">\n <TextChart x={RADIUS} dy=\"0\" $textColor=\"neutral800\">\n {new Intl.NumberFormat(locale, {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(total)}\n </TextChart>\n <TextChart\n x={RADIUS}\n dy=\"1.4em\"\n fontSize=\"1.4rem\"\n fontWeight=\"normal\"\n $textColor=\"neutral600\"\n >\n {formatMessage({\n id: 'content-manager.widget.chart-entries.title',\n defaultMessage: 'entries',\n })}\n </TextChart>\n </text>\n </svg>\n {tooltip.visible && tooltip.value && (\n <Portal\n style={{\n position: 'fixed',\n left: 16,\n top: 16,\n zIndex: 2,\n transform: `translate(${tooltip.x}px, ${tooltip.y}px)`,\n }}\n data-testid=\"entries-chart-tooltip\"\n >\n <Box\n background=\"neutral900\"\n padding={2}\n borderRadius={1}\n textAlign=\"center\"\n role=\"tooltip\"\n aria-live=\"polite\"\n >\n <Typography textColor=\"neutral0\">\n {formatMessage(\n {\n id: 'content-manager.widget.chart-entries.tooltip',\n defaultMessage: '{count} items',\n },\n {\n count: tooltip.value.count,\n label: tooltip.value.label,\n }\n )}\n </Typography>\n </Box>\n </Portal>\n )}\n <Flex gap={4} wrap=\"wrap\">\n {data.map(\n (value) =>\n value.count > 0 && (\n <KeyChartItem gap={1} key={value.label}>\n <Box background={value.color} padding={2} borderRadius={1} />\n <Typography variant=\"pi\">{value.label}</Typography>\n </KeyChartItem>\n )\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst ChartEntriesWidget = () => {\n const { formatMessage } = useIntl();\n const { data: countDocuments, isLoading, error } = useGetCountDocumentsQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error) {\n return <Widget.Error />;\n }\n\n const { draft, published, modified } = countDocuments ?? {\n draft: 0,\n published: 0,\n modified: 0,\n };\n\n const total = draft + published + modified;\n\n if (!total) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return (\n <Flex minHeight=\"100%\">\n <DonutChartSVG\n data={[\n {\n label: formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'Draft',\n }),\n count: draft,\n color: 'secondary500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.modified',\n defaultMessage: 'Modified',\n }),\n count: modified,\n color: 'alternative500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'Published',\n }),\n count: published,\n color: 'success500',\n },\n ]}\n />\n </Flex>\n );\n};\n\nexport { ChartEntriesWidget, LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","attrs","maxWidth","display","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget","RADIUS","STROKE","CIRCUMFERENCE","Math","PI","ArcChart","circle","theme","$arcColor","colors","TextChart","tspan","$textColor","KeyChartItem","Flex","breakpoints","small","DonutChartSVG","total","reduce","acc","curr","count","tooltip","setTooltip","React","useState","visible","x","y","value","cumulativePercent","handleMouseOver","clientX","clientY","handleMouseOut","t","handleFocus","currentTarget","getBoundingClientRect","width","left","height","top","direction","gap","margin","svg","viewBox","style","position","zIndex","g","transform","percent","arcLength","dashArray","dashOffset","el","cx","cy","r","fill","strokeWidth","strokeDasharray","strokeDashoffset","transition","tabIndex","aria-describedby","undefined","onFocus","onBlur","onMouseMove","onMouseLeave","color","text","textAnchor","fontSize","fontWeight","dy","Intl","NumberFormat","notation","maximumFractionDigits","format","Portal","data-testid","background","padding","borderRadius","textAlign","role","aria-live","wrap","ChartEntriesWidget","countDocuments","useGetCountDocumentsQuery","draft","published","modified","minHeight"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"Widgets.mjs","sources":["../../../admin/src/components/Widgets.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport { Widget, useTracking, useGetCountDocumentsQuery } from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Flex,\n IconButton,\n Table,\n Tbody,\n Td,\n Tr,\n Typography,\n Portal,\n} from '@strapi/design-system';\nimport { Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useNavigate } from 'react-router-dom';\nimport { styled, DefaultTheme } from 'styled-components';\n\nimport { DocumentStatus } from '../pages/EditView/components/DocumentStatus';\nimport { useGetRecentDocumentsQuery } from '../services/homepage';\n\nimport { RelativeTime } from './RelativeTime';\n\nimport type { RecentDocument } from '../../../shared/contracts/homepage';\n\nconst CellTypography = styled(Typography)`\n display: block;\n max-width: 14.4rem;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n\nconst RecentDocumentsTable = ({ documents }: { documents: RecentDocument[] }) => {\n const { formatMessage } = useIntl();\n const { trackUsage } = useTracking();\n const navigate = useNavigate();\n\n const getEditViewLink = (document: RecentDocument): string => {\n const isSingleType = document.kind === 'singleType';\n const kindPath = isSingleType ? 'single-types' : 'collection-types';\n const queryParams = document.locale ? `?plugins[i18n][locale]=${document.locale}` : '';\n\n return `/content-manager/${kindPath}/${document.contentTypeUid}${isSingleType ? '' : '/' + document.documentId}${queryParams}`;\n };\n\n const handleRowClick = (document: RecentDocument) => () => {\n trackUsage('willEditEntryFromHome');\n const link = getEditViewLink(document);\n navigate(link);\n };\n\n return (\n <Table colCount={5} rowCount={documents?.length ?? 0}>\n <Tbody>\n {documents?.map((document) => (\n <Tr onClick={handleRowClick(document)} cursor=\"pointer\" key={document.documentId}>\n <Td>\n <CellTypography title={document.title} variant=\"omega\" textColor=\"neutral800\">\n {document.title}\n </CellTypography>\n </Td>\n <Td>\n <CellTypography variant=\"omega\" textColor=\"neutral600\">\n {document.kind === 'singleType'\n ? formatMessage({\n id: 'content-manager.widget.last-edited.single-type',\n defaultMessage: 'Single-Type',\n })\n : formatMessage({\n id: document.contentTypeDisplayName,\n defaultMessage: document.contentTypeDisplayName,\n })}\n </CellTypography>\n </Td>\n <Td>\n <Box display=\"inline-block\">\n {document.status ? (\n <DocumentStatus status={document.status} />\n ) : (\n <Typography textColor=\"neutral600\" aria-hidden>\n -\n </Typography>\n )}\n </Box>\n </Td>\n <Td>\n <Typography textColor=\"neutral600\">\n <RelativeTime timestamp={new Date(document.updatedAt)} />\n </Typography>\n </Td>\n <Td onClick={(e) => e.stopPropagation()}>\n <Box display=\"inline-block\">\n <IconButton\n tag={Link}\n to={getEditViewLink(document)}\n onClick={() => trackUsage('willEditEntryFromHome')}\n label={formatMessage({\n id: 'content-manager.actions.edit.label',\n defaultMessage: 'Edit',\n })}\n variant=\"ghost\"\n >\n <Pencil />\n </IconButton>\n </Box>\n </Td>\n </Tr>\n ))}\n </Tbody>\n </Table>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastEditedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastEditedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'update' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-edited.no-data',\n defaultMessage: 'No edited entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * LastPublishedWidget\n * -----------------------------------------------------------------------------------------------*/\n\nconst LastPublishedWidget = () => {\n const { formatMessage } = useIntl();\n const { data, isLoading, error } = useGetRecentDocumentsQuery({ action: 'publish' });\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error || !data) {\n return <Widget.Error />;\n }\n\n if (data.length === 0) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return <RecentDocumentsTable documents={data} />;\n};\n\n/* -------------------------------------------------------------------------------------------------\n * ChartEntriesWidget\n * -----------------------------------------------------------------------------------------------*/\nconst RADIUS = 80;\nconst STROKE = 10;\nconst CIRCUMFERENCE = 2 * Math.PI * (RADIUS - STROKE / 2);\n\ntype ThemeColor = keyof DefaultTheme['colors'];\n\nconst ArcChart = styled.circle<{ $arcColor: ThemeColor }>`\n stroke: ${({ theme, $arcColor }) => theme.colors[$arcColor]};\n`;\n\nconst TextChart = styled.tspan<{ $textColor: ThemeColor }>`\n text-transform: lowercase;\n fill: ${({ theme, $textColor }) => theme.colors[$textColor]};\n`;\n\nconst KeyChartItem = styled(Flex)`\n width: 100%;\n\n ${({ theme }) => theme.breakpoints.small} {\n width: auto;\n }\n`;\n\ninterface ChartData {\n label: string;\n count: number;\n color: ThemeColor;\n}\n\nconst DonutChartSVG = ({ data }: { data: ChartData[] }) => {\n const { locale } = useIntl();\n const { formatMessage } = useIntl();\n const total = data.reduce((acc, curr) => acc + curr.count, 0);\n const [tooltip, setTooltip] = React.useState<{\n visible: boolean;\n x: number;\n y: number;\n value: ChartData | null;\n isTouch?: boolean;\n }>({ visible: false, x: 0, y: 0, value: null });\n\n let cumulativePercent = 0;\n\n const handleMouseOver = (e: React.MouseEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x: e.clientX,\n y: e.clientY,\n value,\n });\n };\n const handleMouseOut = () => {\n setTooltip((t) => ({ ...t, visible: false }));\n };\n\n const handleFocus = (e: React.FocusEvent<SVGCircleElement>, value: ChartData) => {\n setTooltip({\n visible: true,\n x:\n e.currentTarget.getBoundingClientRect().width / 2 +\n e.currentTarget.getBoundingClientRect().left,\n y:\n e.currentTarget.getBoundingClientRect().height +\n e.currentTarget.getBoundingClientRect().top,\n value,\n });\n };\n\n return (\n <Flex direction=\"column\" gap={6} margin=\"auto\">\n <svg\n width={RADIUS * 2}\n height={RADIUS * 2}\n viewBox={`0 0 ${RADIUS * 2} ${RADIUS * 2}`}\n style={{ position: 'relative', zIndex: 1 }}\n >\n <g transform={`rotate(-90 ${RADIUS} ${RADIUS})`}>\n {data.map((value) => {\n const percent = (value.count / total) * 100;\n const arcLength = (percent / 100) * CIRCUMFERENCE;\n const dashArray = `${arcLength} ${CIRCUMFERENCE - arcLength}`;\n const dashOffset = CIRCUMFERENCE * (1 - cumulativePercent / 100);\n const el = (\n <ArcChart\n key={value.label}\n cx={RADIUS}\n cy={RADIUS}\n r={RADIUS - STROKE / 2}\n fill=\"none\"\n strokeWidth={STROKE}\n strokeDasharray={dashArray}\n strokeDashoffset={dashOffset}\n style={{ transition: 'stroke-dashoffset 0.3s', cursor: 'pointer' }}\n tabIndex={0}\n aria-describedby={tooltip.visible ? 'chart-tooltip' : undefined}\n onFocus={(e) => handleFocus(e, value)}\n onBlur={handleMouseOut}\n onMouseMove={(e) => handleMouseOver(e, value)}\n onMouseLeave={handleMouseOut}\n $arcColor={value.color}\n />\n );\n cumulativePercent += percent;\n return el;\n })}\n </g>\n <text x={RADIUS} y={RADIUS} textAnchor=\"middle\" fontSize=\"2.4rem\" fontWeight=\"bold\">\n <TextChart x={RADIUS} dy=\"0\" $textColor=\"neutral800\">\n {new Intl.NumberFormat(locale, {\n notation: 'compact',\n maximumFractionDigits: 1,\n }).format(total)}\n </TextChart>\n <TextChart\n x={RADIUS}\n dy=\"1.4em\"\n fontSize=\"1.4rem\"\n fontWeight=\"normal\"\n $textColor=\"neutral600\"\n >\n {formatMessage({\n id: 'content-manager.widget.chart-entries.title',\n defaultMessage: 'entries',\n })}\n </TextChart>\n </text>\n </svg>\n {tooltip.visible && tooltip.value && (\n <Portal\n style={{\n position: 'fixed',\n left: 16,\n top: 16,\n zIndex: 2,\n transform: `translate(${tooltip.x}px, ${tooltip.y}px)`,\n }}\n data-testid=\"entries-chart-tooltip\"\n >\n <Box\n background=\"neutral900\"\n padding={2}\n borderRadius={1}\n textAlign=\"center\"\n role=\"tooltip\"\n aria-live=\"polite\"\n >\n <Typography textColor=\"neutral0\">\n {formatMessage(\n {\n id: 'content-manager.widget.chart-entries.tooltip',\n defaultMessage: '{count} items',\n },\n {\n count: tooltip.value.count,\n label: tooltip.value.label,\n }\n )}\n </Typography>\n </Box>\n </Portal>\n )}\n <Flex gap={4} wrap=\"wrap\">\n {data.map(\n (value) =>\n value.count > 0 && (\n <KeyChartItem gap={1} key={value.label}>\n <Box background={value.color} padding={2} borderRadius={1} />\n <Typography variant=\"pi\">{value.label}</Typography>\n </KeyChartItem>\n )\n )}\n </Flex>\n </Flex>\n );\n};\n\nconst ChartEntriesWidget = () => {\n const { formatMessage } = useIntl();\n const { data: countDocuments, isLoading, error } = useGetCountDocumentsQuery();\n\n if (isLoading) {\n return <Widget.Loading />;\n }\n\n if (error) {\n return <Widget.Error />;\n }\n\n const { draft, published, modified } = countDocuments ?? {\n draft: 0,\n published: 0,\n modified: 0,\n };\n\n const total = draft + published + modified;\n\n if (!total) {\n return (\n <Widget.NoData>\n {formatMessage({\n id: 'content-manager.widget.last-published.no-data',\n defaultMessage: 'No published entries',\n })}\n </Widget.NoData>\n );\n }\n\n return (\n <Flex minHeight=\"100%\">\n <DonutChartSVG\n data={[\n {\n label: formatMessage({\n id: 'content-manager.containers.List.draft',\n defaultMessage: 'Draft',\n }),\n count: draft,\n color: 'secondary500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.modified',\n defaultMessage: 'Modified',\n }),\n count: modified,\n color: 'alternative500',\n },\n {\n label: formatMessage({\n id: 'content-manager.containers.List.published',\n defaultMessage: 'Published',\n }),\n count: published,\n color: 'success500',\n },\n ]}\n />\n </Flex>\n );\n};\n\nexport { ChartEntriesWidget, LastEditedWidget, LastPublishedWidget };\n"],"names":["CellTypography","styled","Typography","RecentDocumentsTable","documents","formatMessage","useIntl","trackUsage","useTracking","navigate","useNavigate","getEditViewLink","document","isSingleType","kind","kindPath","queryParams","locale","contentTypeUid","documentId","handleRowClick","link","_jsx","Table","colCount","rowCount","length","Tbody","map","_jsxs","Tr","onClick","cursor","Td","title","variant","textColor","id","defaultMessage","contentTypeDisplayName","Box","display","status","DocumentStatus","aria-hidden","RelativeTime","timestamp","Date","updatedAt","e","stopPropagation","IconButton","tag","Link","to","label","Pencil","LastEditedWidget","data","isLoading","error","useGetRecentDocumentsQuery","action","Widget","Loading","Error","NoData","LastPublishedWidget","RADIUS","STROKE","CIRCUMFERENCE","Math","PI","ArcChart","circle","theme","$arcColor","colors","TextChart","tspan","$textColor","KeyChartItem","Flex","breakpoints","small","DonutChartSVG","total","reduce","acc","curr","count","tooltip","setTooltip","React","useState","visible","x","y","value","cumulativePercent","handleMouseOver","clientX","clientY","handleMouseOut","t","handleFocus","currentTarget","getBoundingClientRect","width","left","height","top","direction","gap","margin","svg","viewBox","style","position","zIndex","g","transform","percent","arcLength","dashArray","dashOffset","el","cx","cy","r","fill","strokeWidth","strokeDasharray","strokeDashoffset","transition","tabIndex","aria-describedby","undefined","onFocus","onBlur","onMouseMove","onMouseLeave","color","text","textAnchor","fontSize","fontWeight","dy","Intl","NumberFormat","notation","maximumFractionDigits","format","Portal","data-testid","background","padding","borderRadius","textAlign","role","aria-live","wrap","ChartEntriesWidget","countDocuments","useGetCountDocumentsQuery","draft","published","modified","minHeight"],"mappings":"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"}
|
@@ -97,7 +97,7 @@ const EntryValidationText = ({ validationErrors, status })=>{
|
|
97
97
|
children: /*#__PURE__*/ jsxRuntime.jsx(TypographyMaxWidth, {
|
98
98
|
textColor: "danger600",
|
99
99
|
variant: "omega",
|
100
|
-
fontWeight: "
|
100
|
+
fontWeight: "bold",
|
101
101
|
ellipsis: true,
|
102
102
|
children: validationErrorsMessages
|
103
103
|
})
|
@@ -131,6 +131,8 @@ const EntryValidationText = ({ validationErrors, status })=>{
|
|
131
131
|
fill: "alternative600"
|
132
132
|
}),
|
133
133
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
134
|
+
textColor: "alternative600",
|
135
|
+
fontWeight: "bold",
|
134
136
|
children: formatMessage({
|
135
137
|
id: 'content-manager.bulk-publish.modified',
|
136
138
|
defaultMessage: 'Ready to publish changes'
|
@@ -146,6 +148,8 @@ const EntryValidationText = ({ validationErrors, status })=>{
|
|
146
148
|
fill: "success600"
|
147
149
|
}),
|
148
150
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
151
|
+
textColor: "success600",
|
152
|
+
fontWeight: "bold",
|
149
153
|
children: formatMessage({
|
150
154
|
id: 'app.utils.ready-to-publish',
|
151
155
|
defaultMessage: 'Ready to publish'
|
@@ -260,7 +264,7 @@ const SelectedEntriesTableContent = ({ isPublishing, rowsToDisplay = [], entries
|
|
260
264
|
]
|
261
265
|
});
|
262
266
|
};
|
263
|
-
const PublicationStatusSummary = ({ count, icon, message })=>{
|
267
|
+
const PublicationStatusSummary = ({ count, icon, message, textColor })=>{
|
264
268
|
return /*#__PURE__*/ jsxRuntime.jsxs(designSystem.Flex, {
|
265
269
|
justifyContent: "space-between",
|
266
270
|
flex: 1,
|
@@ -271,6 +275,8 @@ const PublicationStatusSummary = ({ count, icon, message })=>{
|
|
271
275
|
children: [
|
272
276
|
icon,
|
273
277
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Typography, {
|
278
|
+
textColor: textColor,
|
279
|
+
fontWeight: "bold",
|
274
280
|
children: message
|
275
281
|
})
|
276
282
|
]
|
@@ -296,6 +302,7 @@ const PublicationStatusGrid = ({ entriesReadyToPublishCount, entriesPublishedCou
|
|
296
302
|
children: [
|
297
303
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
298
304
|
children: /*#__PURE__*/ jsxRuntime.jsx(PublicationStatusSummary, {
|
305
|
+
textColor: "success600",
|
299
306
|
count: entriesReadyToPublishCount,
|
300
307
|
icon: /*#__PURE__*/ jsxRuntime.jsx(Icons.CheckCircle, {
|
301
308
|
fill: "success600"
|
@@ -308,6 +315,7 @@ const PublicationStatusGrid = ({ entriesReadyToPublishCount, entriesPublishedCou
|
|
308
315
|
}),
|
309
316
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
310
317
|
children: /*#__PURE__*/ jsxRuntime.jsx(PublicationStatusSummary, {
|
318
|
+
textColor: "success600",
|
311
319
|
count: entriesPublishedCount,
|
312
320
|
icon: /*#__PURE__*/ jsxRuntime.jsx(Icons.CheckCircle, {
|
313
321
|
fill: "success600"
|
@@ -324,6 +332,7 @@ const PublicationStatusGrid = ({ entriesReadyToPublishCount, entriesPublishedCou
|
|
324
332
|
children: [
|
325
333
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
326
334
|
children: /*#__PURE__*/ jsxRuntime.jsx(PublicationStatusSummary, {
|
335
|
+
textColor: "alternative600",
|
327
336
|
count: entriesModifiedCount,
|
328
337
|
icon: /*#__PURE__*/ jsxRuntime.jsx(Icons.ArrowsCounterClockwise, {
|
329
338
|
fill: "alternative600"
|
@@ -336,6 +345,7 @@ const PublicationStatusGrid = ({ entriesReadyToPublishCount, entriesPublishedCou
|
|
336
345
|
}),
|
337
346
|
/*#__PURE__*/ jsxRuntime.jsx(designSystem.Td, {
|
338
347
|
children: /*#__PURE__*/ jsxRuntime.jsx(PublicationStatusSummary, {
|
348
|
+
textColor: "danger600",
|
339
349
|
count: entriesWithErrorsCount,
|
340
350
|
icon: /*#__PURE__*/ jsxRuntime.jsx(Icons.CrossCircle, {
|
341
351
|
fill: "danger600"
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"PublishAction.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/PublishAction.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n FormErrors,\n getYupValidationErrors,\n Table,\n useQueryParams,\n useTable,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Flex,\n IconButton,\n Loader,\n Modal,\n Tooltip,\n Typography,\n TypographyComponent,\n RawTable,\n Tr,\n Td,\n Tbody,\n} from '@strapi/design-system';\nimport { ArrowsCounterClockwise, CheckCircle, CrossCircle, Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport { ValidationError } from 'yup';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useContentTypeSchema } from '../../../../hooks/useContentTypeSchema';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { useDocLayout } from '../../../../hooks/useDocumentLayout';\nimport { contentManagerApi } from '../../../../services/api';\nimport {\n useGetAllDocumentsQuery,\n usePublishManyDocumentsMutation,\n} from '../../../../services/documents';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport { createYupSchema } from '../../../../utils/validation';\nimport { DocumentStatus } from '../../../EditView/components/DocumentStatus';\n\nimport { ConfirmDialogPublishAll, ConfirmDialogPublishAllProps } from './ConfirmBulkActionDialog';\n\nimport type { BulkActionComponent } from '../../../../content-manager';\nimport type { Document } from '../../../../hooks/useDocument';\n\nconst TypographyMaxWidth = styled<TypographyComponent>(Typography)`\n max-width: 300px;\n`;\n\nconst TableComponent = styled(RawTable)`\n width: 100%;\n table-layout: fixed;\n td:first-child {\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n td:first-of-type {\n padding: ${({ theme }) => theme.spaces[4]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EntryValidationText\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatErrorMessages = (errors: FormErrors, parentKey: string, formatMessage: any) => {\n const messages: string[] = [];\n\n Object.entries(errors).forEach(([key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n if ('id' in value && 'defaultMessage' in value) {\n messages.push(\n formatMessage(\n {\n id: `${value.id}.withField`,\n defaultMessage: value.defaultMessage,\n },\n { field: currentKey }\n )\n );\n } else {\n messages.push(\n ...formatErrorMessages(\n // @ts-expect-error TODO: check why value is not compatible with FormErrors\n value,\n currentKey,\n formatMessage\n )\n );\n }\n } else {\n messages.push(\n formatMessage(\n {\n id: `${value}.withField`,\n defaultMessage: value,\n },\n { field: currentKey }\n )\n );\n }\n });\n\n return messages;\n};\n\ninterface EntryValidationTextProps {\n validationErrors?: FormErrors;\n status: string;\n}\n\nconst EntryValidationText = ({ validationErrors, status }: EntryValidationTextProps) => {\n const { formatMessage } = useIntl();\n\n if (validationErrors) {\n const validationErrorsMessages = formatErrorMessages(validationErrors, '', formatMessage).join(\n ' '\n );\n\n return (\n <Flex gap={2}>\n <CrossCircle fill=\"danger600\" />\n <Tooltip description={validationErrorsMessages}>\n <TypographyMaxWidth textColor=\"danger600\" variant=\"omega\" fontWeight=\"semiBold\" ellipsis>\n {validationErrorsMessages}\n </TypographyMaxWidth>\n </Tooltip>\n </Flex>\n );\n }\n\n if (status === 'published') {\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'content-manager.bulk-publish.already-published',\n defaultMessage: 'Already Published',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (status === 'modified') {\n return (\n <Flex gap={2}>\n <ArrowsCounterClockwise fill=\"alternative600\" />\n <Typography>\n {formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n </Typography>\n </Flex>\n );\n }\n\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography>\n {formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesTableContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SelectedEntriesTableContentProps {\n isPublishing?: boolean;\n rowsToDisplay?: TableRow[];\n entriesToPublish?: TableRow['documentId'][];\n validationErrors: Record<string, EntryValidationTextProps['validationErrors']>;\n}\n\nconst TABLE_HEADERS = [\n { name: 'id', label: 'id' },\n { name: 'name', label: 'name' },\n { name: 'status', label: 'status' },\n { name: 'publicationStatus', label: 'Publication status' },\n];\n\nconst SelectedEntriesTableContent = ({\n isPublishing,\n rowsToDisplay = [],\n entriesToPublish = [],\n validationErrors = {},\n}: SelectedEntriesTableContentProps) => {\n const { pathname } = useLocation();\n const { formatMessage } = useIntl();\n\n const {\n list: {\n settings: { mainField },\n },\n } = useDocLayout();\n\n const shouldDisplayMainField = mainField != null && mainField !== 'id';\n\n return (\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {TABLE_HEADERS.filter((head) => head.name !== 'name' || shouldDisplayMainField).map(\n (head) => (\n <Table.HeaderCell key={head.name} {...head} />\n )\n )}\n </Table.Head>\n <Table.Loading />\n <Table.Body>\n {rowsToDisplay.map((row) => (\n <Table.Row key={row.id}>\n <Table.CheckboxCell id={row.id} />\n <Table.Cell>\n <Typography>{row.id}</Typography>\n </Table.Cell>\n {shouldDisplayMainField && (\n <Table.Cell>\n <Typography>{row[mainField as keyof TableRow]}</Typography>\n </Table.Cell>\n )}\n <Table.Cell>\n <DocumentStatus status={row.status} maxWidth={'min-content'} />\n </Table.Cell>\n <Table.Cell>\n {isPublishing && entriesToPublish.includes(row.documentId) ? (\n <Flex gap={2}>\n <Typography>\n {formatMessage({\n id: 'content-manager.success.record.publishing',\n defaultMessage: 'Publishing...',\n })}\n </Typography>\n <Loader small />\n </Flex>\n ) : (\n <EntryValidationText\n validationErrors={validationErrors[row.documentId]}\n status={row.status}\n />\n )}\n </Table.Cell>\n <Table.Cell>\n <Flex>\n <IconButton\n tag={Link}\n to={{\n pathname: `${pathname}/${row.documentId}`,\n search: row.locale && `?plugins[i18n][locale]=${row.locale}`,\n }}\n state={{ from: pathname }}\n label={formatMessage({\n id: 'content-manager.bulk-publish.edit',\n defaultMessage: 'Edit',\n })}\n target=\"_blank\"\n marginLeft=\"auto\"\n variant=\"ghost\"\n >\n <Pencil width={'1.6rem'} height={'1.6rem'} />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusSummary\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusSummaryProps {\n count: number;\n icon: React.ReactNode;\n message: string;\n}\n\nconst PublicationStatusSummary = ({ count, icon, message }: PublicationStatusSummaryProps) => {\n return (\n <Flex justifyContent=\"space-between\" flex={1} gap={3}>\n <Flex gap={2}>\n {icon}\n <Typography>{message}</Typography>\n </Flex>\n <Typography fontWeight=\"bold\">{count}</Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusGrid\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusGridProps {\n entriesReadyToPublishCount: number;\n entriesModifiedCount: number;\n entriesPublishedCount: number;\n entriesWithErrorsCount: number;\n}\n\nconst PublicationStatusGrid = ({\n entriesReadyToPublishCount,\n entriesPublishedCount,\n entriesModifiedCount,\n entriesWithErrorsCount,\n}: PublicationStatusGridProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box hasRadius borderColor=\"neutral150\">\n <TableComponent colCount={2} rowCount={2}>\n <Tbody>\n <Tr>\n <Td>\n <PublicationStatusSummary\n count={entriesReadyToPublishCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n count={entriesPublishedCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.already-published',\n defaultMessage: 'Already published',\n })}\n />\n </Td>\n </Tr>\n <Tr>\n <Td>\n <PublicationStatusSummary\n count={entriesModifiedCount}\n icon={<ArrowsCounterClockwise fill=\"alternative600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n count={entriesWithErrorsCount}\n icon={<CrossCircle fill=\"danger600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.waiting-for-action',\n defaultMessage: 'Waiting for action',\n })}\n />\n </Td>\n </Tr>\n </Tbody>\n </TableComponent>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesModalContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableRow extends Document {}\n\ninterface SelectedEntriesModalContentProps {\n listViewSelectedEntries: TableRow[];\n toggleModal: ConfirmDialogPublishAllProps['onToggleDialog'];\n setListViewSelectedDocuments: (documents: TableRow[]) => void;\n model: string;\n}\n\nconst SelectedEntriesModalContent = ({\n listViewSelectedEntries,\n toggleModal,\n setListViewSelectedDocuments,\n model,\n}: SelectedEntriesModalContentProps) => {\n const { formatMessage } = useIntl();\n const { schema, components } = useContentTypeSchema(model);\n const documentIds = listViewSelectedEntries.map(({ documentId }) => documentId);\n\n // We want to keep the selected entries order same as the list view\n const [{ query }] = useQueryParams<{ sort?: string; plugins?: Record<string, any> }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n // Fetch the documents based on the selected entries and update the modal table\n const { data, isLoading, isFetching, refetch } = useGetAllDocumentsQuery(\n {\n model,\n params: {\n page: '1',\n pageSize: documentIds.length.toString(),\n sort: query.sort,\n filters: {\n documentId: {\n $in: documentIds,\n },\n },\n locale: query.plugins?.i18n?.locale,\n },\n },\n {\n selectFromResult: ({ data, ...restRes }) => ({ data: data?.results ?? [], ...restRes }),\n }\n );\n\n // Validate the entries based on the schema to show errors if any\n const { rows, validationErrors } = React.useMemo(() => {\n if (data.length > 0 && schema) {\n const validate = createYupSchema(\n schema.attributes,\n components,\n // Since this is the \"Publish\" action, the validation\n // schema must enforce the rules for published entities\n { status: 'published' }\n );\n const validationErrors: Record<TableRow['documentId'], FormErrors> = {};\n const rows = data.map((entry: Document) => {\n try {\n validate.validateSync(entry, { abortEarly: false });\n\n return entry;\n } catch (e) {\n if (e instanceof ValidationError) {\n validationErrors[entry.documentId] = getYupValidationErrors(e);\n }\n\n return entry;\n }\n });\n\n return { rows, validationErrors };\n }\n\n return {\n rows: [],\n validationErrors: {},\n };\n }, [components, data, schema]);\n\n const [isDialogOpen, setIsDialogOpen] = React.useState(false);\n\n const { publishMany: bulkPublishAction, isLoading: isPublishing } = useDocumentActions();\n const [, { isLoading: isSubmittingForm }] = usePublishManyDocumentsMutation();\n\n const selectedRows = useTable('publishAction', (state) => state.selectedRows);\n\n // Filter selected entries from the updated modal table rows\n const selectedEntries = rows.filter((entry) =>\n selectedRows.some((selectedEntry) => selectedEntry.documentId === entry.documentId)\n );\n\n const entriesToPublish = selectedEntries\n .filter((entry) => !validationErrors[entry.documentId])\n .map((entry) => entry.documentId);\n\n const selectedEntriesWithErrorsCount = selectedEntries.filter(\n ({ documentId }) => validationErrors[documentId]\n ).length;\n const selectedEntriesPublishedCount = selectedEntries.filter(\n ({ status }) => status === 'published'\n ).length;\n const selectedEntriesModifiedCount = selectedEntries.filter(\n ({ status, documentId }) => status === 'modified' && !validationErrors[documentId]\n ).length;\n const selectedEntriesWithNoErrorsCount =\n selectedEntries.length - selectedEntriesWithErrorsCount - selectedEntriesPublishedCount;\n\n const toggleDialog = () => setIsDialogOpen((prev) => !prev);\n\n const handleConfirmBulkPublish = async () => {\n toggleDialog();\n\n const res = await bulkPublishAction({ model: model, documentIds: entriesToPublish, params });\n if (!('error' in res)) {\n const unpublishedEntries = rows.filter((row) => {\n return !entriesToPublish.includes(row.documentId);\n });\n // Keep selection of the entries in list view that were not published\n setListViewSelectedDocuments(unpublishedEntries);\n }\n };\n\n return (\n <>\n <Modal.Body>\n <PublicationStatusGrid\n entriesReadyToPublishCount={\n selectedEntriesWithNoErrorsCount - selectedEntriesModifiedCount\n }\n entriesPublishedCount={selectedEntriesPublishedCount}\n entriesModifiedCount={selectedEntriesModifiedCount}\n entriesWithErrorsCount={selectedEntriesWithErrorsCount}\n />\n <Box marginTop={7}>\n <SelectedEntriesTableContent\n isPublishing={isSubmittingForm}\n rowsToDisplay={rows}\n entriesToPublish={entriesToPublish}\n validationErrors={validationErrors}\n />\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={toggleModal} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <Flex gap={2}>\n <Button onClick={refetch} variant=\"tertiary\" loading={isFetching}>\n {formatMessage({ id: 'app.utils.refresh', defaultMessage: 'Refresh' })}\n </Button>\n <Button\n onClick={toggleDialog}\n disabled={\n selectedEntries.length === 0 ||\n selectedEntries.length === selectedEntriesWithErrorsCount ||\n selectedEntriesPublishedCount === selectedEntries.length ||\n isLoading\n }\n loading={isPublishing || isSubmittingForm}\n >\n {formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n <ConfirmDialogPublishAll\n isOpen={isDialogOpen}\n onToggleDialog={toggleDialog}\n isConfirmButtonLoading={isPublishing || isSubmittingForm}\n onConfirm={handleConfirmBulkPublish}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublishAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst PublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n // Publish button visibility\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const showPublishButton =\n hasPublishPermission && documents.some(({ status }) => status !== 'published');\n\n const setListViewSelectedDocuments = useTable('publishAction', (state) => state.selectRow);\n\n const refetchList = () => {\n contentManagerApi.util.invalidateTags([{ type: 'Document', id: `${model}_LIST` }]);\n };\n\n if (!showPublishButton) return null;\n\n return {\n actionType: 'publish',\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' }),\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: getTranslation('containers.ListPage.selectedEntriesModal.title'),\n defaultMessage: 'Publish entries',\n }),\n content: ({ onClose }) => {\n return (\n <Table.Root rows={documents} defaultSelectedRows={documents} headers={TABLE_HEADERS}>\n <SelectedEntriesModalContent\n listViewSelectedEntries={documents}\n toggleModal={() => {\n onClose();\n refetchList();\n }}\n setListViewSelectedDocuments={setListViewSelectedDocuments}\n model={model}\n />\n </Table.Root>\n );\n },\n onClose: () => {\n refetchList();\n },\n },\n };\n};\n\nexport { PublishAction, SelectedEntriesModalContent };\n"],"names":["TypographyMaxWidth","styled","Typography","TableComponent","RawTable","theme","colors","neutral150","spaces","formatErrorMessages","errors","parentKey","formatMessage","messages","Object","entries","forEach","key","value","currentKey","Array","isArray","push","id","defaultMessage","field","EntryValidationText","validationErrors","status","useIntl","validationErrorsMessages","join","_jsxs","Flex","gap","_jsx","CrossCircle","fill","Tooltip","description","textColor","variant","fontWeight","ellipsis","CheckCircle","ArrowsCounterClockwise","TABLE_HEADERS","name","label","SelectedEntriesTableContent","isPublishing","rowsToDisplay","entriesToPublish","pathname","useLocation","list","settings","mainField","useDocLayout","shouldDisplayMainField","Table","Content","Head","HeaderCheckboxCell","filter","head","map","HeaderCell","Loading","Body","row","Row","CheckboxCell","Cell","DocumentStatus","maxWidth","includes","documentId","Loader","small","IconButton","tag","Link","to","search","locale","state","from","target","marginLeft","Pencil","width","height","PublicationStatusSummary","count","icon","message","justifyContent","flex","PublicationStatusGrid","entriesReadyToPublishCount","entriesPublishedCount","entriesModifiedCount","entriesWithErrorsCount","Box","hasRadius","borderColor","colCount","rowCount","Tbody","Tr","Td","SelectedEntriesModalContent","listViewSelectedEntries","toggleModal","setListViewSelectedDocuments","model","schema","components","useContentTypeSchema","documentIds","query","useQueryParams","params","React","useMemo","buildValidParams","data","isLoading","isFetching","refetch","useGetAllDocumentsQuery","page","pageSize","length","toString","sort","filters","$in","plugins","i18n","selectFromResult","restRes","results","rows","validate","createYupSchema","attributes","entry","validateSync","abortEarly","e","ValidationError","getYupValidationErrors","isDialogOpen","setIsDialogOpen","useState","publishMany","bulkPublishAction","useDocumentActions","isSubmittingForm","usePublishManyDocumentsMutation","selectedRows","useTable","selectedEntries","some","selectedEntry","selectedEntriesWithErrorsCount","selectedEntriesPublishedCount","selectedEntriesModifiedCount","selectedEntriesWithNoErrorsCount","toggleDialog","prev","handleConfirmBulkPublish","res","unpublishedEntries","_Fragment","Modal","marginTop","Footer","Button","onClick","loading","disabled","ConfirmDialogPublishAll","isOpen","onToggleDialog","isConfirmButtonLoading","onConfirm","PublishAction","documents","hasPublishPermission","useDocumentRBAC","canPublish","showPublishButton","selectRow","refetchList","contentManagerApi","util","invalidateTags","type","actionType","dialog","title","getTranslation","content","onClose","Root","defaultSelectedRows","headers"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"PublishAction.js","sources":["../../../../../../admin/src/pages/ListView/components/BulkActions/PublishAction.tsx"],"sourcesContent":["import * as React from 'react';\n\nimport {\n FormErrors,\n getYupValidationErrors,\n Table,\n useQueryParams,\n useTable,\n} from '@strapi/admin/strapi-admin';\nimport {\n Box,\n Button,\n Flex,\n IconButton,\n Loader,\n Modal,\n Tooltip,\n Typography,\n TypographyComponent,\n RawTable,\n Tr,\n Td,\n Tbody,\n} from '@strapi/design-system';\nimport { ArrowsCounterClockwise, CheckCircle, CrossCircle, Pencil } from '@strapi/icons';\nimport { useIntl } from 'react-intl';\nimport { Link, useLocation } from 'react-router-dom';\nimport { styled } from 'styled-components';\nimport { ValidationError } from 'yup';\n\nimport { useDocumentRBAC } from '../../../../features/DocumentRBAC';\nimport { useContentTypeSchema } from '../../../../hooks/useContentTypeSchema';\nimport { useDocumentActions } from '../../../../hooks/useDocumentActions';\nimport { useDocLayout } from '../../../../hooks/useDocumentLayout';\nimport { contentManagerApi } from '../../../../services/api';\nimport {\n useGetAllDocumentsQuery,\n usePublishManyDocumentsMutation,\n} from '../../../../services/documents';\nimport { buildValidParams } from '../../../../utils/api';\nimport { getTranslation } from '../../../../utils/translations';\nimport { createYupSchema } from '../../../../utils/validation';\nimport { DocumentStatus } from '../../../EditView/components/DocumentStatus';\n\nimport { ConfirmDialogPublishAll, ConfirmDialogPublishAllProps } from './ConfirmBulkActionDialog';\n\nimport type { BulkActionComponent } from '../../../../content-manager';\nimport type { Document } from '../../../../hooks/useDocument';\n\nconst TypographyMaxWidth = styled<TypographyComponent>(Typography)`\n max-width: 300px;\n`;\n\nconst TableComponent = styled(RawTable)`\n width: 100%;\n table-layout: fixed;\n td:first-child {\n border-right: 1px solid ${({ theme }) => theme.colors.neutral150};\n }\n td:first-of-type {\n padding: ${({ theme }) => theme.spaces[4]};\n }\n`;\n\n/* -------------------------------------------------------------------------------------------------\n * EntryValidationText\n * -----------------------------------------------------------------------------------------------*/\n\nconst formatErrorMessages = (errors: FormErrors, parentKey: string, formatMessage: any) => {\n const messages: string[] = [];\n\n Object.entries(errors).forEach(([key, value]) => {\n const currentKey = parentKey ? `${parentKey}.${key}` : key;\n\n if (typeof value === 'object' && value !== null && !Array.isArray(value)) {\n if ('id' in value && 'defaultMessage' in value) {\n messages.push(\n formatMessage(\n {\n id: `${value.id}.withField`,\n defaultMessage: value.defaultMessage,\n },\n { field: currentKey }\n )\n );\n } else {\n messages.push(\n ...formatErrorMessages(\n // @ts-expect-error TODO: check why value is not compatible with FormErrors\n value,\n currentKey,\n formatMessage\n )\n );\n }\n } else {\n messages.push(\n formatMessage(\n {\n id: `${value}.withField`,\n defaultMessage: value,\n },\n { field: currentKey }\n )\n );\n }\n });\n\n return messages;\n};\n\ninterface EntryValidationTextProps {\n validationErrors?: FormErrors;\n status: string;\n}\n\nconst EntryValidationText = ({ validationErrors, status }: EntryValidationTextProps) => {\n const { formatMessage } = useIntl();\n\n if (validationErrors) {\n const validationErrorsMessages = formatErrorMessages(validationErrors, '', formatMessage).join(\n ' '\n );\n\n return (\n <Flex gap={2}>\n <CrossCircle fill=\"danger600\" />\n <Tooltip description={validationErrorsMessages}>\n <TypographyMaxWidth textColor=\"danger600\" variant=\"omega\" fontWeight=\"bold\" ellipsis>\n {validationErrorsMessages}\n </TypographyMaxWidth>\n </Tooltip>\n </Flex>\n );\n }\n\n if (status === 'published') {\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'content-manager.bulk-publish.already-published',\n defaultMessage: 'Already Published',\n })}\n </Typography>\n </Flex>\n );\n }\n\n if (status === 'modified') {\n return (\n <Flex gap={2}>\n <ArrowsCounterClockwise fill=\"alternative600\" />\n <Typography textColor=\"alternative600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n </Typography>\n </Flex>\n );\n }\n\n return (\n <Flex gap={2}>\n <CheckCircle fill=\"success600\" />\n <Typography textColor=\"success600\" fontWeight=\"bold\">\n {formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n </Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesTableContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface SelectedEntriesTableContentProps {\n isPublishing?: boolean;\n rowsToDisplay?: TableRow[];\n entriesToPublish?: TableRow['documentId'][];\n validationErrors: Record<string, EntryValidationTextProps['validationErrors']>;\n}\n\nconst TABLE_HEADERS = [\n { name: 'id', label: 'id' },\n { name: 'name', label: 'name' },\n { name: 'status', label: 'status' },\n { name: 'publicationStatus', label: 'Publication status' },\n];\n\nconst SelectedEntriesTableContent = ({\n isPublishing,\n rowsToDisplay = [],\n entriesToPublish = [],\n validationErrors = {},\n}: SelectedEntriesTableContentProps) => {\n const { pathname } = useLocation();\n const { formatMessage } = useIntl();\n\n const {\n list: {\n settings: { mainField },\n },\n } = useDocLayout();\n\n const shouldDisplayMainField = mainField != null && mainField !== 'id';\n\n return (\n <Table.Content>\n <Table.Head>\n <Table.HeaderCheckboxCell />\n {TABLE_HEADERS.filter((head) => head.name !== 'name' || shouldDisplayMainField).map(\n (head) => (\n <Table.HeaderCell key={head.name} {...head} />\n )\n )}\n </Table.Head>\n <Table.Loading />\n <Table.Body>\n {rowsToDisplay.map((row) => (\n <Table.Row key={row.id}>\n <Table.CheckboxCell id={row.id} />\n <Table.Cell>\n <Typography>{row.id}</Typography>\n </Table.Cell>\n {shouldDisplayMainField && (\n <Table.Cell>\n <Typography>{row[mainField as keyof TableRow]}</Typography>\n </Table.Cell>\n )}\n <Table.Cell>\n <DocumentStatus status={row.status} maxWidth={'min-content'} />\n </Table.Cell>\n <Table.Cell>\n {isPublishing && entriesToPublish.includes(row.documentId) ? (\n <Flex gap={2}>\n <Typography>\n {formatMessage({\n id: 'content-manager.success.record.publishing',\n defaultMessage: 'Publishing...',\n })}\n </Typography>\n <Loader small />\n </Flex>\n ) : (\n <EntryValidationText\n validationErrors={validationErrors[row.documentId]}\n status={row.status}\n />\n )}\n </Table.Cell>\n <Table.Cell>\n <Flex>\n <IconButton\n tag={Link}\n to={{\n pathname: `${pathname}/${row.documentId}`,\n search: row.locale && `?plugins[i18n][locale]=${row.locale}`,\n }}\n state={{ from: pathname }}\n label={formatMessage({\n id: 'content-manager.bulk-publish.edit',\n defaultMessage: 'Edit',\n })}\n target=\"_blank\"\n marginLeft=\"auto\"\n variant=\"ghost\"\n >\n <Pencil width={'1.6rem'} height={'1.6rem'} />\n </IconButton>\n </Flex>\n </Table.Cell>\n </Table.Row>\n ))}\n </Table.Body>\n </Table.Content>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusSummary\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusSummaryProps {\n count: number;\n icon: React.ReactNode;\n message: string;\n textColor: string;\n}\n\nconst PublicationStatusSummary = ({\n count,\n icon,\n message,\n textColor,\n}: PublicationStatusSummaryProps) => {\n return (\n <Flex justifyContent=\"space-between\" flex={1} gap={3}>\n <Flex gap={2}>\n {icon}\n <Typography textColor={textColor} fontWeight=\"bold\">\n {message}\n </Typography>\n </Flex>\n <Typography fontWeight=\"bold\">{count}</Typography>\n </Flex>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublicationStatusGrid\n * -----------------------------------------------------------------------------------------------*/\n\ninterface PublicationStatusGridProps {\n entriesReadyToPublishCount: number;\n entriesModifiedCount: number;\n entriesPublishedCount: number;\n entriesWithErrorsCount: number;\n}\n\nconst PublicationStatusGrid = ({\n entriesReadyToPublishCount,\n entriesPublishedCount,\n entriesModifiedCount,\n entriesWithErrorsCount,\n}: PublicationStatusGridProps) => {\n const { formatMessage } = useIntl();\n\n return (\n <Box hasRadius borderColor=\"neutral150\">\n <TableComponent colCount={2} rowCount={2}>\n <Tbody>\n <Tr>\n <Td>\n <PublicationStatusSummary\n textColor=\"success600\"\n count={entriesReadyToPublishCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.ready-to-publish',\n defaultMessage: 'Ready to publish',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n textColor=\"success600\"\n count={entriesPublishedCount}\n icon={<CheckCircle fill=\"success600\" />}\n message={formatMessage({\n id: 'app.utils.already-published',\n defaultMessage: 'Already published',\n })}\n />\n </Td>\n </Tr>\n <Tr>\n <Td>\n <PublicationStatusSummary\n textColor=\"alternative600\"\n count={entriesModifiedCount}\n icon={<ArrowsCounterClockwise fill=\"alternative600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.modified',\n defaultMessage: 'Ready to publish changes',\n })}\n />\n </Td>\n <Td>\n <PublicationStatusSummary\n textColor=\"danger600\"\n count={entriesWithErrorsCount}\n icon={<CrossCircle fill=\"danger600\" />}\n message={formatMessage({\n id: 'content-manager.bulk-publish.waiting-for-action',\n defaultMessage: 'Waiting for action',\n })}\n />\n </Td>\n </Tr>\n </Tbody>\n </TableComponent>\n </Box>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * SelectedEntriesModalContent\n * -----------------------------------------------------------------------------------------------*/\n\ninterface TableRow extends Document {}\n\ninterface SelectedEntriesModalContentProps {\n listViewSelectedEntries: TableRow[];\n toggleModal: ConfirmDialogPublishAllProps['onToggleDialog'];\n setListViewSelectedDocuments: (documents: TableRow[]) => void;\n model: string;\n}\n\nconst SelectedEntriesModalContent = ({\n listViewSelectedEntries,\n toggleModal,\n setListViewSelectedDocuments,\n model,\n}: SelectedEntriesModalContentProps) => {\n const { formatMessage } = useIntl();\n const { schema, components } = useContentTypeSchema(model);\n const documentIds = listViewSelectedEntries.map(({ documentId }) => documentId);\n\n // We want to keep the selected entries order same as the list view\n const [{ query }] = useQueryParams<{ sort?: string; plugins?: Record<string, any> }>();\n const params = React.useMemo(() => buildValidParams(query), [query]);\n\n // Fetch the documents based on the selected entries and update the modal table\n const { data, isLoading, isFetching, refetch } = useGetAllDocumentsQuery(\n {\n model,\n params: {\n page: '1',\n pageSize: documentIds.length.toString(),\n sort: query.sort,\n filters: {\n documentId: {\n $in: documentIds,\n },\n },\n locale: query.plugins?.i18n?.locale,\n },\n },\n {\n selectFromResult: ({ data, ...restRes }) => ({ data: data?.results ?? [], ...restRes }),\n }\n );\n\n // Validate the entries based on the schema to show errors if any\n const { rows, validationErrors } = React.useMemo(() => {\n if (data.length > 0 && schema) {\n const validate = createYupSchema(\n schema.attributes,\n components,\n // Since this is the \"Publish\" action, the validation\n // schema must enforce the rules for published entities\n { status: 'published' }\n );\n const validationErrors: Record<TableRow['documentId'], FormErrors> = {};\n const rows = data.map((entry: Document) => {\n try {\n validate.validateSync(entry, { abortEarly: false });\n\n return entry;\n } catch (e) {\n if (e instanceof ValidationError) {\n validationErrors[entry.documentId] = getYupValidationErrors(e);\n }\n\n return entry;\n }\n });\n\n return { rows, validationErrors };\n }\n\n return {\n rows: [],\n validationErrors: {},\n };\n }, [components, data, schema]);\n\n const [isDialogOpen, setIsDialogOpen] = React.useState(false);\n\n const { publishMany: bulkPublishAction, isLoading: isPublishing } = useDocumentActions();\n const [, { isLoading: isSubmittingForm }] = usePublishManyDocumentsMutation();\n\n const selectedRows = useTable('publishAction', (state) => state.selectedRows);\n\n // Filter selected entries from the updated modal table rows\n const selectedEntries = rows.filter((entry) =>\n selectedRows.some((selectedEntry) => selectedEntry.documentId === entry.documentId)\n );\n\n const entriesToPublish = selectedEntries\n .filter((entry) => !validationErrors[entry.documentId])\n .map((entry) => entry.documentId);\n\n const selectedEntriesWithErrorsCount = selectedEntries.filter(\n ({ documentId }) => validationErrors[documentId]\n ).length;\n const selectedEntriesPublishedCount = selectedEntries.filter(\n ({ status }) => status === 'published'\n ).length;\n const selectedEntriesModifiedCount = selectedEntries.filter(\n ({ status, documentId }) => status === 'modified' && !validationErrors[documentId]\n ).length;\n const selectedEntriesWithNoErrorsCount =\n selectedEntries.length - selectedEntriesWithErrorsCount - selectedEntriesPublishedCount;\n\n const toggleDialog = () => setIsDialogOpen((prev) => !prev);\n\n const handleConfirmBulkPublish = async () => {\n toggleDialog();\n\n const res = await bulkPublishAction({ model: model, documentIds: entriesToPublish, params });\n if (!('error' in res)) {\n const unpublishedEntries = rows.filter((row) => {\n return !entriesToPublish.includes(row.documentId);\n });\n // Keep selection of the entries in list view that were not published\n setListViewSelectedDocuments(unpublishedEntries);\n }\n };\n\n return (\n <>\n <Modal.Body>\n <PublicationStatusGrid\n entriesReadyToPublishCount={\n selectedEntriesWithNoErrorsCount - selectedEntriesModifiedCount\n }\n entriesPublishedCount={selectedEntriesPublishedCount}\n entriesModifiedCount={selectedEntriesModifiedCount}\n entriesWithErrorsCount={selectedEntriesWithErrorsCount}\n />\n <Box marginTop={7}>\n <SelectedEntriesTableContent\n isPublishing={isSubmittingForm}\n rowsToDisplay={rows}\n entriesToPublish={entriesToPublish}\n validationErrors={validationErrors}\n />\n </Box>\n </Modal.Body>\n <Modal.Footer>\n <Button onClick={toggleModal} variant=\"tertiary\">\n {formatMessage({\n id: 'app.components.Button.cancel',\n defaultMessage: 'Cancel',\n })}\n </Button>\n <Flex gap={2}>\n <Button onClick={refetch} variant=\"tertiary\" loading={isFetching}>\n {formatMessage({ id: 'app.utils.refresh', defaultMessage: 'Refresh' })}\n </Button>\n <Button\n onClick={toggleDialog}\n disabled={\n selectedEntries.length === 0 ||\n selectedEntries.length === selectedEntriesWithErrorsCount ||\n selectedEntriesPublishedCount === selectedEntries.length ||\n isLoading\n }\n loading={isPublishing || isSubmittingForm}\n >\n {formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' })}\n </Button>\n </Flex>\n </Modal.Footer>\n <ConfirmDialogPublishAll\n isOpen={isDialogOpen}\n onToggleDialog={toggleDialog}\n isConfirmButtonLoading={isPublishing || isSubmittingForm}\n onConfirm={handleConfirmBulkPublish}\n />\n </>\n );\n};\n\n/* -------------------------------------------------------------------------------------------------\n * PublishAction\n * -----------------------------------------------------------------------------------------------*/\n\nconst PublishAction: BulkActionComponent = ({ documents, model }) => {\n const { formatMessage } = useIntl();\n // Publish button visibility\n const hasPublishPermission = useDocumentRBAC('unpublishAction', (state) => state.canPublish);\n const showPublishButton =\n hasPublishPermission && documents.some(({ status }) => status !== 'published');\n\n const setListViewSelectedDocuments = useTable('publishAction', (state) => state.selectRow);\n\n const refetchList = () => {\n contentManagerApi.util.invalidateTags([{ type: 'Document', id: `${model}_LIST` }]);\n };\n\n if (!showPublishButton) return null;\n\n return {\n actionType: 'publish',\n variant: 'tertiary',\n label: formatMessage({ id: 'app.utils.publish', defaultMessage: 'Publish' }),\n dialog: {\n type: 'modal',\n title: formatMessage({\n id: getTranslation('containers.ListPage.selectedEntriesModal.title'),\n defaultMessage: 'Publish entries',\n }),\n content: ({ onClose }) => {\n return (\n <Table.Root rows={documents} defaultSelectedRows={documents} headers={TABLE_HEADERS}>\n <SelectedEntriesModalContent\n listViewSelectedEntries={documents}\n toggleModal={() => {\n onClose();\n refetchList();\n }}\n setListViewSelectedDocuments={setListViewSelectedDocuments}\n model={model}\n />\n </Table.Root>\n );\n },\n onClose: () => {\n refetchList();\n },\n },\n };\n};\n\nexport { PublishAction, SelectedEntriesModalContent };\n"],"names":["TypographyMaxWidth","styled","Typography","TableComponent","RawTable","theme","colors","neutral150","spaces","formatErrorMessages","errors","parentKey","formatMessage","messages","Object","entries","forEach","key","value","currentKey","Array","isArray","push","id","defaultMessage","field","EntryValidationText","validationErrors","status","useIntl","validationErrorsMessages","join","_jsxs","Flex","gap","_jsx","CrossCircle","fill","Tooltip","description","textColor","variant","fontWeight","ellipsis","CheckCircle","ArrowsCounterClockwise","TABLE_HEADERS","name","label","SelectedEntriesTableContent","isPublishing","rowsToDisplay","entriesToPublish","pathname","useLocation","list","settings","mainField","useDocLayout","shouldDisplayMainField","Table","Content","Head","HeaderCheckboxCell","filter","head","map","HeaderCell","Loading","Body","row","Row","CheckboxCell","Cell","DocumentStatus","maxWidth","includes","documentId","Loader","small","IconButton","tag","Link","to","search","locale","state","from","target","marginLeft","Pencil","width","height","PublicationStatusSummary","count","icon","message","justifyContent","flex","PublicationStatusGrid","entriesReadyToPublishCount","entriesPublishedCount","entriesModifiedCount","entriesWithErrorsCount","Box","hasRadius","borderColor","colCount","rowCount","Tbody","Tr","Td","SelectedEntriesModalContent","listViewSelectedEntries","toggleModal","setListViewSelectedDocuments","model","schema","components","useContentTypeSchema","documentIds","query","useQueryParams","params","React","useMemo","buildValidParams","data","isLoading","isFetching","refetch","useGetAllDocumentsQuery","page","pageSize","length","toString","sort","filters","$in","plugins","i18n","selectFromResult","restRes","results","rows","validate","createYupSchema","attributes","entry","validateSync","abortEarly","e","ValidationError","getYupValidationErrors","isDialogOpen","setIsDialogOpen","useState","publishMany","bulkPublishAction","useDocumentActions","isSubmittingForm","usePublishManyDocumentsMutation","selectedRows","useTable","selectedEntries","some","selectedEntry","selectedEntriesWithErrorsCount","selectedEntriesPublishedCount","selectedEntriesModifiedCount","selectedEntriesWithNoErrorsCount","toggleDialog","prev","handleConfirmBulkPublish","res","unpublishedEntries","_Fragment","Modal","marginTop","Footer","Button","onClick","loading","disabled","ConfirmDialogPublishAll","isOpen","onToggleDialog","isConfirmButtonLoading","onConfirm","PublishAction","documents","hasPublishPermission","useDocumentRBAC","canPublish","showPublishButton","selectRow","refetchList","contentManagerApi","util","invalidateTags","type","actionType","dialog","title","getTranslation","content","onClose","Root","defaultSelectedRows","headers"],"mappings":"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"}
|