@strapi/content-releases 0.0.0-next.a9d79bec775daaf0da4e506b2aebafdb4ca95b06 → 0.0.0-next.ac2b9fdba5ef59eb22c4e387ac1c5a13dd219f29
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/LICENSE +17 -1
- package/dist/_chunks/{App-p8aKBitd.js → App-dLXY5ei3.js} +138 -131
- package/dist/_chunks/App-dLXY5ei3.js.map +1 -0
- package/dist/_chunks/{App-bpzO2Ljh.mjs → App-jrh58sXY.mjs} +141 -134
- package/dist/_chunks/App-jrh58sXY.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-gcJJ5htG.js → en-HrREghh3.js} +11 -3
- package/dist/_chunks/en-HrREghh3.js.map +1 -0
- package/dist/_chunks/{en-WuuhP6Bn.mjs → en-ltT1TlKQ.mjs} +11 -3
- package/dist/_chunks/en-ltT1TlKQ.mjs.map +1 -0
- package/dist/_chunks/{index-fP3qoWZ4.js → index-CVO0Rqdm.js} +320 -18
- package/dist/_chunks/index-CVO0Rqdm.js.map +1 -0
- package/dist/_chunks/{index-AECgcaDa.mjs → index-PiOGBETy.mjs} +325 -23
- package/dist/_chunks/index-PiOGBETy.mjs.map +1 -0
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/server/index.js +291 -160
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +291 -160
- package/dist/server/index.mjs.map +1 -1
- package/package.json +15 -14
- package/dist/_chunks/App-bpzO2Ljh.mjs.map +0 -1
- package/dist/_chunks/App-p8aKBitd.js.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-WuuhP6Bn.mjs.map +0 -1
- package/dist/_chunks/en-gcJJ5htG.js.map +0 -1
- package/dist/_chunks/index-AECgcaDa.mjs.map +0 -1
- package/dist/_chunks/index-fP3qoWZ4.js.map +0 -1
package/LICENSE
CHANGED
|
@@ -1 +1,17 @@
|
|
|
1
|
-
|
|
1
|
+
Copyright (c) 2015-present Strapi Solutions SAS
|
|
2
|
+
|
|
3
|
+
* All software that resides within this directory and its subdirectories, is licensed under the license defined below.
|
|
4
|
+
|
|
5
|
+
Enterprise License
|
|
6
|
+
|
|
7
|
+
If you or the company you represent has entered into a written agreement referencing the Enterprise Edition of the Strapi source code available at
|
|
8
|
+
https://github.com/strapi/strapi, then such agreement applies to your use of the Enterprise Edition of the Strapi Software. If you or the company you
|
|
9
|
+
represent is using the Enterprise Edition of the Strapi Software in connection with a subscription to our cloud offering, then the agreement you have
|
|
10
|
+
agreed to with respect to our cloud offering and the licenses included in such agreement apply to your use of the Enterprise Edition of the Strapi Software.
|
|
11
|
+
Otherwise, the Strapi Enterprise Software License Agreement (found here https://strapi.io/enterprise-terms) applies to your use of the Enterprise Edition of the Strapi Software.
|
|
12
|
+
|
|
13
|
+
BY ACCESSING OR USING THE ENTERPRISE EDITION OF THE STRAPI SOFTWARE, YOU ARE AGREEING TO BE BOUND BY THE RELEVANT REFERENCED AGREEMENT.
|
|
14
|
+
IF YOU ARE NOT AUTHORIZED TO ACCEPT THESE TERMS ON BEHALF OF THE COMPANY YOU REPRESENT OR IF YOU DO NOT AGREE TO ALL OF THE RELEVANT TERMS AND CONDITIONS REFERENCED AND YOU
|
|
15
|
+
HAVE NOT OTHERWISE EXECUTED A WRITTEN AGREEMENT WITH STRAPI, YOU ARE NOT AUTHORIZED TO ACCESS OR USE OR ALLOW ANY USER TO ACCESS OR USE ANY PART OF
|
|
16
|
+
THE ENTERPRISE EDITION OF THE STRAPI SOFTWARE. YOUR ACCESS RIGHTS ARE CONDITIONAL ON YOUR CONSENT TO THE RELEVANT REFERENCED TERMS TO THE EXCLUSION OF ALL OTHER TERMS;
|
|
17
|
+
IF THE RELEVANT REFERENCED TERMS ARE CONSIDERED AN OFFER BY YOU, ACCEPTANCE IS EXPRESSLY LIMITED TO THE RELEVANT REFERENCED TERMS.
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
|
3
3
|
const jsxRuntime = require("react/jsx-runtime");
|
|
4
4
|
const helperPlugin = require("@strapi/helper-plugin");
|
|
5
5
|
const reactRouterDom = require("react-router-dom");
|
|
6
|
-
const index = require("./index-
|
|
6
|
+
const index = require("./index-CVO0Rqdm.js");
|
|
7
7
|
const React = require("react");
|
|
8
8
|
const strapiAdmin = require("@strapi/admin/strapi-admin");
|
|
9
9
|
const designSystem = require("@strapi/design-system");
|
|
@@ -72,7 +72,6 @@ const ReleaseModal = ({
|
|
|
72
72
|
const { formatMessage } = reactIntl.useIntl();
|
|
73
73
|
const { pathname } = reactRouterDom.useLocation();
|
|
74
74
|
const isCreatingRelease = pathname === `/plugins/${index.pluginId}`;
|
|
75
|
-
const IsSchedulingEnabled = window.strapi.future.isEnabled("contentReleasesScheduling");
|
|
76
75
|
const { timezoneList, systemTimezone = { value: "UTC+00:00-Africa/Abidjan " } } = getTimezones(
|
|
77
76
|
initialValues.scheduledAt ? new Date(initialValues.scheduledAt) : /* @__PURE__ */ new Date()
|
|
78
77
|
);
|
|
@@ -80,9 +79,8 @@ const ReleaseModal = ({
|
|
|
80
79
|
const { date, time, timezone } = values;
|
|
81
80
|
if (!date || !time || !timezone)
|
|
82
81
|
return null;
|
|
83
|
-
const formattedDate = dateFns.parse(time, "HH:mm", new Date(date));
|
|
84
82
|
const timezoneWithoutOffset = timezone.split("&")[1];
|
|
85
|
-
return dateFnsTz.zonedTimeToUtc(
|
|
83
|
+
return dateFnsTz.zonedTimeToUtc(`${date} ${time}`, timezoneWithoutOffset);
|
|
86
84
|
};
|
|
87
85
|
const getTimezoneWithOffset = () => {
|
|
88
86
|
const currentTimezone = timezoneList.find(
|
|
@@ -130,93 +128,88 @@ const ReleaseModal = ({
|
|
|
130
128
|
required: true
|
|
131
129
|
}
|
|
132
130
|
),
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
131
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { width: "max-content", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
132
|
+
designSystem.Checkbox,
|
|
133
|
+
{
|
|
134
|
+
name: "isScheduled",
|
|
135
|
+
value: values.isScheduled,
|
|
136
|
+
onChange: (event) => {
|
|
137
|
+
setFieldValue("isScheduled", event.target.checked);
|
|
138
|
+
if (!event.target.checked) {
|
|
139
|
+
setFieldValue("date", null);
|
|
140
|
+
setFieldValue("time", "");
|
|
141
|
+
setFieldValue("timezone", null);
|
|
142
|
+
} else {
|
|
143
|
+
setFieldValue("date", initialValues.date);
|
|
144
|
+
setFieldValue("time", initialValues.time);
|
|
145
|
+
setFieldValue("timezone", initialValues.timezone ?? systemTimezone?.value);
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
149
|
+
designSystem.Typography,
|
|
150
|
+
{
|
|
151
|
+
textColor: values.isScheduled ? "primary600" : "neutral800",
|
|
152
|
+
fontWeight: values.isScheduled ? "semiBold" : "regular",
|
|
153
|
+
children: formatMessage({
|
|
154
|
+
id: "modal.form.input.label.schedule-release",
|
|
155
|
+
defaultMessage: "Schedule release"
|
|
156
|
+
})
|
|
157
|
+
}
|
|
158
|
+
)
|
|
159
|
+
}
|
|
160
|
+
) }),
|
|
161
|
+
values.isScheduled && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
162
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 4, alignItems: "start", children: [
|
|
163
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
164
|
+
designSystem.DatePicker,
|
|
165
|
+
{
|
|
166
|
+
label: formatMessage({
|
|
167
|
+
id: "content-releases.modal.form.input.label.date",
|
|
168
|
+
defaultMessage: "Date"
|
|
169
|
+
}),
|
|
170
|
+
name: "date",
|
|
171
|
+
error: errors.date,
|
|
172
|
+
onChange: (date) => {
|
|
173
|
+
const isoFormatDate = date ? dateFns.formatISO(date, { representation: "date" }) : null;
|
|
174
|
+
setFieldValue("date", isoFormatDate);
|
|
175
|
+
},
|
|
176
|
+
clearLabel: formatMessage({
|
|
177
|
+
id: "content-releases.modal.form.input.clearLabel",
|
|
178
|
+
defaultMessage: "Clear"
|
|
179
|
+
}),
|
|
180
|
+
onClear: () => {
|
|
142
181
|
setFieldValue("date", null);
|
|
182
|
+
},
|
|
183
|
+
selectedDate: values.date || void 0,
|
|
184
|
+
required: true,
|
|
185
|
+
minDate: dateFnsTz.utcToZonedTime(/* @__PURE__ */ new Date(), values.timezone.split("&")[1])
|
|
186
|
+
}
|
|
187
|
+
) }),
|
|
188
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
189
|
+
designSystem.TimePicker,
|
|
190
|
+
{
|
|
191
|
+
label: formatMessage({
|
|
192
|
+
id: "content-releases.modal.form.input.label.time",
|
|
193
|
+
defaultMessage: "Time"
|
|
194
|
+
}),
|
|
195
|
+
name: "time",
|
|
196
|
+
error: errors.time,
|
|
197
|
+
onChange: (time) => {
|
|
198
|
+
setFieldValue("time", time);
|
|
199
|
+
},
|
|
200
|
+
clearLabel: formatMessage({
|
|
201
|
+
id: "content-releases.modal.form.input.clearLabel",
|
|
202
|
+
defaultMessage: "Clear"
|
|
203
|
+
}),
|
|
204
|
+
onClear: () => {
|
|
143
205
|
setFieldValue("time", "");
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
);
|
|
152
|
-
}
|
|
153
|
-
},
|
|
154
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
155
|
-
designSystem.Typography,
|
|
156
|
-
{
|
|
157
|
-
textColor: values.isScheduled ? "primary600" : "neutral800",
|
|
158
|
-
fontWeight: values.isScheduled ? "semiBold" : "regular",
|
|
159
|
-
children: formatMessage({
|
|
160
|
-
id: "modal.form.input.label.schedule-release",
|
|
161
|
-
defaultMessage: "Schedule release"
|
|
162
|
-
})
|
|
163
|
-
}
|
|
164
|
-
)
|
|
165
|
-
}
|
|
166
|
-
) }),
|
|
167
|
-
values.isScheduled && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
168
|
-
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 4, alignItems: "start", children: [
|
|
169
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
170
|
-
designSystem.DatePicker,
|
|
171
|
-
{
|
|
172
|
-
label: formatMessage({
|
|
173
|
-
id: "content-releases.modal.form.input.label.date",
|
|
174
|
-
defaultMessage: "Date"
|
|
175
|
-
}),
|
|
176
|
-
name: "date",
|
|
177
|
-
error: errors.date,
|
|
178
|
-
onChange: (date) => {
|
|
179
|
-
const isoFormatDate = date ? dateFns.formatISO(date, { representation: "date" }) : null;
|
|
180
|
-
setFieldValue("date", isoFormatDate);
|
|
181
|
-
},
|
|
182
|
-
clearLabel: formatMessage({
|
|
183
|
-
id: "content-releases.modal.form.input.clearLabel",
|
|
184
|
-
defaultMessage: "Clear"
|
|
185
|
-
}),
|
|
186
|
-
onClear: () => {
|
|
187
|
-
setFieldValue("date", null);
|
|
188
|
-
},
|
|
189
|
-
selectedDate: values.date || void 0,
|
|
190
|
-
required: true,
|
|
191
|
-
minDate: dateFnsTz.utcToZonedTime(/* @__PURE__ */ new Date(), values.timezone.split("&")[1])
|
|
192
|
-
}
|
|
193
|
-
) }),
|
|
194
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { width: "100%", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
195
|
-
designSystem.TimePicker,
|
|
196
|
-
{
|
|
197
|
-
label: formatMessage({
|
|
198
|
-
id: "content-releases.modal.form.input.label.time",
|
|
199
|
-
defaultMessage: "Time"
|
|
200
|
-
}),
|
|
201
|
-
name: "time",
|
|
202
|
-
error: errors.time,
|
|
203
|
-
onChange: (time) => {
|
|
204
|
-
setFieldValue("time", time);
|
|
205
|
-
},
|
|
206
|
-
clearLabel: formatMessage({
|
|
207
|
-
id: "content-releases.modal.form.input.clearLabel",
|
|
208
|
-
defaultMessage: "Clear"
|
|
209
|
-
}),
|
|
210
|
-
onClear: () => {
|
|
211
|
-
setFieldValue("time", "");
|
|
212
|
-
},
|
|
213
|
-
value: values.time || void 0,
|
|
214
|
-
required: true
|
|
215
|
-
}
|
|
216
|
-
) })
|
|
217
|
-
] }),
|
|
218
|
-
/* @__PURE__ */ jsxRuntime.jsx(TimezoneComponent, { timezoneOptions: timezoneList })
|
|
219
|
-
] })
|
|
206
|
+
},
|
|
207
|
+
value: values.time || void 0,
|
|
208
|
+
required: true
|
|
209
|
+
}
|
|
210
|
+
) })
|
|
211
|
+
] }),
|
|
212
|
+
/* @__PURE__ */ jsxRuntime.jsx(TimezoneComponent, { timezoneOptions: timezoneList })
|
|
220
213
|
] })
|
|
221
214
|
] }) }),
|
|
222
215
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -290,8 +283,11 @@ const TimezoneComponent = ({ timezoneOptions }) => {
|
|
|
290
283
|
const LinkCard = styled__default.default(v2.Link)`
|
|
291
284
|
display: block;
|
|
292
285
|
`;
|
|
293
|
-
const
|
|
294
|
-
|
|
286
|
+
const RelativeTime = styled__default.default(helperPlugin.RelativeTime)`
|
|
287
|
+
display: inline-block;
|
|
288
|
+
&::first-letter {
|
|
289
|
+
text-transform: uppercase;
|
|
290
|
+
}
|
|
295
291
|
`;
|
|
296
292
|
const getBadgeProps = (status) => {
|
|
297
293
|
let color;
|
|
@@ -320,7 +316,6 @@ const getBadgeProps = (status) => {
|
|
|
320
316
|
};
|
|
321
317
|
const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
|
|
322
318
|
const { formatMessage } = reactIntl.useIntl();
|
|
323
|
-
const IsSchedulingEnabled = window.strapi.future.isEnabled("contentReleasesScheduling");
|
|
324
319
|
if (isError) {
|
|
325
320
|
return /* @__PURE__ */ jsxRuntime.jsx(helperPlugin.AnErrorOccurred, {});
|
|
326
321
|
}
|
|
@@ -341,7 +336,7 @@ const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
|
|
|
341
336
|
}
|
|
342
337
|
);
|
|
343
338
|
}
|
|
344
|
-
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: releases.map(({ id, name,
|
|
339
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, children: releases.map(({ id, name, scheduledAt, status }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.GridItem, { col: 3, s: 6, xs: 12, children: /* @__PURE__ */ jsxRuntime.jsx(LinkCard, { href: `content-releases/${id}`, isExternal: false, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
345
340
|
designSystem.Flex,
|
|
346
341
|
{
|
|
347
342
|
direction: "column",
|
|
@@ -357,16 +352,10 @@ const ReleasesGrid = ({ sectionTitle, releases = [], isError = false }) => {
|
|
|
357
352
|
children: [
|
|
358
353
|
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", alignItems: "start", gap: 1, children: [
|
|
359
354
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "h3", variant: "delta", fontWeight: "bold", children: name }),
|
|
360
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "neutral600", children:
|
|
355
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", textColor: "neutral600", children: scheduledAt ? /* @__PURE__ */ jsxRuntime.jsx(RelativeTime, { timestamp: new Date(scheduledAt) }) : formatMessage({
|
|
361
356
|
id: "content-releases.pages.Releases.not-scheduled",
|
|
362
357
|
defaultMessage: "Not scheduled"
|
|
363
|
-
})
|
|
364
|
-
{
|
|
365
|
-
id: "content-releases.page.Releases.release-item.entries",
|
|
366
|
-
defaultMessage: "{number, plural, =0 {No entries} one {# entry} other {# entries}}"
|
|
367
|
-
},
|
|
368
|
-
{ number: actions.meta.count }
|
|
369
|
-
) })
|
|
358
|
+
}) })
|
|
370
359
|
] }),
|
|
371
360
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { ...getBadgeProps(status), children: status })
|
|
372
361
|
]
|
|
@@ -385,8 +374,7 @@ const INITIAL_FORM_VALUES = {
|
|
|
385
374
|
name: "",
|
|
386
375
|
date: null,
|
|
387
376
|
time: "",
|
|
388
|
-
|
|
389
|
-
isScheduled: window.strapi.future.isEnabled("contentReleasesScheduling"),
|
|
377
|
+
isScheduled: true,
|
|
390
378
|
scheduledAt: null,
|
|
391
379
|
timezone: null
|
|
392
380
|
};
|
|
@@ -736,7 +724,12 @@ const ReleaseDetailsLayout = ({
|
|
|
736
724
|
}
|
|
737
725
|
};
|
|
738
726
|
const handleRefresh = () => {
|
|
739
|
-
dispatch(
|
|
727
|
+
dispatch(
|
|
728
|
+
index.releaseApi.util.invalidateTags([
|
|
729
|
+
{ type: "ReleaseAction", id: "LIST" },
|
|
730
|
+
{ type: "Release", id: releaseId }
|
|
731
|
+
])
|
|
732
|
+
);
|
|
740
733
|
};
|
|
741
734
|
const getCreatedByUser = () => {
|
|
742
735
|
if (!release?.createdBy) {
|
|
@@ -772,7 +765,6 @@ const ReleaseDetailsLayout = ({
|
|
|
772
765
|
}
|
|
773
766
|
const totalEntries = release.actions.meta.count || 0;
|
|
774
767
|
const hasCreatedByUser = Boolean(getCreatedByUser());
|
|
775
|
-
const IsSchedulingEnabled = window.strapi.future.isEnabled("contentReleasesScheduling");
|
|
776
768
|
const isScheduled = release.scheduledAt && release.timezone;
|
|
777
769
|
const numberOfEntriesText = formatMessage(
|
|
778
770
|
{
|
|
@@ -807,7 +799,7 @@ const ReleaseDetailsLayout = ({
|
|
|
807
799
|
{
|
|
808
800
|
title: release.name,
|
|
809
801
|
subtitle: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 2, lineHeight: 6, children: [
|
|
810
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral600", variant: "epsilon", children: numberOfEntriesText + (
|
|
802
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textColor: "neutral600", variant: "epsilon", children: numberOfEntriesText + (isScheduled ? ` - ${scheduledText}` : "") }),
|
|
811
803
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Badge, { ...getBadgeProps(release.status), children: release.status })
|
|
812
804
|
] }),
|
|
813
805
|
navigationAction: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Link, { startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.ArrowLeft, {}), to: "/plugins/content-releases", children: formatMessage({
|
|
@@ -918,6 +910,7 @@ const ReleaseDetailsLayout = ({
|
|
|
918
910
|
] });
|
|
919
911
|
};
|
|
920
912
|
const GROUP_BY_OPTIONS = ["contentType", "locale", "action"];
|
|
913
|
+
const GROUP_BY_OPTIONS_NO_LOCALE = ["contentType", "action"];
|
|
921
914
|
const getGroupByOptionLabel = (value) => {
|
|
922
915
|
if (value === "locale") {
|
|
923
916
|
return {
|
|
@@ -936,6 +929,21 @@ const getGroupByOptionLabel = (value) => {
|
|
|
936
929
|
defaultMessage: "Content-Types"
|
|
937
930
|
};
|
|
938
931
|
};
|
|
932
|
+
const DEFAULT_RELEASE_DETAILS_HEADER = [
|
|
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
|
+
];
|
|
939
947
|
const ReleaseDetailsBody = () => {
|
|
940
948
|
const { formatMessage } = reactIntl.useIntl();
|
|
941
949
|
const { releaseId } = reactRouterDom.useParams();
|
|
@@ -951,6 +959,17 @@ const ReleaseDetailsBody = () => {
|
|
|
951
959
|
const {
|
|
952
960
|
allowedActions: { canUpdate }
|
|
953
961
|
} = helperPlugin.useRBAC(index.PERMISSIONS);
|
|
962
|
+
const { runHookWaterfall } = helperPlugin.useStrapiApp();
|
|
963
|
+
const {
|
|
964
|
+
displayedHeaders,
|
|
965
|
+
hasI18nEnabled
|
|
966
|
+
} = runHookWaterfall(
|
|
967
|
+
"ContentReleases/pages/ReleaseDetails/add-locale-in-releases",
|
|
968
|
+
{
|
|
969
|
+
displayedHeaders: DEFAULT_RELEASE_DETAILS_HEADER,
|
|
970
|
+
hasI18nEnabled: false
|
|
971
|
+
}
|
|
972
|
+
);
|
|
954
973
|
const release = releaseData?.data;
|
|
955
974
|
const selectedGroupBy = query?.groupBy || "contentType";
|
|
956
975
|
const {
|
|
@@ -1052,6 +1071,7 @@ const ReleaseDetailsBody = () => {
|
|
|
1052
1071
|
}
|
|
1053
1072
|
) });
|
|
1054
1073
|
}
|
|
1074
|
+
const options = hasI18nEnabled ? GROUP_BY_OPTIONS : GROUP_BY_OPTIONS_NO_LOCALE;
|
|
1055
1075
|
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.ContentLayout, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 8, direction: "column", alignItems: "stretch", children: [
|
|
1056
1076
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1057
1077
|
designSystem.SingleSelect,
|
|
@@ -1071,7 +1091,7 @@ const ReleaseDetailsBody = () => {
|
|
|
1071
1091
|
),
|
|
1072
1092
|
value: formatMessage(getGroupByOptionLabel(selectedGroupBy)),
|
|
1073
1093
|
onChange: (value) => setQuery({ groupBy: value }),
|
|
1074
|
-
children:
|
|
1094
|
+
children: options.map((option) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.SingleSelectOption, { value: option, children: formatMessage(getGroupByOptionLabel(option)) }, option))
|
|
1075
1095
|
}
|
|
1076
1096
|
) }),
|
|
1077
1097
|
Object.keys(releaseActions).map((key) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { gap: 4, direction: "column", alignItems: "stretch", children: [
|
|
@@ -1088,28 +1108,15 @@ const ReleaseDetailsBody = () => {
|
|
|
1088
1108
|
isFetching,
|
|
1089
1109
|
children: /* @__PURE__ */ jsxRuntime.jsxs(helperPlugin.Table.Content, { children: [
|
|
1090
1110
|
/* @__PURE__ */ jsxRuntime.jsxs(helperPlugin.Table.Head, { children: [
|
|
1091
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1111
|
+
displayedHeaders.map(({ key: key2, fieldSchema, metadatas, name }) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1092
1112
|
helperPlugin.Table.HeaderCell,
|
|
1093
1113
|
{
|
|
1094
|
-
fieldSchemaType:
|
|
1095
|
-
label: formatMessage(
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
}
|
|
1101
|
-
),
|
|
1102
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1103
|
-
helperPlugin.Table.HeaderCell,
|
|
1104
|
-
{
|
|
1105
|
-
fieldSchemaType: "string",
|
|
1106
|
-
label: formatMessage({
|
|
1107
|
-
id: "content-releases.page.ReleaseDetails.table.header.label.locale",
|
|
1108
|
-
defaultMessage: "locale"
|
|
1109
|
-
}),
|
|
1110
|
-
name: "locale"
|
|
1111
|
-
}
|
|
1112
|
-
),
|
|
1114
|
+
fieldSchemaType: fieldSchema.type,
|
|
1115
|
+
label: formatMessage(metadatas.label),
|
|
1116
|
+
name
|
|
1117
|
+
},
|
|
1118
|
+
key2
|
|
1119
|
+
)),
|
|
1113
1120
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1114
1121
|
helperPlugin.Table.HeaderCell,
|
|
1115
1122
|
{
|
|
@@ -1148,7 +1155,7 @@ const ReleaseDetailsBody = () => {
|
|
|
1148
1155
|
/* @__PURE__ */ jsxRuntime.jsx(helperPlugin.Table.Body, { children: releaseActions[key].map(
|
|
1149
1156
|
({ id, contentType, locale, type, entry }, actionIndex) => /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Tr, { children: [
|
|
1150
1157
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "25%", maxWidth: "200px", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { ellipsis: true, children: `${contentType.mainFieldValue || entry.id}` }) }),
|
|
1151
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "10%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: `${locale?.name ? locale.name : "-"}` }) }),
|
|
1158
|
+
hasI18nEnabled && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "10%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: `${locale?.name ? locale.name : "-"}` }) }),
|
|
1152
1159
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "10%", children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: contentType.displayName || "" }) }),
|
|
1153
1160
|
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Td, { width: "20%", children: release.releasedAt ? /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { children: formatMessage(
|
|
1154
1161
|
{
|
|
@@ -1248,7 +1255,7 @@ const ReleaseDetailsPage = () => {
|
|
|
1248
1255
|
const title = releaseData?.name || "";
|
|
1249
1256
|
const timezone = releaseData?.timezone ?? null;
|
|
1250
1257
|
const scheduledAt = releaseData?.scheduledAt && timezone ? dateFnsTz.utcToZonedTime(releaseData.scheduledAt, timezone) : null;
|
|
1251
|
-
const date = scheduledAt ?
|
|
1258
|
+
const date = scheduledAt ? format__default.default(scheduledAt, "yyyy-MM-dd") : null;
|
|
1252
1259
|
const time = scheduledAt ? format__default.default(scheduledAt, "HH:mm") : "";
|
|
1253
1260
|
const handleEditRelease = async (values) => {
|
|
1254
1261
|
const response = await updateRelease({
|
|
@@ -1265,6 +1272,7 @@ const ReleaseDetailsPage = () => {
|
|
|
1265
1272
|
defaultMessage: "Release updated."
|
|
1266
1273
|
})
|
|
1267
1274
|
});
|
|
1275
|
+
toggleEditReleaseModal();
|
|
1268
1276
|
} else if (index.isAxiosError(response.error)) {
|
|
1269
1277
|
toggleNotification({
|
|
1270
1278
|
type: "warning",
|
|
@@ -1276,7 +1284,6 @@ const ReleaseDetailsPage = () => {
|
|
|
1276
1284
|
message: formatMessage({ id: "notification.error", defaultMessage: "An error occurred" })
|
|
1277
1285
|
});
|
|
1278
1286
|
}
|
|
1279
|
-
toggleEditReleaseModal();
|
|
1280
1287
|
};
|
|
1281
1288
|
const handleDeleteRelease = async () => {
|
|
1282
1289
|
const response = await deleteRelease({
|
|
@@ -1343,4 +1350,4 @@ const App = () => {
|
|
|
1343
1350
|
] }) });
|
|
1344
1351
|
};
|
|
1345
1352
|
exports.App = App;
|
|
1346
|
-
//# sourceMappingURL=App-
|
|
1353
|
+
//# sourceMappingURL=App-dLXY5ei3.js.map
|