@strapi/content-releases 5.12.0 → 5.12.2
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/assets/purchase-page-illustration-dark.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-dark.svg.mjs.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js +6 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.js.map +1 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs +4 -0
- package/dist/admin/assets/purchase-page-illustration-light.svg.mjs.map +1 -0
- package/dist/admin/components/EntryValidationPopover.js +344 -0
- package/dist/admin/components/EntryValidationPopover.js.map +1 -0
- package/dist/admin/components/EntryValidationPopover.mjs +342 -0
- package/dist/admin/components/EntryValidationPopover.mjs.map +1 -0
- package/dist/admin/components/RelativeTime.js +76 -0
- package/dist/admin/components/RelativeTime.js.map +1 -0
- package/dist/admin/components/RelativeTime.mjs +55 -0
- package/dist/admin/components/RelativeTime.mjs.map +1 -0
- package/dist/admin/components/ReleaseAction.js +201 -0
- package/dist/admin/components/ReleaseAction.js.map +1 -0
- package/dist/admin/components/ReleaseAction.mjs +199 -0
- package/dist/admin/components/ReleaseAction.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.js +243 -0
- package/dist/admin/components/ReleaseActionMenu.js.map +1 -0
- package/dist/admin/components/ReleaseActionMenu.mjs +222 -0
- package/dist/admin/components/ReleaseActionMenu.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionModal.js +268 -0
- package/dist/admin/components/ReleaseActionModal.js.map +1 -0
- package/dist/admin/components/ReleaseActionModal.mjs +244 -0
- package/dist/admin/components/ReleaseActionModal.mjs.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.js +104 -0
- package/dist/admin/components/ReleaseActionOptions.js.map +1 -0
- package/dist/admin/components/ReleaseActionOptions.mjs +102 -0
- package/dist/admin/components/ReleaseActionOptions.mjs.map +1 -0
- package/dist/admin/components/ReleaseListCell.js +103 -0
- package/dist/admin/components/ReleaseListCell.js.map +1 -0
- package/dist/admin/components/ReleaseListCell.mjs +100 -0
- package/dist/admin/components/ReleaseListCell.mjs.map +1 -0
- package/dist/admin/components/ReleaseModal.js +323 -0
- package/dist/admin/components/ReleaseModal.js.map +1 -0
- package/dist/admin/components/ReleaseModal.mjs +302 -0
- package/dist/admin/components/ReleaseModal.mjs.map +1 -0
- package/dist/admin/components/ReleasesPanel.js +138 -0
- package/dist/admin/components/ReleasesPanel.js.map +1 -0
- package/dist/admin/components/ReleasesPanel.mjs +136 -0
- package/dist/admin/components/ReleasesPanel.mjs.map +1 -0
- package/dist/admin/constants.js +77 -0
- package/dist/admin/constants.js.map +1 -0
- package/dist/admin/constants.mjs +75 -0
- package/dist/admin/constants.mjs.map +1 -0
- package/dist/admin/index.js +120 -14
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +121 -13
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/{chunks/hooks-DA5VbUAp.js → modules/hooks.js} +1 -1
- package/dist/admin/modules/hooks.js.map +1 -0
- package/dist/admin/{chunks/hooks-CFk_8Q0b.mjs → modules/hooks.mjs} +2 -2
- package/dist/admin/modules/hooks.mjs.map +1 -0
- package/dist/admin/pages/App.js +29 -0
- package/dist/admin/pages/App.js.map +1 -0
- package/dist/admin/pages/App.mjs +27 -0
- package/dist/admin/pages/App.mjs.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.js +192 -0
- package/dist/admin/pages/PurchaseContentReleases.js.map +1 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs +190 -0
- package/dist/admin/pages/PurchaseContentReleases.mjs.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.js +821 -0
- package/dist/admin/pages/ReleaseDetailsPage.js.map +1 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs +800 -0
- package/dist/admin/pages/ReleaseDetailsPage.mjs.map +1 -0
- package/dist/admin/pages/ReleasesPage.js +397 -0
- package/dist/admin/pages/ReleasesPage.js.map +1 -0
- package/dist/admin/pages/ReleasesPage.mjs +375 -0
- package/dist/admin/pages/ReleasesPage.mjs.map +1 -0
- package/dist/admin/{chunks/ReleasesSettingsPage-KRcoI1bC.js → pages/ReleasesSettingsPage.js} +9 -17
- package/dist/admin/pages/ReleasesSettingsPage.js.map +1 -0
- package/dist/admin/{chunks/ReleasesSettingsPage-DUKdFdvx.mjs → pages/ReleasesSettingsPage.mjs} +5 -13
- package/dist/admin/pages/ReleasesSettingsPage.mjs.map +1 -0
- package/dist/admin/pluginId.js +6 -0
- package/dist/admin/pluginId.js.map +1 -0
- package/dist/admin/pluginId.mjs +4 -0
- package/dist/admin/pluginId.mjs.map +1 -0
- package/dist/admin/services/release.js +464 -0
- package/dist/admin/services/release.js.map +1 -0
- package/dist/admin/services/release.mjs +447 -0
- package/dist/admin/services/release.mjs.map +1 -0
- package/dist/admin/store/hooks.js +8 -0
- package/dist/admin/store/hooks.js.map +1 -0
- package/dist/admin/store/hooks.mjs +6 -0
- package/dist/admin/store/hooks.mjs.map +1 -0
- package/dist/admin/{chunks/en-BOpqX2t_.js → translations/en.json.js} +2 -2
- package/dist/admin/translations/en.json.js.map +1 -0
- package/dist/admin/{chunks/en-aQo8Bn_U.mjs → translations/en.json.mjs} +1 -1
- package/dist/admin/translations/en.json.mjs.map +1 -0
- package/dist/admin/{chunks/uk-9T9su-bj.js → translations/uk.json.js} +2 -2
- package/dist/admin/translations/uk.json.js.map +1 -0
- package/dist/admin/{chunks/uk-Bp9HotPq.mjs → translations/uk.json.mjs} +1 -1
- package/dist/admin/translations/uk.json.mjs.map +1 -0
- package/dist/admin/utils/api.js +8 -0
- package/dist/admin/utils/api.js.map +1 -0
- package/dist/admin/utils/api.mjs +6 -0
- package/dist/admin/utils/api.mjs.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.js +11 -0
- package/dist/admin/utils/prefixPluginTranslations.js.map +1 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs +9 -0
- package/dist/admin/utils/prefixPluginTranslations.mjs.map +1 -0
- package/dist/admin/utils/time.js +42 -0
- package/dist/admin/utils/time.js.map +1 -0
- package/dist/admin/utils/time.mjs +39 -0
- package/dist/admin/utils/time.mjs.map +1 -0
- package/dist/admin/{chunks/schemas-DS7NeFDN.js → validation/schemas.js} +1 -1
- package/dist/admin/validation/schemas.js.map +1 -0
- package/dist/admin/{chunks/schemas-DMt8h1z-.mjs → validation/schemas.mjs} +2 -2
- package/dist/admin/validation/schemas.mjs.map +1 -0
- package/dist/server/bootstrap.js +68 -0
- package/dist/server/bootstrap.js.map +1 -0
- package/dist/server/bootstrap.mjs +66 -0
- package/dist/server/bootstrap.mjs.map +1 -0
- package/dist/server/constants.js +74 -0
- package/dist/server/constants.js.map +1 -0
- package/dist/server/constants.mjs +69 -0
- package/dist/server/constants.mjs.map +1 -0
- package/dist/server/content-types/index.js +12 -0
- package/dist/server/content-types/index.js.map +1 -0
- package/dist/server/content-types/index.mjs +10 -0
- package/dist/server/content-types/index.mjs.map +1 -0
- package/dist/server/content-types/release/index.js +10 -0
- package/dist/server/content-types/release/index.js.map +1 -0
- package/dist/server/content-types/release/index.mjs +8 -0
- package/dist/server/content-types/release/index.mjs.map +1 -0
- package/dist/server/content-types/release/schema.js +58 -0
- package/dist/server/content-types/release/schema.js.map +1 -0
- package/dist/server/content-types/release/schema.mjs +56 -0
- package/dist/server/content-types/release/schema.mjs.map +1 -0
- package/dist/server/content-types/release-action/index.js +10 -0
- package/dist/server/content-types/release-action/index.js.map +1 -0
- package/dist/server/content-types/release-action/index.mjs +8 -0
- package/dist/server/content-types/release-action/index.mjs.map +1 -0
- package/dist/server/content-types/release-action/schema.js +55 -0
- package/dist/server/content-types/release-action/schema.js.map +1 -0
- package/dist/server/content-types/release-action/schema.mjs +53 -0
- package/dist/server/content-types/release-action/schema.mjs.map +1 -0
- package/dist/server/controllers/index.js +14 -0
- package/dist/server/controllers/index.js.map +1 -0
- package/dist/server/controllers/index.mjs +12 -0
- package/dist/server/controllers/index.mjs.map +1 -0
- package/dist/server/controllers/release-action.js +150 -0
- package/dist/server/controllers/release-action.js.map +1 -0
- package/dist/server/controllers/release-action.mjs +148 -0
- package/dist/server/controllers/release-action.mjs.map +1 -0
- package/dist/server/controllers/release.js +302 -0
- package/dist/server/controllers/release.js.map +1 -0
- package/dist/server/controllers/release.mjs +300 -0
- package/dist/server/controllers/release.mjs.map +1 -0
- package/dist/server/controllers/settings.js +37 -0
- package/dist/server/controllers/settings.js.map +1 -0
- package/dist/server/controllers/settings.mjs +35 -0
- package/dist/server/controllers/settings.mjs.map +1 -0
- package/dist/server/controllers/validation/release-action.js +34 -0
- package/dist/server/controllers/validation/release-action.js.map +1 -0
- package/dist/server/controllers/validation/release-action.mjs +30 -0
- package/dist/server/controllers/validation/release-action.mjs.map +1 -0
- package/dist/server/controllers/validation/release.js +26 -0
- package/dist/server/controllers/validation/release.js.map +1 -0
- package/dist/server/controllers/validation/release.mjs +22 -0
- package/dist/server/controllers/validation/release.mjs.map +1 -0
- package/dist/server/controllers/validation/settings.js +32 -0
- package/dist/server/controllers/validation/settings.js.map +1 -0
- package/dist/server/controllers/validation/settings.mjs +10 -0
- package/dist/server/controllers/validation/settings.mjs.map +1 -0
- package/dist/server/destroy.js +15 -0
- package/dist/server/destroy.js.map +1 -0
- package/dist/server/destroy.mjs +13 -0
- package/dist/server/destroy.mjs.map +1 -0
- package/dist/server/index.js +16 -2336
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +7 -2308
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/middlewares/documents.js +104 -0
- package/dist/server/middlewares/documents.js.map +1 -0
- package/dist/server/middlewares/documents.mjs +101 -0
- package/dist/server/middlewares/documents.mjs.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js +51 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.js.map +1 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs +49 -0
- package/dist/server/migrations/database/5.0.0-document-id-in-actions.mjs.map +1 -0
- package/dist/server/migrations/index.js +205 -0
- package/dist/server/migrations/index.js.map +1 -0
- package/dist/server/migrations/index.mjs +198 -0
- package/dist/server/migrations/index.mjs.map +1 -0
- package/dist/server/register.js +23 -0
- package/dist/server/register.js.map +1 -0
- package/dist/server/register.mjs +21 -0
- package/dist/server/register.mjs.map +1 -0
- package/dist/server/routes/index.js +14 -0
- package/dist/server/routes/index.js.map +1 -0
- package/dist/server/routes/index.mjs +12 -0
- package/dist/server/routes/index.mjs.map +1 -0
- package/dist/server/routes/release-action.js +100 -0
- package/dist/server/routes/release-action.js.map +1 -0
- package/dist/server/routes/release-action.mjs +98 -0
- package/dist/server/routes/release-action.mjs.map +1 -0
- package/dist/server/routes/release.js +154 -0
- package/dist/server/routes/release.js.map +1 -0
- package/dist/server/routes/release.mjs +152 -0
- package/dist/server/routes/release.mjs.map +1 -0
- package/dist/server/routes/settings.js +46 -0
- package/dist/server/routes/settings.js.map +1 -0
- package/dist/server/routes/settings.mjs +44 -0
- package/dist/server/routes/settings.mjs.map +1 -0
- package/dist/server/services/index.js +18 -0
- package/dist/server/services/index.js.map +1 -0
- package/dist/server/services/index.mjs +16 -0
- package/dist/server/services/index.mjs.map +1 -0
- package/dist/server/services/release-action.js +323 -0
- package/dist/server/services/release-action.js.map +1 -0
- package/dist/server/services/release-action.mjs +321 -0
- package/dist/server/services/release-action.mjs.map +1 -0
- package/dist/server/services/release.js +324 -0
- package/dist/server/services/release.js.map +1 -0
- package/dist/server/services/release.mjs +322 -0
- package/dist/server/services/release.mjs.map +1 -0
- package/dist/server/services/scheduling.js +70 -0
- package/dist/server/services/scheduling.js.map +1 -0
- package/dist/server/services/scheduling.mjs +68 -0
- package/dist/server/services/scheduling.mjs.map +1 -0
- package/dist/server/services/settings.js +34 -0
- package/dist/server/services/settings.js.map +1 -0
- package/dist/server/services/settings.mjs +32 -0
- package/dist/server/services/settings.mjs.map +1 -0
- package/dist/server/services/validation.js +91 -0
- package/dist/server/services/validation.js.map +1 -0
- package/dist/server/services/validation.mjs +86 -0
- package/dist/server/services/validation.mjs.map +1 -0
- package/dist/server/utils/index.js +93 -0
- package/dist/server/utils/index.js.map +1 -0
- package/dist/server/utils/index.mjs +87 -0
- package/dist/server/utils/index.mjs.map +1 -0
- package/package.json +7 -7
- package/dist/admin/chunks/App-BkWgp5q_.mjs +0 -1845
- package/dist/admin/chunks/App-BkWgp5q_.mjs.map +0 -1
- package/dist/admin/chunks/App-CJiqPP7-.js +0 -1866
- package/dist/admin/chunks/App-CJiqPP7-.js.map +0 -1
- package/dist/admin/chunks/PurchaseContentReleases-CzayeVUD.mjs +0 -193
- package/dist/admin/chunks/PurchaseContentReleases-CzayeVUD.mjs.map +0 -1
- package/dist/admin/chunks/PurchaseContentReleases-Z9uEPb5b.js +0 -195
- package/dist/admin/chunks/PurchaseContentReleases-Z9uEPb5b.js.map +0 -1
- package/dist/admin/chunks/ReleasesSettingsPage-DUKdFdvx.mjs.map +0 -1
- package/dist/admin/chunks/ReleasesSettingsPage-KRcoI1bC.js.map +0 -1
- package/dist/admin/chunks/en-BOpqX2t_.js.map +0 -1
- package/dist/admin/chunks/en-aQo8Bn_U.mjs.map +0 -1
- package/dist/admin/chunks/hooks-CFk_8Q0b.mjs.map +0 -1
- package/dist/admin/chunks/hooks-DA5VbUAp.js.map +0 -1
- package/dist/admin/chunks/index-DBUaMD56.mjs +0 -1619
- package/dist/admin/chunks/index-DBUaMD56.mjs.map +0 -1
- package/dist/admin/chunks/index-vjWrvGN3.js +0 -1658
- package/dist/admin/chunks/index-vjWrvGN3.js.map +0 -1
- package/dist/admin/chunks/schemas-DMt8h1z-.mjs.map +0 -1
- package/dist/admin/chunks/schemas-DS7NeFDN.js.map +0 -1
- package/dist/admin/chunks/uk-9T9su-bj.js.map +0 -1
- package/dist/admin/chunks/uk-Bp9HotPq.mjs.map +0 -1
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { useQueryParams, useRBAC } from '@strapi/admin/strapi-admin';
|
|
3
|
+
import { unstable_useDocumentLayout } from '@strapi/content-manager/strapi-admin';
|
|
4
|
+
import { Flex, Box, Typography } from '@strapi/design-system';
|
|
5
|
+
import { useIntl } from 'react-intl';
|
|
6
|
+
import { PERMISSIONS } from '../constants.mjs';
|
|
7
|
+
import { useGetReleasesForEntryQuery } from '../services/release.mjs';
|
|
8
|
+
import { getTimezoneOffset } from '../utils/time.mjs';
|
|
9
|
+
import { ReleaseActionMenu } from './ReleaseActionMenu.mjs';
|
|
10
|
+
|
|
11
|
+
const Panel = ({ model, document, documentId, collectionType })=>{
|
|
12
|
+
const [{ query }] = useQueryParams();
|
|
13
|
+
const locale = query.plugins?.i18n?.locale;
|
|
14
|
+
const { edit: { options } } = unstable_useDocumentLayout(model);
|
|
15
|
+
const { formatMessage, formatDate, formatTime } = useIntl();
|
|
16
|
+
const { allowedActions } = useRBAC(PERMISSIONS);
|
|
17
|
+
const { canRead, canDeleteAction } = allowedActions;
|
|
18
|
+
const response = useGetReleasesForEntryQuery({
|
|
19
|
+
contentType: model,
|
|
20
|
+
entryDocumentId: documentId,
|
|
21
|
+
locale,
|
|
22
|
+
hasEntryAttached: true
|
|
23
|
+
}, {
|
|
24
|
+
skip: !document
|
|
25
|
+
});
|
|
26
|
+
const releases = response.data?.data;
|
|
27
|
+
const getReleaseColorVariant = (actionType, shade)=>{
|
|
28
|
+
if (actionType === 'unpublish') {
|
|
29
|
+
return `secondary${shade}`;
|
|
30
|
+
}
|
|
31
|
+
return `success${shade}`;
|
|
32
|
+
};
|
|
33
|
+
// Project is not EE or contentType does not have draftAndPublish enabled
|
|
34
|
+
if (!window.strapi.isEE || !options?.draftAndPublish || !canRead) {
|
|
35
|
+
return null;
|
|
36
|
+
}
|
|
37
|
+
if (collectionType === 'collection-types' && (!documentId || documentId === 'create')) {
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
if (!releases || releases.length === 0) {
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
title: formatMessage({
|
|
45
|
+
id: 'content-releases.plugin.name',
|
|
46
|
+
defaultMessage: 'Releases'
|
|
47
|
+
}),
|
|
48
|
+
content: /*#__PURE__*/ jsx(Flex, {
|
|
49
|
+
direction: "column",
|
|
50
|
+
alignItems: "stretch",
|
|
51
|
+
gap: 3,
|
|
52
|
+
width: "100%",
|
|
53
|
+
children: releases?.map((release)=>/*#__PURE__*/ jsxs(Flex, {
|
|
54
|
+
direction: "column",
|
|
55
|
+
alignItems: "start",
|
|
56
|
+
borderWidth: "1px",
|
|
57
|
+
borderStyle: "solid",
|
|
58
|
+
borderColor: getReleaseColorVariant(release.actions[0].type, '200'),
|
|
59
|
+
overflow: "hidden",
|
|
60
|
+
hasRadius: true,
|
|
61
|
+
children: [
|
|
62
|
+
/*#__PURE__*/ jsx(Box, {
|
|
63
|
+
paddingTop: 3,
|
|
64
|
+
paddingBottom: 3,
|
|
65
|
+
paddingLeft: 4,
|
|
66
|
+
paddingRight: 4,
|
|
67
|
+
background: getReleaseColorVariant(release.actions[0].type, '100'),
|
|
68
|
+
width: "100%",
|
|
69
|
+
children: /*#__PURE__*/ jsx(Typography, {
|
|
70
|
+
fontSize: 1,
|
|
71
|
+
variant: "pi",
|
|
72
|
+
textColor: getReleaseColorVariant(release.actions[0].type, '600'),
|
|
73
|
+
children: formatMessage({
|
|
74
|
+
id: 'content-releases.content-manager-edit-view.list-releases.title',
|
|
75
|
+
defaultMessage: '{isPublish, select, true {Will be published in} other {Will be unpublished in}}'
|
|
76
|
+
}, {
|
|
77
|
+
isPublish: release.actions[0].type === 'publish'
|
|
78
|
+
})
|
|
79
|
+
})
|
|
80
|
+
}),
|
|
81
|
+
/*#__PURE__*/ jsxs(Flex, {
|
|
82
|
+
padding: 4,
|
|
83
|
+
direction: "column",
|
|
84
|
+
gap: 2,
|
|
85
|
+
width: "100%",
|
|
86
|
+
alignItems: "flex-start",
|
|
87
|
+
children: [
|
|
88
|
+
/*#__PURE__*/ jsx(Typography, {
|
|
89
|
+
fontSize: 2,
|
|
90
|
+
fontWeight: "bold",
|
|
91
|
+
variant: "omega",
|
|
92
|
+
textColor: "neutral700",
|
|
93
|
+
children: release.name
|
|
94
|
+
}),
|
|
95
|
+
release.scheduledAt && release.timezone && /*#__PURE__*/ jsx(Typography, {
|
|
96
|
+
variant: "pi",
|
|
97
|
+
textColor: "neutral600",
|
|
98
|
+
children: formatMessage({
|
|
99
|
+
id: 'content-releases.content-manager-edit-view.scheduled.date',
|
|
100
|
+
defaultMessage: '{date} at {time} ({offset})'
|
|
101
|
+
}, {
|
|
102
|
+
date: formatDate(new Date(release.scheduledAt), {
|
|
103
|
+
day: '2-digit',
|
|
104
|
+
month: '2-digit',
|
|
105
|
+
year: 'numeric',
|
|
106
|
+
timeZone: release.timezone
|
|
107
|
+
}),
|
|
108
|
+
time: formatTime(new Date(release.scheduledAt), {
|
|
109
|
+
hourCycle: 'h23',
|
|
110
|
+
timeZone: release.timezone
|
|
111
|
+
}),
|
|
112
|
+
offset: getTimezoneOffset(release.timezone, new Date(release.scheduledAt))
|
|
113
|
+
})
|
|
114
|
+
}),
|
|
115
|
+
canDeleteAction ? /*#__PURE__*/ jsxs(ReleaseActionMenu.Root, {
|
|
116
|
+
hasTriggerBorder: true,
|
|
117
|
+
children: [
|
|
118
|
+
/*#__PURE__*/ jsx(ReleaseActionMenu.EditReleaseItem, {
|
|
119
|
+
releaseId: release.id
|
|
120
|
+
}),
|
|
121
|
+
/*#__PURE__*/ jsx(ReleaseActionMenu.DeleteReleaseActionItem, {
|
|
122
|
+
releaseId: release.id,
|
|
123
|
+
actionId: release.actions[0].id
|
|
124
|
+
})
|
|
125
|
+
]
|
|
126
|
+
}) : null
|
|
127
|
+
]
|
|
128
|
+
})
|
|
129
|
+
]
|
|
130
|
+
}, release.id))
|
|
131
|
+
})
|
|
132
|
+
};
|
|
133
|
+
};
|
|
134
|
+
|
|
135
|
+
export { Panel };
|
|
136
|
+
//# sourceMappingURL=ReleasesPanel.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ReleasesPanel.mjs","sources":["../../../admin/src/components/ReleasesPanel.tsx"],"sourcesContent":["import { useRBAC, useQueryParams } from '@strapi/admin/strapi-admin';\nimport { unstable_useDocumentLayout as useDocumentLayout } from '@strapi/content-manager/strapi-admin';\nimport { Box, Flex, Typography } from '@strapi/design-system';\nimport { useIntl } from 'react-intl';\n\nimport { PERMISSIONS } from '../constants';\nimport { useGetReleasesForEntryQuery } from '../services/release';\nimport { getTimezoneOffset } from '../utils/time';\n\nimport { ReleaseActionMenu } from './ReleaseActionMenu';\n\nimport type { PanelComponent, PanelComponentProps } from '@strapi/content-manager/strapi-admin';\n\nconst Panel: PanelComponent = ({\n model,\n document,\n documentId,\n collectionType,\n}: PanelComponentProps) => {\n const [{ query }] = useQueryParams<{ plugins: { i18n: { locale: string } } }>();\n const locale = query.plugins?.i18n?.locale;\n\n const {\n edit: { options },\n } = useDocumentLayout(model);\n const { formatMessage, formatDate, formatTime } = useIntl();\n\n const { allowedActions } = useRBAC(PERMISSIONS);\n const { canRead, canDeleteAction } = allowedActions;\n\n const response = useGetReleasesForEntryQuery(\n {\n contentType: model,\n entryDocumentId: documentId,\n locale,\n hasEntryAttached: true,\n },\n {\n skip: !document,\n }\n );\n const releases = response.data?.data;\n\n const getReleaseColorVariant = (\n actionType: 'publish' | 'unpublish',\n shade: '100' | '200' | '600'\n ) => {\n if (actionType === 'unpublish') {\n return `secondary${shade}`;\n }\n\n return `success${shade}`;\n };\n\n // Project is not EE or contentType does not have draftAndPublish enabled\n if (!window.strapi.isEE || !options?.draftAndPublish || !canRead) {\n return null;\n }\n\n if (collectionType === 'collection-types' && (!documentId || documentId === 'create')) {\n return null;\n }\n\n if (!releases || releases.length === 0) {\n return null;\n }\n\n return {\n title: formatMessage({\n id: 'content-releases.plugin.name',\n defaultMessage: 'Releases',\n }),\n content: (\n <Flex direction=\"column\" alignItems=\"stretch\" gap={3} width=\"100%\">\n {releases?.map((release) => (\n <Flex\n key={release.id}\n direction=\"column\"\n alignItems=\"start\"\n borderWidth=\"1px\"\n borderStyle=\"solid\"\n borderColor={getReleaseColorVariant(release.actions[0].type, '200')}\n overflow=\"hidden\"\n hasRadius\n >\n <Box\n paddingTop={3}\n paddingBottom={3}\n paddingLeft={4}\n paddingRight={4}\n background={getReleaseColorVariant(release.actions[0].type, '100')}\n width=\"100%\"\n >\n <Typography\n fontSize={1}\n variant=\"pi\"\n textColor={getReleaseColorVariant(release.actions[0].type, '600')}\n >\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.list-releases.title',\n defaultMessage:\n '{isPublish, select, true {Will be published in} other {Will be unpublished in}}',\n },\n { isPublish: release.actions[0].type === 'publish' }\n )}\n </Typography>\n </Box>\n <Flex padding={4} direction=\"column\" gap={2} width=\"100%\" alignItems=\"flex-start\">\n <Typography fontSize={2} fontWeight=\"bold\" variant=\"omega\" textColor=\"neutral700\">\n {release.name}\n </Typography>\n {release.scheduledAt && release.timezone && (\n <Typography variant=\"pi\" textColor=\"neutral600\">\n {formatMessage(\n {\n id: 'content-releases.content-manager-edit-view.scheduled.date',\n defaultMessage: '{date} at {time} ({offset})',\n },\n {\n date: formatDate(new Date(release.scheduledAt), {\n day: '2-digit',\n month: '2-digit',\n year: 'numeric',\n timeZone: release.timezone,\n }),\n time: formatTime(new Date(release.scheduledAt), {\n hourCycle: 'h23',\n timeZone: release.timezone,\n }),\n offset: getTimezoneOffset(release.timezone, new Date(release.scheduledAt)),\n }\n )}\n </Typography>\n )}\n {canDeleteAction ? (\n <ReleaseActionMenu.Root hasTriggerBorder>\n <ReleaseActionMenu.EditReleaseItem releaseId={release.id} />\n <ReleaseActionMenu.DeleteReleaseActionItem\n releaseId={release.id}\n actionId={release.actions[0].id}\n />\n </ReleaseActionMenu.Root>\n ) : null}\n </Flex>\n </Flex>\n ))}\n </Flex>\n ),\n };\n};\n\nexport { Panel };\n"],"names":["Panel","model","document","documentId","collectionType","query","useQueryParams","locale","plugins","i18n","edit","options","useDocumentLayout","formatMessage","formatDate","formatTime","useIntl","allowedActions","useRBAC","PERMISSIONS","canRead","canDeleteAction","response","useGetReleasesForEntryQuery","contentType","entryDocumentId","hasEntryAttached","skip","releases","data","getReleaseColorVariant","actionType","shade","window","strapi","isEE","draftAndPublish","length","title","id","defaultMessage","content","_jsx","Flex","direction","alignItems","gap","width","map","release","_jsxs","borderWidth","borderStyle","borderColor","actions","type","overflow","hasRadius","Box","paddingTop","paddingBottom","paddingLeft","paddingRight","background","Typography","fontSize","variant","textColor","isPublish","padding","fontWeight","name","scheduledAt","timezone","date","Date","day","month","year","timeZone","time","hourCycle","offset","getTimezoneOffset","ReleaseActionMenu","Root","hasTriggerBorder","EditReleaseItem","releaseId","DeleteReleaseActionItem","actionId"],"mappings":";;;;;;;;;;AAaMA,MAAAA,KAAAA,GAAwB,CAAC,EAC7BC,KAAK,EACLC,QAAQ,EACRC,UAAU,EACVC,cAAc,EACM,GAAA;AACpB,IAAA,MAAM,CAAC,EAAEC,KAAK,EAAE,CAAC,GAAGC,cAAAA,EAAAA;AACpB,IAAA,MAAMC,MAASF,GAAAA,KAAAA,CAAMG,OAAO,EAAEC,IAAMF,EAAAA,MAAAA;AAEpC,IAAA,MAAM,EACJG,IAAM,EAAA,EAAEC,OAAO,EAAE,EAClB,GAAGC,0BAAkBX,CAAAA,KAAAA,CAAAA;AACtB,IAAA,MAAM,EAAEY,aAAa,EAAEC,UAAU,EAAEC,UAAU,EAAE,GAAGC,OAAAA,EAAAA;AAElD,IAAA,MAAM,EAAEC,cAAc,EAAE,GAAGC,OAAQC,CAAAA,WAAAA,CAAAA;AACnC,IAAA,MAAM,EAAEC,OAAO,EAAEC,eAAe,EAAE,GAAGJ,cAAAA;AAErC,IAAA,MAAMK,WAAWC,2BACf,CAAA;QACEC,WAAavB,EAAAA,KAAAA;QACbwB,eAAiBtB,EAAAA,UAAAA;AACjBI,QAAAA,MAAAA;QACAmB,gBAAkB,EAAA;KAEpB,EAAA;AACEC,QAAAA,IAAAA,EAAM,CAACzB;AACT,KAAA,CAAA;IAEF,MAAM0B,QAAAA,GAAWN,QAASO,CAAAA,IAAI,EAAEA,IAAAA;IAEhC,MAAMC,sBAAAA,GAAyB,CAC7BC,UACAC,EAAAA,KAAAA,GAAAA;AAEA,QAAA,IAAID,eAAe,WAAa,EAAA;AAC9B,YAAA,OAAO,CAAC,SAAS,EAAEC,KAAAA,CAAM,CAAC;AAC5B;AAEA,QAAA,OAAO,CAAC,OAAO,EAAEA,KAAAA,CAAM,CAAC;AAC1B,KAAA;;IAGA,IAAI,CAACC,MAAOC,CAAAA,MAAM,CAACC,IAAI,IAAI,CAACxB,OAAAA,EAASyB,eAAmB,IAAA,CAAChB,OAAS,EAAA;QAChE,OAAO,IAAA;AACT;AAEA,IAAA,IAAIhB,mBAAmB,kBAAuB,KAAA,CAACD,UAAcA,IAAAA,UAAAA,KAAe,QAAO,CAAI,EAAA;QACrF,OAAO,IAAA;AACT;AAEA,IAAA,IAAI,CAACyB,QAAAA,IAAYA,QAASS,CAAAA,MAAM,KAAK,CAAG,EAAA;QACtC,OAAO,IAAA;AACT;IAEA,OAAO;AACLC,QAAAA,KAAAA,EAAOzB,aAAc,CAAA;YACnB0B,EAAI,EAAA,8BAAA;YACJC,cAAgB,EAAA;AAClB,SAAA,CAAA;AACAC,QAAAA,OAAAA,gBACEC,GAACC,CAAAA,IAAAA,EAAAA;YAAKC,SAAU,EAAA,QAAA;YAASC,UAAW,EAAA,SAAA;YAAUC,GAAK,EAAA,CAAA;YAAGC,KAAM,EAAA,MAAA;sBACzDnB,QAAUoB,EAAAA,GAAAA,CAAI,CAACC,OAAAA,iBACdC,IAACP,CAAAA,IAAAA,EAAAA;oBAECC,SAAU,EAAA,QAAA;oBACVC,UAAW,EAAA,OAAA;oBACXM,WAAY,EAAA,KAAA;oBACZC,WAAY,EAAA,OAAA;AACZC,oBAAAA,WAAAA,EAAavB,uBAAuBmB,OAAQK,CAAAA,OAAO,CAAC,CAAE,CAAA,CAACC,IAAI,EAAE,KAAA,CAAA;oBAC7DC,QAAS,EAAA,QAAA;oBACTC,SAAS,EAAA,IAAA;;sCAETf,GAACgB,CAAAA,GAAAA,EAAAA;4BACCC,UAAY,EAAA,CAAA;4BACZC,aAAe,EAAA,CAAA;4BACfC,WAAa,EAAA,CAAA;4BACbC,YAAc,EAAA,CAAA;AACdC,4BAAAA,UAAAA,EAAYjC,uBAAuBmB,OAAQK,CAAAA,OAAO,CAAC,CAAE,CAAA,CAACC,IAAI,EAAE,KAAA,CAAA;4BAC5DR,KAAM,EAAA,MAAA;AAEN,4BAAA,QAAA,gBAAAL,GAACsB,CAAAA,UAAAA,EAAAA;gCACCC,QAAU,EAAA,CAAA;gCACVC,OAAQ,EAAA,IAAA;AACRC,gCAAAA,SAAAA,EAAWrC,uBAAuBmB,OAAQK,CAAAA,OAAO,CAAC,CAAE,CAAA,CAACC,IAAI,EAAE,KAAA,CAAA;0CAE1D1C,aACC,CAAA;oCACE0B,EAAI,EAAA,gEAAA;oCACJC,cACE,EAAA;iCAEJ,EAAA;AAAE4B,oCAAAA,SAAAA,EAAWnB,QAAQK,OAAO,CAAC,CAAE,CAAA,CAACC,IAAI,KAAK;AAAU,iCAAA;;;sCAIzDL,IAACP,CAAAA,IAAAA,EAAAA;4BAAK0B,OAAS,EAAA,CAAA;4BAAGzB,SAAU,EAAA,QAAA;4BAASE,GAAK,EAAA,CAAA;4BAAGC,KAAM,EAAA,MAAA;4BAAOF,UAAW,EAAA,YAAA;;8CACnEH,GAACsB,CAAAA,UAAAA,EAAAA;oCAAWC,QAAU,EAAA,CAAA;oCAAGK,UAAW,EAAA,MAAA;oCAAOJ,OAAQ,EAAA,OAAA;oCAAQC,SAAU,EAAA,YAAA;AAClElB,oCAAAA,QAAAA,EAAAA,OAAAA,CAAQsB;;AAEVtB,gCAAAA,OAAAA,CAAQuB,WAAW,IAAIvB,OAAQwB,CAAAA,QAAQ,kBACtC/B,GAACsB,CAAAA,UAAAA,EAAAA;oCAAWE,OAAQ,EAAA,IAAA;oCAAKC,SAAU,EAAA,YAAA;8CAChCtD,aACC,CAAA;wCACE0B,EAAI,EAAA,2DAAA;wCACJC,cAAgB,EAAA;qCAElB,EAAA;AACEkC,wCAAAA,IAAAA,EAAM5D,UAAW,CAAA,IAAI6D,IAAK1B,CAAAA,OAAAA,CAAQuB,WAAW,CAAG,EAAA;4CAC9CI,GAAK,EAAA,SAAA;4CACLC,KAAO,EAAA,SAAA;4CACPC,IAAM,EAAA,SAAA;AACNC,4CAAAA,QAAAA,EAAU9B,QAAQwB;AACpB,yCAAA,CAAA;AACAO,wCAAAA,IAAAA,EAAMjE,UAAW,CAAA,IAAI4D,IAAK1B,CAAAA,OAAAA,CAAQuB,WAAW,CAAG,EAAA;4CAC9CS,SAAW,EAAA,KAAA;AACXF,4CAAAA,QAAAA,EAAU9B,QAAQwB;AACpB,yCAAA,CAAA;AACAS,wCAAAA,MAAAA,EAAQC,kBAAkBlC,OAAQwB,CAAAA,QAAQ,EAAE,IAAIE,IAAAA,CAAK1B,QAAQuB,WAAW,CAAA;AAC1E,qCAAA;;gCAILnD,eACC,iBAAA6B,IAAA,CAACkC,kBAAkBC,IAAI,EAAA;oCAACC,gBAAgB,EAAA,IAAA;;AACtC,sDAAA5C,GAAA,CAAC0C,kBAAkBG,eAAe,EAAA;AAACC,4CAAAA,SAAAA,EAAWvC,QAAQV;;AACtD,sDAAAG,GAAA,CAAC0C,kBAAkBK,uBAAuB,EAAA;AACxCD,4CAAAA,SAAAA,EAAWvC,QAAQV,EAAE;AACrBmD,4CAAAA,QAAAA,EAAUzC,OAAQK,CAAAA,OAAO,CAAC,CAAA,CAAE,CAACf;;;AAG/B,iCAAA,CAAA,GAAA;;;;AAnEDU,iBAAAA,EAAAA,OAAAA,CAAQV,EAAE,CAAA;;AAyEzB,KAAA;AACF;;;;"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
const PERMISSIONS = {
|
|
4
|
+
main: [
|
|
5
|
+
{
|
|
6
|
+
action: 'plugin::content-releases.read',
|
|
7
|
+
subject: null,
|
|
8
|
+
id: '',
|
|
9
|
+
actionParameters: {},
|
|
10
|
+
properties: {},
|
|
11
|
+
conditions: []
|
|
12
|
+
}
|
|
13
|
+
],
|
|
14
|
+
create: [
|
|
15
|
+
{
|
|
16
|
+
action: 'plugin::content-releases.create',
|
|
17
|
+
subject: null,
|
|
18
|
+
id: '',
|
|
19
|
+
actionParameters: {},
|
|
20
|
+
properties: {},
|
|
21
|
+
conditions: []
|
|
22
|
+
}
|
|
23
|
+
],
|
|
24
|
+
update: [
|
|
25
|
+
{
|
|
26
|
+
action: 'plugin::content-releases.update',
|
|
27
|
+
subject: null,
|
|
28
|
+
id: '',
|
|
29
|
+
actionParameters: {},
|
|
30
|
+
properties: {},
|
|
31
|
+
conditions: []
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
delete: [
|
|
35
|
+
{
|
|
36
|
+
action: 'plugin::content-releases.delete',
|
|
37
|
+
subject: null,
|
|
38
|
+
id: '',
|
|
39
|
+
actionParameters: {},
|
|
40
|
+
properties: {},
|
|
41
|
+
conditions: []
|
|
42
|
+
}
|
|
43
|
+
],
|
|
44
|
+
createAction: [
|
|
45
|
+
{
|
|
46
|
+
action: 'plugin::content-releases.create-action',
|
|
47
|
+
subject: null,
|
|
48
|
+
id: '',
|
|
49
|
+
actionParameters: {},
|
|
50
|
+
properties: {},
|
|
51
|
+
conditions: []
|
|
52
|
+
}
|
|
53
|
+
],
|
|
54
|
+
deleteAction: [
|
|
55
|
+
{
|
|
56
|
+
action: 'plugin::content-releases.delete-action',
|
|
57
|
+
subject: null,
|
|
58
|
+
id: '',
|
|
59
|
+
actionParameters: {},
|
|
60
|
+
properties: {},
|
|
61
|
+
conditions: []
|
|
62
|
+
}
|
|
63
|
+
],
|
|
64
|
+
publish: [
|
|
65
|
+
{
|
|
66
|
+
action: 'plugin::content-releases.publish',
|
|
67
|
+
subject: null,
|
|
68
|
+
id: '',
|
|
69
|
+
actionParameters: {},
|
|
70
|
+
properties: {},
|
|
71
|
+
conditions: []
|
|
72
|
+
}
|
|
73
|
+
]
|
|
74
|
+
};
|
|
75
|
+
|
|
76
|
+
exports.PERMISSIONS = PERMISSIONS;
|
|
77
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":";;MAEaA,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
const PERMISSIONS = {
|
|
2
|
+
main: [
|
|
3
|
+
{
|
|
4
|
+
action: 'plugin::content-releases.read',
|
|
5
|
+
subject: null,
|
|
6
|
+
id: '',
|
|
7
|
+
actionParameters: {},
|
|
8
|
+
properties: {},
|
|
9
|
+
conditions: []
|
|
10
|
+
}
|
|
11
|
+
],
|
|
12
|
+
create: [
|
|
13
|
+
{
|
|
14
|
+
action: 'plugin::content-releases.create',
|
|
15
|
+
subject: null,
|
|
16
|
+
id: '',
|
|
17
|
+
actionParameters: {},
|
|
18
|
+
properties: {},
|
|
19
|
+
conditions: []
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
update: [
|
|
23
|
+
{
|
|
24
|
+
action: 'plugin::content-releases.update',
|
|
25
|
+
subject: null,
|
|
26
|
+
id: '',
|
|
27
|
+
actionParameters: {},
|
|
28
|
+
properties: {},
|
|
29
|
+
conditions: []
|
|
30
|
+
}
|
|
31
|
+
],
|
|
32
|
+
delete: [
|
|
33
|
+
{
|
|
34
|
+
action: 'plugin::content-releases.delete',
|
|
35
|
+
subject: null,
|
|
36
|
+
id: '',
|
|
37
|
+
actionParameters: {},
|
|
38
|
+
properties: {},
|
|
39
|
+
conditions: []
|
|
40
|
+
}
|
|
41
|
+
],
|
|
42
|
+
createAction: [
|
|
43
|
+
{
|
|
44
|
+
action: 'plugin::content-releases.create-action',
|
|
45
|
+
subject: null,
|
|
46
|
+
id: '',
|
|
47
|
+
actionParameters: {},
|
|
48
|
+
properties: {},
|
|
49
|
+
conditions: []
|
|
50
|
+
}
|
|
51
|
+
],
|
|
52
|
+
deleteAction: [
|
|
53
|
+
{
|
|
54
|
+
action: 'plugin::content-releases.delete-action',
|
|
55
|
+
subject: null,
|
|
56
|
+
id: '',
|
|
57
|
+
actionParameters: {},
|
|
58
|
+
properties: {},
|
|
59
|
+
conditions: []
|
|
60
|
+
}
|
|
61
|
+
],
|
|
62
|
+
publish: [
|
|
63
|
+
{
|
|
64
|
+
action: 'plugin::content-releases.publish',
|
|
65
|
+
subject: null,
|
|
66
|
+
id: '',
|
|
67
|
+
actionParameters: {},
|
|
68
|
+
properties: {},
|
|
69
|
+
conditions: []
|
|
70
|
+
}
|
|
71
|
+
]
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
export { PERMISSIONS };
|
|
75
|
+
//# sourceMappingURL=constants.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.mjs","sources":["../../admin/src/constants.ts"],"sourcesContent":["import type { Permission as StrapiPermission } from '@strapi/admin/strapi-admin';\n\nexport const PERMISSIONS = {\n main: [\n {\n action: 'plugin::content-releases.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n create: [\n {\n action: 'plugin::content-releases.create',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n delete: [\n {\n action: 'plugin::content-releases.delete',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n createAction: [\n {\n action: 'plugin::content-releases.create-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n deleteAction: [\n {\n action: 'plugin::content-releases.delete-action',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n publish: [\n {\n action: 'plugin::content-releases.publish',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n\nexport const PERMISSIONS_SETTINGS = {\n read: [\n {\n action: 'plugin::content-releases.settings.read',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n update: [\n {\n action: 'plugin::content-releases.settings.update',\n subject: null,\n id: '',\n actionParameters: {},\n properties: {},\n conditions: [],\n },\n ],\n} satisfies Record<string, StrapiPermission[]>;\n"],"names":["PERMISSIONS","main","action","subject","id","actionParameters","properties","conditions","create","update","delete","createAction","deleteAction","publish"],"mappings":"MAEaA,WAAc,GAAA;IACzBC,IAAM,EAAA;AACJ,QAAA;YACEC,MAAQ,EAAA,+BAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDC,MAAQ,EAAA;AACN,QAAA;YACEN,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDE,MAAQ,EAAA;AACN,QAAA;YACEP,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDG,MAAQ,EAAA;AACN,QAAA;YACER,MAAQ,EAAA,iCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDI,YAAc,EAAA;AACZ,QAAA;YACET,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDK,YAAc,EAAA;AACZ,QAAA;YACEV,MAAQ,EAAA,wCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD,KAAA;IACDM,OAAS,EAAA;AACP,QAAA;YACEX,MAAQ,EAAA,kCAAA;YACRC,OAAS,EAAA,IAAA;YACTC,EAAI,EAAA,EAAA;AACJC,YAAAA,gBAAAA,EAAkB,EAAC;AACnBC,YAAAA,UAAAA,EAAY,EAAC;AACbC,YAAAA,UAAAA,EAAY;AACd;AACD;AACH;;;;"}
|
package/dist/admin/index.js
CHANGED
|
@@ -1,20 +1,126 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
require('@strapi/icons');
|
|
4
|
-
var
|
|
5
|
-
require('
|
|
6
|
-
require('
|
|
7
|
-
require('
|
|
8
|
-
require('
|
|
9
|
-
require('
|
|
10
|
-
require('
|
|
11
|
-
require('@strapi/content-manager/strapi-admin');
|
|
12
|
-
require('@strapi/icons/symbols');
|
|
13
|
-
require('react-router-dom');
|
|
14
|
-
require('yup');
|
|
15
|
-
require('styled-components');
|
|
3
|
+
var icons = require('@strapi/icons');
|
|
4
|
+
var ReleaseAction = require('./components/ReleaseAction.js');
|
|
5
|
+
var ReleaseActionModal = require('./components/ReleaseActionModal.js');
|
|
6
|
+
var ReleaseListCell = require('./components/ReleaseListCell.js');
|
|
7
|
+
var ReleasesPanel = require('./components/ReleasesPanel.js');
|
|
8
|
+
var constants = require('./constants.js');
|
|
9
|
+
var pluginId = require('./pluginId.js');
|
|
10
|
+
var prefixPluginTranslations = require('./utils/prefixPluginTranslations.js');
|
|
16
11
|
|
|
12
|
+
function _interopNamespaceDefaultOnly (e) { return Object.freeze({ __proto__: null, default: e }); }
|
|
17
13
|
|
|
14
|
+
function __variableDynamicImportRuntime3__(path) {
|
|
15
|
+
switch (path) {
|
|
16
|
+
case './translations/en.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/en.json.js')); });
|
|
17
|
+
case './translations/uk.json': return Promise.resolve().then(function () { return /*#__PURE__*/_interopNamespaceDefaultOnly(require('./translations/uk.json.js')); });
|
|
18
|
+
default: return new Promise(function(resolve, reject) {
|
|
19
|
+
(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
|
|
20
|
+
reject.bind(null, new Error("Unknown variable dynamic import: " + path))
|
|
21
|
+
);
|
|
22
|
+
})
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
// eslint-disable-next-line import/no-default-export
|
|
26
|
+
const admin = {
|
|
27
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
+
register (app) {
|
|
29
|
+
/**
|
|
30
|
+
* Hook that adds the locale column in the Release Details table
|
|
31
|
+
* @constant
|
|
32
|
+
* @type {string}
|
|
33
|
+
*/ app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');
|
|
34
|
+
if (window.strapi.features.isEnabled('cms-content-releases')) {
|
|
35
|
+
app.addMenuLink({
|
|
36
|
+
to: `plugins/${pluginId.pluginId}`,
|
|
37
|
+
icon: icons.PaperPlane,
|
|
38
|
+
intlLabel: {
|
|
39
|
+
id: `${pluginId.pluginId}.plugin.name`,
|
|
40
|
+
defaultMessage: 'Releases'
|
|
41
|
+
},
|
|
42
|
+
Component: ()=>Promise.resolve().then(function () { return require('./pages/App.js'); }).then((mod)=>({
|
|
43
|
+
default: mod.App
|
|
44
|
+
})),
|
|
45
|
+
permissions: constants.PERMISSIONS.main,
|
|
46
|
+
position: 2
|
|
47
|
+
});
|
|
48
|
+
// Insert the releases container into the CM's sidebar on the Edit View
|
|
49
|
+
const contentManagerPluginApis = app.getPlugin('content-manager').apis;
|
|
50
|
+
if ('addEditViewSidePanel' in contentManagerPluginApis && typeof contentManagerPluginApis.addEditViewSidePanel === 'function') {
|
|
51
|
+
contentManagerPluginApis.addEditViewSidePanel([
|
|
52
|
+
ReleasesPanel.Panel
|
|
53
|
+
]);
|
|
54
|
+
}
|
|
55
|
+
// Insert the "add to release" action into the CM's Edit View
|
|
56
|
+
if ('addDocumentAction' in contentManagerPluginApis && typeof contentManagerPluginApis.addDocumentAction === 'function') {
|
|
57
|
+
contentManagerPluginApis.addDocumentAction((actions)=>{
|
|
58
|
+
const indexOfDeleteAction = actions.findIndex((action)=>action.type === 'unpublish');
|
|
59
|
+
actions.splice(indexOfDeleteAction, 0, ReleaseActionModal.ReleaseActionModalForm);
|
|
60
|
+
return actions;
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
app.addSettingsLink('global', {
|
|
64
|
+
id: pluginId.pluginId,
|
|
65
|
+
to: 'releases',
|
|
66
|
+
intlLabel: {
|
|
67
|
+
id: `${pluginId.pluginId}.plugin.name`,
|
|
68
|
+
defaultMessage: 'Releases'
|
|
69
|
+
},
|
|
70
|
+
permissions: [],
|
|
71
|
+
async Component () {
|
|
72
|
+
const { ProtectedReleasesSettingsPage } = await Promise.resolve().then(function () { return require('./pages/ReleasesSettingsPage.js'); });
|
|
73
|
+
return {
|
|
74
|
+
default: ProtectedReleasesSettingsPage
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
});
|
|
78
|
+
if ('addBulkAction' in contentManagerPluginApis && typeof contentManagerPluginApis.addBulkAction === 'function') {
|
|
79
|
+
contentManagerPluginApis.addBulkAction((actions)=>{
|
|
80
|
+
// We want to add this action to just before the delete action all the time
|
|
81
|
+
const deleteActionIndex = actions.findIndex((action)=>action.type === 'delete');
|
|
82
|
+
actions.splice(deleteActionIndex, 0, ReleaseAction.ReleaseAction);
|
|
83
|
+
return actions;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
// Hook that adds a column into the CM's LV table
|
|
87
|
+
app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', ReleaseListCell.addColumnToTableHook);
|
|
88
|
+
} else if (!window.strapi.features.isEnabled('cms-content-releases') && window.strapi?.flags?.promoteEE) {
|
|
89
|
+
app.addSettingsLink('global', {
|
|
90
|
+
id: pluginId.pluginId,
|
|
91
|
+
to: '/plugins/purchase-content-releases',
|
|
92
|
+
intlLabel: {
|
|
93
|
+
id: `${pluginId.pluginId}.plugin.name`,
|
|
94
|
+
defaultMessage: 'Releases'
|
|
95
|
+
},
|
|
96
|
+
permissions: [],
|
|
97
|
+
async Component () {
|
|
98
|
+
const { PurchaseContentReleases } = await Promise.resolve().then(function () { return require('./pages/PurchaseContentReleases.js'); });
|
|
99
|
+
return {
|
|
100
|
+
default: PurchaseContentReleases
|
|
101
|
+
};
|
|
102
|
+
},
|
|
103
|
+
licenseOnly: true
|
|
104
|
+
});
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
async registerTrads ({ locales }) {
|
|
108
|
+
const importedTrads = await Promise.all(locales.map((locale)=>{
|
|
109
|
+
return __variableDynamicImportRuntime3__(`./translations/${locale}.json`).then(({ default: data })=>{
|
|
110
|
+
return {
|
|
111
|
+
data: prefixPluginTranslations.prefixPluginTranslations(data, 'content-releases'),
|
|
112
|
+
locale
|
|
113
|
+
};
|
|
114
|
+
}).catch(()=>{
|
|
115
|
+
return {
|
|
116
|
+
data: {},
|
|
117
|
+
locale
|
|
118
|
+
};
|
|
119
|
+
});
|
|
120
|
+
}));
|
|
121
|
+
return Promise.resolve(importedTrads);
|
|
122
|
+
}
|
|
123
|
+
};
|
|
18
124
|
|
|
19
|
-
module.exports =
|
|
125
|
+
module.exports = admin;
|
|
20
126
|
//# sourceMappingURL=index.js.map
|
package/dist/admin/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../admin/src/index.ts"],"sourcesContent":["import { PaperPlane } from '@strapi/icons';\n\nimport { ReleaseAction } from './components/ReleaseAction';\nimport { ReleaseActionModalForm } from './components/ReleaseActionModal';\nimport { addColumnToTableHook } from './components/ReleaseListCell';\nimport { Panel as ReleasesPanel } from './components/ReleasesPanel';\nimport { PERMISSIONS } from './constants';\nimport { pluginId } from './pluginId';\nimport { prefixPluginTranslations } from './utils/prefixPluginTranslations';\n\nimport type { StrapiApp } from '@strapi/admin/strapi-admin';\nimport type {\n DocumentActionComponent,\n BulkActionComponent,\n} from '@strapi/content-manager/strapi-admin';\nimport type { Plugin } from '@strapi/types';\n\n// eslint-disable-next-line import/no-default-export\nconst admin: Plugin.Config.AdminInput = {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n register(app: StrapiApp) {\n /**\n * Hook that adds the locale column in the Release Details table\n * @constant\n * @type {string}\n */\n app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');\n\n if (window.strapi.features.isEnabled('cms-content-releases')) {\n app.addMenuLink({\n to: `plugins/${pluginId}`,\n icon: PaperPlane,\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n Component: () => import('./pages/App').then((mod) => ({ default: mod.App })),\n permissions: PERMISSIONS.main,\n position: 2,\n });\n\n // Insert the releases container into the CM's sidebar on the Edit View\n const contentManagerPluginApis = app.getPlugin('content-manager').apis;\n if (\n 'addEditViewSidePanel' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addEditViewSidePanel === 'function'\n ) {\n contentManagerPluginApis.addEditViewSidePanel([ReleasesPanel]);\n }\n\n // Insert the \"add to release\" action into the CM's Edit View\n if (\n 'addDocumentAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addDocumentAction === 'function'\n ) {\n contentManagerPluginApis.addDocumentAction((actions: DocumentActionComponent[]) => {\n const indexOfDeleteAction = actions.findIndex((action) => action.type === 'unpublish');\n actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);\n return actions;\n });\n }\n\n app.addSettingsLink('global', {\n id: pluginId,\n to: 'releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n async Component() {\n const { ProtectedReleasesSettingsPage } = await import('./pages/ReleasesSettingsPage');\n return { default: ProtectedReleasesSettingsPage };\n },\n });\n\n if (\n 'addBulkAction' in contentManagerPluginApis &&\n typeof contentManagerPluginApis.addBulkAction === 'function'\n ) {\n contentManagerPluginApis.addBulkAction((actions: BulkActionComponent[]) => {\n // We want to add this action to just before the delete action all the time\n const deleteActionIndex = actions.findIndex((action) => action.type === 'delete');\n\n actions.splice(deleteActionIndex, 0, ReleaseAction);\n return actions;\n });\n }\n\n // Hook that adds a column into the CM's LV table\n app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);\n } else if (\n !window.strapi.features.isEnabled('cms-content-releases') &&\n window.strapi?.flags?.promoteEE\n ) {\n app.addSettingsLink('global', {\n id: pluginId,\n to: '/plugins/purchase-content-releases',\n intlLabel: {\n id: `${pluginId}.plugin.name`,\n defaultMessage: 'Releases',\n },\n permissions: [],\n async Component() {\n const { PurchaseContentReleases } = await import('./pages/PurchaseContentReleases');\n return { default: PurchaseContentReleases };\n },\n licenseOnly: true,\n });\n }\n },\n async registerTrads({ locales }: { locales: string[] }) {\n const importedTrads = await Promise.all(\n locales.map((locale) => {\n return import(`./translations/${locale}.json`)\n .then(({ default: data }) => {\n return {\n data: prefixPluginTranslations(data, 'content-releases'),\n locale,\n };\n })\n .catch(() => {\n return {\n data: {},\n locale,\n };\n });\n })\n );\n\n return Promise.resolve(importedTrads);\n },\n};\n\n// eslint-disable-next-line import/no-default-export\nexport default admin;\n"],"names":["admin","register","app","createHook","window","strapi","features","isEnabled","addMenuLink","to","pluginId","icon","PaperPlane","intlLabel","id","defaultMessage","Component","then","mod","default","App","permissions","PERMISSIONS","main","position","contentManagerPluginApis","getPlugin","apis","addEditViewSidePanel","ReleasesPanel","addDocumentAction","actions","indexOfDeleteAction","findIndex","action","type","splice","ReleaseActionModalForm","addSettingsLink","ProtectedReleasesSettingsPage","addBulkAction","deleteActionIndex","ReleaseAction","registerHook","addColumnToTableHook","flags","promoteEE","PurchaseContentReleases","licenseOnly","registerTrads","locales","importedTrads","Promise","all","map","locale","data","prefixPluginTranslations","catch","resolve"],"mappings":"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"}
|
package/dist/admin/index.mjs
CHANGED
|
@@ -1,14 +1,122 @@
|
|
|
1
|
-
import '@strapi/icons';
|
|
2
|
-
|
|
3
|
-
import '
|
|
4
|
-
import '
|
|
5
|
-
import '
|
|
6
|
-
import '
|
|
7
|
-
import '
|
|
8
|
-
import '
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { PaperPlane } from '@strapi/icons';
|
|
2
|
+
import { ReleaseAction } from './components/ReleaseAction.mjs';
|
|
3
|
+
import { ReleaseActionModalForm } from './components/ReleaseActionModal.mjs';
|
|
4
|
+
import { addColumnToTableHook } from './components/ReleaseListCell.mjs';
|
|
5
|
+
import { Panel } from './components/ReleasesPanel.mjs';
|
|
6
|
+
import { PERMISSIONS } from './constants.mjs';
|
|
7
|
+
import { pluginId } from './pluginId.mjs';
|
|
8
|
+
import { prefixPluginTranslations } from './utils/prefixPluginTranslations.mjs';
|
|
9
|
+
|
|
10
|
+
function __variableDynamicImportRuntime3__(path) {
|
|
11
|
+
switch (path) {
|
|
12
|
+
case './translations/en.json': return import('./translations/en.json.mjs');
|
|
13
|
+
case './translations/uk.json': return import('./translations/uk.json.mjs');
|
|
14
|
+
default: return new Promise(function(resolve, reject) {
|
|
15
|
+
(typeof queueMicrotask === 'function' ? queueMicrotask : setTimeout)(
|
|
16
|
+
reject.bind(null, new Error("Unknown variable dynamic import: " + path))
|
|
17
|
+
);
|
|
18
|
+
})
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
// eslint-disable-next-line import/no-default-export
|
|
22
|
+
const admin = {
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
register (app) {
|
|
25
|
+
/**
|
|
26
|
+
* Hook that adds the locale column in the Release Details table
|
|
27
|
+
* @constant
|
|
28
|
+
* @type {string}
|
|
29
|
+
*/ app.createHook('ContentReleases/pages/ReleaseDetails/add-locale-in-releases');
|
|
30
|
+
if (window.strapi.features.isEnabled('cms-content-releases')) {
|
|
31
|
+
app.addMenuLink({
|
|
32
|
+
to: `plugins/${pluginId}`,
|
|
33
|
+
icon: PaperPlane,
|
|
34
|
+
intlLabel: {
|
|
35
|
+
id: `${pluginId}.plugin.name`,
|
|
36
|
+
defaultMessage: 'Releases'
|
|
37
|
+
},
|
|
38
|
+
Component: ()=>import('./pages/App.mjs').then((mod)=>({
|
|
39
|
+
default: mod.App
|
|
40
|
+
})),
|
|
41
|
+
permissions: PERMISSIONS.main,
|
|
42
|
+
position: 2
|
|
43
|
+
});
|
|
44
|
+
// Insert the releases container into the CM's sidebar on the Edit View
|
|
45
|
+
const contentManagerPluginApis = app.getPlugin('content-manager').apis;
|
|
46
|
+
if ('addEditViewSidePanel' in contentManagerPluginApis && typeof contentManagerPluginApis.addEditViewSidePanel === 'function') {
|
|
47
|
+
contentManagerPluginApis.addEditViewSidePanel([
|
|
48
|
+
Panel
|
|
49
|
+
]);
|
|
50
|
+
}
|
|
51
|
+
// Insert the "add to release" action into the CM's Edit View
|
|
52
|
+
if ('addDocumentAction' in contentManagerPluginApis && typeof contentManagerPluginApis.addDocumentAction === 'function') {
|
|
53
|
+
contentManagerPluginApis.addDocumentAction((actions)=>{
|
|
54
|
+
const indexOfDeleteAction = actions.findIndex((action)=>action.type === 'unpublish');
|
|
55
|
+
actions.splice(indexOfDeleteAction, 0, ReleaseActionModalForm);
|
|
56
|
+
return actions;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
app.addSettingsLink('global', {
|
|
60
|
+
id: pluginId,
|
|
61
|
+
to: 'releases',
|
|
62
|
+
intlLabel: {
|
|
63
|
+
id: `${pluginId}.plugin.name`,
|
|
64
|
+
defaultMessage: 'Releases'
|
|
65
|
+
},
|
|
66
|
+
permissions: [],
|
|
67
|
+
async Component () {
|
|
68
|
+
const { ProtectedReleasesSettingsPage } = await import('./pages/ReleasesSettingsPage.mjs');
|
|
69
|
+
return {
|
|
70
|
+
default: ProtectedReleasesSettingsPage
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
if ('addBulkAction' in contentManagerPluginApis && typeof contentManagerPluginApis.addBulkAction === 'function') {
|
|
75
|
+
contentManagerPluginApis.addBulkAction((actions)=>{
|
|
76
|
+
// We want to add this action to just before the delete action all the time
|
|
77
|
+
const deleteActionIndex = actions.findIndex((action)=>action.type === 'delete');
|
|
78
|
+
actions.splice(deleteActionIndex, 0, ReleaseAction);
|
|
79
|
+
return actions;
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
// Hook that adds a column into the CM's LV table
|
|
83
|
+
app.registerHook('Admin/CM/pages/ListView/inject-column-in-table', addColumnToTableHook);
|
|
84
|
+
} else if (!window.strapi.features.isEnabled('cms-content-releases') && window.strapi?.flags?.promoteEE) {
|
|
85
|
+
app.addSettingsLink('global', {
|
|
86
|
+
id: pluginId,
|
|
87
|
+
to: '/plugins/purchase-content-releases',
|
|
88
|
+
intlLabel: {
|
|
89
|
+
id: `${pluginId}.plugin.name`,
|
|
90
|
+
defaultMessage: 'Releases'
|
|
91
|
+
},
|
|
92
|
+
permissions: [],
|
|
93
|
+
async Component () {
|
|
94
|
+
const { PurchaseContentReleases } = await import('./pages/PurchaseContentReleases.mjs');
|
|
95
|
+
return {
|
|
96
|
+
default: PurchaseContentReleases
|
|
97
|
+
};
|
|
98
|
+
},
|
|
99
|
+
licenseOnly: true
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
async registerTrads ({ locales }) {
|
|
104
|
+
const importedTrads = await Promise.all(locales.map((locale)=>{
|
|
105
|
+
return __variableDynamicImportRuntime3__(`./translations/${locale}.json`).then(({ default: data })=>{
|
|
106
|
+
return {
|
|
107
|
+
data: prefixPluginTranslations(data, 'content-releases'),
|
|
108
|
+
locale
|
|
109
|
+
};
|
|
110
|
+
}).catch(()=>{
|
|
111
|
+
return {
|
|
112
|
+
data: {},
|
|
113
|
+
locale
|
|
114
|
+
};
|
|
115
|
+
});
|
|
116
|
+
}));
|
|
117
|
+
return Promise.resolve(importedTrads);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
export { admin as default };
|
|
14
122
|
//# sourceMappingURL=index.mjs.map
|