@strapi/content-releases 0.0.0-experimental.d362bf200f5f9359a4bbd4a549603de5ee1f04ca → 0.0.0-experimental.d5b46d578a5c055b8dcc66939e1b5d540976fafb
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-1LckaIGY.js → App-OP70yd5M.js} +210 -224
- package/dist/_chunks/App-OP70yd5M.js.map +1 -0
- package/dist/_chunks/{App-X01LBg5V.mjs → App-x6Tjj3HN.mjs} +202 -216
- package/dist/_chunks/App-x6Tjj3HN.mjs.map +1 -0
- package/dist/_chunks/{PurchaseContentReleases-Clm0iACO.mjs → PurchaseContentReleases-3tRbmbY3.mjs} +2 -2
- package/dist/_chunks/PurchaseContentReleases-3tRbmbY3.mjs.map +1 -0
- package/dist/_chunks/{PurchaseContentReleases-YhAPgpG9.js → PurchaseContentReleases-bpIYXOfu.js} +2 -2
- package/dist/_chunks/PurchaseContentReleases-bpIYXOfu.js.map +1 -0
- package/dist/_chunks/{en-faJDuv3q.js → en-3SGjiVyR.js} +10 -2
- package/dist/_chunks/en-3SGjiVyR.js.map +1 -0
- package/dist/_chunks/{en-RdapH-9X.mjs → en-bpHsnU0n.mjs} +10 -2
- package/dist/_chunks/en-bpHsnU0n.mjs.map +1 -0
- package/dist/_chunks/{index-OD9AlD-6.mjs → index-1ejXLtzt.mjs} +273 -103
- package/dist/_chunks/index-1ejXLtzt.mjs.map +1 -0
- package/dist/_chunks/{index-cYWov2wa.js → index-ydocdaZ0.js} +270 -100
- package/dist/_chunks/index-ydocdaZ0.js.map +1 -0
- package/dist/admin/index.js +15 -1
- package/dist/admin/index.js.map +1 -1
- package/dist/admin/index.mjs +16 -2
- package/dist/admin/index.mjs.map +1 -1
- package/dist/server/index.js +62 -60
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +62 -61
- package/dist/server/index.mjs.map +1 -1
- package/package.json +28 -21
- package/dist/_chunks/App-1LckaIGY.js.map +0 -1
- package/dist/_chunks/App-X01LBg5V.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-OD9AlD-6.mjs.map +0 -1
- package/dist/_chunks/index-cYWov2wa.js.map +0 -1
- package/dist/admin/src/components/CMReleasesContainer.d.ts +0 -1
- package/dist/admin/src/components/RelativeTime.d.ts +0 -28
- package/dist/admin/src/components/ReleaseActionMenu.d.ts +0 -26
- package/dist/admin/src/components/ReleaseActionOptions.d.ts +0 -9
- package/dist/admin/src/components/ReleaseModal.d.ts +0 -16
- package/dist/admin/src/constants.d.ts +0 -58
- package/dist/admin/src/index.d.ts +0 -3
- package/dist/admin/src/pages/App.d.ts +0 -1
- package/dist/admin/src/pages/PurchaseContentReleases.d.ts +0 -2
- package/dist/admin/src/pages/ReleaseDetailsPage.d.ts +0 -2
- package/dist/admin/src/pages/ReleasesPage.d.ts +0 -8
- package/dist/admin/src/pages/tests/mockReleaseDetailsPageData.d.ts +0 -181
- package/dist/admin/src/pages/tests/mockReleasesPageData.d.ts +0 -39
- package/dist/admin/src/pluginId.d.ts +0 -1
- package/dist/admin/src/services/axios.d.ts +0 -29
- package/dist/admin/src/services/release.d.ts +0 -369
- package/dist/admin/src/store/hooks.d.ts +0 -7
- package/dist/admin/src/utils/prefixPluginTranslations.d.ts +0 -3
- package/dist/admin/src/utils/time.d.ts +0 -1
- package/dist/server/src/bootstrap.d.ts +0 -5
- package/dist/server/src/bootstrap.d.ts.map +0 -1
- package/dist/server/src/constants.d.ts +0 -12
- package/dist/server/src/constants.d.ts.map +0 -1
- package/dist/server/src/content-types/index.d.ts +0 -99
- package/dist/server/src/content-types/index.d.ts.map +0 -1
- package/dist/server/src/content-types/release/index.d.ts +0 -48
- package/dist/server/src/content-types/release/index.d.ts.map +0 -1
- package/dist/server/src/content-types/release/schema.d.ts +0 -47
- package/dist/server/src/content-types/release/schema.d.ts.map +0 -1
- package/dist/server/src/content-types/release-action/index.d.ts +0 -50
- package/dist/server/src/content-types/release-action/index.d.ts.map +0 -1
- package/dist/server/src/content-types/release-action/schema.d.ts +0 -49
- package/dist/server/src/content-types/release-action/schema.d.ts.map +0 -1
- package/dist/server/src/controllers/index.d.ts +0 -19
- package/dist/server/src/controllers/index.d.ts.map +0 -1
- package/dist/server/src/controllers/release-action.d.ts +0 -10
- package/dist/server/src/controllers/release-action.d.ts.map +0 -1
- package/dist/server/src/controllers/release.d.ts +0 -11
- package/dist/server/src/controllers/release.d.ts.map +0 -1
- package/dist/server/src/controllers/validation/release-action.d.ts +0 -8
- package/dist/server/src/controllers/validation/release-action.d.ts.map +0 -1
- package/dist/server/src/controllers/validation/release.d.ts +0 -2
- package/dist/server/src/controllers/validation/release.d.ts.map +0 -1
- package/dist/server/src/destroy.d.ts +0 -5
- package/dist/server/src/destroy.d.ts.map +0 -1
- package/dist/server/src/index.d.ts +0 -2095
- package/dist/server/src/index.d.ts.map +0 -1
- package/dist/server/src/migrations/index.d.ts +0 -13
- package/dist/server/src/migrations/index.d.ts.map +0 -1
- package/dist/server/src/register.d.ts +0 -5
- package/dist/server/src/register.d.ts.map +0 -1
- package/dist/server/src/routes/index.d.ts +0 -35
- package/dist/server/src/routes/index.d.ts.map +0 -1
- package/dist/server/src/routes/release-action.d.ts +0 -18
- package/dist/server/src/routes/release-action.d.ts.map +0 -1
- package/dist/server/src/routes/release.d.ts +0 -18
- package/dist/server/src/routes/release.d.ts.map +0 -1
- package/dist/server/src/services/index.d.ts +0 -1826
- package/dist/server/src/services/index.d.ts.map +0 -1
- package/dist/server/src/services/release.d.ts +0 -66
- package/dist/server/src/services/release.d.ts.map +0 -1
- package/dist/server/src/services/scheduling.d.ts +0 -18
- package/dist/server/src/services/scheduling.d.ts.map +0 -1
- package/dist/server/src/services/validation.d.ts +0 -18
- package/dist/server/src/services/validation.d.ts.map +0 -1
- package/dist/server/src/utils/index.d.ts +0 -14
- package/dist/server/src/utils/index.d.ts.map +0 -1
- package/dist/shared/contracts/release-actions.d.ts +0 -131
- package/dist/shared/contracts/release-actions.d.ts.map +0 -1
- package/dist/shared/contracts/releases.d.ts +0 -166
- package/dist/shared/contracts/releases.d.ts.map +0 -1
- package/dist/shared/types.d.ts +0 -24
- package/dist/shared/types.d.ts.map +0 -1
- package/dist/shared/validation-schemas.d.ts +0 -2
- package/dist/shared/validation-schemas.d.ts.map +0 -1
|
@@ -1,49 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { useNotification, useAPIErrorHandler, useQueryParams,
|
|
3
|
-
import { useLocation,
|
|
4
|
-
import { g as getTimezoneOffset, p as pluginId, u as useGetReleasesQuery, a as useCreateReleaseMutation, P as PERMISSIONS, i as isAxiosError, b as useGetReleaseQuery, c as useUpdateReleaseMutation, d as useDeleteReleaseMutation, e as usePublishReleaseMutation, f as
|
|
1
|
+
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { RelativeTime as RelativeTime$1, useNotification, useAPIErrorHandler, useQueryParams, useTracking, LoadingIndicatorPage, CheckPermissions, PageSizeURLQuery, PaginationURLQuery, AnErrorOccurred, ConfirmDialog, useRBAC, NoContent, Table, CheckPagePermissions } from "@strapi/helper-plugin";
|
|
3
|
+
import { useLocation, useHistory, useParams, Redirect, Link as Link$2, Switch, Route } from "react-router-dom";
|
|
4
|
+
import { g as getTimezoneOffset, p as pluginId, u as useGetReleasesQuery, a as useCreateReleaseMutation, P as PERMISSIONS, i as isAxiosError, b as useGetReleaseQuery, c as useUpdateReleaseMutation, d as useDeleteReleaseMutation, e as usePublishReleaseMutation, f as useTypedDispatch, h as useGetReleaseActionsQuery, j as useUpdateReleaseActionMutation, R as ReleaseActionOptions, k as ReleaseActionMenu, r as releaseApi } from "./index-1ejXLtzt.mjs";
|
|
5
5
|
import * as React from "react";
|
|
6
|
-
import {
|
|
6
|
+
import { useLicenseLimits, unstable_useDocument } from "@strapi/admin/strapi-admin";
|
|
7
|
+
import { ModalLayout, ModalHeader, Typography, ModalBody, Flex, TextInput, Box, Checkbox, DatePicker, TimePicker, ModalFooter, Button, Combobox, ComboboxOption, Alert, Main, HeaderLayout, ContentLayout, TabGroup, Tabs, Tab, Divider, TabPanels, TabPanel, EmptyStateLayout, Grid, GridItem, Badge, Link as Link$1, IconButton, SingleSelect, SingleSelectOption, Tr, Td, Icon, Tooltip } from "@strapi/design-system";
|
|
7
8
|
import { Link, Menu, LinkButton } from "@strapi/design-system/v2";
|
|
8
|
-
import { Plus, EmptyDocuments, Pencil, Trash, More, CrossCircle, CheckCircle } from "@strapi/icons";
|
|
9
|
+
import { Plus, EmptyDocuments, Pencil, Trash, ArrowLeft, More, CrossCircle, CheckCircle } from "@strapi/icons";
|
|
9
10
|
import format from "date-fns/format";
|
|
10
11
|
import { utcToZonedTime, zonedTimeToUtc } from "date-fns-tz";
|
|
11
12
|
import { useIntl } from "react-intl";
|
|
12
13
|
import styled from "styled-components";
|
|
13
|
-
import {
|
|
14
|
+
import { formatISO } from "date-fns";
|
|
14
15
|
import { Formik, Form, useFormikContext } from "formik";
|
|
15
16
|
import * as yup from "yup";
|
|
16
|
-
import
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const { formatRelativeTime, formatDate, formatTime } = useIntl();
|
|
21
|
-
const interval = intervalToDuration({
|
|
22
|
-
start: timestamp,
|
|
23
|
-
end: Date.now()
|
|
24
|
-
// see https://github.com/date-fns/date-fns/issues/2891 – No idea why it's all partial it returns it every time.
|
|
25
|
-
});
|
|
26
|
-
const unit = intervals.find((intervalUnit) => {
|
|
27
|
-
return interval[intervalUnit] > 0 && Object.keys(interval).includes(intervalUnit);
|
|
28
|
-
});
|
|
29
|
-
const relativeTime = isPast(timestamp) ? -interval[unit] : interval[unit];
|
|
30
|
-
const customInterval = customIntervals.find(
|
|
31
|
-
(custom) => interval[custom.unit] < custom.threshold
|
|
32
|
-
);
|
|
33
|
-
const displayText = customInterval ? customInterval.text : formatRelativeTime(relativeTime, unit, { numeric: "auto" });
|
|
34
|
-
return /* @__PURE__ */ jsx(
|
|
35
|
-
"time",
|
|
36
|
-
{
|
|
37
|
-
ref: forwardedRef,
|
|
38
|
-
dateTime: timestamp.toISOString(),
|
|
39
|
-
role: "time",
|
|
40
|
-
title: `${formatDate(timestamp)} ${formatTime(timestamp)}`,
|
|
41
|
-
...restProps,
|
|
42
|
-
children: displayText
|
|
43
|
-
}
|
|
44
|
-
);
|
|
45
|
-
}
|
|
46
|
-
);
|
|
17
|
+
import "@reduxjs/toolkit/query";
|
|
18
|
+
import "axios";
|
|
19
|
+
import "@reduxjs/toolkit/query/react";
|
|
20
|
+
import "react-redux";
|
|
47
21
|
const RELEASE_SCHEMA = yup.object().shape({
|
|
48
22
|
name: yup.string().trim().required(),
|
|
49
23
|
scheduledAt: yup.string().nullable(),
|
|
@@ -80,9 +54,8 @@ const ReleaseModal = ({
|
|
|
80
54
|
const { date, time, timezone } = values;
|
|
81
55
|
if (!date || !time || !timezone)
|
|
82
56
|
return null;
|
|
83
|
-
const formattedDate = parse(time, "HH:mm", new Date(date));
|
|
84
57
|
const timezoneWithoutOffset = timezone.split("&")[1];
|
|
85
|
-
return zonedTimeToUtc(
|
|
58
|
+
return zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);
|
|
86
59
|
};
|
|
87
60
|
const getTimezoneWithOffset = () => {
|
|
88
61
|
const currentTimezone = timezoneList.find(
|
|
@@ -282,12 +255,14 @@ const TimezoneComponent = ({ timezoneOptions }) => {
|
|
|
282
255
|
}
|
|
283
256
|
);
|
|
284
257
|
};
|
|
285
|
-
const useTypedDispatch = useDispatch;
|
|
286
258
|
const LinkCard = styled(Link)`
|
|
287
259
|
display: block;
|
|
288
260
|
`;
|
|
289
|
-
const
|
|
290
|
-
|
|
261
|
+
const RelativeTime = styled(RelativeTime$1)`
|
|
262
|
+
display: inline-block;
|
|
263
|
+
&::first-letter {
|
|
264
|
+
text-transform: uppercase;
|
|
265
|
+
}
|
|
291
266
|
`;
|
|
292
267
|
const getBadgeProps = (status) => {
|
|
293
268
|
let color;
|
|
@@ -317,7 +292,7 @@ const getBadgeProps = (status) => {
|
|
|
317
292
|
const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
|
|
318
293
|
const { formatMessage } = useIntl();
|
|
319
294
|
if (isError) {
|
|
320
|
-
return /* @__PURE__ */ jsx(
|
|
295
|
+
return /* @__PURE__ */ jsx(AnErrorOccurred, {});
|
|
321
296
|
}
|
|
322
297
|
if (releases?.length === 0) {
|
|
323
298
|
return /* @__PURE__ */ jsx(
|
|
@@ -352,7 +327,7 @@ const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
|
|
|
352
327
|
children: [
|
|
353
328
|
/* @__PURE__ */ jsxs(Flex, { direction: "column", alignItems: "start", gap: 1, children: [
|
|
354
329
|
/* @__PURE__ */ jsx(Typography, { as: "h3", variant: "delta", fontWeight: "bold", children: name }),
|
|
355
|
-
/* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "neutral600", children: scheduledAt ? /* @__PURE__ */ jsx(
|
|
330
|
+
/* @__PURE__ */ jsx(Typography, { variant: "pi", textColor: "neutral600", children: scheduledAt ? /* @__PURE__ */ jsx(RelativeTime, { timestamp: new Date(scheduledAt) }) : formatMessage({
|
|
356
331
|
id: "content-releases.pages.Releases.not-scheduled",
|
|
357
332
|
defaultMessage: "Not scheduled"
|
|
358
333
|
}) })
|
|
@@ -382,9 +357,9 @@ const ReleasesPage = () => {
|
|
|
382
357
|
const tabRef = React.useRef(null);
|
|
383
358
|
const location = useLocation();
|
|
384
359
|
const [releaseModalShown, setReleaseModalShown] = React.useState(false);
|
|
385
|
-
const
|
|
360
|
+
const toggleNotification = useNotification();
|
|
386
361
|
const { formatMessage } = useIntl();
|
|
387
|
-
const
|
|
362
|
+
const { push, replace } = useHistory();
|
|
388
363
|
const { formatAPIError } = useAPIErrorHandler();
|
|
389
364
|
const [{ query }, setQuery] = useQueryParams();
|
|
390
365
|
const response = useGetReleasesQuery(query);
|
|
@@ -392,16 +367,13 @@ const ReleasesPage = () => {
|
|
|
392
367
|
const { getFeature } = useLicenseLimits();
|
|
393
368
|
const { maximumReleases = 3 } = getFeature("cms-content-releases");
|
|
394
369
|
const { trackUsage } = useTracking();
|
|
395
|
-
const {
|
|
396
|
-
allowedActions: { canCreate }
|
|
397
|
-
} = useRBAC(PERMISSIONS);
|
|
398
370
|
const { isLoading, isSuccess, isError } = response;
|
|
399
371
|
const activeTab = response?.currentData?.meta?.activeTab || "pending";
|
|
400
372
|
const activeTabIndex = ["pending", "done"].indexOf(activeTab);
|
|
401
373
|
React.useEffect(() => {
|
|
402
374
|
if (location?.state?.errors) {
|
|
403
375
|
toggleNotification({
|
|
404
|
-
type: "
|
|
376
|
+
type: "warning",
|
|
405
377
|
title: formatMessage({
|
|
406
378
|
id: "content-releases.pages.Releases.notification.error.title",
|
|
407
379
|
defaultMessage: "Your request could not be processed."
|
|
@@ -411,9 +383,9 @@ const ReleasesPage = () => {
|
|
|
411
383
|
defaultMessage: "Please try again or open another release."
|
|
412
384
|
})
|
|
413
385
|
});
|
|
414
|
-
|
|
386
|
+
replace({ state: null });
|
|
415
387
|
}
|
|
416
|
-
}, [formatMessage, location?.state?.errors,
|
|
388
|
+
}, [formatMessage, location?.state?.errors, replace, toggleNotification]);
|
|
417
389
|
React.useEffect(() => {
|
|
418
390
|
if (tabRef.current) {
|
|
419
391
|
tabRef.current._handlers.setSelectedTabIndex(activeTabIndex);
|
|
@@ -423,7 +395,7 @@ const ReleasesPage = () => {
|
|
|
423
395
|
setReleaseModalShown((prev) => !prev);
|
|
424
396
|
};
|
|
425
397
|
if (isLoading) {
|
|
426
|
-
return /* @__PURE__ */ jsx(
|
|
398
|
+
return /* @__PURE__ */ jsx(Main, { "aria-busy": isLoading, children: /* @__PURE__ */ jsx(LoadingIndicatorPage, {}) });
|
|
427
399
|
}
|
|
428
400
|
const totalPendingReleases = isSuccess && response.currentData?.meta?.pendingReleasesCount || 0;
|
|
429
401
|
const hasReachedMaximumPendingReleases = totalPendingReleases >= maximumReleases;
|
|
@@ -454,15 +426,15 @@ const ReleasesPage = () => {
|
|
|
454
426
|
})
|
|
455
427
|
});
|
|
456
428
|
trackUsage("didCreateRelease");
|
|
457
|
-
|
|
429
|
+
push(`/plugins/content-releases/${response2.data.data.id}`);
|
|
458
430
|
} else if (isAxiosError(response2.error)) {
|
|
459
431
|
toggleNotification({
|
|
460
|
-
type: "
|
|
432
|
+
type: "warning",
|
|
461
433
|
message: formatAPIError(response2.error)
|
|
462
434
|
});
|
|
463
435
|
} else {
|
|
464
436
|
toggleNotification({
|
|
465
|
-
type: "
|
|
437
|
+
type: "warning",
|
|
466
438
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
467
439
|
});
|
|
468
440
|
}
|
|
@@ -479,7 +451,7 @@ const ReleasesPage = () => {
|
|
|
479
451
|
id: "content-releases.pages.Releases.header-subtitle",
|
|
480
452
|
defaultMessage: "Create and manage content updates"
|
|
481
453
|
}),
|
|
482
|
-
primaryAction:
|
|
454
|
+
primaryAction: /* @__PURE__ */ jsx(CheckPermissions, { permissions: PERMISSIONS.create, children: /* @__PURE__ */ jsx(
|
|
483
455
|
Button,
|
|
484
456
|
{
|
|
485
457
|
startIcon: /* @__PURE__ */ jsx(Plus, {}),
|
|
@@ -490,7 +462,7 @@ const ReleasesPage = () => {
|
|
|
490
462
|
defaultMessage: "New release"
|
|
491
463
|
})
|
|
492
464
|
}
|
|
493
|
-
)
|
|
465
|
+
) })
|
|
494
466
|
}
|
|
495
467
|
),
|
|
496
468
|
/* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -569,17 +541,23 @@ const ReleasesPage = () => {
|
|
|
569
541
|
]
|
|
570
542
|
}
|
|
571
543
|
),
|
|
572
|
-
/* @__PURE__ */ jsxs(
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
544
|
+
response.currentData?.meta?.pagination?.total ? /* @__PURE__ */ jsxs(Flex, { paddingTop: 4, alignItems: "flex-end", justifyContent: "space-between", children: [
|
|
545
|
+
/* @__PURE__ */ jsx(
|
|
546
|
+
PageSizeURLQuery,
|
|
547
|
+
{
|
|
548
|
+
options: ["8", "16", "32", "64"],
|
|
549
|
+
defaultValue: response?.currentData?.meta?.pagination?.pageSize.toString()
|
|
550
|
+
}
|
|
551
|
+
),
|
|
552
|
+
/* @__PURE__ */ jsx(
|
|
553
|
+
PaginationURLQuery,
|
|
554
|
+
{
|
|
555
|
+
pagination: {
|
|
556
|
+
pageCount: response?.currentData?.meta?.pagination?.pageCount || 0
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
)
|
|
560
|
+
] }) : null
|
|
583
561
|
] }) }),
|
|
584
562
|
releaseModalShown && /* @__PURE__ */ jsx(
|
|
585
563
|
ReleaseModal,
|
|
@@ -627,18 +605,14 @@ const TrashIcon = styled(Trash)`
|
|
|
627
605
|
const TypographyMaxWidth = styled(Typography)`
|
|
628
606
|
max-width: 300px;
|
|
629
607
|
`;
|
|
630
|
-
const EntryValidationText = ({ action, schema, entry }) => {
|
|
608
|
+
const EntryValidationText = ({ action, schema, components, entry }) => {
|
|
631
609
|
const { formatMessage } = useIntl();
|
|
632
|
-
const { validate } = unstable_useDocument(
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
|
|
636
|
-
|
|
637
|
-
|
|
638
|
-
skip: !schema
|
|
639
|
-
}
|
|
640
|
-
);
|
|
641
|
-
const errors = validate(entry) ?? {};
|
|
610
|
+
const { validate } = unstable_useDocument();
|
|
611
|
+
const { errors } = validate(entry, {
|
|
612
|
+
contentType: schema,
|
|
613
|
+
components,
|
|
614
|
+
isCreatingEntry: false
|
|
615
|
+
});
|
|
642
616
|
if (Object.keys(errors).length > 0) {
|
|
643
617
|
const validationErrorsMessages = Object.entries(errors).map(
|
|
644
618
|
([key, value]) => formatMessage(
|
|
@@ -686,22 +660,18 @@ const ReleaseDetailsLayout = ({
|
|
|
686
660
|
isLoading: isLoadingDetails,
|
|
687
661
|
isError,
|
|
688
662
|
error
|
|
689
|
-
} = useGetReleaseQuery(
|
|
690
|
-
{ id: releaseId },
|
|
691
|
-
{
|
|
692
|
-
skip: !releaseId
|
|
693
|
-
}
|
|
694
|
-
);
|
|
663
|
+
} = useGetReleaseQuery({ id: releaseId });
|
|
695
664
|
const [publishRelease, { isLoading: isPublishing }] = usePublishReleaseMutation();
|
|
696
|
-
const
|
|
665
|
+
const toggleNotification = useNotification();
|
|
697
666
|
const { formatAPIError } = useAPIErrorHandler();
|
|
698
|
-
const {
|
|
699
|
-
|
|
667
|
+
const {
|
|
668
|
+
allowedActions: { canUpdate, canDelete }
|
|
669
|
+
} = useRBAC(PERMISSIONS);
|
|
700
670
|
const dispatch = useTypedDispatch();
|
|
701
671
|
const { trackUsage } = useTracking();
|
|
702
672
|
const release = data?.data;
|
|
703
|
-
const handlePublishRelease =
|
|
704
|
-
const response = await publishRelease({ id });
|
|
673
|
+
const handlePublishRelease = async () => {
|
|
674
|
+
const response = await publishRelease({ id: releaseId });
|
|
705
675
|
if ("data" in response) {
|
|
706
676
|
toggleNotification({
|
|
707
677
|
type: "success",
|
|
@@ -718,12 +688,12 @@ const ReleaseDetailsLayout = ({
|
|
|
718
688
|
});
|
|
719
689
|
} else if (isAxiosError(response.error)) {
|
|
720
690
|
toggleNotification({
|
|
721
|
-
type: "
|
|
691
|
+
type: "warning",
|
|
722
692
|
message: formatAPIError(response.error)
|
|
723
693
|
});
|
|
724
694
|
} else {
|
|
725
695
|
toggleNotification({
|
|
726
|
-
type: "
|
|
696
|
+
type: "warning",
|
|
727
697
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
728
698
|
});
|
|
729
699
|
}
|
|
@@ -749,19 +719,21 @@ const ReleaseDetailsLayout = ({
|
|
|
749
719
|
return release.createdBy.email;
|
|
750
720
|
};
|
|
751
721
|
if (isLoadingDetails) {
|
|
752
|
-
return /* @__PURE__ */ jsx(
|
|
722
|
+
return /* @__PURE__ */ jsx(Main, { "aria-busy": isLoadingDetails, children: /* @__PURE__ */ jsx(LoadingIndicatorPage, {}) });
|
|
753
723
|
}
|
|
754
724
|
if (isError || !release) {
|
|
755
725
|
return /* @__PURE__ */ jsx(
|
|
756
|
-
|
|
726
|
+
Redirect,
|
|
757
727
|
{
|
|
758
|
-
to:
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
728
|
+
to: {
|
|
729
|
+
pathname: "/plugins/content-releases",
|
|
730
|
+
state: {
|
|
731
|
+
errors: [
|
|
732
|
+
{
|
|
733
|
+
code: error?.code
|
|
734
|
+
}
|
|
735
|
+
]
|
|
736
|
+
}
|
|
765
737
|
}
|
|
766
738
|
}
|
|
767
739
|
);
|
|
@@ -805,7 +777,10 @@ const ReleaseDetailsLayout = ({
|
|
|
805
777
|
/* @__PURE__ */ jsx(Typography, { textColor: "neutral600", variant: "epsilon", children: numberOfEntriesText + (isScheduled ? ` - ${scheduledText}` : "") }),
|
|
806
778
|
/* @__PURE__ */ jsx(Badge, { ...getBadgeProps(release.status), children: release.status })
|
|
807
779
|
] }),
|
|
808
|
-
navigationAction: /* @__PURE__ */ jsx(
|
|
780
|
+
navigationAction: /* @__PURE__ */ jsx(Link$1, { startIcon: /* @__PURE__ */ jsx(ArrowLeft, {}), to: "/plugins/content-releases", children: formatMessage({
|
|
781
|
+
id: "global.back",
|
|
782
|
+
defaultMessage: "Back"
|
|
783
|
+
}) }),
|
|
809
784
|
primaryAction: !release.releasedAt && /* @__PURE__ */ jsxs(Flex, { gap: 2, children: [
|
|
810
785
|
/* @__PURE__ */ jsxs(Menu.Root, { children: [
|
|
811
786
|
/* @__PURE__ */ jsx(
|
|
@@ -871,7 +846,7 @@ const ReleaseDetailsLayout = ({
|
|
|
871
846
|
defaultMessage: "Created"
|
|
872
847
|
}) }),
|
|
873
848
|
/* @__PURE__ */ jsxs(Typography, { variant: "pi", color: "neutral300", children: [
|
|
874
|
-
/* @__PURE__ */ jsx(RelativeTime, { timestamp: new Date(release.createdAt) }),
|
|
849
|
+
/* @__PURE__ */ jsx(RelativeTime$1, { timestamp: new Date(release.createdAt) }),
|
|
875
850
|
formatMessage(
|
|
876
851
|
{
|
|
877
852
|
id: "content-releases.header.actions.created.description",
|
|
@@ -889,12 +864,12 @@ const ReleaseDetailsLayout = ({
|
|
|
889
864
|
id: "content-releases.header.actions.refresh",
|
|
890
865
|
defaultMessage: "Refresh"
|
|
891
866
|
}) }),
|
|
892
|
-
|
|
867
|
+
/* @__PURE__ */ jsx(CheckPermissions, { permissions: PERMISSIONS.publish, children: /* @__PURE__ */ jsx(
|
|
893
868
|
Button,
|
|
894
869
|
{
|
|
895
870
|
size: "S",
|
|
896
871
|
variant: "default",
|
|
897
|
-
onClick: handlePublishRelease
|
|
872
|
+
onClick: handlePublishRelease,
|
|
898
873
|
loading: isPublishing,
|
|
899
874
|
disabled: release.actions.meta.count === 0,
|
|
900
875
|
children: formatMessage({
|
|
@@ -902,7 +877,7 @@ const ReleaseDetailsLayout = ({
|
|
|
902
877
|
defaultMessage: "Publish"
|
|
903
878
|
})
|
|
904
879
|
}
|
|
905
|
-
)
|
|
880
|
+
) })
|
|
906
881
|
] })
|
|
907
882
|
}
|
|
908
883
|
),
|
|
@@ -928,10 +903,11 @@ const getGroupByOptionLabel = (value) => {
|
|
|
928
903
|
defaultMessage: "Content-Types"
|
|
929
904
|
};
|
|
930
905
|
};
|
|
931
|
-
const ReleaseDetailsBody = (
|
|
906
|
+
const ReleaseDetailsBody = () => {
|
|
932
907
|
const { formatMessage } = useIntl();
|
|
908
|
+
const { releaseId } = useParams();
|
|
933
909
|
const [{ query }, setQuery] = useQueryParams();
|
|
934
|
-
const
|
|
910
|
+
const toggleNotification = useNotification();
|
|
935
911
|
const { formatAPIError } = useAPIErrorHandler();
|
|
936
912
|
const {
|
|
937
913
|
data: releaseData,
|
|
@@ -972,19 +948,19 @@ const ReleaseDetailsBody = ({ releaseId }) => {
|
|
|
972
948
|
if ("error" in response) {
|
|
973
949
|
if (isAxiosError(response.error)) {
|
|
974
950
|
toggleNotification({
|
|
975
|
-
type: "
|
|
951
|
+
type: "warning",
|
|
976
952
|
message: formatAPIError(response.error)
|
|
977
953
|
});
|
|
978
954
|
} else {
|
|
979
955
|
toggleNotification({
|
|
980
|
-
type: "
|
|
956
|
+
type: "warning",
|
|
981
957
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
982
958
|
});
|
|
983
959
|
}
|
|
984
960
|
}
|
|
985
961
|
};
|
|
986
962
|
if (isLoading || isReleaseLoading) {
|
|
987
|
-
return /* @__PURE__ */ jsx(
|
|
963
|
+
return /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsx(LoadingIndicatorPage, {}) });
|
|
988
964
|
}
|
|
989
965
|
const releaseActions = data?.data;
|
|
990
966
|
const releaseMeta = data?.meta;
|
|
@@ -1003,26 +979,32 @@ const ReleaseDetailsBody = ({ releaseId }) => {
|
|
|
1003
979
|
});
|
|
1004
980
|
}
|
|
1005
981
|
return /* @__PURE__ */ jsx(
|
|
1006
|
-
|
|
982
|
+
Redirect,
|
|
1007
983
|
{
|
|
1008
|
-
to:
|
|
1009
|
-
|
|
1010
|
-
|
|
984
|
+
to: {
|
|
985
|
+
pathname: "/plugins/content-releases",
|
|
986
|
+
state: {
|
|
987
|
+
errors: errorsArray
|
|
988
|
+
}
|
|
1011
989
|
}
|
|
1012
990
|
}
|
|
1013
991
|
);
|
|
1014
992
|
}
|
|
1015
993
|
if (isError || !releaseActions) {
|
|
1016
|
-
return /* @__PURE__ */ jsx(
|
|
994
|
+
return /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsx(AnErrorOccurred, {}) });
|
|
1017
995
|
}
|
|
1018
996
|
if (Object.keys(releaseActions).length === 0) {
|
|
1019
997
|
return /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsx(
|
|
1020
|
-
|
|
998
|
+
NoContent,
|
|
1021
999
|
{
|
|
1000
|
+
content: {
|
|
1001
|
+
id: "content-releases.pages.Details.tab.emptyEntries",
|
|
1002
|
+
defaultMessage: "This release is empty. Open the Content Manager, select an entry and add it to the release."
|
|
1003
|
+
},
|
|
1022
1004
|
action: /* @__PURE__ */ jsx(
|
|
1023
1005
|
LinkButton,
|
|
1024
1006
|
{
|
|
1025
|
-
as: Link$
|
|
1007
|
+
as: Link$2,
|
|
1026
1008
|
to: {
|
|
1027
1009
|
pathname: "/content-manager"
|
|
1028
1010
|
},
|
|
@@ -1033,64 +1015,18 @@ const ReleaseDetailsBody = ({ releaseId }) => {
|
|
|
1033
1015
|
defaultMessage: "Open the Content Manager"
|
|
1034
1016
|
})
|
|
1035
1017
|
}
|
|
1036
|
-
)
|
|
1037
|
-
icon: /* @__PURE__ */ jsx(EmptyDocuments, { width: "10rem" }),
|
|
1038
|
-
content: formatMessage({
|
|
1039
|
-
id: "content-releases.pages.Details.tab.emptyEntries",
|
|
1040
|
-
defaultMessage: "This release is empty. Open the Content Manager, select an entry and add it to the release."
|
|
1041
|
-
})
|
|
1018
|
+
)
|
|
1042
1019
|
}
|
|
1043
1020
|
) });
|
|
1044
1021
|
}
|
|
1045
|
-
const groupByLabel = formatMessage({
|
|
1046
|
-
id: "content-releases.pages.ReleaseDetails.groupBy.aria-label",
|
|
1047
|
-
defaultMessage: "Group by"
|
|
1048
|
-
});
|
|
1049
|
-
const headers = [
|
|
1050
|
-
{
|
|
1051
|
-
label: formatMessage({
|
|
1052
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.name",
|
|
1053
|
-
defaultMessage: "name"
|
|
1054
|
-
}),
|
|
1055
|
-
name: "name"
|
|
1056
|
-
},
|
|
1057
|
-
{
|
|
1058
|
-
label: formatMessage({
|
|
1059
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.locale",
|
|
1060
|
-
defaultMessage: "locale"
|
|
1061
|
-
}),
|
|
1062
|
-
name: "locale"
|
|
1063
|
-
},
|
|
1064
|
-
{
|
|
1065
|
-
label: formatMessage({
|
|
1066
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.content-type",
|
|
1067
|
-
defaultMessage: "content-type"
|
|
1068
|
-
}),
|
|
1069
|
-
name: "content-type"
|
|
1070
|
-
},
|
|
1071
|
-
{
|
|
1072
|
-
label: formatMessage({
|
|
1073
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.action",
|
|
1074
|
-
defaultMessage: "action"
|
|
1075
|
-
}),
|
|
1076
|
-
name: "action"
|
|
1077
|
-
},
|
|
1078
|
-
...!release.releasedAt ? [
|
|
1079
|
-
{
|
|
1080
|
-
label: formatMessage({
|
|
1081
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.status",
|
|
1082
|
-
defaultMessage: "status"
|
|
1083
|
-
}),
|
|
1084
|
-
name: "status"
|
|
1085
|
-
}
|
|
1086
|
-
] : []
|
|
1087
|
-
];
|
|
1088
1022
|
return /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsxs(Flex, { gap: 8, direction: "column", alignItems: "stretch", children: [
|
|
1089
1023
|
/* @__PURE__ */ jsx(Flex, { children: /* @__PURE__ */ jsx(
|
|
1090
1024
|
SingleSelect,
|
|
1091
1025
|
{
|
|
1092
|
-
|
|
1093
|
-
|
|
1026
|
+
"aria-label": formatMessage({
|
|
1027
|
+
id: "content-releases.pages.ReleaseDetails.groupBy.aria-label",
|
|
1028
|
+
defaultMessage: "Group by"
|
|
1029
|
+
}),
|
|
1094
1030
|
customizeContent: (value) => formatMessage(
|
|
1095
1031
|
{
|
|
1096
1032
|
id: `content-releases.pages.ReleaseDetails.groupBy.label`,
|
|
@@ -1114,11 +1050,68 @@ const ReleaseDetailsBody = ({ releaseId }) => {
|
|
|
1114
1050
|
...item,
|
|
1115
1051
|
id: Number(item.entry.id)
|
|
1116
1052
|
})),
|
|
1117
|
-
|
|
1118
|
-
isLoading
|
|
1053
|
+
colCount: releaseActions[key].length,
|
|
1054
|
+
isLoading,
|
|
1055
|
+
isFetching,
|
|
1119
1056
|
children: /* @__PURE__ */ jsxs(Table.Content, { children: [
|
|
1120
|
-
/* @__PURE__ */
|
|
1121
|
-
|
|
1057
|
+
/* @__PURE__ */ jsxs(Table.Head, { children: [
|
|
1058
|
+
/* @__PURE__ */ jsx(
|
|
1059
|
+
Table.HeaderCell,
|
|
1060
|
+
{
|
|
1061
|
+
fieldSchemaType: "string",
|
|
1062
|
+
label: formatMessage({
|
|
1063
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.name",
|
|
1064
|
+
defaultMessage: "name"
|
|
1065
|
+
}),
|
|
1066
|
+
name: "name"
|
|
1067
|
+
}
|
|
1068
|
+
),
|
|
1069
|
+
/* @__PURE__ */ jsx(
|
|
1070
|
+
Table.HeaderCell,
|
|
1071
|
+
{
|
|
1072
|
+
fieldSchemaType: "string",
|
|
1073
|
+
label: formatMessage({
|
|
1074
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.locale",
|
|
1075
|
+
defaultMessage: "locale"
|
|
1076
|
+
}),
|
|
1077
|
+
name: "locale"
|
|
1078
|
+
}
|
|
1079
|
+
),
|
|
1080
|
+
/* @__PURE__ */ jsx(
|
|
1081
|
+
Table.HeaderCell,
|
|
1082
|
+
{
|
|
1083
|
+
fieldSchemaType: "string",
|
|
1084
|
+
label: formatMessage({
|
|
1085
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.content-type",
|
|
1086
|
+
defaultMessage: "content-type"
|
|
1087
|
+
}),
|
|
1088
|
+
name: "content-type"
|
|
1089
|
+
}
|
|
1090
|
+
),
|
|
1091
|
+
/* @__PURE__ */ jsx(
|
|
1092
|
+
Table.HeaderCell,
|
|
1093
|
+
{
|
|
1094
|
+
fieldSchemaType: "string",
|
|
1095
|
+
label: formatMessage({
|
|
1096
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.action",
|
|
1097
|
+
defaultMessage: "action"
|
|
1098
|
+
}),
|
|
1099
|
+
name: "action"
|
|
1100
|
+
}
|
|
1101
|
+
),
|
|
1102
|
+
!release.releasedAt && /* @__PURE__ */ jsx(
|
|
1103
|
+
Table.HeaderCell,
|
|
1104
|
+
{
|
|
1105
|
+
fieldSchemaType: "string",
|
|
1106
|
+
label: formatMessage({
|
|
1107
|
+
id: "content-releases.page.ReleaseDetails.table.header.label.status",
|
|
1108
|
+
defaultMessage: "status"
|
|
1109
|
+
}),
|
|
1110
|
+
name: "status"
|
|
1111
|
+
}
|
|
1112
|
+
)
|
|
1113
|
+
] }),
|
|
1114
|
+
/* @__PURE__ */ jsx(Table.LoadingBody, {}),
|
|
1122
1115
|
/* @__PURE__ */ jsx(Table.Body, { children: releaseActions[key].map(
|
|
1123
1116
|
({ id, contentType, locale, type, entry }, actionIndex) => /* @__PURE__ */ jsxs(Tr, { children: [
|
|
1124
1117
|
/* @__PURE__ */ jsx(Td, { width: "25%", maxWidth: "200px", children: /* @__PURE__ */ jsx(Typography, { ellipsis: true, children: `${contentType.mainFieldValue || entry.id}` }) }),
|
|
@@ -1176,39 +1169,34 @@ const ReleaseDetailsBody = ({ releaseId }) => {
|
|
|
1176
1169
|
}
|
|
1177
1170
|
)
|
|
1178
1171
|
] }, `releases-group-${key}`)),
|
|
1179
|
-
/* @__PURE__ */ jsxs(
|
|
1180
|
-
|
|
1181
|
-
|
|
1182
|
-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1189
|
-
)
|
|
1172
|
+
/* @__PURE__ */ jsxs(Flex, { paddingTop: 4, alignItems: "flex-end", justifyContent: "space-between", children: [
|
|
1173
|
+
/* @__PURE__ */ jsx(PageSizeURLQuery, { defaultValue: releaseMeta?.pagination?.pageSize.toString() }),
|
|
1174
|
+
/* @__PURE__ */ jsx(
|
|
1175
|
+
PaginationURLQuery,
|
|
1176
|
+
{
|
|
1177
|
+
pagination: {
|
|
1178
|
+
pageCount: releaseMeta?.pagination?.pageCount || 0
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
)
|
|
1182
|
+
] })
|
|
1190
1183
|
] }) });
|
|
1191
1184
|
};
|
|
1192
1185
|
const ReleaseDetailsPage = () => {
|
|
1193
1186
|
const { formatMessage } = useIntl();
|
|
1194
1187
|
const { releaseId } = useParams();
|
|
1195
|
-
const
|
|
1188
|
+
const toggleNotification = useNotification();
|
|
1196
1189
|
const { formatAPIError } = useAPIErrorHandler();
|
|
1197
|
-
const
|
|
1190
|
+
const { replace } = useHistory();
|
|
1198
1191
|
const [releaseModalShown, setReleaseModalShown] = React.useState(false);
|
|
1199
1192
|
const [showWarningSubmit, setWarningSubmit] = React.useState(false);
|
|
1200
1193
|
const {
|
|
1201
1194
|
isLoading: isLoadingDetails,
|
|
1202
1195
|
data,
|
|
1203
1196
|
isSuccess: isSuccessDetails
|
|
1204
|
-
} = useGetReleaseQuery(
|
|
1205
|
-
{ id: releaseId },
|
|
1206
|
-
{
|
|
1207
|
-
skip: !releaseId
|
|
1208
|
-
}
|
|
1209
|
-
);
|
|
1197
|
+
} = useGetReleaseQuery({ id: releaseId });
|
|
1210
1198
|
const [updateRelease, { isLoading: isSubmittingForm }] = useUpdateReleaseMutation();
|
|
1211
|
-
const [deleteRelease] = useDeleteReleaseMutation();
|
|
1199
|
+
const [deleteRelease, { isLoading: isDeletingRelease }] = useDeleteReleaseMutation();
|
|
1212
1200
|
const toggleEditReleaseModal = () => {
|
|
1213
1201
|
setReleaseModalShown((prev) => !prev);
|
|
1214
1202
|
};
|
|
@@ -1219,18 +1207,15 @@ const ReleaseDetailsPage = () => {
|
|
|
1219
1207
|
{
|
|
1220
1208
|
toggleEditReleaseModal,
|
|
1221
1209
|
toggleWarningSubmit,
|
|
1222
|
-
children: /* @__PURE__ */ jsx(
|
|
1210
|
+
children: /* @__PURE__ */ jsx(ContentLayout, { children: /* @__PURE__ */ jsx(LoadingIndicatorPage, {}) })
|
|
1223
1211
|
}
|
|
1224
1212
|
);
|
|
1225
1213
|
}
|
|
1226
|
-
if (!releaseId) {
|
|
1227
|
-
return /* @__PURE__ */ jsx(Navigate, { to: ".." });
|
|
1228
|
-
}
|
|
1229
1214
|
const releaseData = isSuccessDetails && data?.data || null;
|
|
1230
1215
|
const title = releaseData?.name || "";
|
|
1231
1216
|
const timezone = releaseData?.timezone ?? null;
|
|
1232
1217
|
const scheduledAt = releaseData?.scheduledAt && timezone ? utcToZonedTime(releaseData.scheduledAt, timezone) : null;
|
|
1233
|
-
const date = scheduledAt ?
|
|
1218
|
+
const date = scheduledAt ? format(scheduledAt, "yyyy-MM-dd") : null;
|
|
1234
1219
|
const time = scheduledAt ? format(scheduledAt, "HH:mm") : "";
|
|
1235
1220
|
const handleEditRelease = async (values) => {
|
|
1236
1221
|
const response = await updateRelease({
|
|
@@ -1247,33 +1232,33 @@ const ReleaseDetailsPage = () => {
|
|
|
1247
1232
|
defaultMessage: "Release updated."
|
|
1248
1233
|
})
|
|
1249
1234
|
});
|
|
1235
|
+
toggleEditReleaseModal();
|
|
1250
1236
|
} else if (isAxiosError(response.error)) {
|
|
1251
1237
|
toggleNotification({
|
|
1252
|
-
type: "
|
|
1238
|
+
type: "warning",
|
|
1253
1239
|
message: formatAPIError(response.error)
|
|
1254
1240
|
});
|
|
1255
1241
|
} else {
|
|
1256
1242
|
toggleNotification({
|
|
1257
|
-
type: "
|
|
1243
|
+
type: "warning",
|
|
1258
1244
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
1259
1245
|
});
|
|
1260
1246
|
}
|
|
1261
|
-
toggleEditReleaseModal();
|
|
1262
1247
|
};
|
|
1263
1248
|
const handleDeleteRelease = async () => {
|
|
1264
1249
|
const response = await deleteRelease({
|
|
1265
1250
|
id: releaseId
|
|
1266
1251
|
});
|
|
1267
1252
|
if ("data" in response) {
|
|
1268
|
-
|
|
1253
|
+
replace("/plugins/content-releases");
|
|
1269
1254
|
} else if (isAxiosError(response.error)) {
|
|
1270
1255
|
toggleNotification({
|
|
1271
|
-
type: "
|
|
1256
|
+
type: "warning",
|
|
1272
1257
|
message: formatAPIError(response.error)
|
|
1273
1258
|
});
|
|
1274
1259
|
} else {
|
|
1275
1260
|
toggleNotification({
|
|
1276
|
-
type: "
|
|
1261
|
+
type: "warning",
|
|
1277
1262
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
1278
1263
|
});
|
|
1279
1264
|
}
|
|
@@ -1284,7 +1269,7 @@ const ReleaseDetailsPage = () => {
|
|
|
1284
1269
|
toggleEditReleaseModal,
|
|
1285
1270
|
toggleWarningSubmit,
|
|
1286
1271
|
children: [
|
|
1287
|
-
/* @__PURE__ */ jsx(ReleaseDetailsBody, {
|
|
1272
|
+
/* @__PURE__ */ jsx(ReleaseDetailsBody, {}),
|
|
1288
1273
|
releaseModalShown && /* @__PURE__ */ jsx(
|
|
1289
1274
|
ReleaseModal,
|
|
1290
1275
|
{
|
|
@@ -1304,13 +1289,14 @@ const ReleaseDetailsPage = () => {
|
|
|
1304
1289
|
/* @__PURE__ */ jsx(
|
|
1305
1290
|
ConfirmDialog,
|
|
1306
1291
|
{
|
|
1307
|
-
|
|
1308
|
-
onClose: toggleWarningSubmit,
|
|
1309
|
-
onConfirm: handleDeleteRelease,
|
|
1310
|
-
children: formatMessage({
|
|
1292
|
+
bodyText: {
|
|
1311
1293
|
id: "content-releases.dialog.confirmation-message",
|
|
1312
1294
|
defaultMessage: "Are you sure you want to delete this release?"
|
|
1313
|
-
}
|
|
1295
|
+
},
|
|
1296
|
+
isOpen: showWarningSubmit,
|
|
1297
|
+
isConfirmButtonLoading: isDeletingRelease,
|
|
1298
|
+
onToggleDialog: toggleWarningSubmit,
|
|
1299
|
+
onConfirm: handleDeleteRelease
|
|
1314
1300
|
}
|
|
1315
1301
|
)
|
|
1316
1302
|
]
|
|
@@ -1318,12 +1304,12 @@ const ReleaseDetailsPage = () => {
|
|
|
1318
1304
|
);
|
|
1319
1305
|
};
|
|
1320
1306
|
const App = () => {
|
|
1321
|
-
return /* @__PURE__ */ jsx(
|
|
1322
|
-
/* @__PURE__ */ jsx(Route, {
|
|
1323
|
-
/* @__PURE__ */ jsx(Route, {
|
|
1307
|
+
return /* @__PURE__ */ jsx(CheckPagePermissions, { permissions: PERMISSIONS.main, children: /* @__PURE__ */ jsxs(Switch, { children: [
|
|
1308
|
+
/* @__PURE__ */ jsx(Route, { exact: true, path: `/plugins/${pluginId}`, component: ReleasesPage }),
|
|
1309
|
+
/* @__PURE__ */ jsx(Route, { exact: true, path: `/plugins/${pluginId}/:releaseId`, component: ReleaseDetailsPage })
|
|
1324
1310
|
] }) });
|
|
1325
1311
|
};
|
|
1326
1312
|
export {
|
|
1327
1313
|
App
|
|
1328
1314
|
};
|
|
1329
|
-
//# sourceMappingURL=App-
|
|
1315
|
+
//# sourceMappingURL=App-x6Tjj3HN.mjs.map
|