@strapi/content-releases 0.0.0-experimental.edc24aaa3bb5a90fa5fd4fee208167dd4e2e38d4 → 0.0.0-experimental.f0d3b2d782e972f1dcb8acf0dce31d4090d1e420
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-D-lWdVb2.js → App-BKB1esYS.js} +42 -19
- package/dist/_chunks/App-BKB1esYS.js.map +1 -0
- package/dist/_chunks/{App-UQxgTJY5.mjs → App-Cne--1Z8.mjs} +43 -20
- package/dist/_chunks/App-Cne--1Z8.mjs.map +1 -0
- package/dist/_chunks/{ReleasesSettingsPage-CuUXvABk.mjs → ReleasesSettingsPage-C1WwGWIH.mjs} +4 -4
- package/dist/_chunks/ReleasesSettingsPage-C1WwGWIH.mjs.map +1 -0
- package/dist/_chunks/{ReleasesSettingsPage-xfAoY8N3.js → ReleasesSettingsPage-kuXIwpWp.js} +4 -4
- package/dist/_chunks/ReleasesSettingsPage-kuXIwpWp.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-jnv9zdcE.js → index-5Odi61vw.js} +286 -23
- package/dist/_chunks/index-5Odi61vw.js.map +1 -0
- package/dist/_chunks/{index-b3Ej95H7.mjs → index-Cy7qwpaU.mjs} +289 -26
- package/dist/_chunks/index-Cy7qwpaU.mjs.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 +112 -79
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +112 -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/migrations/database/5.0.0-document-id-in-actions.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 +16 -15
- 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
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
const icons = require("@strapi/icons");
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
5
|
-
const strapiAdmin$1 = require("@strapi/content-manager/strapi-admin");
|
|
6
5
|
const designSystem = require("@strapi/design-system");
|
|
7
|
-
const symbols = require("@strapi/icons/symbols");
|
|
8
6
|
const formik = require("formik");
|
|
9
7
|
const reactIntl = require("react-intl");
|
|
8
|
+
const strapiAdmin$1 = require("@strapi/content-manager/strapi-admin");
|
|
9
|
+
const symbols = require("@strapi/icons/symbols");
|
|
10
10
|
const reactRouterDom = require("react-router-dom");
|
|
11
11
|
const yup = require("yup");
|
|
12
12
|
const styledComponents = require("styled-components");
|
|
@@ -124,7 +124,7 @@ const extendInvalidatesTags = (endpoint, extraTags) => {
|
|
|
124
124
|
Object.assign(endpoint, { invalidatesTags: newInvalidatesTags });
|
|
125
125
|
};
|
|
126
126
|
const releaseApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
127
|
-
addTagTypes: ["Release", "ReleaseAction", "EntriesInRelease", "ReleaseSettings"],
|
|
127
|
+
addTagTypes: ["Release", "ReleaseAction", "EntriesInRelease", "ReleaseSettings", "Document"],
|
|
128
128
|
endpoints: {
|
|
129
129
|
updateDocument(endpoint) {
|
|
130
130
|
extendInvalidatesTags(endpoint, [
|
|
@@ -219,7 +219,10 @@ const releaseApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
|
219
219
|
method: "GET"
|
|
220
220
|
};
|
|
221
221
|
},
|
|
222
|
-
providesTags: (result, error, arg) => [
|
|
222
|
+
providesTags: (result, error, arg) => [
|
|
223
|
+
{ type: "Release", id: "LIST" },
|
|
224
|
+
{ type: "Release", id: arg.id }
|
|
225
|
+
]
|
|
223
226
|
}),
|
|
224
227
|
getReleaseActions: build.query({
|
|
225
228
|
query({ releaseId, ...params }) {
|
|
@@ -288,7 +291,11 @@ const releaseApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
|
288
291
|
data: body
|
|
289
292
|
};
|
|
290
293
|
},
|
|
291
|
-
invalidatesTags: () => [
|
|
294
|
+
invalidatesTags: (res, error, arg) => [
|
|
295
|
+
{ type: "ReleaseAction", id: "LIST" },
|
|
296
|
+
{ type: "Release", id: "LIST" },
|
|
297
|
+
{ type: "Release", id: arg.params.releaseId }
|
|
298
|
+
],
|
|
292
299
|
async onQueryStarted({ body, params, query, actionPath }, { dispatch, queryFulfilled }) {
|
|
293
300
|
const paramsWithoutActionId = {
|
|
294
301
|
releaseId: params.releaseId,
|
|
@@ -335,7 +342,10 @@ const releaseApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
|
335
342
|
method: "POST"
|
|
336
343
|
};
|
|
337
344
|
},
|
|
338
|
-
invalidatesTags: (result, error, arg) => [
|
|
345
|
+
invalidatesTags: (result, error, arg) => [
|
|
346
|
+
{ type: "Release", id: arg.id },
|
|
347
|
+
{ type: "Document", id: `ALL_LIST` }
|
|
348
|
+
]
|
|
339
349
|
}),
|
|
340
350
|
deleteRelease: build.mutation({
|
|
341
351
|
query({ id }) {
|
|
@@ -373,7 +383,7 @@ const releaseApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
|
373
383
|
data
|
|
374
384
|
};
|
|
375
385
|
},
|
|
376
|
-
invalidatesTags:
|
|
386
|
+
invalidatesTags: [{ type: "ReleaseSettings" }]
|
|
377
387
|
})
|
|
378
388
|
};
|
|
379
389
|
}
|
|
@@ -598,6 +608,7 @@ const AddActionToReleaseModal = ({
|
|
|
598
608
|
};
|
|
599
609
|
const ReleaseActionModalForm = ({
|
|
600
610
|
documentId,
|
|
611
|
+
document,
|
|
601
612
|
model,
|
|
602
613
|
collectionType
|
|
603
614
|
}) => {
|
|
@@ -676,6 +687,8 @@ const ReleaseActionModalForm = ({
|
|
|
676
687
|
defaultMessage: "Add to release"
|
|
677
688
|
}),
|
|
678
689
|
icon: /* @__PURE__ */ jsxRuntime.jsx(icons.PaperPlane, {}),
|
|
690
|
+
// Entry is creating so we don't want to allow adding it to a release
|
|
691
|
+
disabled: !document,
|
|
679
692
|
position: ["panel", "table-row"],
|
|
680
693
|
dialog: {
|
|
681
694
|
type: "modal",
|
|
@@ -714,6 +727,236 @@ const ReleaseActionModalForm = ({
|
|
|
714
727
|
}
|
|
715
728
|
};
|
|
716
729
|
};
|
|
730
|
+
const getContentPermissions = (subject) => {
|
|
731
|
+
const permissions = {
|
|
732
|
+
publish: [
|
|
733
|
+
{
|
|
734
|
+
action: "plugin::content-manager.explorer.publish",
|
|
735
|
+
subject,
|
|
736
|
+
id: "",
|
|
737
|
+
actionParameters: {},
|
|
738
|
+
properties: {},
|
|
739
|
+
conditions: []
|
|
740
|
+
}
|
|
741
|
+
]
|
|
742
|
+
};
|
|
743
|
+
return permissions;
|
|
744
|
+
};
|
|
745
|
+
const ReleaseAction = ({ documents, model }) => {
|
|
746
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
747
|
+
const { toggleNotification } = strapiAdmin.useNotification();
|
|
748
|
+
const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
749
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
|
750
|
+
const contentPermissions = getContentPermissions(model);
|
|
751
|
+
const {
|
|
752
|
+
allowedActions: { canPublish }
|
|
753
|
+
} = strapiAdmin.useRBAC(contentPermissions);
|
|
754
|
+
const {
|
|
755
|
+
allowedActions: { canCreate }
|
|
756
|
+
} = strapiAdmin.useRBAC(PERMISSIONS);
|
|
757
|
+
const response = useGetReleasesQuery();
|
|
758
|
+
const releases = response.data?.data;
|
|
759
|
+
const [createManyReleaseActions, { isLoading }] = useCreateManyReleaseActionsMutation();
|
|
760
|
+
const documentIds = documents.map((doc) => doc.documentId);
|
|
761
|
+
const handleSubmit = async (values) => {
|
|
762
|
+
const locale = query.plugins?.i18n?.locale;
|
|
763
|
+
const releaseActionEntries = documentIds.map(
|
|
764
|
+
(entryDocumentId) => ({
|
|
765
|
+
type: values.type,
|
|
766
|
+
contentType: model,
|
|
767
|
+
entryDocumentId,
|
|
768
|
+
locale
|
|
769
|
+
})
|
|
770
|
+
);
|
|
771
|
+
const response2 = await createManyReleaseActions({
|
|
772
|
+
body: releaseActionEntries,
|
|
773
|
+
params: { releaseId: values.releaseId }
|
|
774
|
+
});
|
|
775
|
+
if ("data" in response2) {
|
|
776
|
+
const notificationMessage = formatMessage(
|
|
777
|
+
{
|
|
778
|
+
id: "content-releases.content-manager-list-view.add-to-release.notification.success.message",
|
|
779
|
+
defaultMessage: "{entriesAlreadyInRelease} out of {totalEntries} entries were already in the release."
|
|
780
|
+
},
|
|
781
|
+
{
|
|
782
|
+
entriesAlreadyInRelease: response2.data.meta.entriesAlreadyInRelease,
|
|
783
|
+
totalEntries: response2.data.meta.totalEntries
|
|
784
|
+
}
|
|
785
|
+
);
|
|
786
|
+
const notification = {
|
|
787
|
+
type: "success",
|
|
788
|
+
title: formatMessage(
|
|
789
|
+
{
|
|
790
|
+
id: "content-releases.content-manager-list-view.add-to-release.notification.success.title",
|
|
791
|
+
defaultMessage: "Successfully added to release."
|
|
792
|
+
},
|
|
793
|
+
{
|
|
794
|
+
entriesAlreadyInRelease: response2.data.meta.entriesAlreadyInRelease,
|
|
795
|
+
totalEntries: response2.data.meta.totalEntries
|
|
796
|
+
}
|
|
797
|
+
),
|
|
798
|
+
message: response2.data.meta.entriesAlreadyInRelease ? notificationMessage : ""
|
|
799
|
+
};
|
|
800
|
+
toggleNotification(notification);
|
|
801
|
+
return true;
|
|
802
|
+
}
|
|
803
|
+
if ("error" in response2) {
|
|
804
|
+
if (strapiAdmin.isFetchError(response2.error)) {
|
|
805
|
+
toggleNotification({
|
|
806
|
+
type: "warning",
|
|
807
|
+
message: formatAPIError(response2.error)
|
|
808
|
+
});
|
|
809
|
+
} else {
|
|
810
|
+
toggleNotification({
|
|
811
|
+
type: "warning",
|
|
812
|
+
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
}
|
|
816
|
+
};
|
|
817
|
+
if (!canCreate || !canPublish)
|
|
818
|
+
return null;
|
|
819
|
+
return {
|
|
820
|
+
actionType: "release",
|
|
821
|
+
variant: "tertiary",
|
|
822
|
+
label: formatMessage({
|
|
823
|
+
id: "content-manager-list-view.add-to-release",
|
|
824
|
+
defaultMessage: "Add to Release"
|
|
825
|
+
}),
|
|
826
|
+
dialog: {
|
|
827
|
+
type: "modal",
|
|
828
|
+
title: formatMessage({
|
|
829
|
+
id: "content-manager-list-view.add-to-release",
|
|
830
|
+
defaultMessage: "Add to Release"
|
|
831
|
+
}),
|
|
832
|
+
content: ({ onClose }) => {
|
|
833
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
834
|
+
formik.Formik,
|
|
835
|
+
{
|
|
836
|
+
onSubmit: async (values) => {
|
|
837
|
+
const data = await handleSubmit(values);
|
|
838
|
+
if (data) {
|
|
839
|
+
return onClose();
|
|
840
|
+
}
|
|
841
|
+
},
|
|
842
|
+
validationSchema: RELEASE_ACTION_FORM_SCHEMA,
|
|
843
|
+
initialValues: INITIAL_VALUES,
|
|
844
|
+
children: ({ values, setFieldValue }) => /* @__PURE__ */ jsxRuntime.jsxs(formik.Form, { children: [
|
|
845
|
+
releases?.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(NoReleases, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Body, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 2, children: [
|
|
846
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingBottom: 6, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { required: true, children: [
|
|
847
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
848
|
+
id: "content-releases.content-manager-list-view.add-to-release.select-label",
|
|
849
|
+
defaultMessage: "Select a release"
|
|
850
|
+
}) }),
|
|
851
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
852
|
+
designSystem.SingleSelect,
|
|
853
|
+
{
|
|
854
|
+
placeholder: formatMessage({
|
|
855
|
+
id: "content-releases.content-manager-list-view.add-to-release.select-placeholder",
|
|
856
|
+
defaultMessage: "Select"
|
|
857
|
+
}),
|
|
858
|
+
onChange: (value) => setFieldValue("releaseId", value),
|
|
859
|
+
value: values.releaseId,
|
|
860
|
+
children: releases?.map((release) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: release.id, children: release.name }, release.id))
|
|
861
|
+
}
|
|
862
|
+
)
|
|
863
|
+
] }) }),
|
|
864
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
865
|
+
id: "content-releases.content-manager-list-view.add-to-release.action-type-label",
|
|
866
|
+
defaultMessage: "What do you want to do with these entries?"
|
|
867
|
+
}) }),
|
|
868
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
869
|
+
ReleaseActionOptions,
|
|
870
|
+
{
|
|
871
|
+
selected: values.type,
|
|
872
|
+
handleChange: (e) => setFieldValue("type", e.target.value),
|
|
873
|
+
name: "type"
|
|
874
|
+
}
|
|
875
|
+
)
|
|
876
|
+
] }) }),
|
|
877
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
|
|
878
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { onClick: onClose, variant: "tertiary", name: "cancel", children: formatMessage({
|
|
879
|
+
id: "content-releases.content-manager-list-view.add-to-release.cancel-button",
|
|
880
|
+
defaultMessage: "Cancel"
|
|
881
|
+
}) }),
|
|
882
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", disabled: !values.releaseId, loading: isLoading, children: formatMessage({
|
|
883
|
+
id: "content-releases.content-manager-list-view.add-to-release.continue-button",
|
|
884
|
+
defaultMessage: "Continue"
|
|
885
|
+
}) })
|
|
886
|
+
] })
|
|
887
|
+
] })
|
|
888
|
+
}
|
|
889
|
+
);
|
|
890
|
+
}
|
|
891
|
+
}
|
|
892
|
+
};
|
|
893
|
+
};
|
|
894
|
+
const useReleasesList = (contentTypeUid, documentId) => {
|
|
895
|
+
const listViewData = strapiAdmin.useTable("ListView", (state) => state.rows);
|
|
896
|
+
const documentIds = listViewData.map((entry) => entry.documentId);
|
|
897
|
+
const [{ query }] = strapiAdmin.useQueryParams();
|
|
898
|
+
const locale = query?.plugins?.i18n?.locale || void 0;
|
|
899
|
+
const response = useGetMappedEntriesInReleasesQuery(
|
|
900
|
+
{ contentTypeUid, documentIds, locale },
|
|
901
|
+
{ skip: !documentIds || !contentTypeUid || documentIds.length === 0 }
|
|
902
|
+
);
|
|
903
|
+
const mappedEntriesInReleases = response.data || {};
|
|
904
|
+
return mappedEntriesInReleases?.[documentId] || [];
|
|
905
|
+
};
|
|
906
|
+
const addColumnToTableHook = ({ displayedHeaders, layout }) => {
|
|
907
|
+
const { options } = layout;
|
|
908
|
+
if (!options?.draftAndPublish) {
|
|
909
|
+
return { displayedHeaders, layout };
|
|
910
|
+
}
|
|
911
|
+
return {
|
|
912
|
+
displayedHeaders: [
|
|
913
|
+
...displayedHeaders,
|
|
914
|
+
{
|
|
915
|
+
searchable: false,
|
|
916
|
+
sortable: false,
|
|
917
|
+
name: "releases",
|
|
918
|
+
label: {
|
|
919
|
+
id: "content-releases.content-manager.list-view.releases.header",
|
|
920
|
+
defaultMessage: "To be released in"
|
|
921
|
+
},
|
|
922
|
+
cellFormatter: (props, _, { model }) => /* @__PURE__ */ jsxRuntime.jsx(ReleaseListCell, { ...props, model })
|
|
923
|
+
}
|
|
924
|
+
],
|
|
925
|
+
layout
|
|
926
|
+
};
|
|
927
|
+
};
|
|
928
|
+
const ReleaseListCell = ({ documentId, model }) => {
|
|
929
|
+
const releases = useReleasesList(model, documentId);
|
|
930
|
+
const { formatMessage } = reactIntl.useIntl();
|
|
931
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Popover.Root, { children: [
|
|
932
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
933
|
+
designSystem.Button,
|
|
934
|
+
{
|
|
935
|
+
variant: "ghost",
|
|
936
|
+
onClick: (e) => e.stopPropagation(),
|
|
937
|
+
endIcon: releases.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx(icons.CaretDown, { width: "1.2rem", height: "1.2rem" }) : null,
|
|
938
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
939
|
+
designSystem.Typography,
|
|
940
|
+
{
|
|
941
|
+
style: { maxWidth: "252px", cursor: "pointer" },
|
|
942
|
+
textColor: "neutral800",
|
|
943
|
+
fontWeight: "regular",
|
|
944
|
+
children: releases.length > 0 ? formatMessage(
|
|
945
|
+
{
|
|
946
|
+
id: "content-releases.content-manager.list-view.releases-number",
|
|
947
|
+
defaultMessage: "{number} {number, plural, one {release} other {releases}}"
|
|
948
|
+
},
|
|
949
|
+
{
|
|
950
|
+
number: releases.length
|
|
951
|
+
}
|
|
952
|
+
) : "-"
|
|
953
|
+
}
|
|
954
|
+
)
|
|
955
|
+
}
|
|
956
|
+
) }),
|
|
957
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Popover.Content, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { children: releases.map(({ id, name }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { padding: 3, tag: "li", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Link, { href: `/admin/plugins/content-releases/${id}`, isExternal: false, children: name }) }, id)) }) })
|
|
958
|
+
] });
|
|
959
|
+
};
|
|
717
960
|
const getTimezoneOffset = (timezone, date) => {
|
|
718
961
|
try {
|
|
719
962
|
const offsetPart = new Intl.DateTimeFormat("en", {
|
|
@@ -880,7 +1123,7 @@ const Root = ({ children }) => {
|
|
|
880
1123
|
return (
|
|
881
1124
|
// A user can access the dropdown if they have permissions to delete a release-action OR update a release
|
|
882
1125
|
allowedActions.canDeleteAction || allowedActions.canUpdate ? /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { children: [
|
|
883
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1126
|
+
/* @__PURE__ */ jsxRuntime.jsx(StyledMoreButton, { variant: "tertiary", endIcon: null, paddingLeft: "7px", paddingRight: "7px", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
884
1127
|
designSystem.AccessibleIcon,
|
|
885
1128
|
{
|
|
886
1129
|
label: formatMessage({
|
|
@@ -894,13 +1137,23 @@ const Root = ({ children }) => {
|
|
|
894
1137
|
] }) : null
|
|
895
1138
|
);
|
|
896
1139
|
};
|
|
1140
|
+
const StyledMoreButton = styledComponents.styled(designSystem.Menu.Trigger)`
|
|
1141
|
+
& > span {
|
|
1142
|
+
display: flex;
|
|
1143
|
+
}
|
|
1144
|
+
`;
|
|
897
1145
|
const ReleaseActionMenu = {
|
|
898
1146
|
Root,
|
|
899
1147
|
EditReleaseItem,
|
|
900
1148
|
DeleteReleaseActionItem,
|
|
901
1149
|
ReleaseActionEntryLinkItem
|
|
902
1150
|
};
|
|
903
|
-
const Panel = ({
|
|
1151
|
+
const Panel = ({
|
|
1152
|
+
model,
|
|
1153
|
+
document,
|
|
1154
|
+
documentId,
|
|
1155
|
+
collectionType
|
|
1156
|
+
}) => {
|
|
904
1157
|
const [{ query }] = strapiAdmin.useQueryParams();
|
|
905
1158
|
const locale = query.plugins?.i18n?.locale;
|
|
906
1159
|
const {
|
|
@@ -909,12 +1162,17 @@ const Panel = ({ model, documentId, collectionType }) => {
|
|
|
909
1162
|
const { formatMessage, formatDate, formatTime } = reactIntl.useIntl();
|
|
910
1163
|
const { allowedActions } = strapiAdmin.useRBAC(PERMISSIONS);
|
|
911
1164
|
const { canRead, canDeleteAction } = allowedActions;
|
|
912
|
-
const response = useGetReleasesForEntryQuery(
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
1165
|
+
const response = useGetReleasesForEntryQuery(
|
|
1166
|
+
{
|
|
1167
|
+
contentType: model,
|
|
1168
|
+
entryDocumentId: documentId,
|
|
1169
|
+
locale,
|
|
1170
|
+
hasEntryAttached: true
|
|
1171
|
+
},
|
|
1172
|
+
{
|
|
1173
|
+
skip: !document
|
|
1174
|
+
}
|
|
1175
|
+
);
|
|
918
1176
|
const releases = response.data?.data;
|
|
919
1177
|
const getReleaseColorVariant = (actionType, shade) => {
|
|
920
1178
|
if (actionType === "unpublish") {
|
|
@@ -928,7 +1186,7 @@ const Panel = ({ model, documentId, collectionType }) => {
|
|
|
928
1186
|
if (collectionType === "collection-types" && (!documentId || documentId === "create")) {
|
|
929
1187
|
return null;
|
|
930
1188
|
}
|
|
931
|
-
if (releases
|
|
1189
|
+
if (!releases || releases.length === 0) {
|
|
932
1190
|
return null;
|
|
933
1191
|
}
|
|
934
1192
|
return {
|
|
@@ -1013,9 +1271,6 @@ const Panel = ({ model, documentId, collectionType }) => {
|
|
|
1013
1271
|
};
|
|
1014
1272
|
const pluginId = "content-releases";
|
|
1015
1273
|
const prefixPluginTranslations = (trad, pluginId2) => {
|
|
1016
|
-
if (!pluginId2) {
|
|
1017
|
-
throw new TypeError("pluginId can't be empty");
|
|
1018
|
-
}
|
|
1019
1274
|
return Object.keys(trad).reduce((acc, current) => {
|
|
1020
1275
|
acc[`${pluginId2}.${current}`] = trad[current];
|
|
1021
1276
|
return acc;
|
|
@@ -1033,7 +1288,7 @@ const admin = {
|
|
|
1033
1288
|
id: `${pluginId}.plugin.name`,
|
|
1034
1289
|
defaultMessage: "Releases"
|
|
1035
1290
|
},
|
|
1036
|
-
Component: () => Promise.resolve().then(() => require("./App-
|
|
1291
|
+
Component: () => Promise.resolve().then(() => require("./App-BKB1esYS.js")).then((mod) => ({ default: mod.App })),
|
|
1037
1292
|
permissions: PERMISSIONS.main,
|
|
1038
1293
|
position: 2
|
|
1039
1294
|
});
|
|
@@ -1057,10 +1312,18 @@ const admin = {
|
|
|
1057
1312
|
},
|
|
1058
1313
|
permissions: [],
|
|
1059
1314
|
async Component() {
|
|
1060
|
-
const { ProtectedReleasesSettingsPage } = await Promise.resolve().then(() => require("./ReleasesSettingsPage-
|
|
1315
|
+
const { ProtectedReleasesSettingsPage } = await Promise.resolve().then(() => require("./ReleasesSettingsPage-kuXIwpWp.js"));
|
|
1061
1316
|
return { default: ProtectedReleasesSettingsPage };
|
|
1062
1317
|
}
|
|
1063
1318
|
});
|
|
1319
|
+
if ("addBulkAction" in contentManagerPluginApis && typeof contentManagerPluginApis.addBulkAction === "function") {
|
|
1320
|
+
contentManagerPluginApis.addBulkAction((actions) => {
|
|
1321
|
+
const deleteActionIndex = actions.findIndex((action) => action.type === "delete");
|
|
1322
|
+
actions.splice(deleteActionIndex, 0, ReleaseAction);
|
|
1323
|
+
return actions;
|
|
1324
|
+
});
|
|
1325
|
+
}
|
|
1326
|
+
app.registerHook("Admin/CM/pages/ListView/inject-column-in-table", addColumnToTableHook);
|
|
1064
1327
|
} else if (!window.strapi.features.isEnabled("cms-content-releases") && window.strapi?.flags?.promoteEE) {
|
|
1065
1328
|
app.addSettingsLink("global", {
|
|
1066
1329
|
id: pluginId,
|
|
@@ -1081,7 +1344,7 @@ const admin = {
|
|
|
1081
1344
|
async registerTrads({ locales }) {
|
|
1082
1345
|
const importedTrads = await Promise.all(
|
|
1083
1346
|
locales.map((locale) => {
|
|
1084
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("./en-
|
|
1347
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("./en-CmYoEnA7.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
|
|
1085
1348
|
return {
|
|
1086
1349
|
data: prefixPluginTranslations(data, "content-releases"),
|
|
1087
1350
|
locale
|
|
@@ -1115,4 +1378,4 @@ exports.usePublishReleaseMutation = usePublishReleaseMutation;
|
|
|
1115
1378
|
exports.useUpdateReleaseActionMutation = useUpdateReleaseActionMutation;
|
|
1116
1379
|
exports.useUpdateReleaseMutation = useUpdateReleaseMutation;
|
|
1117
1380
|
exports.useUpdateReleaseSettingsMutation = useUpdateReleaseSettingsMutation;
|
|
1118
|
-
//# sourceMappingURL=index-
|
|
1381
|
+
//# sourceMappingURL=index-5Odi61vw.js.map
|