@strapi/content-releases 5.0.0-beta.0 → 5.0.0-beta.10
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-IkyOz9wq.mjs → App-B2R2exNT.mjs} +257 -256
- package/dist/_chunks/App-B2R2exNT.mjs.map +1 -0
- package/dist/_chunks/{App-FuRaphre.js → App-CEwOQkKT.js} +265 -265
- package/dist/_chunks/App-CEwOQkKT.js.map +1 -0
- package/dist/_chunks/{PurchaseContentReleases-YhAPgpG9.js → PurchaseContentReleases-Be3acS2L.js} +8 -7
- package/dist/_chunks/PurchaseContentReleases-Be3acS2L.js.map +1 -0
- package/dist/_chunks/{PurchaseContentReleases-Clm0iACO.mjs → PurchaseContentReleases-_MxP6-Dt.mjs} +9 -8
- package/dist/_chunks/PurchaseContentReleases-_MxP6-Dt.mjs.map +1 -0
- package/dist/_chunks/{en-RdapH-9X.mjs → en-B9Ur3VsE.mjs} +11 -2
- package/dist/_chunks/en-B9Ur3VsE.mjs.map +1 -0
- package/dist/_chunks/{en-faJDuv3q.js → en-DtFJ5ViE.js} +11 -2
- package/dist/_chunks/en-DtFJ5ViE.js.map +1 -0
- package/dist/_chunks/{index-Sb3Nal8H.js → index-BrWv-zV4.js} +169 -193
- package/dist/_chunks/index-BrWv-zV4.js.map +1 -0
- package/dist/_chunks/{index-qP3rNiDS.mjs → index-DbmynICx.mjs} +170 -192
- package/dist/_chunks/index-DbmynICx.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +2 -2
- package/dist/admin/src/components/CMReleasesContainer.d.ts +21 -0
- package/dist/admin/src/components/ReleaseAction.d.ts +3 -0
- package/dist/admin/src/components/ReleaseActionMenu.d.ts +1 -1
- package/dist/admin/src/components/ReleaseListCell.d.ts +0 -0
- package/dist/admin/src/components/ReleaseModal.d.ts +3 -2
- package/dist/admin/src/services/release.d.ts +56 -320
- package/dist/admin/src/utils/api.d.ts +6 -0
- package/dist/server/index.js +101 -52
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +102 -53
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts +2 -2
- package/dist/server/src/bootstrap.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +1 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- 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/controllers/validation/release-action.d.ts +7 -2
- package/dist/server/src/controllers/validation/release-action.d.ts.map +1 -1
- package/dist/server/src/destroy.d.ts +2 -2
- package/dist/server/src/destroy.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1412 -1411
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/migrations/index.d.ts.map +1 -1
- package/dist/server/src/register.d.ts +2 -2
- package/dist/server/src/register.d.ts.map +1 -1
- package/dist/server/src/routes/release.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1407 -1407
- package/dist/server/src/services/release.d.ts +9 -9
- package/dist/server/src/services/release.d.ts.map +1 -1
- package/dist/server/src/services/scheduling.d.ts +6 -6
- package/dist/server/src/services/scheduling.d.ts.map +1 -1
- package/dist/server/src/services/validation.d.ts +2 -2
- package/dist/server/src/services/validation.d.ts.map +1 -1
- package/dist/server/src/utils/index.d.ts +10 -10
- package/dist/server/src/utils/index.d.ts.map +1 -1
- package/dist/shared/contracts/release-actions.d.ts +9 -9
- package/dist/shared/contracts/release-actions.d.ts.map +1 -1
- package/dist/shared/contracts/releases.d.ts +17 -1
- package/dist/shared/contracts/releases.d.ts.map +1 -1
- package/dist/shared/types.d.ts +2 -2
- package/dist/shared/types.d.ts.map +1 -1
- package/package.json +19 -19
- package/dist/_chunks/App-FuRaphre.js.map +0 -1
- package/dist/_chunks/App-IkyOz9wq.mjs.map +0 -1
- package/dist/_chunks/PurchaseContentReleases-Clm0iACO.mjs.map +0 -1
- package/dist/_chunks/PurchaseContentReleases-YhAPgpG9.js.map +0 -1
- package/dist/_chunks/en-RdapH-9X.mjs.map +0 -1
- package/dist/_chunks/en-faJDuv3q.js.map +0 -1
- package/dist/_chunks/index-Sb3Nal8H.js.map +0 -1
- package/dist/_chunks/index-qP3rNiDS.mjs.map +0 -1
- package/dist/admin/src/services/axios.d.ts +0 -29
|
@@ -4,16 +4,14 @@ const jsxRuntime = require("react/jsx-runtime");
|
|
|
4
4
|
const React = require("react");
|
|
5
5
|
const query = require("@reduxjs/toolkit/query");
|
|
6
6
|
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
7
|
+
const strapiAdmin$1 = require("@strapi/content-manager/strapi-admin");
|
|
7
8
|
const designSystem = require("@strapi/design-system");
|
|
8
|
-
const
|
|
9
|
-
const axios = require("axios");
|
|
9
|
+
const symbols = require("@strapi/icons/symbols");
|
|
10
10
|
const formik = require("formik");
|
|
11
11
|
const reactIntl = require("react-intl");
|
|
12
12
|
const reactRouterDom = require("react-router-dom");
|
|
13
13
|
const yup = require("yup");
|
|
14
|
-
const
|
|
15
|
-
const styled = require("styled-components");
|
|
16
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
14
|
+
const styledComponents = require("styled-components");
|
|
17
15
|
function _interopNamespace(e) {
|
|
18
16
|
if (e && e.__esModule)
|
|
19
17
|
return e;
|
|
@@ -34,7 +32,6 @@ function _interopNamespace(e) {
|
|
|
34
32
|
}
|
|
35
33
|
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
|
36
34
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
|
37
|
-
const styled__default = /* @__PURE__ */ _interopDefault(styled);
|
|
38
35
|
const __variableDynamicImportRuntimeHelper = (glob, path) => {
|
|
39
36
|
const v = glob[path];
|
|
40
37
|
if (v) {
|
|
@@ -116,49 +113,9 @@ const PERMISSIONS = {
|
|
|
116
113
|
}
|
|
117
114
|
]
|
|
118
115
|
};
|
|
119
|
-
const
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
method,
|
|
123
|
-
data,
|
|
124
|
-
config
|
|
125
|
-
}) => {
|
|
126
|
-
try {
|
|
127
|
-
const { get, post, del, put } = strapiAdmin.getFetchClient();
|
|
128
|
-
if (method === "POST") {
|
|
129
|
-
const result2 = await post(url, data, config);
|
|
130
|
-
return { data: result2.data };
|
|
131
|
-
}
|
|
132
|
-
if (method === "DELETE") {
|
|
133
|
-
const result2 = await del(url, config);
|
|
134
|
-
return { data: result2.data };
|
|
135
|
-
}
|
|
136
|
-
if (method === "PUT") {
|
|
137
|
-
const result2 = await put(url, data, config);
|
|
138
|
-
return { data: result2.data };
|
|
139
|
-
}
|
|
140
|
-
const result = await get(url, config);
|
|
141
|
-
return { data: result.data };
|
|
142
|
-
} catch (error) {
|
|
143
|
-
const err = error;
|
|
144
|
-
return {
|
|
145
|
-
error: {
|
|
146
|
-
status: err.response?.status,
|
|
147
|
-
code: err.code,
|
|
148
|
-
response: {
|
|
149
|
-
data: err.response?.data
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
};
|
|
153
|
-
}
|
|
154
|
-
};
|
|
155
|
-
const isAxiosError = (err) => {
|
|
156
|
-
return typeof err === "object" && err !== null && "response" in err && typeof err.response === "object" && err.response !== null && "data" in err.response;
|
|
157
|
-
};
|
|
158
|
-
const releaseApi = react.createApi({
|
|
159
|
-
reducerPath: pluginId,
|
|
160
|
-
baseQuery: axiosBaseQuery,
|
|
161
|
-
tagTypes: ["Release", "ReleaseAction"],
|
|
116
|
+
const releaseApi = strapiAdmin.adminApi.enhanceEndpoints({
|
|
117
|
+
addTagTypes: ["Release", "ReleaseAction", "EntriesInRelease"]
|
|
118
|
+
}).injectEndpoints({
|
|
162
119
|
endpoints: (build) => {
|
|
163
120
|
return {
|
|
164
121
|
getReleasesForEntry: build.query({
|
|
@@ -273,6 +230,20 @@ const releaseApi = react.createApi({
|
|
|
273
230
|
{ type: "ReleaseAction", id: "LIST" }
|
|
274
231
|
]
|
|
275
232
|
}),
|
|
233
|
+
createManyReleaseActions: build.mutation({
|
|
234
|
+
query({ body, params }) {
|
|
235
|
+
return {
|
|
236
|
+
url: `/content-releases/${params.releaseId}/actions/bulk`,
|
|
237
|
+
method: "POST",
|
|
238
|
+
data: body
|
|
239
|
+
};
|
|
240
|
+
},
|
|
241
|
+
invalidatesTags: [
|
|
242
|
+
{ type: "Release", id: "LIST" },
|
|
243
|
+
{ type: "ReleaseAction", id: "LIST" },
|
|
244
|
+
{ type: "EntriesInRelease" }
|
|
245
|
+
]
|
|
246
|
+
}),
|
|
276
247
|
updateReleaseAction: build.mutation({
|
|
277
248
|
query({ body, params }) {
|
|
278
249
|
return {
|
|
@@ -288,13 +259,17 @@ const releaseApi = react.createApi({
|
|
|
288
259
|
...query2
|
|
289
260
|
};
|
|
290
261
|
const patchResult = dispatch(
|
|
291
|
-
releaseApi.util.updateQueryData(
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
262
|
+
releaseApi.util.updateQueryData(
|
|
263
|
+
"getReleaseActions",
|
|
264
|
+
paramsWithoutActionId,
|
|
265
|
+
(draft) => {
|
|
266
|
+
const [key, index] = actionPath;
|
|
267
|
+
const action = draft.data[key][index];
|
|
268
|
+
if (action) {
|
|
269
|
+
action.type = body.type;
|
|
270
|
+
}
|
|
296
271
|
}
|
|
297
|
-
|
|
272
|
+
)
|
|
298
273
|
);
|
|
299
274
|
try {
|
|
300
275
|
await queryFulfilled;
|
|
@@ -310,9 +285,11 @@ const releaseApi = react.createApi({
|
|
|
310
285
|
method: "DELETE"
|
|
311
286
|
};
|
|
312
287
|
},
|
|
313
|
-
invalidatesTags: [
|
|
288
|
+
invalidatesTags: (result, error, arg) => [
|
|
314
289
|
{ type: "Release", id: "LIST" },
|
|
315
|
-
{ type: "
|
|
290
|
+
{ type: "Release", id: arg.params.releaseId },
|
|
291
|
+
{ type: "ReleaseAction", id: "LIST" },
|
|
292
|
+
{ type: "EntriesInRelease" }
|
|
316
293
|
]
|
|
317
294
|
}),
|
|
318
295
|
publishRelease: build.mutation({
|
|
@@ -331,7 +308,22 @@ const releaseApi = react.createApi({
|
|
|
331
308
|
method: "DELETE"
|
|
332
309
|
};
|
|
333
310
|
},
|
|
334
|
-
invalidatesTags: () => [{ type: "Release", id: "LIST" }]
|
|
311
|
+
invalidatesTags: () => [{ type: "Release", id: "LIST" }, { type: "EntriesInRelease" }]
|
|
312
|
+
}),
|
|
313
|
+
getMappedEntriesInReleases: build.query({
|
|
314
|
+
query(params) {
|
|
315
|
+
return {
|
|
316
|
+
url: "/content-releases/mapEntriesToReleases",
|
|
317
|
+
method: "GET",
|
|
318
|
+
config: {
|
|
319
|
+
params
|
|
320
|
+
}
|
|
321
|
+
};
|
|
322
|
+
},
|
|
323
|
+
transformResponse(response) {
|
|
324
|
+
return response.data;
|
|
325
|
+
},
|
|
326
|
+
providesTags: [{ type: "EntriesInRelease" }]
|
|
335
327
|
})
|
|
336
328
|
};
|
|
337
329
|
}
|
|
@@ -343,11 +335,13 @@ const {
|
|
|
343
335
|
useGetReleaseActionsQuery,
|
|
344
336
|
useCreateReleaseMutation,
|
|
345
337
|
useCreateReleaseActionMutation,
|
|
338
|
+
useCreateManyReleaseActionsMutation,
|
|
346
339
|
useUpdateReleaseMutation,
|
|
347
340
|
useUpdateReleaseActionMutation,
|
|
348
341
|
usePublishReleaseMutation,
|
|
349
342
|
useDeleteReleaseActionMutation,
|
|
350
|
-
useDeleteReleaseMutation
|
|
343
|
+
useDeleteReleaseMutation,
|
|
344
|
+
useGetMappedEntriesInReleasesQuery
|
|
351
345
|
} = releaseApi;
|
|
352
346
|
const getTimezoneOffset = (timezone, date) => {
|
|
353
347
|
try {
|
|
@@ -365,14 +359,12 @@ const getTimezoneOffset = (timezone, date) => {
|
|
|
365
359
|
return "";
|
|
366
360
|
}
|
|
367
361
|
};
|
|
368
|
-
const StyledMenuItem =
|
|
362
|
+
const StyledMenuItem = styledComponents.styled(designSystem.Menu.Item)`
|
|
369
363
|
&:hover {
|
|
370
|
-
background: ${({ theme, variant = "neutral" }) => theme.colors[`${variant}100`]};
|
|
364
|
+
background: ${({ theme, $variant = "neutral" }) => theme.colors[`${$variant}100`]};
|
|
371
365
|
|
|
372
366
|
svg {
|
|
373
|
-
|
|
374
|
-
fill: ${({ theme, variant = "neutral" }) => theme.colors[`${variant}600`]};
|
|
375
|
-
}
|
|
367
|
+
fill: ${({ theme, $variant = "neutral" }) => theme.colors[`${$variant}600`]};
|
|
376
368
|
}
|
|
377
369
|
|
|
378
370
|
a {
|
|
@@ -381,9 +373,7 @@ const StyledMenuItem = styled__default.default(v2.Menu.Item)`
|
|
|
381
373
|
}
|
|
382
374
|
|
|
383
375
|
svg {
|
|
384
|
-
|
|
385
|
-
fill: ${({ theme, variant = "neutral" }) => theme.colors[`${variant}600`]};
|
|
386
|
-
}
|
|
376
|
+
fill: ${({ theme, $variant = "neutral" }) => theme.colors[`${$variant}600`]};
|
|
387
377
|
}
|
|
388
378
|
|
|
389
379
|
a {
|
|
@@ -395,10 +385,6 @@ const StyledMenuItem = styled__default.default(v2.Menu.Item)`
|
|
|
395
385
|
width: 100%;
|
|
396
386
|
}
|
|
397
387
|
`;
|
|
398
|
-
const StyledIconButton = styled__default.default(designSystem.IconButton)`
|
|
399
|
-
/* Setting this style inline with borderColor will not apply the style */
|
|
400
|
-
border: ${({ theme }) => `1px solid ${theme.colors.neutral200}`};
|
|
401
|
-
`;
|
|
402
388
|
const DeleteReleaseActionItem = ({ releaseId, actionId }) => {
|
|
403
389
|
const { formatMessage } = reactIntl.useIntl();
|
|
404
390
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
@@ -422,7 +408,7 @@ const DeleteReleaseActionItem = ({ releaseId, actionId }) => {
|
|
|
422
408
|
return;
|
|
423
409
|
}
|
|
424
410
|
if ("error" in response) {
|
|
425
|
-
if (
|
|
411
|
+
if (strapiAdmin.isFetchError(response.error)) {
|
|
426
412
|
toggleNotification({
|
|
427
413
|
type: "danger",
|
|
428
414
|
message: formatAPIError(response.error)
|
|
@@ -438,8 +424,8 @@ const DeleteReleaseActionItem = ({ releaseId, actionId }) => {
|
|
|
438
424
|
if (!canDeleteAction) {
|
|
439
425
|
return null;
|
|
440
426
|
}
|
|
441
|
-
return /* @__PURE__ */ jsxRuntime.jsx(StyledMenuItem, { variant: "danger", onSelect: handleDeleteAction, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
|
442
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
427
|
+
return /* @__PURE__ */ jsxRuntime.jsx(StyledMenuItem, { $variant: "danger", onSelect: handleDeleteAction, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
|
428
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.Cross, { width: "1.6rem", height: "1.6rem" }),
|
|
443
429
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "danger600", variant: "omega", children: formatMessage({
|
|
444
430
|
id: "content-releases.content-manager-edit-view.remove-from-release",
|
|
445
431
|
defaultMessage: "Remove from release"
|
|
@@ -463,7 +449,7 @@ const ReleaseActionEntryLinkItem = ({
|
|
|
463
449
|
return Boolean(!locale || updatePermissions.properties?.locales?.includes(locale));
|
|
464
450
|
}, [contentTypeUid, locale, userPermissions]);
|
|
465
451
|
const {
|
|
466
|
-
allowedActions: { canUpdateContentType }
|
|
452
|
+
allowedActions: { canUpdate: canUpdateContentType }
|
|
467
453
|
} = strapiAdmin.useRBAC({
|
|
468
454
|
updateContentType: [
|
|
469
455
|
{
|
|
@@ -475,57 +461,55 @@ const ReleaseActionEntryLinkItem = ({
|
|
|
475
461
|
if (!canUpdateContentType || !canUpdateEntryForLocale) {
|
|
476
462
|
return null;
|
|
477
463
|
}
|
|
478
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
479
|
-
|
|
464
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
465
|
+
StyledMenuItem,
|
|
480
466
|
{
|
|
481
|
-
|
|
467
|
+
tag: reactRouterDom.Link,
|
|
468
|
+
isLink: true,
|
|
482
469
|
to: {
|
|
483
470
|
pathname: `/content-manager/collection-types/${contentTypeUid}/${entryId}`,
|
|
484
471
|
search: locale && `?plugins[i18n][locale]=${locale}`
|
|
485
472
|
},
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
473
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
|
474
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, { width: "1.6rem", height: "1.6rem" }),
|
|
475
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", children: formatMessage({
|
|
476
|
+
id: "content-releases.content-manager-edit-view.edit-entry",
|
|
477
|
+
defaultMessage: "Edit entry"
|
|
478
|
+
}) })
|
|
479
|
+
] })
|
|
491
480
|
}
|
|
492
|
-
)
|
|
481
|
+
);
|
|
493
482
|
};
|
|
494
483
|
const EditReleaseItem = ({ releaseId }) => {
|
|
495
484
|
const { formatMessage } = reactIntl.useIntl();
|
|
496
|
-
return
|
|
497
|
-
|
|
498
|
-
{
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
startIcon: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Icon, { as: icons.Pencil, width: 3, height: 3 }),
|
|
502
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", children: formatMessage({
|
|
485
|
+
return (
|
|
486
|
+
/* @ts-expect-error inference isn't working in DS */
|
|
487
|
+
/* @__PURE__ */ jsxRuntime.jsx(StyledMenuItem, { tag: reactRouterDom.Link, isLink: true, to: `/plugins/content-releases/${releaseId}`, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
|
488
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.Pencil, { width: "1.6rem", height: "1.6rem" }),
|
|
489
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "omega", children: formatMessage({
|
|
503
490
|
id: "content-releases.content-manager-edit-view.edit-release",
|
|
504
491
|
defaultMessage: "Edit release"
|
|
505
492
|
}) })
|
|
506
|
-
}
|
|
507
|
-
)
|
|
493
|
+
] }) })
|
|
494
|
+
);
|
|
508
495
|
};
|
|
509
|
-
const Root = ({ children
|
|
496
|
+
const Root = ({ children }) => {
|
|
510
497
|
const { formatMessage } = reactIntl.useIntl();
|
|
511
498
|
const { allowedActions } = strapiAdmin.useRBAC(PERMISSIONS);
|
|
512
499
|
return (
|
|
513
500
|
// A user can access the dropdown if they have permissions to delete a release-action OR update a release
|
|
514
|
-
allowedActions.canDeleteAction || allowedActions.canUpdate ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
515
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
516
|
-
|
|
501
|
+
allowedActions.canDeleteAction || allowedActions.canUpdate ? /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { children: [
|
|
502
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Trigger, { paddingLeft: 2, paddingRight: 2, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
503
|
+
designSystem.AccessibleIcon,
|
|
517
504
|
{
|
|
518
|
-
|
|
519
|
-
paddingLeft: 2,
|
|
520
|
-
paddingRight: 2,
|
|
521
|
-
"aria-label": formatMessage({
|
|
505
|
+
label: formatMessage({
|
|
522
506
|
id: "content-releases.content-manager-edit-view.release-action-menu",
|
|
523
507
|
defaultMessage: "Release action options"
|
|
524
508
|
}),
|
|
525
|
-
|
|
509
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(icons.More, {})
|
|
526
510
|
}
|
|
527
|
-
),
|
|
528
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
511
|
+
) }),
|
|
512
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Content, { top: 1, popoverPlacement: "bottom-end", children })
|
|
529
513
|
] }) : null
|
|
530
514
|
);
|
|
531
515
|
};
|
|
@@ -541,11 +525,11 @@ const getBorderLeftRadiusValue = (actionType) => {
|
|
|
541
525
|
const getBorderRightRadiusValue = (actionType) => {
|
|
542
526
|
return actionType === "publish" ? 0 : 1;
|
|
543
527
|
};
|
|
544
|
-
const FieldWrapper =
|
|
545
|
-
border-top-left-radius: ${({ actionType, theme }) => theme.spaces[getBorderLeftRadiusValue(actionType)]};
|
|
546
|
-
border-bottom-left-radius: ${({ actionType, theme }) => theme.spaces[getBorderLeftRadiusValue(actionType)]};
|
|
547
|
-
border-top-right-radius: ${({ actionType, theme }) => theme.spaces[getBorderRightRadiusValue(actionType)]};
|
|
548
|
-
border-bottom-right-radius: ${({ actionType, theme }) => theme.spaces[getBorderRightRadiusValue(actionType)]};
|
|
528
|
+
const FieldWrapper = styledComponents.styled(designSystem.Field.Root)`
|
|
529
|
+
border-top-left-radius: ${({ $actionType, theme }) => theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
530
|
+
border-bottom-left-radius: ${({ $actionType, theme }) => theme.spaces[getBorderLeftRadiusValue($actionType)]};
|
|
531
|
+
border-top-right-radius: ${({ $actionType, theme }) => theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
532
|
+
border-bottom-right-radius: ${({ $actionType, theme }) => theme.spaces[getBorderRightRadiusValue($actionType)]};
|
|
549
533
|
|
|
550
534
|
> label {
|
|
551
535
|
color: inherit;
|
|
@@ -556,14 +540,14 @@ const FieldWrapper = styled__default.default(designSystem.Field)`
|
|
|
556
540
|
}
|
|
557
541
|
|
|
558
542
|
&[data-checked='true'] {
|
|
559
|
-
color: ${({ theme, actionType }) => actionType === "publish" ? theme.colors.primary700 : theme.colors.danger600};
|
|
560
|
-
background-color: ${({ theme, actionType }) => actionType === "publish" ? theme.colors.primary100 : theme.colors.danger100};
|
|
561
|
-
border-color: ${({ theme, actionType }) => actionType === "publish" ? theme.colors.primary700 : theme.colors.danger600};
|
|
543
|
+
color: ${({ theme, $actionType }) => $actionType === "publish" ? theme.colors.primary700 : theme.colors.danger600};
|
|
544
|
+
background-color: ${({ theme, $actionType }) => $actionType === "publish" ? theme.colors.primary100 : theme.colors.danger100};
|
|
545
|
+
border-color: ${({ theme, $actionType }) => $actionType === "publish" ? theme.colors.primary700 : theme.colors.danger600};
|
|
562
546
|
}
|
|
563
547
|
|
|
564
548
|
&[data-checked='false'] {
|
|
565
|
-
border-left: ${({ actionType }) => actionType === "unpublish" && "none"};
|
|
566
|
-
border-right: ${({ actionType }) => actionType === "publish" && "none"};
|
|
549
|
+
border-left: ${({ $actionType }) => $actionType === "unpublish" && "none"};
|
|
550
|
+
border-right: ${({ $actionType }) => $actionType === "publish" && "none"};
|
|
567
551
|
}
|
|
568
552
|
|
|
569
553
|
&[data-checked='false'][data-disabled='false']:hover {
|
|
@@ -592,7 +576,7 @@ const ActionOption = ({
|
|
|
592
576
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
593
577
|
FieldWrapper,
|
|
594
578
|
{
|
|
595
|
-
actionType,
|
|
579
|
+
$actionType: actionType,
|
|
596
580
|
background: "primary0",
|
|
597
581
|
borderColor: "neutral200",
|
|
598
582
|
color: selected === actionType ? "primary600" : "neutral600",
|
|
@@ -600,12 +584,11 @@ const ActionOption = ({
|
|
|
600
584
|
cursor: "pointer",
|
|
601
585
|
"data-checked": selected === actionType,
|
|
602
586
|
"data-disabled": disabled && selected !== actionType,
|
|
603
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.
|
|
587
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Label, { children: [
|
|
604
588
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
605
|
-
designSystem.
|
|
589
|
+
designSystem.Field.Input,
|
|
606
590
|
{
|
|
607
591
|
type: "radio",
|
|
608
|
-
id: `${name}-${actionType}`,
|
|
609
592
|
name,
|
|
610
593
|
checked: selected === actionType,
|
|
611
594
|
onChange: handleChange,
|
|
@@ -660,18 +643,18 @@ const NoReleases = () => {
|
|
|
660
643
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
661
644
|
designSystem.EmptyStateLayout,
|
|
662
645
|
{
|
|
663
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
646
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(symbols.EmptyDocuments, { width: "16rem" }),
|
|
664
647
|
content: formatMessage({
|
|
665
648
|
id: "content-releases.content-manager-edit-view.add-to-release.no-releases-message",
|
|
666
649
|
defaultMessage: "No available releases. Open the list of releases and create a new one from there."
|
|
667
650
|
}),
|
|
668
651
|
action: /* @__PURE__ */ jsxRuntime.jsx(
|
|
669
|
-
|
|
652
|
+
designSystem.LinkButton,
|
|
670
653
|
{
|
|
671
654
|
to: {
|
|
672
655
|
pathname: "/plugins/content-releases"
|
|
673
656
|
},
|
|
674
|
-
|
|
657
|
+
tag: reactRouterDom.Link,
|
|
675
658
|
variant: "secondary",
|
|
676
659
|
children: formatMessage({
|
|
677
660
|
id: "content-releases.content-manager-edit-view.add-to-release.redirect-button",
|
|
@@ -683,11 +666,11 @@ const NoReleases = () => {
|
|
|
683
666
|
);
|
|
684
667
|
};
|
|
685
668
|
const AddActionToReleaseModal = ({
|
|
686
|
-
|
|
669
|
+
open,
|
|
670
|
+
onOpenChange,
|
|
687
671
|
contentTypeUid,
|
|
688
672
|
entryId
|
|
689
673
|
}) => {
|
|
690
|
-
const releaseHeaderId = React__namespace.useId();
|
|
691
674
|
const { formatMessage } = reactIntl.useIntl();
|
|
692
675
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
693
676
|
const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
@@ -718,11 +701,11 @@ const AddActionToReleaseModal = ({
|
|
|
718
701
|
defaultMessage: "Entry added to release"
|
|
719
702
|
})
|
|
720
703
|
});
|
|
721
|
-
|
|
704
|
+
onOpenChange();
|
|
722
705
|
return;
|
|
723
706
|
}
|
|
724
707
|
if ("error" in response2) {
|
|
725
|
-
if (
|
|
708
|
+
if (strapiAdmin.isFetchError(response2.error)) {
|
|
726
709
|
toggleNotification({
|
|
727
710
|
type: "danger",
|
|
728
711
|
message: formatAPIError(response2.error)
|
|
@@ -735,8 +718,8 @@ const AddActionToReleaseModal = ({
|
|
|
735
718
|
}
|
|
736
719
|
}
|
|
737
720
|
};
|
|
738
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
739
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
721
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Root, { open, onOpenChange, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Content, { children: [
|
|
722
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Header, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Title, { fontWeight: "bold", children: formatMessage({
|
|
740
723
|
id: "content-releases.content-manager-edit-view.add-to-release",
|
|
741
724
|
defaultMessage: "Add to release"
|
|
742
725
|
}) }) }),
|
|
@@ -748,25 +731,26 @@ const AddActionToReleaseModal = ({
|
|
|
748
731
|
initialValues: INITIAL_VALUES,
|
|
749
732
|
children: ({ values, setFieldValue }) => {
|
|
750
733
|
return /* @__PURE__ */ jsxRuntime.jsxs(formik.Form, { children: [
|
|
751
|
-
releases?.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(NoReleases, {}) : /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
752
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingBottom: 6, children: /* @__PURE__ */ jsxRuntime.
|
|
753
|
-
designSystem.
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
|
|
734
|
+
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: [
|
|
735
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { paddingBottom: 6, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { required: true, children: [
|
|
736
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
737
|
+
id: "content-releases.content-manager-edit-view.add-to-release.select-label",
|
|
738
|
+
defaultMessage: "Select a release"
|
|
739
|
+
}) }),
|
|
740
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
741
|
+
designSystem.SingleSelect,
|
|
742
|
+
{
|
|
743
|
+
placeholder: formatMessage({
|
|
744
|
+
id: "content-releases.content-manager-edit-view.add-to-release.select-placeholder",
|
|
745
|
+
defaultMessage: "Select"
|
|
746
|
+
}),
|
|
747
|
+
onChange: (value) => setFieldValue("releaseId", value),
|
|
748
|
+
value: values.releaseId,
|
|
749
|
+
children: releases?.map((release) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: release.id, children: release.name }, release.id))
|
|
750
|
+
}
|
|
751
|
+
)
|
|
752
|
+
] }) }),
|
|
753
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
770
754
|
id: "content-releases.content-manager-edit-view.add-to-release.action-type-label",
|
|
771
755
|
defaultMessage: "What do you want to do with this entry?"
|
|
772
756
|
}) }),
|
|
@@ -779,40 +763,31 @@ const AddActionToReleaseModal = ({
|
|
|
779
763
|
}
|
|
780
764
|
)
|
|
781
765
|
] }) }),
|
|
782
|
-
/* @__PURE__ */ jsxRuntime.
|
|
783
|
-
designSystem.
|
|
784
|
-
|
|
785
|
-
|
|
786
|
-
|
|
787
|
-
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
|
|
791
|
-
|
|
792
|
-
* for yup.string().required(), even when the value is falsy (including empty string)
|
|
793
|
-
*/
|
|
794
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", disabled: !values.releaseId, loading: isLoading, children: formatMessage({
|
|
795
|
-
id: "content-releases.content-manager-edit-view.add-to-release.continue-button",
|
|
796
|
-
defaultMessage: "Continue"
|
|
797
|
-
}) })
|
|
798
|
-
)
|
|
799
|
-
}
|
|
800
|
-
)
|
|
766
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Modal.Footer, { children: [
|
|
767
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Modal.Close, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { variant: "tertiary", name: "cancel", children: formatMessage({
|
|
768
|
+
id: "content-releases.content-manager-edit-view.add-to-release.cancel-button",
|
|
769
|
+
defaultMessage: "Cancel"
|
|
770
|
+
}) }) }),
|
|
771
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Button, { type: "submit", disabled: !values.releaseId, loading: isLoading, children: formatMessage({
|
|
772
|
+
id: "content-releases.content-manager-edit-view.add-to-release.continue-button",
|
|
773
|
+
defaultMessage: "Continue"
|
|
774
|
+
}) })
|
|
775
|
+
] })
|
|
801
776
|
] });
|
|
802
777
|
}
|
|
803
778
|
}
|
|
804
779
|
)
|
|
805
|
-
] });
|
|
780
|
+
] }) });
|
|
806
781
|
};
|
|
807
782
|
const CMReleasesContainer = () => {
|
|
808
783
|
const [isModalOpen, setIsModalOpen] = React__namespace.useState(false);
|
|
809
784
|
const { formatMessage, formatDate, formatTime } = reactIntl.useIntl();
|
|
810
785
|
const { id, slug, collectionType } = reactRouterDom.useParams();
|
|
811
786
|
const isCreatingEntry = id === "create";
|
|
812
|
-
const
|
|
813
|
-
|
|
814
|
-
} =
|
|
815
|
-
const { schema } = strapiAdmin.unstable_useDocument({
|
|
787
|
+
const entryId = parseInt(id, 10);
|
|
788
|
+
const { allowedActions } = strapiAdmin.useRBAC(PERMISSIONS);
|
|
789
|
+
const { canCreateAction, canRead: canMain, canDeleteAction } = allowedActions;
|
|
790
|
+
const { schema } = strapiAdmin$1.unstable_useDocument({
|
|
816
791
|
collectionType,
|
|
817
792
|
model: slug
|
|
818
793
|
});
|
|
@@ -821,7 +796,7 @@ const CMReleasesContainer = () => {
|
|
|
821
796
|
const canFetch = id != null && contentTypeUid != null;
|
|
822
797
|
const fetchParams = canFetch ? {
|
|
823
798
|
contentTypeUid,
|
|
824
|
-
entryId
|
|
799
|
+
entryId,
|
|
825
800
|
hasEntryAttached: true
|
|
826
801
|
} : query.skipToken;
|
|
827
802
|
const response = useGetReleasesForEntryQuery(fetchParams);
|
|
@@ -845,7 +820,7 @@ const CMReleasesContainer = () => {
|
|
|
845
820
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
846
821
|
designSystem.Box,
|
|
847
822
|
{
|
|
848
|
-
|
|
823
|
+
tag: "aside",
|
|
849
824
|
"aria-label": formatMessage({
|
|
850
825
|
id: "content-releases.plugin.name",
|
|
851
826
|
defaultMessage: "Releases"
|
|
@@ -869,7 +844,7 @@ const CMReleasesContainer = () => {
|
|
|
869
844
|
alignItems: "start",
|
|
870
845
|
borderWidth: "1px",
|
|
871
846
|
borderStyle: "solid",
|
|
872
|
-
borderColor: getReleaseColorVariant(release.
|
|
847
|
+
borderColor: getReleaseColorVariant(release.actions[0].type, "200"),
|
|
873
848
|
overflow: "hidden",
|
|
874
849
|
hasRadius: true,
|
|
875
850
|
children: [
|
|
@@ -880,20 +855,20 @@ const CMReleasesContainer = () => {
|
|
|
880
855
|
paddingBottom: 3,
|
|
881
856
|
paddingLeft: 4,
|
|
882
857
|
paddingRight: 4,
|
|
883
|
-
background: getReleaseColorVariant(release.
|
|
858
|
+
background: getReleaseColorVariant(release.actions[0].type, "100"),
|
|
884
859
|
width: "100%",
|
|
885
860
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
886
861
|
designSystem.Typography,
|
|
887
862
|
{
|
|
888
863
|
fontSize: 1,
|
|
889
864
|
variant: "pi",
|
|
890
|
-
textColor: getReleaseColorVariant(release.
|
|
865
|
+
textColor: getReleaseColorVariant(release.actions[0].type, "600"),
|
|
891
866
|
children: formatMessage(
|
|
892
867
|
{
|
|
893
868
|
id: "content-releases.content-manager-edit-view.list-releases.title",
|
|
894
869
|
defaultMessage: "{isPublish, select, true {Will be published in} other {Will be unpublished in}}"
|
|
895
870
|
},
|
|
896
|
-
{ isPublish: release.
|
|
871
|
+
{ isPublish: release.actions[0].type === "publish" }
|
|
897
872
|
)
|
|
898
873
|
}
|
|
899
874
|
)
|
|
@@ -929,7 +904,7 @@ const CMReleasesContainer = () => {
|
|
|
929
904
|
ReleaseActionMenu.DeleteReleaseActionItem,
|
|
930
905
|
{
|
|
931
906
|
releaseId: release.id,
|
|
932
|
-
actionId: release.
|
|
907
|
+
actionId: release.actions[0].id
|
|
933
908
|
}
|
|
934
909
|
)
|
|
935
910
|
] }) : null
|
|
@@ -956,18 +931,20 @@ const CMReleasesContainer = () => {
|
|
|
956
931
|
}
|
|
957
932
|
) : null
|
|
958
933
|
] }),
|
|
959
|
-
|
|
934
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
960
935
|
AddActionToReleaseModal,
|
|
961
936
|
{
|
|
962
|
-
|
|
937
|
+
open: isModalOpen,
|
|
938
|
+
onOpenChange: toggleModal,
|
|
963
939
|
contentTypeUid,
|
|
964
|
-
entryId
|
|
940
|
+
entryId
|
|
965
941
|
}
|
|
966
942
|
)
|
|
967
943
|
]
|
|
968
944
|
}
|
|
969
945
|
);
|
|
970
946
|
};
|
|
947
|
+
const pluginId = "content-releases";
|
|
971
948
|
const prefixPluginTranslations = (trad, pluginId2) => {
|
|
972
949
|
if (!pluginId2) {
|
|
973
950
|
throw new TypeError("pluginId can't be empty");
|
|
@@ -980,6 +957,7 @@ const prefixPluginTranslations = (trad, pluginId2) => {
|
|
|
980
957
|
const admin = {
|
|
981
958
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
982
959
|
register(app) {
|
|
960
|
+
app.createHook("ContentReleases/pages/ReleaseDetails/add-locale-in-releases");
|
|
983
961
|
if (window.strapi.features.isEnabled("cms-content-releases")) {
|
|
984
962
|
app.addMenuLink({
|
|
985
963
|
to: `plugins/${pluginId}`,
|
|
@@ -988,14 +966,11 @@ const admin = {
|
|
|
988
966
|
id: `${pluginId}.plugin.name`,
|
|
989
967
|
defaultMessage: "Releases"
|
|
990
968
|
},
|
|
991
|
-
Component: () => Promise.resolve().then(() => require("./App-
|
|
992
|
-
permissions: PERMISSIONS.main
|
|
993
|
-
|
|
994
|
-
app.addMiddlewares([() => releaseApi.middleware]);
|
|
995
|
-
app.addReducers({
|
|
996
|
-
[releaseApi.reducerPath]: releaseApi.reducer
|
|
969
|
+
Component: () => Promise.resolve().then(() => require("./App-CEwOQkKT.js")).then((mod) => ({ default: mod.App })),
|
|
970
|
+
permissions: PERMISSIONS.main,
|
|
971
|
+
position: 2
|
|
997
972
|
});
|
|
998
|
-
app.
|
|
973
|
+
app.getPlugin("content-manager").injectComponent("editView", "right-links", {
|
|
999
974
|
name: `${pluginId}-link`,
|
|
1000
975
|
Component: CMReleasesContainer
|
|
1001
976
|
});
|
|
@@ -1007,18 +982,20 @@ const admin = {
|
|
|
1007
982
|
id: `${pluginId}.plugin.name`,
|
|
1008
983
|
defaultMessage: "Releases"
|
|
1009
984
|
},
|
|
985
|
+
permissions: [],
|
|
1010
986
|
async Component() {
|
|
1011
|
-
const { PurchaseContentReleases } = await Promise.resolve().then(() => require("./PurchaseContentReleases-
|
|
1012
|
-
return PurchaseContentReleases;
|
|
987
|
+
const { PurchaseContentReleases } = await Promise.resolve().then(() => require("./PurchaseContentReleases-Be3acS2L.js"));
|
|
988
|
+
return { default: PurchaseContentReleases };
|
|
1013
989
|
},
|
|
1014
|
-
|
|
990
|
+
licenseOnly: true,
|
|
991
|
+
position: 2
|
|
1015
992
|
});
|
|
1016
993
|
}
|
|
1017
994
|
},
|
|
1018
995
|
async registerTrads({ locales }) {
|
|
1019
996
|
const importedTrads = await Promise.all(
|
|
1020
997
|
locales.map((locale) => {
|
|
1021
|
-
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("./en-
|
|
998
|
+
return __variableDynamicImportRuntimeHelper(/* @__PURE__ */ Object.assign({ "./translations/en.json": () => Promise.resolve().then(() => require("./en-DtFJ5ViE.js")) }), `./translations/${locale}.json`).then(({ default: data }) => {
|
|
1022
999
|
return {
|
|
1023
1000
|
data: prefixPluginTranslations(data, "content-releases"),
|
|
1024
1001
|
locale
|
|
@@ -1039,7 +1016,6 @@ exports.ReleaseActionMenu = ReleaseActionMenu;
|
|
|
1039
1016
|
exports.ReleaseActionOptions = ReleaseActionOptions;
|
|
1040
1017
|
exports.admin = admin;
|
|
1041
1018
|
exports.getTimezoneOffset = getTimezoneOffset;
|
|
1042
|
-
exports.isAxiosError = isAxiosError;
|
|
1043
1019
|
exports.pluginId = pluginId;
|
|
1044
1020
|
exports.releaseApi = releaseApi;
|
|
1045
1021
|
exports.useCreateReleaseMutation = useCreateReleaseMutation;
|
|
@@ -1050,4 +1026,4 @@ exports.useGetReleasesQuery = useGetReleasesQuery;
|
|
|
1050
1026
|
exports.usePublishReleaseMutation = usePublishReleaseMutation;
|
|
1051
1027
|
exports.useUpdateReleaseActionMutation = useUpdateReleaseActionMutation;
|
|
1052
1028
|
exports.useUpdateReleaseMutation = useUpdateReleaseMutation;
|
|
1053
|
-
//# sourceMappingURL=index-
|
|
1029
|
+
//# sourceMappingURL=index-BrWv-zV4.js.map
|