@strapi/content-releases 0.0.0-experimental.d00dc50c81bce037c4321a90cc2f790eb3c51acb → 0.0.0-experimental.d23c1d5b0e45dd06ef09977f526c85468be05403
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-gu1aiP6i.mjs → App-Cmn2Mkn7.mjs} +213 -200
- package/dist/_chunks/App-Cmn2Mkn7.mjs.map +1 -0
- package/dist/_chunks/{App-HjWtUYmc.js → App-FVorrIzF.js} +224 -211
- package/dist/_chunks/App-FVorrIzF.js.map +1 -0
- package/dist/_chunks/{PurchaseContentReleases-3tRbmbY3.mjs → PurchaseContentReleases-C8djn9fP.mjs} +1 -1
- package/dist/_chunks/{PurchaseContentReleases-3tRbmbY3.mjs.map → PurchaseContentReleases-C8djn9fP.mjs.map} +1 -1
- package/dist/_chunks/{PurchaseContentReleases-bpIYXOfu.js → PurchaseContentReleases-sD6ADHk2.js} +1 -1
- package/dist/_chunks/{PurchaseContentReleases-bpIYXOfu.js.map → PurchaseContentReleases-sD6ADHk2.js.map} +1 -1
- package/dist/_chunks/{en-ltT1TlKQ.mjs → en-B9Ur3VsE.mjs} +1 -1
- package/dist/_chunks/en-B9Ur3VsE.mjs.map +1 -0
- package/dist/_chunks/{en-HrREghh3.js → en-DtFJ5ViE.js} +1 -1
- package/dist/_chunks/en-DtFJ5ViE.js.map +1 -0
- package/dist/_chunks/{index-ZNwxYN8H.js → index-BfJLth9Z.js} +120 -189
- package/dist/_chunks/index-BfJLth9Z.js.map +1 -0
- package/dist/_chunks/{index-mvj9PSKd.mjs → index-DDohgTaQ.mjs} +125 -194
- package/dist/_chunks/index-DDohgTaQ.mjs.map +1 -0
- package/dist/admin/index.js +1 -15
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +2 -16
- package/dist/admin/index.mjs.map +1 -1
- package/dist/admin/src/components/CMReleasesContainer.d.ts +22 -0
- package/dist/admin/src/components/RelativeTime.d.ts +28 -0
- package/dist/admin/src/components/ReleaseAction.d.ts +3 -0
- package/dist/admin/src/components/ReleaseActionMenu.d.ts +26 -0
- package/dist/admin/src/components/ReleaseActionOptions.d.ts +9 -0
- package/dist/admin/src/components/ReleaseListCell.d.ts +0 -0
- package/dist/admin/src/components/ReleaseModal.d.ts +16 -0
- package/dist/admin/src/constants.d.ts +58 -0
- package/dist/admin/src/index.d.ts +3 -0
- package/dist/admin/src/pages/App.d.ts +1 -0
- package/dist/admin/src/pages/PurchaseContentReleases.d.ts +2 -0
- package/dist/admin/src/pages/ReleaseDetailsPage.d.ts +2 -0
- package/dist/admin/src/pages/ReleasesPage.d.ts +8 -0
- package/dist/admin/src/pages/tests/mockReleaseDetailsPageData.d.ts +181 -0
- package/dist/admin/src/pages/tests/mockReleasesPageData.d.ts +39 -0
- package/dist/admin/src/pluginId.d.ts +1 -0
- package/dist/admin/src/services/axios.d.ts +29 -0
- package/dist/admin/src/services/release.d.ts +429 -0
- package/dist/admin/src/store/hooks.d.ts +7 -0
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +3 -0
- package/dist/admin/src/utils/time.d.ts +1 -0
- package/dist/server/index.js +83 -86
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +84 -86
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/bootstrap.d.ts +5 -0
- package/dist/server/src/bootstrap.d.ts.map +1 -0
- package/dist/server/src/constants.d.ts +12 -0
- package/dist/server/src/constants.d.ts.map +1 -0
- package/dist/server/src/content-types/index.d.ts +99 -0
- package/dist/server/src/content-types/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release/index.d.ts +48 -0
- package/dist/server/src/content-types/release/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release/schema.d.ts +47 -0
- package/dist/server/src/content-types/release/schema.d.ts.map +1 -0
- package/dist/server/src/content-types/release-action/index.d.ts +50 -0
- package/dist/server/src/content-types/release-action/index.d.ts.map +1 -0
- package/dist/server/src/content-types/release-action/schema.d.ts +49 -0
- package/dist/server/src/content-types/release-action/schema.d.ts.map +1 -0
- package/dist/server/src/controllers/index.d.ts +20 -0
- package/dist/server/src/controllers/index.d.ts.map +1 -0
- package/dist/server/src/controllers/release-action.d.ts +10 -0
- package/dist/server/src/controllers/release-action.d.ts.map +1 -0
- package/dist/server/src/controllers/release.d.ts +12 -0
- package/dist/server/src/controllers/release.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/release-action.d.ts +8 -0
- package/dist/server/src/controllers/validation/release-action.d.ts.map +1 -0
- package/dist/server/src/controllers/validation/release.d.ts +2 -0
- package/dist/server/src/controllers/validation/release.d.ts.map +1 -0
- package/dist/server/src/destroy.d.ts +5 -0
- package/dist/server/src/destroy.d.ts.map +1 -0
- package/dist/server/src/index.d.ts +2096 -0
- package/dist/server/src/index.d.ts.map +1 -0
- package/dist/server/src/migrations/index.d.ts +13 -0
- package/dist/server/src/migrations/index.d.ts.map +1 -0
- package/dist/server/src/register.d.ts +5 -0
- package/dist/server/src/register.d.ts.map +1 -0
- package/dist/server/src/routes/index.d.ts +35 -0
- package/dist/server/src/routes/index.d.ts.map +1 -0
- package/dist/server/src/routes/release-action.d.ts +18 -0
- package/dist/server/src/routes/release-action.d.ts.map +1 -0
- package/dist/server/src/routes/release.d.ts +18 -0
- package/dist/server/src/routes/release.d.ts.map +1 -0
- package/dist/server/src/services/index.d.ts +1826 -0
- package/dist/server/src/services/index.d.ts.map +1 -0
- package/dist/server/src/services/release.d.ts +66 -0
- package/dist/server/src/services/release.d.ts.map +1 -0
- package/dist/server/src/services/scheduling.d.ts +18 -0
- package/dist/server/src/services/scheduling.d.ts.map +1 -0
- package/dist/server/src/services/validation.d.ts +18 -0
- package/dist/server/src/services/validation.d.ts.map +1 -0
- package/dist/server/src/utils/index.d.ts +14 -0
- package/dist/server/src/utils/index.d.ts.map +1 -0
- package/dist/shared/contracts/release-actions.d.ts +131 -0
- package/dist/shared/contracts/release-actions.d.ts.map +1 -0
- package/dist/shared/contracts/releases.d.ts +182 -0
- package/dist/shared/contracts/releases.d.ts.map +1 -0
- package/dist/shared/types.d.ts +24 -0
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/validation-schemas.d.ts +2 -0
- package/dist/shared/validation-schemas.d.ts.map +1 -0
- package/package.json +26 -31
- package/dist/_chunks/App-HjWtUYmc.js.map +0 -1
- package/dist/_chunks/App-gu1aiP6i.mjs.map +0 -1
- package/dist/_chunks/en-HrREghh3.js.map +0 -1
- package/dist/_chunks/en-ltT1TlKQ.mjs.map +0 -1
- package/dist/_chunks/index-ZNwxYN8H.js.map +0 -1
- package/dist/_chunks/index-mvj9PSKd.mjs.map +0 -1
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
|
-
const
|
|
4
|
+
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
5
5
|
const reactRouterDom = require("react-router-dom");
|
|
6
|
-
const index = require("./index-
|
|
6
|
+
const index = require("./index-BfJLth9Z.js");
|
|
7
7
|
const React = require("react");
|
|
8
|
-
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
9
8
|
const designSystem = require("@strapi/design-system");
|
|
10
9
|
const v2 = require("@strapi/design-system/v2");
|
|
11
10
|
const icons = require("@strapi/icons");
|
|
11
|
+
const strapiAdmin$1 = require("@strapi/plugin-content-manager/strapi-admin");
|
|
12
12
|
const format = require("date-fns/format");
|
|
13
13
|
const dateFnsTz = require("date-fns-tz");
|
|
14
14
|
const reactIntl = require("react-intl");
|
|
@@ -16,10 +16,8 @@ const styled = require("styled-components");
|
|
|
16
16
|
const dateFns = require("date-fns");
|
|
17
17
|
const formik = require("formik");
|
|
18
18
|
const yup = require("yup");
|
|
19
|
-
require("
|
|
20
|
-
require("
|
|
21
|
-
require("@reduxjs/toolkit/query/react");
|
|
22
|
-
require("react-redux");
|
|
19
|
+
const reactRedux = require("react-redux");
|
|
20
|
+
const ee = require("@strapi/admin/strapi-admin/ee");
|
|
23
21
|
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
24
22
|
function _interopNamespace(e) {
|
|
25
23
|
if (e && e.__esModule)
|
|
@@ -43,6 +41,36 @@ const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
|
|
43
41
|
const format__default = /* @__PURE__ */ _interopDefault(format);
|
|
44
42
|
const styled__default = /* @__PURE__ */ _interopDefault(styled);
|
|
45
43
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
|
44
|
+
const intervals = ["years", "months", "days", "hours", "minutes", "seconds"];
|
|
45
|
+
const RelativeTime$1 = React__namespace.forwardRef(
|
|
46
|
+
({ timestamp, customIntervals = [], ...restProps }, forwardedRef) => {
|
|
47
|
+
const { formatRelativeTime, formatDate, formatTime } = reactIntl.useIntl();
|
|
48
|
+
const interval = dateFns.intervalToDuration({
|
|
49
|
+
start: timestamp,
|
|
50
|
+
end: Date.now()
|
|
51
|
+
// see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.
|
|
52
|
+
});
|
|
53
|
+
const unit = intervals.find((intervalUnit) => {
|
|
54
|
+
return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
|
|
55
|
+
});
|
|
56
|
+
const relativeTime = dateFns.isPast(timestamp) ? -interval[unit] : interval[unit];
|
|
57
|
+
const customInterval = customIntervals.find(
|
|
58
|
+
(custom) => interval[custom.unit] < custom.threshold
|
|
59
|
+
);
|
|
60
|
+
const displayText = customInterval ? customInterval.text : formatRelativeTime(relativeTime, unit, { numeric: "auto" });
|
|
61
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
62
|
+
"time",
|
|
63
|
+
{
|
|
64
|
+
ref: forwardedRef,
|
|
65
|
+
dateTime: timestamp.toISOString(),
|
|
66
|
+
role: "time",
|
|
67
|
+
title: `${formatDate(timestamp)} ${formatTime(timestamp)}`,
|
|
68
|
+
...restProps,
|
|
69
|
+
children: displayText
|
|
70
|
+
}
|
|
71
|
+
);
|
|
72
|
+
}
|
|
73
|
+
);
|
|
46
74
|
const RELEASE_SCHEMA = yup__namespace.object().shape({
|
|
47
75
|
name: yup__namespace.string().trim().required(),
|
|
48
76
|
scheduledAt: yup__namespace.string().nullable(),
|
|
@@ -280,10 +308,11 @@ const TimezoneComponent = ({ timezoneOptions }) => {
|
|
|
280
308
|
}
|
|
281
309
|
);
|
|
282
310
|
};
|
|
311
|
+
const useTypedDispatch = reactRedux.useDispatch;
|
|
283
312
|
const LinkCard = styled__default.default(v2.Link)`
|
|
284
313
|
display: block;
|
|
285
314
|
`;
|
|
286
|
-
const RelativeTime = styled__default.default(
|
|
315
|
+
const RelativeTime = styled__default.default(RelativeTime$1)`
|
|
287
316
|
display: inline-block;
|
|
288
317
|
&::first-letter {
|
|
289
318
|
text-transform: uppercase;
|
|
@@ -317,7 +346,7 @@ const getBadgeProps = (status) => {
|
|
|
317
346
|
const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
|
|
318
347
|
const { formatMessage } = reactIntl.useIntl();
|
|
319
348
|
if (isError) {
|
|
320
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
349
|
+
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Error, {});
|
|
321
350
|
}
|
|
322
351
|
if (releases?.length === 0) {
|
|
323
352
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -382,23 +411,26 @@ const ReleasesPage = () => {
|
|
|
382
411
|
const tabRef = React__namespace.useRef(null);
|
|
383
412
|
const location = reactRouterDom.useLocation();
|
|
384
413
|
const [releaseModalShown, setReleaseModalShown] = React__namespace.useState(false);
|
|
385
|
-
const toggleNotification =
|
|
414
|
+
const { toggleNotification } = strapiAdmin.useNotification();
|
|
386
415
|
const { formatMessage } = reactIntl.useIntl();
|
|
387
|
-
const
|
|
388
|
-
const { formatAPIError } =
|
|
389
|
-
const [{ query }, setQuery] =
|
|
416
|
+
const navigate = reactRouterDom.useNavigate();
|
|
417
|
+
const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
418
|
+
const [{ query }, setQuery] = strapiAdmin.useQueryParams();
|
|
390
419
|
const response = index.useGetReleasesQuery(query);
|
|
391
420
|
const [createRelease, { isLoading: isSubmittingForm }] = index.useCreateReleaseMutation();
|
|
392
|
-
const { getFeature } =
|
|
421
|
+
const { getFeature } = ee.useLicenseLimits();
|
|
393
422
|
const { maximumReleases = 3 } = getFeature("cms-content-releases");
|
|
394
|
-
const { trackUsage } =
|
|
423
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
|
424
|
+
const {
|
|
425
|
+
allowedActions: { canCreate }
|
|
426
|
+
} = strapiAdmin.useRBAC(index.PERMISSIONS);
|
|
395
427
|
const { isLoading, isSuccess, isError } = response;
|
|
396
428
|
const activeTab = response?.currentData?.meta?.activeTab || "pending";
|
|
397
429
|
const activeTabIndex = ["pending", "done"].indexOf(activeTab);
|
|
398
430
|
React__namespace.useEffect(() => {
|
|
399
431
|
if (location?.state?.errors) {
|
|
400
432
|
toggleNotification({
|
|
401
|
-
type: "
|
|
433
|
+
type: "danger",
|
|
402
434
|
title: formatMessage({
|
|
403
435
|
id: "content-releases.pages.Releases.notification.error.title",
|
|
404
436
|
defaultMessage: "Your request could not be processed."
|
|
@@ -408,9 +440,9 @@ const ReleasesPage = () => {
|
|
|
408
440
|
defaultMessage: "Please try again or open another release."
|
|
409
441
|
})
|
|
410
442
|
});
|
|
411
|
-
|
|
443
|
+
navigate("", { replace: true, state: null });
|
|
412
444
|
}
|
|
413
|
-
}, [formatMessage, location?.state?.errors,
|
|
445
|
+
}, [formatMessage, location?.state?.errors, navigate, toggleNotification]);
|
|
414
446
|
React__namespace.useEffect(() => {
|
|
415
447
|
if (tabRef.current) {
|
|
416
448
|
tabRef.current._handlers.setSelectedTabIndex(activeTabIndex);
|
|
@@ -420,7 +452,7 @@ const ReleasesPage = () => {
|
|
|
420
452
|
setReleaseModalShown((prev) => !prev);
|
|
421
453
|
};
|
|
422
454
|
if (isLoading) {
|
|
423
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
455
|
+
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
|
|
424
456
|
}
|
|
425
457
|
const totalPendingReleases = isSuccess && response.currentData?.meta?.pendingReleasesCount || 0;
|
|
426
458
|
const hasReachedMaximumPendingReleases = totalPendingReleases >= maximumReleases;
|
|
@@ -451,15 +483,15 @@ const ReleasesPage = () => {
|
|
|
451
483
|
})
|
|
452
484
|
});
|
|
453
485
|
trackUsage("didCreateRelease");
|
|
454
|
-
|
|
486
|
+
navigate(response2.data.data.id.toString());
|
|
455
487
|
} else if (index.isAxiosError(response2.error)) {
|
|
456
488
|
toggleNotification({
|
|
457
|
-
type: "
|
|
489
|
+
type: "danger",
|
|
458
490
|
message: formatAPIError(response2.error)
|
|
459
491
|
});
|
|
460
492
|
} else {
|
|
461
493
|
toggleNotification({
|
|
462
|
-
type: "
|
|
494
|
+
type: "danger",
|
|
463
495
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
464
496
|
});
|
|
465
497
|
}
|
|
@@ -476,7 +508,7 @@ const ReleasesPage = () => {
|
|
|
476
508
|
id: "content-releases.pages.Releases.header-subtitle",
|
|
477
509
|
defaultMessage: "Create and manage content updates"
|
|
478
510
|
}),
|
|
479
|
-
primaryAction:
|
|
511
|
+
primaryAction: canCreate ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
480
512
|
designSystem.Button,
|
|
481
513
|
{
|
|
482
514
|
startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Plus, {}),
|
|
@@ -487,7 +519,7 @@ const ReleasesPage = () => {
|
|
|
487
519
|
defaultMessage: "New release"
|
|
488
520
|
})
|
|
489
521
|
}
|
|
490
|
-
)
|
|
522
|
+
) : null
|
|
491
523
|
}
|
|
492
524
|
),
|
|
493
525
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -566,23 +598,17 @@ const ReleasesPage = () => {
|
|
|
566
598
|
]
|
|
567
599
|
}
|
|
568
600
|
),
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
pagination: {
|
|
581
|
-
pageCount: response?.currentData?.meta?.pagination?.pageCount || 0
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
)
|
|
585
|
-
] }) : null
|
|
601
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
602
|
+
strapiAdmin.Pagination.Root,
|
|
603
|
+
{
|
|
604
|
+
...response?.currentData?.meta?.pagination,
|
|
605
|
+
defaultPageSize: response?.currentData?.meta?.pagination?.pageSize,
|
|
606
|
+
children: [
|
|
607
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Pagination.PageSize, { options: ["8", "16", "32", "64"] }),
|
|
608
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Pagination.Links, {})
|
|
609
|
+
]
|
|
610
|
+
}
|
|
611
|
+
)
|
|
586
612
|
] }) }),
|
|
587
613
|
releaseModalShown && /* @__PURE__ */ jsxRuntime.jsx(
|
|
588
614
|
ReleaseModal,
|
|
@@ -630,14 +656,18 @@ const TrashIcon = styled__default.default(icons.Trash)`
|
|
|
630
656
|
const TypographyMaxWidth = styled__default.default(designSystem.Typography)`
|
|
631
657
|
max-width: 300px;
|
|
632
658
|
`;
|
|
633
|
-
const EntryValidationText = ({ action, schema,
|
|
659
|
+
const EntryValidationText = ({ action, schema, entry }) => {
|
|
634
660
|
const { formatMessage } = reactIntl.useIntl();
|
|
635
|
-
const { validate } = strapiAdmin.unstable_useDocument(
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
|
|
639
|
-
|
|
640
|
-
|
|
661
|
+
const { validate } = strapiAdmin$1.unstable_useDocument(
|
|
662
|
+
{
|
|
663
|
+
collectionType: schema?.kind ?? "",
|
|
664
|
+
model: schema?.uid ?? ""
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
skip: !schema
|
|
668
|
+
}
|
|
669
|
+
);
|
|
670
|
+
const errors = validate(entry) ?? {};
|
|
641
671
|
if (Object.keys(errors).length > 0) {
|
|
642
672
|
const validationErrorsMessages = Object.entries(errors).map(
|
|
643
673
|
([key, value]) => formatMessage(
|
|
@@ -685,18 +715,22 @@ const ReleaseDetailsLayout = ({
|
|
|
685
715
|
isLoading: isLoadingDetails,
|
|
686
716
|
isError,
|
|
687
717
|
error
|
|
688
|
-
} = index.useGetReleaseQuery(
|
|
718
|
+
} = index.useGetReleaseQuery(
|
|
719
|
+
{ id: releaseId },
|
|
720
|
+
{
|
|
721
|
+
skip: !releaseId
|
|
722
|
+
}
|
|
723
|
+
);
|
|
689
724
|
const [publishRelease, { isLoading: isPublishing }] = index.usePublishReleaseMutation();
|
|
690
|
-
const toggleNotification =
|
|
691
|
-
const { formatAPIError } =
|
|
692
|
-
const {
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
const
|
|
696
|
-
const { trackUsage } = helperPlugin.useTracking();
|
|
725
|
+
const { toggleNotification } = strapiAdmin.useNotification();
|
|
726
|
+
const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
727
|
+
const { allowedActions } = strapiAdmin.useRBAC(index.PERMISSIONS);
|
|
728
|
+
const { canUpdate, canDelete, canPublish } = allowedActions;
|
|
729
|
+
const dispatch = useTypedDispatch();
|
|
730
|
+
const { trackUsage } = strapiAdmin.useTracking();
|
|
697
731
|
const release = data?.data;
|
|
698
|
-
const handlePublishRelease = async () => {
|
|
699
|
-
const response = await publishRelease({ id
|
|
732
|
+
const handlePublishRelease = (id) => async () => {
|
|
733
|
+
const response = await publishRelease({ id });
|
|
700
734
|
if ("data" in response) {
|
|
701
735
|
toggleNotification({
|
|
702
736
|
type: "success",
|
|
@@ -713,12 +747,12 @@ const ReleaseDetailsLayout = ({
|
|
|
713
747
|
});
|
|
714
748
|
} else if (index.isAxiosError(response.error)) {
|
|
715
749
|
toggleNotification({
|
|
716
|
-
type: "
|
|
750
|
+
type: "danger",
|
|
717
751
|
message: formatAPIError(response.error)
|
|
718
752
|
});
|
|
719
753
|
} else {
|
|
720
754
|
toggleNotification({
|
|
721
|
-
type: "
|
|
755
|
+
type: "danger",
|
|
722
756
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
723
757
|
});
|
|
724
758
|
}
|
|
@@ -744,21 +778,19 @@ const ReleaseDetailsLayout = ({
|
|
|
744
778
|
return release.createdBy.email;
|
|
745
779
|
};
|
|
746
780
|
if (isLoadingDetails) {
|
|
747
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
781
|
+
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
|
|
748
782
|
}
|
|
749
783
|
if (isError || !release) {
|
|
750
784
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
751
|
-
reactRouterDom.
|
|
785
|
+
reactRouterDom.Navigate,
|
|
752
786
|
{
|
|
753
|
-
to:
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
|
|
758
|
-
|
|
759
|
-
|
|
760
|
-
]
|
|
761
|
-
}
|
|
787
|
+
to: "..",
|
|
788
|
+
state: {
|
|
789
|
+
errors: [
|
|
790
|
+
{
|
|
791
|
+
code: error?.code
|
|
792
|
+
}
|
|
793
|
+
]
|
|
762
794
|
}
|
|
763
795
|
}
|
|
764
796
|
);
|
|
@@ -802,10 +834,7 @@ const ReleaseDetailsLayout = ({
|
|
|
802
834
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral600", variant: "epsilon", children: numberOfEntriesText + (isScheduled ? ` - ${scheduledText}` : "") }),
|
|
803
835
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { ...getBadgeProps(release.status), children: release.status })
|
|
804
836
|
] }),
|
|
805
|
-
navigationAction: /* @__PURE__ */ jsxRuntime.jsx(
|
|
806
|
-
id: "global.back",
|
|
807
|
-
defaultMessage: "Back"
|
|
808
|
-
}) }),
|
|
837
|
+
navigationAction: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.BackButton, {}),
|
|
809
838
|
primaryAction: !release.releasedAt && /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, children: [
|
|
810
839
|
/* @__PURE__ */ jsxRuntime.jsxs(v2.Menu.Root, { children: [
|
|
811
840
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -871,7 +900,7 @@ const ReleaseDetailsLayout = ({
|
|
|
871
900
|
defaultMessage: "Created"
|
|
872
901
|
}) }),
|
|
873
902
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Typography, { variant: "pi", color: "neutral300", children: [
|
|
874
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
903
|
+
/* @__PURE__ */ jsxRuntime.jsx(RelativeTime$1, { timestamp: new Date(release.createdAt) }),
|
|
875
904
|
formatMessage(
|
|
876
905
|
{
|
|
877
906
|
id: "content-releases.header.actions.created.description",
|
|
@@ -889,12 +918,12 @@ const ReleaseDetailsLayout = ({
|
|
|
889
918
|
id: "content-releases.header.actions.refresh",
|
|
890
919
|
defaultMessage: "Refresh"
|
|
891
920
|
}) }),
|
|
892
|
-
|
|
921
|
+
canPublish ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
893
922
|
designSystem.Button,
|
|
894
923
|
{
|
|
895
924
|
size: "S",
|
|
896
925
|
variant: "default",
|
|
897
|
-
onClick: handlePublishRelease,
|
|
926
|
+
onClick: handlePublishRelease(release.id.toString()),
|
|
898
927
|
loading: isPublishing,
|
|
899
928
|
disabled: release.actions.meta.count === 0,
|
|
900
929
|
children: formatMessage({
|
|
@@ -902,7 +931,7 @@ const ReleaseDetailsLayout = ({
|
|
|
902
931
|
defaultMessage: "Publish"
|
|
903
932
|
})
|
|
904
933
|
}
|
|
905
|
-
)
|
|
934
|
+
) : null
|
|
906
935
|
] })
|
|
907
936
|
}
|
|
908
937
|
),
|
|
@@ -929,27 +958,11 @@ const getGroupByOptionLabel = (value) => {
|
|
|
929
958
|
defaultMessage: "Content-Types"
|
|
930
959
|
};
|
|
931
960
|
};
|
|
932
|
-
const
|
|
933
|
-
{
|
|
934
|
-
key: "__name__",
|
|
935
|
-
fieldSchema: { type: "string" },
|
|
936
|
-
metadatas: {
|
|
937
|
-
label: {
|
|
938
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.name",
|
|
939
|
-
defaultMessage: "name"
|
|
940
|
-
},
|
|
941
|
-
searchable: false,
|
|
942
|
-
sortable: false
|
|
943
|
-
},
|
|
944
|
-
name: "name"
|
|
945
|
-
}
|
|
946
|
-
];
|
|
947
|
-
const ReleaseDetailsBody = () => {
|
|
961
|
+
const ReleaseDetailsBody = ({ releaseId }) => {
|
|
948
962
|
const { formatMessage } = reactIntl.useIntl();
|
|
949
|
-
const {
|
|
950
|
-
const
|
|
951
|
-
const
|
|
952
|
-
const { formatAPIError } = helperPlugin.useAPIErrorHandler();
|
|
963
|
+
const [{ query }, setQuery] = strapiAdmin.useQueryParams();
|
|
964
|
+
const { toggleNotification } = strapiAdmin.useNotification();
|
|
965
|
+
const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
953
966
|
const {
|
|
954
967
|
data: releaseData,
|
|
955
968
|
isLoading: isReleaseLoading,
|
|
@@ -958,15 +971,18 @@ const ReleaseDetailsBody = () => {
|
|
|
958
971
|
} = index.useGetReleaseQuery({ id: releaseId });
|
|
959
972
|
const {
|
|
960
973
|
allowedActions: { canUpdate }
|
|
961
|
-
} =
|
|
962
|
-
const
|
|
963
|
-
const {
|
|
964
|
-
displayedHeaders,
|
|
965
|
-
hasI18nEnabled
|
|
966
|
-
} = runHookWaterfall(
|
|
974
|
+
} = strapiAdmin.useRBAC(index.PERMISSIONS);
|
|
975
|
+
const runHookWaterfall = strapiAdmin.useStrapiApp("ReleaseDetailsPage", (state) => state.runHookWaterfall);
|
|
976
|
+
const { hasI18nEnabled } = runHookWaterfall(
|
|
967
977
|
"ContentReleases/pages/ReleaseDetails/add-locale-in-releases",
|
|
968
978
|
{
|
|
969
|
-
displayedHeaders:
|
|
979
|
+
displayedHeaders: {
|
|
980
|
+
label: formatMessage({
|
|
981
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.locale",
|
|
982
|
+
defaultMessage: "locale"
|
|
983
|
+
}),
|
|
984
|
+
name: "locale"
|
|
985
|
+
},
|
|
970
986
|
hasI18nEnabled: false
|
|
971
987
|
}
|
|
972
988
|
);
|
|
@@ -1000,19 +1016,19 @@ const ReleaseDetailsBody = () => {
|
|
|
1000
1016
|
if ("error" in response) {
|
|
1001
1017
|
if (index.isAxiosError(response.error)) {
|
|
1002
1018
|
toggleNotification({
|
|
1003
|
-
type: "
|
|
1019
|
+
type: "danger",
|
|
1004
1020
|
message: formatAPIError(response.error)
|
|
1005
1021
|
});
|
|
1006
1022
|
} else {
|
|
1007
1023
|
toggleNotification({
|
|
1008
|
-
type: "
|
|
1024
|
+
type: "danger",
|
|
1009
1025
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
1010
1026
|
});
|
|
1011
1027
|
}
|
|
1012
1028
|
}
|
|
1013
1029
|
};
|
|
1014
1030
|
if (isLoading || isReleaseLoading) {
|
|
1015
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1031
|
+
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {});
|
|
1016
1032
|
}
|
|
1017
1033
|
const releaseActions = data?.data;
|
|
1018
1034
|
const releaseMeta = data?.meta;
|
|
@@ -1031,28 +1047,22 @@ const ReleaseDetailsBody = () => {
|
|
|
1031
1047
|
});
|
|
1032
1048
|
}
|
|
1033
1049
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1034
|
-
reactRouterDom.
|
|
1050
|
+
reactRouterDom.Navigate,
|
|
1035
1051
|
{
|
|
1036
|
-
to:
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
errors: errorsArray
|
|
1040
|
-
}
|
|
1052
|
+
to: "..",
|
|
1053
|
+
state: {
|
|
1054
|
+
errors: errorsArray
|
|
1041
1055
|
}
|
|
1042
1056
|
}
|
|
1043
1057
|
);
|
|
1044
1058
|
}
|
|
1045
1059
|
if (isError || !releaseActions) {
|
|
1046
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1060
|
+
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Error, {});
|
|
1047
1061
|
}
|
|
1048
1062
|
if (Object.keys(releaseActions).length === 0) {
|
|
1049
1063
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1050
|
-
|
|
1064
|
+
designSystem.EmptyStateLayout,
|
|
1051
1065
|
{
|
|
1052
|
-
content: {
|
|
1053
|
-
id: "content-releases.pages.Details.tab.emptyEntries",
|
|
1054
|
-
defaultMessage: "This release is empty. Open the Content Manager, select an entry and add it to the release."
|
|
1055
|
-
},
|
|
1056
1066
|
action: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1057
1067
|
v2.LinkButton,
|
|
1058
1068
|
{
|
|
@@ -1067,19 +1077,59 @@ const ReleaseDetailsBody = () => {
|
|
|
1067
1077
|
defaultMessage: "Open the Content Manager"
|
|
1068
1078
|
})
|
|
1069
1079
|
}
|
|
1070
|
-
)
|
|
1080
|
+
),
|
|
1081
|
+
icon: /* @__PURE__ */ jsxRuntime.jsx(icons.EmptyDocuments, { width: "10rem" }),
|
|
1082
|
+
content: formatMessage({
|
|
1083
|
+
id: "content-releases.pages.Details.tab.emptyEntries",
|
|
1084
|
+
defaultMessage: "This release is empty. Open the Content Manager, select an entry and add it to the release."
|
|
1085
|
+
})
|
|
1071
1086
|
}
|
|
1072
1087
|
) });
|
|
1073
1088
|
}
|
|
1089
|
+
const groupByLabel = formatMessage({
|
|
1090
|
+
id: "content-releases.pages.ReleaseDetails.groupBy.aria-label",
|
|
1091
|
+
defaultMessage: "Group by"
|
|
1092
|
+
});
|
|
1093
|
+
const headers = [
|
|
1094
|
+
// ...displayedHeaders,
|
|
1095
|
+
{
|
|
1096
|
+
label: formatMessage({
|
|
1097
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.name",
|
|
1098
|
+
defaultMessage: "name"
|
|
1099
|
+
}),
|
|
1100
|
+
name: "name"
|
|
1101
|
+
},
|
|
1102
|
+
{
|
|
1103
|
+
label: formatMessage({
|
|
1104
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.content-type",
|
|
1105
|
+
defaultMessage: "content-type"
|
|
1106
|
+
}),
|
|
1107
|
+
name: "content-type"
|
|
1108
|
+
},
|
|
1109
|
+
{
|
|
1110
|
+
label: formatMessage({
|
|
1111
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.action",
|
|
1112
|
+
defaultMessage: "action"
|
|
1113
|
+
}),
|
|
1114
|
+
name: "action"
|
|
1115
|
+
},
|
|
1116
|
+
...!release.releasedAt ? [
|
|
1117
|
+
{
|
|
1118
|
+
label: formatMessage({
|
|
1119
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.status",
|
|
1120
|
+
defaultMessage: "status"
|
|
1121
|
+
}),
|
|
1122
|
+
name: "status"
|
|
1123
|
+
}
|
|
1124
|
+
] : []
|
|
1125
|
+
];
|
|
1074
1126
|
const options = hasI18nEnabled ? GROUP_BY_OPTIONS : GROUP_BY_OPTIONS_NO_LOCALE;
|
|
1075
1127
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 8, direction: "column", alignItems: "stretch", children: [
|
|
1076
1128
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1077
1129
|
designSystem.SingleSelect,
|
|
1078
1130
|
{
|
|
1079
|
-
|
|
1080
|
-
|
|
1081
|
-
defaultMessage: "Group by"
|
|
1082
|
-
}),
|
|
1131
|
+
placeholder: groupByLabel,
|
|
1132
|
+
"aria-label": groupByLabel,
|
|
1083
1133
|
customizeContent: (value) => formatMessage(
|
|
1084
1134
|
{
|
|
1085
1135
|
id: `content-releases.pages.ReleaseDetails.groupBy.label`,
|
|
@@ -1097,62 +1147,18 @@ const ReleaseDetailsBody = () => {
|
|
|
1097
1147
|
Object.keys(releaseActions).map((key) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 4, direction: "column", alignItems: "stretch", children: [
|
|
1098
1148
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { role: "separator", "aria-label": key, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { children: key }) }),
|
|
1099
1149
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1100
|
-
|
|
1150
|
+
strapiAdmin.Table.Root,
|
|
1101
1151
|
{
|
|
1102
1152
|
rows: releaseActions[key].map((item) => ({
|
|
1103
1153
|
...item,
|
|
1104
1154
|
id: Number(item.entry.id)
|
|
1105
1155
|
})),
|
|
1106
|
-
|
|
1107
|
-
isLoading,
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1111
|
-
|
|
1112
|
-
helperPlugin.Table.HeaderCell,
|
|
1113
|
-
{
|
|
1114
|
-
fieldSchemaType: fieldSchema.type,
|
|
1115
|
-
label: formatMessage(metadatas.label),
|
|
1116
|
-
name
|
|
1117
|
-
},
|
|
1118
|
-
key2
|
|
1119
|
-
)),
|
|
1120
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1121
|
-
helperPlugin.Table.HeaderCell,
|
|
1122
|
-
{
|
|
1123
|
-
fieldSchemaType: "string",
|
|
1124
|
-
label: formatMessage({
|
|
1125
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.content-type",
|
|
1126
|
-
defaultMessage: "content-type"
|
|
1127
|
-
}),
|
|
1128
|
-
name: "content-type"
|
|
1129
|
-
}
|
|
1130
|
-
),
|
|
1131
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1132
|
-
helperPlugin.Table.HeaderCell,
|
|
1133
|
-
{
|
|
1134
|
-
fieldSchemaType: "string",
|
|
1135
|
-
label: formatMessage({
|
|
1136
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.action",
|
|
1137
|
-
defaultMessage: "action"
|
|
1138
|
-
}),
|
|
1139
|
-
name: "action"
|
|
1140
|
-
}
|
|
1141
|
-
),
|
|
1142
|
-
!release.releasedAt && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1143
|
-
helperPlugin.Table.HeaderCell,
|
|
1144
|
-
{
|
|
1145
|
-
fieldSchemaType: "string",
|
|
1146
|
-
label: formatMessage({
|
|
1147
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.status",
|
|
1148
|
-
defaultMessage: "status"
|
|
1149
|
-
}),
|
|
1150
|
-
name: "status"
|
|
1151
|
-
}
|
|
1152
|
-
)
|
|
1153
|
-
] }),
|
|
1154
|
-
/* @__PURE__ */ jsxRuntime.jsx(helperPlugin.Table.LoadingBody, {}),
|
|
1155
|
-
/* @__PURE__ */ jsxRuntime.jsx(helperPlugin.Table.Body, { children: releaseActions[key].map(
|
|
1156
|
+
headers,
|
|
1157
|
+
isLoading: isLoading || isFetching,
|
|
1158
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(strapiAdmin.Table.Content, { children: [
|
|
1159
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Head, { children: headers.map((header) => /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.HeaderCell, { ...header }, header.name)) }),
|
|
1160
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Loading, {}),
|
|
1161
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Table.Body, { children: releaseActions[key].map(
|
|
1156
1162
|
({ id, contentType, locale, type, entry }, actionIndex) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
|
|
1157
1163
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "25%", maxWidth: "200px", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, children: `${contentType.mainFieldValue || entry.id}` }) }),
|
|
1158
1164
|
hasI18nEnabled && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "10%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: `${locale?.name ? locale.name : "-"}` }) }),
|
|
@@ -1209,34 +1215,39 @@ const ReleaseDetailsBody = () => {
|
|
|
1209
1215
|
}
|
|
1210
1216
|
)
|
|
1211
1217
|
] }, `releases-group-${key}`)),
|
|
1212
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1213
|
-
|
|
1214
|
-
|
|
1215
|
-
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
|
|
1219
|
-
}
|
|
1220
|
-
|
|
1221
|
-
|
|
1222
|
-
|
|
1218
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1219
|
+
strapiAdmin.Pagination.Root,
|
|
1220
|
+
{
|
|
1221
|
+
...releaseMeta?.pagination,
|
|
1222
|
+
defaultPageSize: releaseMeta?.pagination?.pageSize,
|
|
1223
|
+
children: [
|
|
1224
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Pagination.PageSize, {}),
|
|
1225
|
+
/* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Pagination.Links, {})
|
|
1226
|
+
]
|
|
1227
|
+
}
|
|
1228
|
+
)
|
|
1223
1229
|
] }) });
|
|
1224
1230
|
};
|
|
1225
1231
|
const ReleaseDetailsPage = () => {
|
|
1226
1232
|
const { formatMessage } = reactIntl.useIntl();
|
|
1227
1233
|
const { releaseId } = reactRouterDom.useParams();
|
|
1228
|
-
const toggleNotification =
|
|
1229
|
-
const { formatAPIError } =
|
|
1230
|
-
const
|
|
1234
|
+
const { toggleNotification } = strapiAdmin.useNotification();
|
|
1235
|
+
const { formatAPIError } = strapiAdmin.useAPIErrorHandler();
|
|
1236
|
+
const navigate = reactRouterDom.useNavigate();
|
|
1231
1237
|
const [releaseModalShown, setReleaseModalShown] = React__namespace.useState(false);
|
|
1232
1238
|
const [showWarningSubmit, setWarningSubmit] = React__namespace.useState(false);
|
|
1233
1239
|
const {
|
|
1234
1240
|
isLoading: isLoadingDetails,
|
|
1235
1241
|
data,
|
|
1236
1242
|
isSuccess: isSuccessDetails
|
|
1237
|
-
} = index.useGetReleaseQuery(
|
|
1243
|
+
} = index.useGetReleaseQuery(
|
|
1244
|
+
{ id: releaseId },
|
|
1245
|
+
{
|
|
1246
|
+
skip: !releaseId
|
|
1247
|
+
}
|
|
1248
|
+
);
|
|
1238
1249
|
const [updateRelease, { isLoading: isSubmittingForm }] = index.useUpdateReleaseMutation();
|
|
1239
|
-
const [deleteRelease
|
|
1250
|
+
const [deleteRelease] = index.useDeleteReleaseMutation();
|
|
1240
1251
|
const toggleEditReleaseModal = () => {
|
|
1241
1252
|
setReleaseModalShown((prev) => !prev);
|
|
1242
1253
|
};
|
|
@@ -1247,10 +1258,13 @@ const ReleaseDetailsPage = () => {
|
|
|
1247
1258
|
{
|
|
1248
1259
|
toggleEditReleaseModal,
|
|
1249
1260
|
toggleWarningSubmit,
|
|
1250
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1261
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Loading, {})
|
|
1251
1262
|
}
|
|
1252
1263
|
);
|
|
1253
1264
|
}
|
|
1265
|
+
if (!releaseId) {
|
|
1266
|
+
return /* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Navigate, { to: ".." });
|
|
1267
|
+
}
|
|
1254
1268
|
const releaseData = isSuccessDetails && data?.data || null;
|
|
1255
1269
|
const title = releaseData?.name || "";
|
|
1256
1270
|
const timezone = releaseData?.timezone ?? null;
|
|
@@ -1275,12 +1289,12 @@ const ReleaseDetailsPage = () => {
|
|
|
1275
1289
|
toggleEditReleaseModal();
|
|
1276
1290
|
} else if (index.isAxiosError(response.error)) {
|
|
1277
1291
|
toggleNotification({
|
|
1278
|
-
type: "
|
|
1292
|
+
type: "danger",
|
|
1279
1293
|
message: formatAPIError(response.error)
|
|
1280
1294
|
});
|
|
1281
1295
|
} else {
|
|
1282
1296
|
toggleNotification({
|
|
1283
|
-
type: "
|
|
1297
|
+
type: "danger",
|
|
1284
1298
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
1285
1299
|
});
|
|
1286
1300
|
}
|
|
@@ -1290,15 +1304,15 @@ const ReleaseDetailsPage = () => {
|
|
|
1290
1304
|
id: releaseId
|
|
1291
1305
|
});
|
|
1292
1306
|
if ("data" in response) {
|
|
1293
|
-
|
|
1307
|
+
navigate("..");
|
|
1294
1308
|
} else if (index.isAxiosError(response.error)) {
|
|
1295
1309
|
toggleNotification({
|
|
1296
|
-
type: "
|
|
1310
|
+
type: "danger",
|
|
1297
1311
|
message: formatAPIError(response.error)
|
|
1298
1312
|
});
|
|
1299
1313
|
} else {
|
|
1300
1314
|
toggleNotification({
|
|
1301
|
-
type: "
|
|
1315
|
+
type: "danger",
|
|
1302
1316
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
1303
1317
|
});
|
|
1304
1318
|
}
|
|
@@ -1309,7 +1323,7 @@ const ReleaseDetailsPage = () => {
|
|
|
1309
1323
|
toggleEditReleaseModal,
|
|
1310
1324
|
toggleWarningSubmit,
|
|
1311
1325
|
children: [
|
|
1312
|
-
/* @__PURE__ */ jsxRuntime.jsx(ReleaseDetailsBody, {}),
|
|
1326
|
+
/* @__PURE__ */ jsxRuntime.jsx(ReleaseDetailsBody, { releaseId }),
|
|
1313
1327
|
releaseModalShown && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1314
1328
|
ReleaseModal,
|
|
1315
1329
|
{
|
|
@@ -1327,16 +1341,15 @@ const ReleaseDetailsPage = () => {
|
|
|
1327
1341
|
}
|
|
1328
1342
|
),
|
|
1329
1343
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1330
|
-
|
|
1344
|
+
strapiAdmin.ConfirmDialog,
|
|
1331
1345
|
{
|
|
1332
|
-
|
|
1346
|
+
isOpen: showWarningSubmit,
|
|
1347
|
+
onClose: toggleWarningSubmit,
|
|
1348
|
+
onConfirm: handleDeleteRelease,
|
|
1349
|
+
children: formatMessage({
|
|
1333
1350
|
id: "content-releases.dialog.confirmation-message",
|
|
1334
1351
|
defaultMessage: "Are you sure you want to delete this release?"
|
|
1335
|
-
}
|
|
1336
|
-
isOpen: showWarningSubmit,
|
|
1337
|
-
isConfirmButtonLoading: isDeletingRelease,
|
|
1338
|
-
onToggleDialog: toggleWarningSubmit,
|
|
1339
|
-
onConfirm: handleDeleteRelease
|
|
1352
|
+
})
|
|
1340
1353
|
}
|
|
1341
1354
|
)
|
|
1342
1355
|
]
|
|
@@ -1344,10 +1357,10 @@ const ReleaseDetailsPage = () => {
|
|
|
1344
1357
|
);
|
|
1345
1358
|
};
|
|
1346
1359
|
const App = () => {
|
|
1347
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1348
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1349
|
-
/* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1360
|
+
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions: index.PERMISSIONS.main, children: /* @__PURE__ */ jsxRuntime.jsxs(reactRouterDom.Routes, { children: [
|
|
1361
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Route, { index: true, element: /* @__PURE__ */ jsxRuntime.jsx(ReleasesPage, {}) }),
|
|
1362
|
+
/* @__PURE__ */ jsxRuntime.jsx(reactRouterDom.Route, { path: ":releaseId", element: /* @__PURE__ */ jsxRuntime.jsx(ReleaseDetailsPage, {}) })
|
|
1350
1363
|
] }) });
|
|
1351
1364
|
};
|
|
1352
1365
|
exports.App = App;
|
|
1353
|
-
//# sourceMappingURL=App-
|
|
1366
|
+
//# sourceMappingURL=App-FVorrIzF.js.map
|