@strapi/review-workflows 0.0.0-experimental.e60ec1829240dae21c1e1d29076681c322288813 → 0.0.0-experimental.f31889311d753b5f7d95198ae84d8fce1d156cd6
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 +12 -17
- package/dist/_chunks/{Layout-BSrg0PBJ.mjs → Layout-BpMLb-Oo.mjs} +5 -11
- package/dist/_chunks/Layout-BpMLb-Oo.mjs.map +1 -0
- package/dist/_chunks/{Layout-BemsgaWF.js → Layout-Cwbb9usb.js} +5 -13
- package/dist/_chunks/Layout-Cwbb9usb.js.map +1 -0
- package/dist/_chunks/{_id-DO302-GM.mjs → _id-KpezMzxO.mjs} +307 -334
- package/dist/_chunks/_id-KpezMzxO.mjs.map +1 -0
- package/dist/_chunks/{_id-BDSg16su.js → _id-p9NnvlMP.js} +313 -342
- package/dist/_chunks/_id-p9NnvlMP.js.map +1 -0
- package/dist/_chunks/{index-BIHOhXvS.js → index-BTr8zF-9.js} +143 -166
- package/dist/_chunks/index-BTr8zF-9.js.map +1 -0
- package/dist/_chunks/{index-u8XaKwOw.mjs → index-BxkGN0Yj.mjs} +15 -22
- package/dist/_chunks/index-BxkGN0Yj.mjs.map +1 -0
- package/dist/_chunks/{index-DV2HXfsG.js → index-DqT_oXGP.js} +15 -24
- package/dist/_chunks/index-DqT_oXGP.js.map +1 -0
- package/dist/_chunks/{index-7V_6cgRk.mjs → index-DtJI5ZoC.mjs} +145 -166
- package/dist/_chunks/index-DtJI5ZoC.mjs.map +1 -0
- package/dist/_chunks/{router-BdBbXIaZ.mjs → router-B8G2sh6V.mjs} +3 -3
- package/dist/_chunks/{router-BdBbXIaZ.mjs.map → router-B8G2sh6V.mjs.map} +1 -1
- package/dist/_chunks/{router-BtE6OQHw.js → router-Bqj-105s.js} +3 -3
- package/dist/_chunks/{router-BtE6OQHw.js.map → router-Bqj-105s.js.map} +1 -1
- package/dist/admin/index.js +1 -1
- package/dist/admin/index.mjs +1 -1
- package/dist/admin/src/components/LimitsModal.d.ts +2 -4
- package/dist/admin/src/routes/settings/hooks/useDragAndDrop.d.ts +4 -4
- package/dist/admin/src/routes/settings/hooks/useKeyboardDragAndDrop.d.ts +1 -1
- package/dist/admin/src/routes/settings/hooks/useReviewWorkflows.d.ts +3 -3
- package/dist/admin/src/services/admin.d.ts +2 -2
- package/dist/admin/src/services/api.d.ts +2 -3
- package/dist/admin/src/services/content-manager.d.ts +6 -6
- package/dist/admin/src/services/settings.d.ts +4 -4
- package/dist/admin/src/utils/api.d.ts +4 -19
- package/package.json +13 -14
- package/dist/_chunks/Layout-BSrg0PBJ.mjs.map +0 -1
- package/dist/_chunks/Layout-BemsgaWF.js.map +0 -1
- package/dist/_chunks/_id-BDSg16su.js.map +0 -1
- package/dist/_chunks/_id-DO302-GM.mjs.map +0 -1
- package/dist/_chunks/index-7V_6cgRk.mjs.map +0 -1
- package/dist/_chunks/index-BIHOhXvS.js.map +0 -1
- package/dist/_chunks/index-DV2HXfsG.js.map +0 -1
- package/dist/_chunks/index-u8XaKwOw.mjs.map +0 -1
|
@@ -11,12 +11,11 @@ const reactIntl = require("react-intl");
|
|
|
11
11
|
const reactRedux = require("react-redux");
|
|
12
12
|
const reactRouterDom = require("react-router-dom");
|
|
13
13
|
const yup = require("yup");
|
|
14
|
-
const index = require("./index-
|
|
15
|
-
const Layout = require("./Layout-
|
|
14
|
+
const index = require("./index-BTr8zF-9.js");
|
|
15
|
+
const Layout = require("./Layout-Cwbb9usb.js");
|
|
16
16
|
const reactDndHtml5Backend = require("react-dnd-html5-backend");
|
|
17
|
-
const
|
|
17
|
+
const styledComponents = require("styled-components");
|
|
18
18
|
const reactDnd = require("react-dnd");
|
|
19
|
-
const _interopDefault = (e) => e && e.__esModule ? e : { default: e };
|
|
20
19
|
function _interopNamespace(e) {
|
|
21
20
|
if (e && e.__esModule)
|
|
22
21
|
return e;
|
|
@@ -37,11 +36,10 @@ function _interopNamespace(e) {
|
|
|
37
36
|
}
|
|
38
37
|
const React__namespace = /* @__PURE__ */ _interopNamespace(React);
|
|
39
38
|
const yup__namespace = /* @__PURE__ */ _interopNamespace(yup);
|
|
40
|
-
const styled__default = /* @__PURE__ */ _interopDefault(styled);
|
|
41
39
|
const adminApi = index.reviewWorkflowsApi.injectEndpoints({
|
|
42
40
|
endpoints(builder) {
|
|
43
41
|
return {
|
|
44
|
-
|
|
42
|
+
getAdminRoles: builder.query({
|
|
45
43
|
query: () => ({
|
|
46
44
|
url: `/admin/roles`,
|
|
47
45
|
method: "GET"
|
|
@@ -53,7 +51,7 @@ const adminApi = index.reviewWorkflowsApi.injectEndpoints({
|
|
|
53
51
|
};
|
|
54
52
|
}
|
|
55
53
|
});
|
|
56
|
-
const {
|
|
54
|
+
const { useGetAdminRolesQuery } = adminApi;
|
|
57
55
|
const useKeyboardDragAndDrop = (active, index2, { onCancel, onDropItem, onGrabItem, onMoveItem }) => {
|
|
58
56
|
const [isSelected, setIsSelected] = React__namespace.useState(false);
|
|
59
57
|
const handleMove = (movement) => {
|
|
@@ -272,23 +270,23 @@ const AddStage = ({ children, ...props }) => {
|
|
|
272
270
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
273
271
|
StyledButton,
|
|
274
272
|
{
|
|
275
|
-
|
|
273
|
+
tag: "button",
|
|
276
274
|
background: "neutral0",
|
|
277
|
-
|
|
275
|
+
borderColor: "neutral150",
|
|
278
276
|
paddingBottom: 3,
|
|
279
277
|
paddingLeft: 4,
|
|
280
278
|
paddingRight: 4,
|
|
281
279
|
paddingTop: 3,
|
|
282
280
|
shadow: "filterShadow",
|
|
283
281
|
...props,
|
|
284
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold",
|
|
282
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { variant: "pi", fontWeight: "bold", children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { tag: "span", gap: 2, children: [
|
|
285
283
|
/* @__PURE__ */ jsxRuntime.jsx(icons.PlusCircle, { width: "2.4rem", height: "2.4rem", "aria-hidden": true }),
|
|
286
284
|
children
|
|
287
285
|
] }) })
|
|
288
286
|
}
|
|
289
287
|
);
|
|
290
288
|
};
|
|
291
|
-
const StyledButton =
|
|
289
|
+
const StyledButton = styledComponents.styled(designSystem.Box)`
|
|
292
290
|
border-radius: 26px;
|
|
293
291
|
color: ${({ theme }) => theme.colors.neutral500};
|
|
294
292
|
|
|
@@ -300,7 +298,7 @@ const StyledButton = styled__default.default(designSystem.Box)`
|
|
|
300
298
|
color: ${({ theme }) => theme.colors.primary600};
|
|
301
299
|
}
|
|
302
300
|
`;
|
|
303
|
-
const Stages = ({ canDelete = true, canUpdate = true, isCreating
|
|
301
|
+
const Stages = ({ canDelete = true, canUpdate = true, isCreating }) => {
|
|
304
302
|
const { formatMessage } = reactIntl.useIntl();
|
|
305
303
|
const { trackUsage } = strapiAdmin.useTracking();
|
|
306
304
|
const addFieldRow = strapiAdmin.useForm("Stages", (state) => state.addFieldRow);
|
|
@@ -315,35 +313,23 @@ const Stages = ({ canDelete = true, canUpdate = true, isCreating = false }) => {
|
|
|
315
313
|
left: "50%",
|
|
316
314
|
position: "absolute",
|
|
317
315
|
top: "0",
|
|
318
|
-
width: 2
|
|
319
|
-
zIndex: 1
|
|
316
|
+
width: 2
|
|
320
317
|
}
|
|
321
318
|
),
|
|
322
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
323
|
-
designSystem.
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
canDelete: stages.length > 1 && canDelete,
|
|
337
|
-
canReorder: stages.length > 1,
|
|
338
|
-
canUpdate,
|
|
339
|
-
stagesCount: stages.length,
|
|
340
|
-
isOpen: isCreating,
|
|
341
|
-
...stage
|
|
342
|
-
}
|
|
343
|
-
) }, stage.__temp_key__);
|
|
344
|
-
})
|
|
345
|
-
}
|
|
346
|
-
)
|
|
319
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, position: "relative", tag: "ol", children: stages.map((stage, index2) => {
|
|
320
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { tag: "li", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
321
|
+
Stage,
|
|
322
|
+
{
|
|
323
|
+
index: index2,
|
|
324
|
+
canDelete: stages.length > 1 && canDelete,
|
|
325
|
+
canReorder: stages.length > 1,
|
|
326
|
+
canUpdate,
|
|
327
|
+
stagesCount: stages.length,
|
|
328
|
+
defaultOpen: isCreating,
|
|
329
|
+
...stage
|
|
330
|
+
}
|
|
331
|
+
) }, stage.__temp_key__);
|
|
332
|
+
}) })
|
|
347
333
|
] }),
|
|
348
334
|
canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
|
|
349
335
|
AddStage,
|
|
@@ -361,7 +347,7 @@ const Stages = ({ canDelete = true, canUpdate = true, isCreating = false }) => {
|
|
|
361
347
|
)
|
|
362
348
|
] });
|
|
363
349
|
};
|
|
364
|
-
const Background =
|
|
350
|
+
const Background = styledComponents.styled(designSystem.Box)`
|
|
365
351
|
transform: translateX(-50%);
|
|
366
352
|
`;
|
|
367
353
|
const Stage = ({
|
|
@@ -369,16 +355,15 @@ const Stage = ({
|
|
|
369
355
|
canDelete = false,
|
|
370
356
|
canReorder = false,
|
|
371
357
|
canUpdate = false,
|
|
372
|
-
isOpen: isOpenDefault = false,
|
|
373
358
|
stagesCount,
|
|
374
359
|
name,
|
|
375
360
|
permissions,
|
|
376
|
-
color
|
|
361
|
+
color,
|
|
362
|
+
defaultOpen
|
|
377
363
|
}) => {
|
|
378
364
|
const [liveText, setLiveText] = React__namespace.useState();
|
|
379
365
|
const { formatMessage } = reactIntl.useIntl();
|
|
380
366
|
const { trackUsage } = strapiAdmin.useTracking();
|
|
381
|
-
const [isOpen, setIsOpen] = React__namespace.useState(isOpenDefault);
|
|
382
367
|
const stageErrors = strapiAdmin.useForm("Stages", (state) => state.errors.stages);
|
|
383
368
|
const error = stageErrors?.[index2];
|
|
384
369
|
const addFieldRow = strapiAdmin.useForm("Stage", (state) => state.addFieldRow);
|
|
@@ -460,7 +445,8 @@ const Stage = ({
|
|
|
460
445
|
const handleCloneClick = () => {
|
|
461
446
|
addFieldRow("stages", { name, color, permissions });
|
|
462
447
|
};
|
|
463
|
-
|
|
448
|
+
const id = React__namespace.useId();
|
|
449
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { ref: composedRef, shadow: "tableShadow", children: [
|
|
464
450
|
liveText && /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { "aria-live": "assertive", children: liveText }),
|
|
465
451
|
isDragging ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
466
452
|
designSystem.Box,
|
|
@@ -471,74 +457,61 @@ const Stage = ({
|
|
|
471
457
|
borderWidth: "1px",
|
|
472
458
|
display: "block",
|
|
473
459
|
hasRadius: true,
|
|
474
|
-
padding: 6
|
|
475
|
-
shadow: "tableShadow"
|
|
460
|
+
padding: 6
|
|
476
461
|
}
|
|
477
|
-
) : /* @__PURE__ */ jsxRuntime.
|
|
478
|
-
|
|
462
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
463
|
+
AccordionRoot,
|
|
479
464
|
{
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
onToggle: () => {
|
|
483
|
-
setIsOpen(!isOpen);
|
|
484
|
-
if (!isOpen) {
|
|
465
|
+
onValueChange: (value) => {
|
|
466
|
+
if (value) {
|
|
485
467
|
trackUsage("willEditStage");
|
|
486
468
|
}
|
|
487
469
|
},
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
/* @__PURE__ */ jsxRuntime.jsx(icons.More, { "aria-hidden": true, focusable: false }),
|
|
502
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { as: "span", children: formatMessage({
|
|
503
|
-
id: "[tbdb].components.DynamicZone.more-actions",
|
|
504
|
-
defaultMessage: "More actions"
|
|
505
|
-
}) })
|
|
506
|
-
] }),
|
|
507
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Content, { popoverPlacement: "bottom-end", zIndex: 2, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.SubRoot, { children: [
|
|
508
|
-
canUpdate && /* @__PURE__ */ jsxRuntime.jsx(designSystem.MenuItem, { onClick: handleCloneClick, children: formatMessage({
|
|
509
|
-
id: "Settings.review-workflows.stage.delete",
|
|
510
|
-
defaultMessage: "Duplicate stage"
|
|
511
|
-
}) }),
|
|
512
|
-
canDelete && /* @__PURE__ */ jsxRuntime.jsx(DeleteMenuItem, { onClick: () => removeFieldRow("stages", index2), children: formatMessage({
|
|
513
|
-
id: "Settings.review-workflows.stage.delete",
|
|
514
|
-
defaultMessage: "Delete"
|
|
515
|
-
}) })
|
|
516
|
-
] }) })
|
|
470
|
+
defaultValue: defaultOpen ? id : void 0,
|
|
471
|
+
$error: Object.values(error ?? {}).length > 0,
|
|
472
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Item, { value: id, children: [
|
|
473
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Accordion.Header, { children: [
|
|
474
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Trigger, { children: name }),
|
|
475
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Actions, { children: canDelete || canUpdate ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
476
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.Root, { children: [
|
|
477
|
+
/* @__PURE__ */ jsxRuntime.jsxs(ContextMenuTrigger, { size: "S", endIcon: null, paddingLeft: 2, paddingRight: 2, children: [
|
|
478
|
+
/* @__PURE__ */ jsxRuntime.jsx(icons.More, { "aria-hidden": true, focusable: false }),
|
|
479
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { tag: "span", children: formatMessage({
|
|
480
|
+
id: "[tbdb].components.DynamicZone.more-actions",
|
|
481
|
+
defaultMessage: "More actions"
|
|
482
|
+
}) })
|
|
517
483
|
] }),
|
|
518
|
-
|
|
519
|
-
|
|
520
|
-
|
|
521
|
-
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
|
|
484
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Menu.Content, { popoverPlacement: "bottom-end", zIndex: 2, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Menu.SubRoot, { children: [
|
|
485
|
+
canUpdate && /* @__PURE__ */ jsxRuntime.jsx(designSystem.MenuItem, { onClick: handleCloneClick, children: formatMessage({
|
|
486
|
+
id: "Settings.review-workflows.stage.delete",
|
|
487
|
+
defaultMessage: "Duplicate stage"
|
|
488
|
+
}) }),
|
|
489
|
+
canDelete && /* @__PURE__ */ jsxRuntime.jsx(DeleteMenuItem, { onClick: () => removeFieldRow("stages", index2), children: formatMessage({
|
|
490
|
+
id: "Settings.review-workflows.stage.delete",
|
|
491
|
+
defaultMessage: "Delete"
|
|
492
|
+
}) })
|
|
493
|
+
] }) })
|
|
494
|
+
] }),
|
|
495
|
+
canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
|
|
496
|
+
designSystem.IconButton,
|
|
497
|
+
{
|
|
498
|
+
background: "transparent",
|
|
499
|
+
hasRadius: true,
|
|
500
|
+
borderWidth: 0,
|
|
501
|
+
"data-handler-id": handlerId,
|
|
502
|
+
ref: dragRef,
|
|
503
|
+
label: formatMessage({
|
|
504
|
+
id: "Settings.review-workflows.stage.drag",
|
|
505
|
+
defaultMessage: "Drag"
|
|
506
|
+
}),
|
|
507
|
+
onClick: (e) => e.stopPropagation(),
|
|
508
|
+
onKeyDown: handleKeyDown,
|
|
509
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(icons.Drag, {})
|
|
510
|
+
}
|
|
511
|
+
)
|
|
512
|
+
] }) : null })
|
|
513
|
+
] }),
|
|
514
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, padding: 6, children: [
|
|
542
515
|
{
|
|
543
516
|
disabled: !canUpdate,
|
|
544
517
|
label: formatMessage({
|
|
@@ -576,16 +549,20 @@ const Stage = ({
|
|
|
576
549
|
size: 6,
|
|
577
550
|
type: "permissions"
|
|
578
551
|
}
|
|
579
|
-
].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
580
|
-
]
|
|
552
|
+
].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, children: /* @__PURE__ */ jsxRuntime.jsx(InputRenderer, { ...field }) }, field.name)) }) })
|
|
553
|
+
] })
|
|
581
554
|
}
|
|
582
555
|
)
|
|
583
556
|
] });
|
|
584
557
|
};
|
|
585
|
-
const
|
|
558
|
+
const AccordionRoot = styledComponents.styled(designSystem.Accordion.Root)`
|
|
559
|
+
border: 1px solid
|
|
560
|
+
${({ theme, $error }) => $error ? theme.colors.danger600 : theme.colors.neutral200};
|
|
561
|
+
`;
|
|
562
|
+
const DeleteMenuItem = styledComponents.styled(designSystem.MenuItem)`
|
|
586
563
|
color: ${({ theme }) => theme.colors.danger600};
|
|
587
564
|
`;
|
|
588
|
-
const ContextMenuTrigger =
|
|
565
|
+
const ContextMenuTrigger = styledComponents.styled(designSystem.Menu.Trigger)`
|
|
589
566
|
:hover,
|
|
590
567
|
:focus {
|
|
591
568
|
background-color: ${({ theme }) => theme.colors.neutral100};
|
|
@@ -595,22 +572,6 @@ const ContextMenuTrigger = styled__default.default(designSystem.Menu.Trigger)`
|
|
|
595
572
|
font-size: 0;
|
|
596
573
|
}
|
|
597
574
|
`;
|
|
598
|
-
const DragIconButton = styled__default.default(designSystem.IconButton)`
|
|
599
|
-
align-items: center;
|
|
600
|
-
border-radius: ${({ theme }) => theme.borderRadius};
|
|
601
|
-
display: flex;
|
|
602
|
-
justify-content: center;
|
|
603
|
-
|
|
604
|
-
&:hover,
|
|
605
|
-
&:focus {
|
|
606
|
-
background-color: ${({ theme }) => theme.colors.neutral100};
|
|
607
|
-
}
|
|
608
|
-
|
|
609
|
-
svg {
|
|
610
|
-
height: auto;
|
|
611
|
-
width: ${({ theme }) => theme.spaces[3]};
|
|
612
|
-
}
|
|
613
|
-
`;
|
|
614
575
|
const InputRenderer = (props) => {
|
|
615
576
|
switch (props.type) {
|
|
616
577
|
case "color":
|
|
@@ -636,54 +597,55 @@ const ColorSelector = ({ disabled, label, name, required }) => {
|
|
|
636
597
|
color: hex
|
|
637
598
|
}));
|
|
638
599
|
const { themeColorName } = index.getStageColorByHex(value) ?? {};
|
|
639
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
640
|
-
designSystem.
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
designSystem.Flex,
|
|
652
|
-
{
|
|
653
|
-
as: "span",
|
|
654
|
-
height: 2,
|
|
655
|
-
background: value,
|
|
656
|
-
borderColor: themeColorName === "neutral0" ? "neutral150" : "transparent",
|
|
657
|
-
hasRadius: true,
|
|
658
|
-
shrink: 0,
|
|
659
|
-
width: 2
|
|
660
|
-
}
|
|
661
|
-
),
|
|
662
|
-
children: colorOptions.map(({ value: value2, label: label2, color }) => {
|
|
663
|
-
const { themeColorName: themeColorName2 } = index.getStageColorByHex(color) || {};
|
|
664
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
665
|
-
designSystem.SingleSelectOption,
|
|
600
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name, required, children: [
|
|
601
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: label }),
|
|
602
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
603
|
+
designSystem.SingleSelect,
|
|
604
|
+
{
|
|
605
|
+
disabled,
|
|
606
|
+
onChange: (v) => {
|
|
607
|
+
onChange(name, v.toString());
|
|
608
|
+
},
|
|
609
|
+
value: value?.toUpperCase(),
|
|
610
|
+
startIcon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
611
|
+
designSystem.Flex,
|
|
666
612
|
{
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
613
|
+
tag: "span",
|
|
614
|
+
height: 2,
|
|
615
|
+
background: value,
|
|
616
|
+
borderColor: themeColorName === "neutral0" ? "neutral150" : "transparent",
|
|
617
|
+
hasRadius: true,
|
|
618
|
+
shrink: 0,
|
|
619
|
+
width: 2
|
|
620
|
+
}
|
|
621
|
+
),
|
|
622
|
+
children: colorOptions.map(({ value: value2, label: label2, color }) => {
|
|
623
|
+
const { themeColorName: themeColorName2 } = index.getStageColorByHex(color) || {};
|
|
624
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
625
|
+
designSystem.SingleSelectOption,
|
|
626
|
+
{
|
|
627
|
+
value: value2,
|
|
628
|
+
startIcon: /* @__PURE__ */ jsxRuntime.jsx(
|
|
629
|
+
designSystem.Flex,
|
|
630
|
+
{
|
|
631
|
+
tag: "span",
|
|
632
|
+
height: 2,
|
|
633
|
+
background: color,
|
|
634
|
+
borderColor: themeColorName2 === "neutral0" ? "neutral150" : "transparent",
|
|
635
|
+
hasRadius: true,
|
|
636
|
+
shrink: 0,
|
|
637
|
+
width: 2
|
|
638
|
+
}
|
|
639
|
+
),
|
|
640
|
+
children: label2
|
|
641
|
+
},
|
|
642
|
+
value2
|
|
643
|
+
);
|
|
644
|
+
})
|
|
645
|
+
}
|
|
646
|
+
),
|
|
647
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
648
|
+
] });
|
|
687
649
|
};
|
|
688
650
|
const PermissionsField = ({ disabled, name, placeholder, required }) => {
|
|
689
651
|
const { formatMessage } = reactIntl.useIntl();
|
|
@@ -692,57 +654,65 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
|
|
|
692
654
|
const { value = [], error, onChange } = strapiAdmin.useField(name);
|
|
693
655
|
const allStages = strapiAdmin.useForm("PermissionsField", (state) => state.values.stages);
|
|
694
656
|
const onFormValueChange = strapiAdmin.useForm("PermissionsField", (state) => state.onChange);
|
|
695
|
-
const
|
|
657
|
+
const rolesErrorCount = React__namespace.useRef(0);
|
|
658
|
+
const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();
|
|
696
659
|
const filteredRoles = roles?.filter((role) => role.code !== "strapi-super-admin") ?? [];
|
|
697
660
|
React__namespace.useEffect(() => {
|
|
698
|
-
if (!isLoading &&
|
|
661
|
+
if (!isLoading && getRolesError && "status" in getRolesError && getRolesError.status == 403 && rolesErrorCount.current === 0) {
|
|
662
|
+
rolesErrorCount.current = 1;
|
|
699
663
|
toggleNotification({
|
|
700
664
|
blockTransition: true,
|
|
701
665
|
type: "danger",
|
|
702
666
|
message: formatMessage({
|
|
703
667
|
id: "review-workflows.stage.permissions.noPermissions.description",
|
|
704
|
-
defaultMessage: "You don’t have the permission to see roles"
|
|
668
|
+
defaultMessage: "You don’t have the permission to see roles. Contact your administrator."
|
|
705
669
|
})
|
|
706
670
|
});
|
|
707
671
|
}
|
|
708
|
-
}, [formatMessage, isLoading, roles, toggleNotification]);
|
|
672
|
+
}, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);
|
|
709
673
|
if (!isLoading && filteredRoles.length === 0) {
|
|
710
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
711
|
-
designSystem.
|
|
674
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
675
|
+
designSystem.Field.Root,
|
|
712
676
|
{
|
|
713
|
-
disabled: true,
|
|
714
677
|
name,
|
|
715
678
|
hint: formatMessage({
|
|
716
679
|
id: "Settings.review-workflows.stage.permissions.noPermissions.description",
|
|
717
680
|
defaultMessage: "You don’t have the permission to see roles"
|
|
718
681
|
}),
|
|
719
|
-
label: formatMessage({
|
|
720
|
-
id: "Settings.review-workflows.stage.permissions.label",
|
|
721
|
-
defaultMessage: "Roles that can change this stage"
|
|
722
|
-
}),
|
|
723
|
-
placeholder: formatMessage({
|
|
724
|
-
id: "components.NotAllowedInput.text",
|
|
725
|
-
defaultMessage: "No permissions to see this field"
|
|
726
|
-
}),
|
|
727
682
|
required,
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
683
|
+
children: [
|
|
684
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
685
|
+
id: "Settings.review-workflows.stage.permissions.label",
|
|
686
|
+
defaultMessage: "Roles that can change this stage"
|
|
687
|
+
}) }),
|
|
688
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
689
|
+
designSystem.TextInput,
|
|
690
|
+
{
|
|
691
|
+
disabled: true,
|
|
692
|
+
placeholder: formatMessage({
|
|
693
|
+
id: "components.NotAllowedInput.text",
|
|
694
|
+
defaultMessage: "No permissions to see this field"
|
|
695
|
+
}),
|
|
696
|
+
startAction: /* @__PURE__ */ jsxRuntime.jsx(icons.EyeStriked, { fill: "neutral600" }),
|
|
697
|
+
type: "text",
|
|
698
|
+
value: ""
|
|
699
|
+
}
|
|
700
|
+
),
|
|
701
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Hint, {})
|
|
702
|
+
]
|
|
731
703
|
}
|
|
732
704
|
);
|
|
733
705
|
}
|
|
734
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
735
|
-
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.
|
|
736
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
706
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "flex-end", gap: 3, children: [
|
|
707
|
+
/* @__PURE__ */ jsxRuntime.jsx(PermissionWrapper, { grow: 1, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name, required: true, children: [
|
|
708
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
709
|
+
id: "Settings.review-workflows.stage.permissions.label",
|
|
710
|
+
defaultMessage: "Roles that can change this stage"
|
|
711
|
+
}) }),
|
|
712
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
737
713
|
designSystem.MultiSelect,
|
|
738
714
|
{
|
|
739
715
|
disabled,
|
|
740
|
-
error,
|
|
741
|
-
id: name,
|
|
742
|
-
label: formatMessage({
|
|
743
|
-
id: "Settings.review-workflows.stage.permissions.label",
|
|
744
|
-
defaultMessage: "Roles that can change this stage"
|
|
745
|
-
}),
|
|
746
716
|
onChange: (values) => {
|
|
747
717
|
const permissions = values.map((value2) => ({
|
|
748
718
|
role: parseInt(value2, 10),
|
|
@@ -751,7 +721,6 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
|
|
|
751
721
|
onChange(name, permissions);
|
|
752
722
|
},
|
|
753
723
|
placeholder,
|
|
754
|
-
required: true,
|
|
755
724
|
value: value.map((permission) => `${permission.role}`),
|
|
756
725
|
withTags: true,
|
|
757
726
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -768,70 +737,65 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
|
|
|
768
737
|
}
|
|
769
738
|
)
|
|
770
739
|
}
|
|
771
|
-
)
|
|
772
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
740
|
+
),
|
|
741
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
742
|
+
] }) }),
|
|
743
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Root, { open: isApplyAllConfirmationOpen, onOpenChange: setIsApplyAllConfirmationOpen, children: [
|
|
744
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
773
745
|
designSystem.IconButton,
|
|
774
746
|
{
|
|
775
747
|
disabled,
|
|
776
|
-
icon: /* @__PURE__ */ jsxRuntime.jsx(icons.Duplicate, {}),
|
|
777
748
|
label: formatMessage({
|
|
778
749
|
id: "Settings.review-workflows.stage.permissions.apply.label",
|
|
779
750
|
defaultMessage: "Apply to all stages"
|
|
780
751
|
}),
|
|
781
752
|
size: "L",
|
|
782
753
|
variant: "secondary",
|
|
783
|
-
|
|
754
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(icons.Duplicate, {})
|
|
755
|
+
}
|
|
756
|
+
) }),
|
|
757
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
758
|
+
strapiAdmin.ConfirmDialog,
|
|
759
|
+
{
|
|
760
|
+
onConfirm: () => {
|
|
761
|
+
onFormValueChange(
|
|
762
|
+
"stages",
|
|
763
|
+
allStages.map((stage) => ({
|
|
764
|
+
...stage,
|
|
765
|
+
permissions: value
|
|
766
|
+
}))
|
|
767
|
+
);
|
|
768
|
+
setIsApplyAllConfirmationOpen(false);
|
|
769
|
+
toggleNotification({
|
|
770
|
+
type: "success",
|
|
771
|
+
message: formatMessage({
|
|
772
|
+
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
|
|
773
|
+
defaultMessage: "Applied roles to all other stages of the workflow"
|
|
774
|
+
})
|
|
775
|
+
});
|
|
776
|
+
},
|
|
777
|
+
variant: "default",
|
|
778
|
+
children: formatMessage({
|
|
779
|
+
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
|
|
780
|
+
defaultMessage: "Roles that can change that stage will be applied to all the other stages."
|
|
781
|
+
})
|
|
784
782
|
}
|
|
785
783
|
)
|
|
786
|
-
] })
|
|
787
|
-
|
|
788
|
-
strapiAdmin.ConfirmDialog,
|
|
789
|
-
{
|
|
790
|
-
isOpen: isApplyAllConfirmationOpen,
|
|
791
|
-
onClose: () => setIsApplyAllConfirmationOpen(false),
|
|
792
|
-
onConfirm: () => {
|
|
793
|
-
onFormValueChange(
|
|
794
|
-
"stages",
|
|
795
|
-
allStages.map((stage) => ({
|
|
796
|
-
...stage,
|
|
797
|
-
permissions: value
|
|
798
|
-
}))
|
|
799
|
-
);
|
|
800
|
-
setIsApplyAllConfirmationOpen(false);
|
|
801
|
-
toggleNotification({
|
|
802
|
-
type: "success",
|
|
803
|
-
message: formatMessage({
|
|
804
|
-
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
|
|
805
|
-
defaultMessage: "Applied roles to all other stages of the workflow"
|
|
806
|
-
})
|
|
807
|
-
});
|
|
808
|
-
},
|
|
809
|
-
variant: "default",
|
|
810
|
-
children: formatMessage({
|
|
811
|
-
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
|
|
812
|
-
defaultMessage: "Roles that can change that stage will be applied to all the other stages."
|
|
813
|
-
})
|
|
814
|
-
}
|
|
815
|
-
)
|
|
816
|
-
] });
|
|
784
|
+
] })
|
|
785
|
+
] }) });
|
|
817
786
|
};
|
|
818
|
-
const
|
|
819
|
-
& > path {
|
|
820
|
-
fill: ${({ theme }) => theme.colors.neutral600};
|
|
821
|
-
}
|
|
822
|
-
`;
|
|
823
|
-
const NestedOption$1 = styled__default.default(designSystem.MultiSelectOption)`
|
|
787
|
+
const NestedOption$1 = styledComponents.styled(designSystem.MultiSelectOption)`
|
|
824
788
|
padding-left: ${({ theme }) => theme.spaces[7]};
|
|
825
789
|
`;
|
|
826
|
-
const PermissionWrapper =
|
|
790
|
+
const PermissionWrapper = styledComponents.styled(designSystem.Flex)`
|
|
827
791
|
> * {
|
|
828
792
|
flex-grow: 1;
|
|
829
793
|
}
|
|
830
794
|
`;
|
|
831
795
|
const WorkflowAttributes = ({ canUpdate = true }) => {
|
|
832
796
|
const { formatMessage } = reactIntl.useIntl();
|
|
833
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
|
|
834
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
797
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
|
|
798
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
835
799
|
strapiAdmin.InputRenderer,
|
|
836
800
|
{
|
|
837
801
|
disabled: !canUpdate,
|
|
@@ -844,7 +808,7 @@ const WorkflowAttributes = ({ canUpdate = true }) => {
|
|
|
844
808
|
type: "string"
|
|
845
809
|
}
|
|
846
810
|
) }),
|
|
847
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
811
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, children: /* @__PURE__ */ jsxRuntime.jsx(ContentTypesSelector, { disabled: !canUpdate }) })
|
|
848
812
|
] });
|
|
849
813
|
};
|
|
850
814
|
const ContentTypesSelector = ({ disabled }) => {
|
|
@@ -865,86 +829,87 @@ const ContentTypesSelector = ({ disabled }) => {
|
|
|
865
829
|
label: contentType.info.displayName,
|
|
866
830
|
value: contentType.uid
|
|
867
831
|
}));
|
|
868
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
869
|
-
designSystem.
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
873
|
-
|
|
874
|
-
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
),
|
|
878
|
-
disabled: isDisabled,
|
|
879
|
-
error,
|
|
880
|
-
label: formatMessage({
|
|
881
|
-
id: "Settings.review-workflows.workflow.contentTypes.label",
|
|
882
|
-
defaultMessage: "Associated to"
|
|
883
|
-
}),
|
|
884
|
-
onChange: (values) => {
|
|
885
|
-
onChange("contentTypes", values);
|
|
886
|
-
},
|
|
887
|
-
value,
|
|
888
|
-
placeholder: formatMessage({
|
|
889
|
-
id: "Settings.review-workflows.workflow.contentTypes.placeholder",
|
|
890
|
-
defaultMessage: "Select"
|
|
891
|
-
}),
|
|
892
|
-
children: [
|
|
893
|
-
...collectionTypes.length > 0 ? [
|
|
894
|
-
{
|
|
895
|
-
label: formatMessage({
|
|
896
|
-
id: "Settings.review-workflows.workflow.contentTypes.collectionTypes.label",
|
|
897
|
-
defaultMessage: "Collection Types"
|
|
898
|
-
}),
|
|
899
|
-
children: collectionTypes
|
|
900
|
-
}
|
|
901
|
-
] : [],
|
|
902
|
-
...singleTypes.length > 0 ? [
|
|
903
|
-
{
|
|
904
|
-
label: formatMessage({
|
|
905
|
-
id: "Settings.review-workflows.workflow.contentTypes.singleTypes.label",
|
|
906
|
-
defaultMessage: "Single Types"
|
|
907
|
-
}),
|
|
908
|
-
children: singleTypes
|
|
909
|
-
}
|
|
910
|
-
] : []
|
|
911
|
-
].map((opt) => {
|
|
912
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
913
|
-
designSystem.MultiSelectGroup,
|
|
832
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name: "contentTypes", children: [
|
|
833
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
834
|
+
id: "Settings.review-workflows.workflow.contentTypes.label",
|
|
835
|
+
defaultMessage: "Associated to"
|
|
836
|
+
}) }),
|
|
837
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
838
|
+
designSystem.MultiSelect,
|
|
839
|
+
{
|
|
840
|
+
customizeContent: (value2) => formatMessage(
|
|
914
841
|
{
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
children: opt.children.map((child) => {
|
|
918
|
-
const { name: assignedWorkflowName } = workflows?.find(
|
|
919
|
-
(workflow) => (currentWorkflow && workflow.id !== currentWorkflow.id || !currentWorkflow) && workflow.contentTypes.includes(child.value)
|
|
920
|
-
) ?? {};
|
|
921
|
-
return /* @__PURE__ */ jsxRuntime.jsx(NestedOption, { value: child.value, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, {
|
|
922
|
-
// @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components
|
|
923
|
-
children: formatMessage(
|
|
924
|
-
{
|
|
925
|
-
id: "Settings.review-workflows.workflow.contentTypes.assigned.notice",
|
|
926
|
-
defaultMessage: "{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}"
|
|
927
|
-
},
|
|
928
|
-
{
|
|
929
|
-
label: child.label,
|
|
930
|
-
name: assignedWorkflowName,
|
|
931
|
-
em: (...children) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { as: "em", fontWeight: "bold", children }),
|
|
932
|
-
i: (...children) => /* @__PURE__ */ jsxRuntime.jsx(ContentTypeTakeNotice, { children })
|
|
933
|
-
}
|
|
934
|
-
)
|
|
935
|
-
}) }, child.value);
|
|
936
|
-
})
|
|
842
|
+
id: "Settings.review-workflows.workflow.contentTypes.displayValue",
|
|
843
|
+
defaultMessage: "{count} {count, plural, one {content type} other {content types}} selected"
|
|
937
844
|
},
|
|
938
|
-
|
|
939
|
-
)
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
845
|
+
{ count: value2?.length }
|
|
846
|
+
),
|
|
847
|
+
disabled: isDisabled,
|
|
848
|
+
onChange: (values) => {
|
|
849
|
+
onChange("contentTypes", values);
|
|
850
|
+
},
|
|
851
|
+
value,
|
|
852
|
+
placeholder: formatMessage({
|
|
853
|
+
id: "Settings.review-workflows.workflow.contentTypes.placeholder",
|
|
854
|
+
defaultMessage: "Select"
|
|
855
|
+
}),
|
|
856
|
+
children: [
|
|
857
|
+
...collectionTypes.length > 0 ? [
|
|
858
|
+
{
|
|
859
|
+
label: formatMessage({
|
|
860
|
+
id: "Settings.review-workflows.workflow.contentTypes.collectionTypes.label",
|
|
861
|
+
defaultMessage: "Collection Types"
|
|
862
|
+
}),
|
|
863
|
+
children: collectionTypes
|
|
864
|
+
}
|
|
865
|
+
] : [],
|
|
866
|
+
...singleTypes.length > 0 ? [
|
|
867
|
+
{
|
|
868
|
+
label: formatMessage({
|
|
869
|
+
id: "Settings.review-workflows.workflow.contentTypes.singleTypes.label",
|
|
870
|
+
defaultMessage: "Single Types"
|
|
871
|
+
}),
|
|
872
|
+
children: singleTypes
|
|
873
|
+
}
|
|
874
|
+
] : []
|
|
875
|
+
].map((opt) => {
|
|
876
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
877
|
+
designSystem.MultiSelectGroup,
|
|
878
|
+
{
|
|
879
|
+
label: opt.label,
|
|
880
|
+
values: opt.children.map((child) => child.value.toString()),
|
|
881
|
+
children: opt.children.map((child) => {
|
|
882
|
+
const { name: assignedWorkflowName } = workflows?.find(
|
|
883
|
+
(workflow) => (currentWorkflow && workflow.id !== currentWorkflow.id || !currentWorkflow) && workflow.contentTypes.includes(child.value)
|
|
884
|
+
) ?? {};
|
|
885
|
+
return /* @__PURE__ */ jsxRuntime.jsx(NestedOption, { value: child.value, children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, {
|
|
886
|
+
// @ts-expect-error - formatMessage options doesn't expect to be a React component but that's what we need actually for the <i> and <em> components
|
|
887
|
+
children: formatMessage(
|
|
888
|
+
{
|
|
889
|
+
id: "Settings.review-workflows.workflow.contentTypes.assigned.notice",
|
|
890
|
+
defaultMessage: "{label} {name, select, undefined {} other {<i>(assigned to <em>{name}</em> workflow)</i>}}"
|
|
891
|
+
},
|
|
892
|
+
{
|
|
893
|
+
label: child.label,
|
|
894
|
+
name: assignedWorkflowName,
|
|
895
|
+
em: (...children) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { tag: "em", fontWeight: "bold", children }),
|
|
896
|
+
i: (...children) => /* @__PURE__ */ jsxRuntime.jsx(ContentTypeTakeNotice, { children })
|
|
897
|
+
}
|
|
898
|
+
)
|
|
899
|
+
}) }, child.value);
|
|
900
|
+
})
|
|
901
|
+
},
|
|
902
|
+
opt.label
|
|
903
|
+
);
|
|
904
|
+
})
|
|
905
|
+
}
|
|
906
|
+
)
|
|
907
|
+
] });
|
|
943
908
|
};
|
|
944
|
-
const NestedOption =
|
|
909
|
+
const NestedOption = styledComponents.styled(designSystem.MultiSelectOption)`
|
|
945
910
|
padding-left: ${({ theme }) => theme.spaces[7]};
|
|
946
911
|
`;
|
|
947
|
-
const ContentTypeTakeNotice =
|
|
912
|
+
const ContentTypeTakeNotice = styledComponents.styled(designSystem.Typography)`
|
|
948
913
|
font-style: italic;
|
|
949
914
|
`;
|
|
950
915
|
const WORKFLOW_SCHEMA = yup__namespace.object({
|
|
@@ -1200,23 +1165,22 @@ const EditPage = () => {
|
|
|
1200
1165
|
}
|
|
1201
1166
|
),
|
|
1202
1167
|
/* @__PURE__ */ jsxRuntime.jsx(Layout.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "stretch", direction: "column", gap: 7, children: [
|
|
1203
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate }),
|
|
1168
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate: canUpdate || canCreate }),
|
|
1204
1169
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1205
1170
|
Stages,
|
|
1206
1171
|
{
|
|
1207
1172
|
canDelete,
|
|
1208
|
-
canUpdate,
|
|
1173
|
+
canUpdate: canUpdate || canCreate,
|
|
1209
1174
|
isCreating: isCreatingWorkflow
|
|
1210
1175
|
}
|
|
1211
1176
|
)
|
|
1212
1177
|
] }) }),
|
|
1213
1178
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1214
|
-
|
|
1179
|
+
designSystem.Dialog.Root,
|
|
1215
1180
|
{
|
|
1216
|
-
|
|
1217
|
-
|
|
1218
|
-
onConfirm: handleConfirmDeleteDialog(values, { setErrors }),
|
|
1219
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
|
|
1181
|
+
open: Object.keys(savePrompts).length > 0,
|
|
1182
|
+
onOpenChange: handleConfirmClose,
|
|
1183
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirmDeleteDialog(values, { setErrors }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
|
|
1220
1184
|
savePrompts.hasDeletedServerStages && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textAlign: "center", variant: "omega", children: formatMessage({
|
|
1221
1185
|
id: "review-workflows.page.delete.confirm.stages.body",
|
|
1222
1186
|
defaultMessage: "All entries assigned to deleted stages will be moved to the previous stage."
|
|
@@ -1236,7 +1200,7 @@ const EditPage = () => {
|
|
|
1236
1200
|
id: "review-workflows.page.delete.confirm.confirm",
|
|
1237
1201
|
defaultMessage: "Are you sure you want to save?"
|
|
1238
1202
|
}) })
|
|
1239
|
-
] })
|
|
1203
|
+
] }) })
|
|
1240
1204
|
}
|
|
1241
1205
|
)
|
|
1242
1206
|
] })
|
|
@@ -1245,8 +1209,8 @@ const EditPage = () => {
|
|
|
1245
1209
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1246
1210
|
index.LimitsModal.Root,
|
|
1247
1211
|
{
|
|
1248
|
-
|
|
1249
|
-
|
|
1212
|
+
open: showLimitModal === "workflow",
|
|
1213
|
+
onOpenChange: () => setShowLimitModal(null),
|
|
1250
1214
|
children: [
|
|
1251
1215
|
/* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
|
|
1252
1216
|
id: "review-workflows.edit.page.workflows.limit.title",
|
|
@@ -1259,16 +1223,23 @@ const EditPage = () => {
|
|
|
1259
1223
|
]
|
|
1260
1224
|
}
|
|
1261
1225
|
),
|
|
1262
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
|
|
1271
|
-
|
|
1226
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1227
|
+
index.LimitsModal.Root,
|
|
1228
|
+
{
|
|
1229
|
+
open: showLimitModal === "stage",
|
|
1230
|
+
onOpenChange: () => setShowLimitModal(null),
|
|
1231
|
+
children: [
|
|
1232
|
+
/* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
|
|
1233
|
+
id: "review-workflows.edit.page.stages.limit.title",
|
|
1234
|
+
defaultMessage: "You have reached the limit of stages for this workflow in your plan"
|
|
1235
|
+
}) }),
|
|
1236
|
+
/* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Body, { children: formatMessage({
|
|
1237
|
+
id: "review-workflows.edit.page.stages.limit.body",
|
|
1238
|
+
defaultMessage: "Try deleting some stages or contact Sales to enable more stages."
|
|
1239
|
+
}) })
|
|
1240
|
+
]
|
|
1241
|
+
}
|
|
1242
|
+
)
|
|
1272
1243
|
] });
|
|
1273
1244
|
};
|
|
1274
1245
|
const addTmpKeysToStages = (data) => {
|
|
@@ -1290,4 +1261,4 @@ const ProtectedEditPage = () => {
|
|
|
1290
1261
|
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditPage, {}) });
|
|
1291
1262
|
};
|
|
1292
1263
|
exports.ProtectedEditPage = ProtectedEditPage;
|
|
1293
|
-
//# sourceMappingURL=_id-
|
|
1264
|
+
//# sourceMappingURL=_id-p9NnvlMP.js.map
|