@strapi/content-releases 5.0.0-rc.3 → 5.0.0-rc.30
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/_chunks/{App-UQxgTJY5.mjs → App-BA2xDdy0.mjs} +43 -20
- package/dist/_chunks/App-BA2xDdy0.mjs.map +1 -0
- package/dist/_chunks/{App-D-lWdVb2.js → App-D4Wira1X.js} +42 -19
- package/dist/_chunks/App-D4Wira1X.js.map +1 -0
- package/dist/_chunks/{ReleasesSettingsPage-CuUXvABk.mjs → ReleasesSettingsPage-BAlbMWpw.mjs} +4 -4
- package/dist/_chunks/ReleasesSettingsPage-BAlbMWpw.mjs.map +1 -0
- package/dist/_chunks/{ReleasesSettingsPage-xfAoY8N3.js → ReleasesSettingsPage-xhFyRXCM.js} +4 -4
- package/dist/_chunks/ReleasesSettingsPage-xhFyRXCM.js.map +1 -0
- package/dist/_chunks/{en-BCDLTJn3.js → en-CmYoEnA7.js} +2 -1
- package/dist/_chunks/en-CmYoEnA7.js.map +1 -0
- package/dist/_chunks/{en-CGXIF4vQ.mjs → en-D0yVZFqf.mjs} +2 -1
- package/dist/_chunks/en-D0yVZFqf.mjs.map +1 -0
- package/dist/_chunks/{index-b3Ej95H7.mjs → index-CCFFG3Zs.mjs} +289 -23
- package/dist/_chunks/index-CCFFG3Zs.mjs.map +1 -0
- package/dist/_chunks/{index-jnv9zdcE.js → index-DxkQGp4N.js} +286 -20
- package/dist/_chunks/index-DxkQGp4N.js.map +1 -0
- package/dist/_chunks/{schemas-z5zp-_Gd.js → schemas-BE1LxE9J.js} +2 -2
- package/dist/_chunks/schemas-BE1LxE9J.js.map +1 -0
- package/dist/_chunks/{schemas-63pFihNF.mjs → schemas-DdA2ic2U.mjs} +2 -2
- package/dist/_chunks/schemas-DdA2ic2U.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/ReleaseListCell.d.ts +28 -0
- package/dist/admin/src/services/release.d.ts +34 -32
- package/dist/server/index.js +108 -79
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +108 -79
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/index.d.ts +2 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/release-action.d.ts +1 -0
- package/dist/server/src/controllers/release-action.d.ts.map +1 -1
- package/dist/server/src/controllers/release.d.ts +1 -0
- package/dist/server/src/controllers/release.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +4 -0
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/release-action.d.ts.map +1 -1
- package/dist/server/src/routes/release.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +2 -0
- package/dist/server/src/services/index.d.ts.map +1 -1
- package/dist/server/src/services/release-action.d.ts +3 -1
- package/dist/server/src/services/release-action.d.ts.map +1 -1
- package/dist/shared/contracts/release-actions.d.ts +3 -5
- package/dist/shared/contracts/release-actions.d.ts.map +1 -1
- package/dist/shared/contracts/releases.d.ts +3 -2
- package/dist/shared/contracts/releases.d.ts.map +1 -1
- package/package.json +12 -11
- package/dist/_chunks/App-D-lWdVb2.js.map +0 -1
- package/dist/_chunks/App-UQxgTJY5.mjs.map +0 -1
- package/dist/_chunks/ReleasesSettingsPage-CuUXvABk.mjs.map +0 -1
- package/dist/_chunks/ReleasesSettingsPage-xfAoY8N3.js.map +0 -1
- package/dist/_chunks/en-BCDLTJn3.js.map +0 -1
- package/dist/_chunks/en-CGXIF4vQ.mjs.map +0 -1
- package/dist/_chunks/index-b3Ej95H7.mjs.map +0 -1
- package/dist/_chunks/index-jnv9zdcE.js.map +0 -1
- package/dist/_chunks/schemas-63pFihNF.mjs.map +0 -1
- package/dist/_chunks/schemas-z5zp-_Gd.js.map +0 -1
- package/strapi-server.js +0 -3
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { PaperPlane, Cross, Pencil, More } from "@strapi/icons";
|
|
1
|
+
import { PaperPlane, CaretDown, Cross, Pencil, More } from "@strapi/icons";
|
|
2
2
|
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
-
import { adminApi, useRBAC, useNotification, useAPIErrorHandler, useQueryParams, isFetchError, useAuth } from "@strapi/admin/strapi-admin";
|
|
3
|
+
import { adminApi, useRBAC, useNotification, useAPIErrorHandler, useQueryParams, isFetchError, useTable, useAuth } from "@strapi/admin/strapi-admin";
|
|
4
|
+
import { Field, Flex, VisuallyHidden, Modal, Button, EmptyStateLayout, LinkButton, Box, SingleSelect, SingleSelectOption, Popover, Typography, Link as Link$1, Menu, AccessibleIcon } from "@strapi/design-system";
|
|
5
|
+
import { useFormik, Formik, Form } from "formik";
|
|
6
|
+
import { useIntl } from "react-intl";
|
|
4
7
|
import { unstable_useDocumentLayout } from "@strapi/content-manager/strapi-admin";
|
|
5
|
-
import { Field, Flex, VisuallyHidden, Modal, Button, Box, SingleSelect, SingleSelectOption, EmptyStateLayout, LinkButton, Menu, Typography, AccessibleIcon } from "@strapi/design-system";
|
|
6
8
|
import { EmptyDocuments } from "@strapi/icons/symbols";
|
|
7
|
-
import { useFormik } from "formik";
|
|
8
|
-
import { useIntl } from "react-intl";
|
|
9
9
|
import { Link, NavLink } from "react-router-dom";
|
|
10
10
|
import * as yup from "yup";
|
|
11
11
|
import { styled } from "styled-components";
|
|
@@ -103,7 +103,7 @@ const extendInvalidatesTags = (endpoint, extraTags) => {
|
|
|
103
103
|
Object.assign(endpoint, { invalidatesTags: newInvalidatesTags });
|
|
104
104
|
};
|
|
105
105
|
const releaseApi = adminApi.enhanceEndpoints({
|
|
106
|
-
addTagTypes: ["Release", "ReleaseAction", "EntriesInRelease", "ReleaseSettings"],
|
|
106
|
+
addTagTypes: ["Release", "ReleaseAction", "EntriesInRelease", "ReleaseSettings", "Document"],
|
|
107
107
|
endpoints: {
|
|
108
108
|
updateDocument(endpoint) {
|
|
109
109
|
extendInvalidatesTags(endpoint, [
|
|
@@ -198,7 +198,10 @@ const releaseApi = adminApi.enhanceEndpoints({
|
|
|
198
198
|
method: "GET"
|
|
199
199
|
};
|
|
200
200
|
},
|
|
201
|
-
providesTags: (result, error, arg) => [
|
|
201
|
+
providesTags: (result, error, arg) => [
|
|
202
|
+
{ type: "Release", id: "LIST" },
|
|
203
|
+
{ type: "Release", id: arg.id }
|
|
204
|
+
]
|
|
202
205
|
}),
|
|
203
206
|
getReleaseActions: build.query({
|
|
204
207
|
query({ releaseId, ...params }) {
|
|
@@ -267,7 +270,11 @@ const releaseApi = adminApi.enhanceEndpoints({
|
|
|
267
270
|
data: body
|
|
268
271
|
};
|
|
269
272
|
},
|
|
270
|
-
invalidatesTags: () => [
|
|
273
|
+
invalidatesTags: (res, error, arg) => [
|
|
274
|
+
{ type: "ReleaseAction", id: "LIST" },
|
|
275
|
+
{ type: "Release", id: "LIST" },
|
|
276
|
+
{ type: "Release", id: arg.params.releaseId }
|
|
277
|
+
],
|
|
271
278
|
async onQueryStarted({ body, params, query, actionPath }, { dispatch, queryFulfilled }) {
|
|
272
279
|
const paramsWithoutActionId = {
|
|
273
280
|
releaseId: params.releaseId,
|
|
@@ -314,7 +321,10 @@ const releaseApi = adminApi.enhanceEndpoints({
|
|
|
314
321
|
method: "POST"
|
|
315
322
|
};
|
|
316
323
|
},
|
|
317
|
-
invalidatesTags: (result, error, arg) => [
|
|
324
|
+
invalidatesTags: (result, error, arg) => [
|
|
325
|
+
{ type: "Release", id: arg.id },
|
|
326
|
+
{ type: "Document", id: `ALL_LIST` }
|
|
327
|
+
]
|
|
318
328
|
}),
|
|
319
329
|
deleteRelease: build.mutation({
|
|
320
330
|
query({ id }) {
|
|
@@ -352,7 +362,7 @@ const releaseApi = adminApi.enhanceEndpoints({
|
|
|
352
362
|
data
|
|
353
363
|
};
|
|
354
364
|
},
|
|
355
|
-
invalidatesTags:
|
|
365
|
+
invalidatesTags: [{ type: "ReleaseSettings" }]
|
|
356
366
|
})
|
|
357
367
|
};
|
|
358
368
|
}
|
|
@@ -577,6 +587,7 @@ const AddActionToReleaseModal = ({
|
|
|
577
587
|
};
|
|
578
588
|
const ReleaseActionModalForm = ({
|
|
579
589
|
documentId,
|
|
590
|
+
document,
|
|
580
591
|
model,
|
|
581
592
|
collectionType
|
|
582
593
|
}) => {
|
|
@@ -655,6 +666,8 @@ const ReleaseActionModalForm = ({
|
|
|
655
666
|
defaultMessage: "Add to release"
|
|
656
667
|
}),
|
|
657
668
|
icon: /* @__PURE__ */ jsx(PaperPlane, {}),
|
|
669
|
+
// Entry is creating so we don't want to allow adding it to a release
|
|
670
|
+
disabled: !document,
|
|
658
671
|
position: ["panel", "table-row"],
|
|
659
672
|
dialog: {
|
|
660
673
|
type: "modal",
|
|
@@ -693,6 +706,236 @@ const ReleaseActionModalForm = ({
|
|
|
693
706
|
}
|
|
694
707
|
};
|
|
695
708
|
};
|
|
709
|
+
const getContentPermissions = (subject) => {
|
|
710
|
+
const permissions = {
|
|
711
|
+
publish: [
|
|
712
|
+
{
|
|
713
|
+
action: "plugin::content-manager.explorer.publish",
|
|
714
|
+
subject,
|
|
715
|
+
id: "",
|
|
716
|
+
actionParameters: {},
|
|
717
|
+
properties: {},
|
|
718
|
+
conditions: []
|
|
719
|
+
}
|
|
720
|
+
]
|
|
721
|
+
};
|
|
722
|
+
return permissions;
|
|
723
|
+
};
|
|
724
|
+
const ReleaseAction = ({ documents, model }) => {
|
|
725
|
+
const { formatMessage } = useIntl();
|
|
726
|
+
const { toggleNotification } = useNotification();
|
|
727
|
+
const { formatAPIError } = useAPIErrorHandler();
|
|
728
|
+
const [{ query }] = useQueryParams();
|
|
729
|
+
const contentPermissions = getContentPermissions(model);
|
|
730
|
+
const {
|
|
731
|
+
allowedActions: { canPublish }
|
|
732
|
+
} = useRBAC(contentPermissions);
|
|
733
|
+
const {
|
|
734
|
+
allowedActions: { canCreate }
|
|
735
|
+
} = useRBAC(PERMISSIONS);
|
|
736
|
+
const response = useGetReleasesQuery();
|
|
737
|
+
const releases = response.data?.data;
|
|
738
|
+
const [createManyReleaseActions, { isLoading }] = useCreateManyReleaseActionsMutation();
|
|
739
|
+
const documentIds = documents.map((doc) => doc.documentId);
|
|
740
|
+
const handleSubmit = async (values) => {
|
|
741
|
+
const locale = query.plugins?.i18n?.locale;
|
|
742
|
+
const releaseActionEntries = documentIds.map(
|
|
743
|
+
(entryDocumentId) => ({
|
|
744
|
+
type: values.type,
|
|
745
|
+
contentType: model,
|
|
746
|
+
entryDocumentId,
|
|
747
|
+
locale
|
|
748
|
+
})
|
|
749
|
+
);
|
|
750
|
+
const response2 = await createManyReleaseActions({
|
|
751
|
+
body: releaseActionEntries,
|
|
752
|
+
params: { releaseId: values.releaseId }
|
|
753
|
+
});
|
|
754
|
+
if ("data" in response2) {
|
|
755
|
+
const notificationMessage = formatMessage(
|
|
756
|
+
{
|
|
757
|
+
id: "content-releases.content-manager-list-view.add-to-release.notification.success.message",
|
|
758
|
+
defaultMessage: "{entriesAlreadyInRelease} out of {totalEntries} entries were already in the release."
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
entriesAlreadyInRelease: response2.data.meta.entriesAlreadyInRelease,
|
|
762
|
+
totalEntries: response2.data.meta.totalEntries
|
|
763
|
+
}
|
|
764
|
+
);
|
|
765
|
+
const notification = {
|
|
766
|
+
type: "success",
|
|
767
|
+
title: formatMessage(
|
|
768
|
+
{
|
|
769
|
+
id: "content-releases.content-manager-list-view.add-to-release.notification.success.title",
|
|
770
|
+
defaultMessage: "Successfully added to release."
|
|
771
|
+
},
|
|
772
|
+
{
|
|
773
|
+
entriesAlreadyInRelease: response2.data.meta.entriesAlreadyInRelease,
|
|
774
|
+
totalEntries: response2.data.meta.totalEntries
|
|
775
|
+
}
|
|
776
|
+
),
|
|
777
|
+
message: response2.data.meta.entriesAlreadyInRelease ? notificationMessage : ""
|
|
778
|
+
};
|
|
779
|
+
toggleNotification(notification);
|
|
780
|
+
return true;
|
|
781
|
+
}
|
|
782
|
+
if ("error" in response2) {
|
|
783
|
+
if (isFetchError(response2.error)) {
|
|
784
|
+
toggleNotification({
|
|
785
|
+
type: "warning",
|
|
786
|
+
message: formatAPIError(response2.error)
|
|
787
|
+
});
|
|
788
|
+
} else {
|
|
789
|
+
toggleNotification({
|
|
790
|
+
type: "warning",
|
|
791
|
+
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
792
|
+
});
|
|
793
|
+
}
|
|
794
|
+
}
|
|
795
|
+
};
|
|
796
|
+
if (!canCreate || !canPublish)
|
|
797
|
+
return null;
|
|
798
|
+
return {
|
|
799
|
+
actionType: "release",
|
|
800
|
+
variant: "tertiary",
|
|
801
|
+
label: formatMessage({
|
|
802
|
+
id: "content-manager-list-view.add-to-release",
|
|
803
|
+
defaultMessage: "Add to Release"
|
|
804
|
+
}),
|
|
805
|
+
dialog: {
|
|
806
|
+
type: "modal",
|
|
807
|
+
title: formatMessage({
|
|
808
|
+
id: "content-manager-list-view.add-to-release",
|
|
809
|
+
defaultMessage: "Add to Release"
|
|
810
|
+
}),
|
|
811
|
+
content: ({ onClose }) => {
|
|
812
|
+
return /* @__PURE__ */ jsx(
|
|
813
|
+
Formik,
|
|
814
|
+
{
|
|
815
|
+
onSubmit: async (values) => {
|
|
816
|
+
const data = await handleSubmit(values);
|
|
817
|
+
if (data) {
|
|
818
|
+
return onClose();
|
|
819
|
+
}
|
|
820
|
+
},
|
|
821
|
+
validationSchema: RELEASE_ACTION_FORM_SCHEMA,
|
|
822
|
+
initialValues: INITIAL_VALUES,
|
|
823
|
+
children: ({ values, setFieldValue }) => /* @__PURE__ */ jsxs(Form, { children: [
|
|
824
|
+
releases?.length === 0 ? /* @__PURE__ */ jsx(NoReleases, {}) : /* @__PURE__ */ jsx(Modal.Body, { children: /* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
|
|
825
|
+
/* @__PURE__ */ jsx(Box, { paddingBottom: 6, children: /* @__PURE__ */ jsxs(Field.Root, { required: true, children: [
|
|
826
|
+
/* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
|
|
827
|
+
id: "content-releases.content-manager-list-view.add-to-release.select-label",
|
|
828
|
+
defaultMessage: "Select a release"
|
|
829
|
+
}) }),
|
|
830
|
+
/* @__PURE__ */ jsx(
|
|
831
|
+
SingleSelect,
|
|
832
|
+
{
|
|
833
|
+
placeholder: formatMessage({
|
|
834
|
+
id: "content-releases.content-manager-list-view.add-to-release.select-placeholder",
|
|
835
|
+
defaultMessage: "Select"
|
|
836
|
+
}),
|
|
837
|
+
onChange: (value) => setFieldValue("releaseId", value),
|
|
838
|
+
value: values.releaseId,
|
|
839
|
+
children: releases?.map((release) => /* @__PURE__ */ jsx(SingleSelectOption, { value: release.id, children: release.name }, release.id))
|
|
840
|
+
}
|
|
841
|
+
)
|
|
842
|
+
] }) }),
|
|
843
|
+
/* @__PURE__ */ jsx(Field.Label, { children: formatMessage({
|
|
844
|
+
id: "content-releases.content-manager-list-view.add-to-release.action-type-label",
|
|
845
|
+
defaultMessage: "What do you want to do with these entries?"
|
|
846
|
+
}) }),
|
|
847
|
+
/* @__PURE__ */ jsx(
|
|
848
|
+
ReleaseActionOptions,
|
|
849
|
+
{
|
|
850
|
+
selected: values.type,
|
|
851
|
+
handleChange: (e) => setFieldValue("type", e.target.value),
|
|
852
|
+
name: "type"
|
|
853
|
+
}
|
|
854
|
+
)
|
|
855
|
+
] }) }),
|
|
856
|
+
/* @__PURE__ */ jsxs(Modal.Footer, { children: [
|
|
857
|
+
/* @__PURE__ */ jsx(Button, { onClick: onClose, variant: "tertiary", name: "cancel", children: formatMessage({
|
|
858
|
+
id: "content-releases.content-manager-list-view.add-to-release.cancel-button",
|
|
859
|
+
defaultMessage: "Cancel"
|
|
860
|
+
}) }),
|
|
861
|
+
/* @__PURE__ */ jsx(Button, { type: "submit", disabled: !values.releaseId, loading: isLoading, children: formatMessage({
|
|
862
|
+
id: "content-releases.content-manager-list-view.add-to-release.continue-button",
|
|
863
|
+
defaultMessage: "Continue"
|
|
864
|
+
}) })
|
|
865
|
+
] })
|
|
866
|
+
] })
|
|
867
|
+
}
|
|
868
|
+
);
|
|
869
|
+
}
|
|
870
|
+
}
|
|
871
|
+
};
|
|
872
|
+
};
|
|
873
|
+
const useReleasesList = (contentTypeUid, documentId) => {
|
|
874
|
+
const listViewData = useTable("ListView", (state) => state.rows);
|
|
875
|
+
const documentIds = listViewData.map((entry) => entry.documentId);
|
|
876
|
+
const [{ query }] = useQueryParams();
|
|
877
|
+
const locale = query?.plugins?.i18n?.locale || void 0;
|
|
878
|
+
const response = useGetMappedEntriesInReleasesQuery(
|
|
879
|
+
{ contentTypeUid, documentIds, locale },
|
|
880
|
+
{ skip: !documentIds || !contentTypeUid || documentIds.length === 0 }
|
|
881
|
+
);
|
|
882
|
+
const mappedEntriesInReleases = response.data || {};
|
|
883
|
+
return mappedEntriesInReleases?.[documentId] || [];
|
|
884
|
+
};
|
|
885
|
+
const addColumnToTableHook = ({ displayedHeaders, layout }) => {
|
|
886
|
+
const { options } = layout;
|
|
887
|
+
if (!options?.draftAndPublish) {
|
|
888
|
+
return { displayedHeaders, layout };
|
|
889
|
+
}
|
|
890
|
+
return {
|
|
891
|
+
displayedHeaders: [
|
|
892
|
+
...displayedHeaders,
|
|
893
|
+
{
|
|
894
|
+
searchable: false,
|
|
895
|
+
sortable: false,
|
|
896
|
+
name: "releases",
|
|
897
|
+
label: {
|
|
898
|
+
id: "content-releases.content-manager.list-view.releases.header",
|
|
899
|
+
defaultMessage: "To be released in"
|
|
900
|
+
},
|
|
901
|
+
cellFormatter: (props, _, { model }) => /* @__PURE__ */ jsx(ReleaseListCell, { ...props, model })
|
|
902
|
+
}
|
|
903
|
+
],
|
|
904
|
+
layout
|
|
905
|
+
};
|
|
906
|
+
};
|
|
907
|
+
const ReleaseListCell = ({ documentId, model }) => {
|
|
908
|
+
const releases = useReleasesList(model, documentId);
|
|
909
|
+
const { formatMessage } = useIntl();
|
|
910
|
+
return /* @__PURE__ */ jsxs(Popover.Root, { children: [
|
|
911
|
+
/* @__PURE__ */ jsx(Popover.Trigger, { children: /* @__PURE__ */ jsx(
|
|
912
|
+
Button,
|
|
913
|
+
{
|
|
914
|
+
variant: "ghost",
|
|
915
|
+
onClick: (e) => e.stopPropagation(),
|
|
916
|
+
endIcon: releases.length > 0 ? /* @__PURE__ */ jsx(CaretDown, { width: "1.2rem", height: "1.2rem" }) : null,
|
|
917
|
+
children: /* @__PURE__ */ jsx(
|
|
918
|
+
Typography,
|
|
919
|
+
{
|
|
920
|
+
style: { maxWidth: "252px", cursor: "pointer" },
|
|
921
|
+
textColor: "neutral800",
|
|
922
|
+
fontWeight: "regular",
|
|
923
|
+
children: releases.length > 0 ? formatMessage(
|
|
924
|
+
{
|
|
925
|
+
id: "content-releases.content-manager.list-view.releases-number",
|
|
926
|
+
defaultMessage: "{number} {number, plural, one {release} other {releases}}"
|
|
927
|
+
},
|
|
928
|
+
{
|
|
929
|
+
number: releases.length
|
|
930
|
+
}
|
|
931
|
+
) : "-"
|
|
932
|
+
}
|
|
933
|
+
)
|
|
934
|
+
}
|
|
935
|
+
) }),
|
|
936
|
+
/* @__PURE__ */ jsx(Popover.Content, { children: /* @__PURE__ */ jsx("ul", { children: releases.map(({ id, name }) => /* @__PURE__ */ jsx(Box, { padding: 3, tag: "li", children: /* @__PURE__ */ jsx(Link$1, { href: `/admin/plugins/content-releases/${id}`, isExternal: false, children: name }) }, id)) }) })
|
|
937
|
+
] });
|
|
938
|
+
};
|
|
696
939
|
const getTimezoneOffset = (timezone, date) => {
|
|
697
940
|
try {
|
|
698
941
|
const offsetPart = new Intl.DateTimeFormat("en", {
|
|
@@ -859,7 +1102,7 @@ const Root = ({ children }) => {
|
|
|
859
1102
|
return (
|
|
860
1103
|
// A user can access the dropdown if they have permissions to delete a release-action OR update a release
|
|
861
1104
|
allowedActions.canDeleteAction || allowedActions.canUpdate ? /* @__PURE__ */ jsxs(Menu.Root, { children: [
|
|
862
|
-
/* @__PURE__ */ jsx(
|
|
1105
|
+
/* @__PURE__ */ jsx(StyledMoreButton, { variant: "tertiary", endIcon: null, paddingLeft: "7px", paddingRight: "7px", children: /* @__PURE__ */ jsx(
|
|
863
1106
|
AccessibleIcon,
|
|
864
1107
|
{
|
|
865
1108
|
label: formatMessage({
|
|
@@ -873,13 +1116,23 @@ const Root = ({ children }) => {
|
|
|
873
1116
|
] }) : null
|
|
874
1117
|
);
|
|
875
1118
|
};
|
|
1119
|
+
const StyledMoreButton = styled(Menu.Trigger)`
|
|
1120
|
+
& > span {
|
|
1121
|
+
display: flex;
|
|
1122
|
+
}
|
|
1123
|
+
`;
|
|
876
1124
|
const ReleaseActionMenu = {
|
|
877
1125
|
Root,
|
|
878
1126
|
EditReleaseItem,
|
|
879
1127
|
DeleteReleaseActionItem,
|
|
880
1128
|
ReleaseActionEntryLinkItem
|
|
881
1129
|
};
|
|
882
|
-
const Panel = ({
|
|
1130
|
+
const Panel = ({
|
|
1131
|
+
model,
|
|
1132
|
+
document,
|
|
1133
|
+
documentId,
|
|
1134
|
+
collectionType
|
|
1135
|
+
}) => {
|
|
883
1136
|
const [{ query }] = useQueryParams();
|
|
884
1137
|
const locale = query.plugins?.i18n?.locale;
|
|
885
1138
|
const {
|
|
@@ -888,12 +1141,17 @@ const Panel = ({ model, documentId, collectionType }) => {
|
|
|
888
1141
|
const { formatMessage, formatDate, formatTime } = useIntl();
|
|
889
1142
|
const { allowedActions } = useRBAC(PERMISSIONS);
|
|
890
1143
|
const { canRead, canDeleteAction } = allowedActions;
|
|
891
|
-
const response = useGetReleasesForEntryQuery(
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
1144
|
+
const response = useGetReleasesForEntryQuery(
|
|
1145
|
+
{
|
|
1146
|
+
contentType: model,
|
|
1147
|
+
entryDocumentId: documentId,
|
|
1148
|
+
locale,
|
|
1149
|
+
hasEntryAttached: true
|
|
1150
|
+
},
|
|
1151
|
+
{
|
|
1152
|
+
skip: !document
|
|
1153
|
+
}
|
|
1154
|
+
);
|
|
897
1155
|
const releases = response.data?.data;
|
|
898
1156
|
const getReleaseColorVariant = (actionType, shade) => {
|
|
899
1157
|
if (actionType === "unpublish") {
|
|
@@ -907,7 +1165,7 @@ const Panel = ({ model, documentId, collectionType }) => {
|
|
|
907
1165
|
if (collectionType === "collection-types" && (!documentId || documentId === "create")) {
|
|
908
1166
|
return null;
|
|
909
1167
|
}
|
|
910
|
-
if (releases
|
|
1168
|
+
if (!releases || releases.length === 0) {
|
|
911
1169
|
return null;
|
|
912
1170
|
}
|
|
913
1171
|
return {
|
|
@@ -1012,7 +1270,7 @@ const admin = {
|
|
|
1012
1270
|
id: `${pluginId}.plugin.name`,
|
|
1013
1271
|
defaultMessage: "Releases"
|
|
1014
1272
|
},
|
|
1015
|
-
Component: () => import("./App-
|
|
1273
|
+
Component: () => import("./App-BA2xDdy0.mjs").then((mod) => ({ default: mod.App })),
|
|
1016
1274
|
permissions: PERMISSIONS.main,
|
|
1017
1275
|
position: 2
|
|
1018
1276
|
});
|
|
@@ -1036,10 +1294,18 @@ const admin = {
|
|
|
1036
1294
|
},
|
|
1037
1295
|
permissions: [],
|
|
1038
1296
|
async Component() {
|
|
1039
|
-
const { ProtectedReleasesSettingsPage } = await import("./ReleasesSettingsPage-
|
|
1297
|
+
const { ProtectedReleasesSettingsPage } = await import("./ReleasesSettingsPage-BAlbMWpw.mjs");
|
|
1040
1298
|
return { default: ProtectedReleasesSettingsPage };
|
|
1041
1299
|
}
|
|
1042
1300
|
});
|
|
1301
|
+
if ("addBulkAction" in contentManagerPluginApis && typeof contentManagerPluginApis.addBulkAction === "function") {
|
|
1302
|
+
contentManagerPluginApis.addBulkAction((actions) => {
|
|
1303
|
+
const deleteActionIndex = actions.findIndex((action) => action.type === "delete");
|
|
1304
|
+
actions.splice(deleteActionIndex, 0, ReleaseAction);
|
|
1305
|
+
return actions;
|
|
1306
|
+
});
|
|
1307
|
+
}
|
|
1308
|
+
app.registerHook("Admin/CM/pages/ListView/inject-column-in-table", addColumnToTableHook);
|
|
1043
1309
|
} else if (!window.strapi.features.isEnabled("cms-content-releases") && window.strapi?.flags?.promoteEE) {
|
|
1044
1310
|
app.addSettingsLink("global", {
|
|
1045
1311
|
id: pluginId,
|
|
@@ -1060,7 +1326,7 @@ const admin = {
|
|
|
1060
1326
|
async registerTrads({ locales }) {
|
|
1061
1327
|
const importedTrads = await Promise.all(
|
|
1062
1328
|
locales.map((locale) => {
|
|
1063
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("./en-
|
|
1329
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => import("./en-D0yVZFqf.mjs") }), `./translations/${locale}.json`).then(({ default: data }) => {
|
|
1064
1330
|
return {
|
|
1065
1331
|
data: prefixPluginTranslations(data, "content-releases"),
|
|
1066
1332
|
locale
|
|
@@ -1096,4 +1362,4 @@ export {
|
|
|
1096
1362
|
releaseApi as r,
|
|
1097
1363
|
useGetReleasesQuery as u
|
|
1098
1364
|
};
|
|
1099
|
-
//# sourceMappingURL=index-
|
|
1365
|
+
//# sourceMappingURL=index-CCFFG3Zs.mjs.map
|