@strapi/review-workflows 0.0.0-experimental.f75e3c6d67cc47c64ab37479efdbb7b43be50b78 → 0.0.0-experimental.f9cac24ba3b2f6acb12d0fb5669106e5a134174e
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-lg3hbwGL.mjs → Layout-CJZ4iUxI.mjs} +8 -9
- package/dist/_chunks/Layout-CJZ4iUxI.mjs.map +1 -0
- package/dist/_chunks/{Layout-BMqtFafC.js → Layout-D7wwT4c7.js} +8 -9
- package/dist/_chunks/Layout-D7wwT4c7.js.map +1 -0
- package/dist/_chunks/{_id-B3jMqqMH.mjs → _id-DA44l-QM.mjs} +131 -165
- package/dist/_chunks/_id-DA44l-QM.mjs.map +1 -0
- package/dist/_chunks/{_id-B853wt9z.js → _id-DgUOk637.js} +130 -164
- package/dist/_chunks/_id-DgUOk637.js.map +1 -0
- package/dist/_chunks/{index-lebOqdrv.mjs → index-C33Q2-Fc.mjs} +108 -92
- package/dist/_chunks/index-C33Q2-Fc.mjs.map +1 -0
- package/dist/_chunks/{index-BhJmjDbj.mjs → index-CnyO97Gi.mjs} +16 -44
- package/dist/_chunks/index-CnyO97Gi.mjs.map +1 -0
- package/dist/_chunks/{index-CdU1x9cZ.js → index-DL9odlOl.js} +14 -42
- package/dist/_chunks/index-DL9odlOl.js.map +1 -0
- package/dist/_chunks/{index-Ujtj1Rcp.js → index-mQar1hfK.js} +106 -90
- package/dist/_chunks/index-mQar1hfK.js.map +1 -0
- package/dist/_chunks/{router-BboD243b.js → router-B1YtLp6u.js} +3 -3
- package/dist/_chunks/{router-BboD243b.js.map → router-B1YtLp6u.js.map} +1 -1
- package/dist/_chunks/{router-CvMnSjb9.mjs → router-BFv8U71z.mjs} +3 -3
- package/dist/_chunks/{router-CvMnSjb9.mjs.map → router-BFv8U71z.mjs.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/services/admin.d.ts +1 -1
- package/dist/admin/src/services/api.d.ts +1 -1
- package/dist/admin/src/services/content-manager.d.ts +4 -4
- package/dist/admin/src/services/settings.d.ts +1733 -7
- package/dist/server/index.js +41 -62
- package/dist/server/index.js.map +1 -1
- package/dist/server/index.mjs +41 -62
- package/dist/server/index.mjs.map +1 -1
- package/dist/server/src/controllers/assignees.d.ts.map +1 -1
- package/dist/server/src/controllers/index.d.ts +0 -1
- package/dist/server/src/controllers/index.d.ts.map +1 -1
- package/dist/server/src/controllers/stages.d.ts.map +1 -1
- package/dist/server/src/controllers/workflows.d.ts +0 -7
- package/dist/server/src/controllers/workflows.d.ts.map +1 -1
- package/dist/server/src/index.d.ts +1 -2
- package/dist/server/src/index.d.ts.map +1 -1
- package/dist/server/src/routes/review-workflows.d.ts.map +1 -1
- package/dist/server/src/services/document-service-middleware.d.ts.map +1 -1
- package/dist/server/src/services/index.d.ts +1 -1
- package/dist/server/src/services/metrics/weekly-metrics.d.ts.map +1 -1
- package/dist/server/src/services/stages.d.ts +2 -7
- package/dist/server/src/services/stages.d.ts.map +1 -1
- package/dist/shared/contracts/review-workflows.d.ts +1 -14
- package/dist/shared/contracts/review-workflows.d.ts.map +1 -1
- package/package.json +10 -10
- package/dist/_chunks/Layout-BMqtFafC.js.map +0 -1
- package/dist/_chunks/Layout-lg3hbwGL.mjs.map +0 -1
- package/dist/_chunks/_id-B3jMqqMH.mjs.map +0 -1
- package/dist/_chunks/_id-B853wt9z.js.map +0 -1
- package/dist/_chunks/index-BhJmjDbj.mjs.map +0 -1
- package/dist/_chunks/index-CdU1x9cZ.js.map +0 -1
- package/dist/_chunks/index-Ujtj1Rcp.js.map +0 -1
- package/dist/_chunks/index-lebOqdrv.mjs.map +0 -1
- package/strapi-server.js +0 -3
|
@@ -8,11 +8,10 @@ const designSystem = require("@strapi/design-system");
|
|
|
8
8
|
const icons = require("@strapi/icons");
|
|
9
9
|
const fractionalIndexing = require("fractional-indexing");
|
|
10
10
|
const reactIntl = require("react-intl");
|
|
11
|
-
const reactRedux = require("react-redux");
|
|
12
11
|
const reactRouterDom = require("react-router-dom");
|
|
13
12
|
const yup = require("yup");
|
|
14
|
-
const index = require("./index-
|
|
15
|
-
const Layout = require("./Layout-
|
|
13
|
+
const index = require("./index-mQar1hfK.js");
|
|
14
|
+
const Layout = require("./Layout-D7wwT4c7.js");
|
|
16
15
|
const reactDndHtml5Backend = require("react-dnd-html5-backend");
|
|
17
16
|
const styledComponents = require("styled-components");
|
|
18
17
|
const reactDnd = require("react-dnd");
|
|
@@ -313,35 +312,23 @@ const Stages = ({ canDelete = true, canUpdate = true, isCreating }) => {
|
|
|
313
312
|
left: "50%",
|
|
314
313
|
position: "absolute",
|
|
315
314
|
top: "0",
|
|
316
|
-
width: 2
|
|
317
|
-
zIndex: 1
|
|
315
|
+
width: 2
|
|
318
316
|
}
|
|
319
317
|
),
|
|
320
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
321
|
-
designSystem.
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
canDelete: stages.length > 1 && canDelete,
|
|
335
|
-
canReorder: stages.length > 1,
|
|
336
|
-
canUpdate,
|
|
337
|
-
stagesCount: stages.length,
|
|
338
|
-
defaultOpen: isCreating,
|
|
339
|
-
...stage
|
|
340
|
-
}
|
|
341
|
-
) }, stage.__temp_key__);
|
|
342
|
-
})
|
|
343
|
-
}
|
|
344
|
-
)
|
|
318
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Flex, { direction: "column", alignItems: "stretch", gap: 6, position: "relative", tag: "ol", children: stages.map((stage, index2) => {
|
|
319
|
+
return /* @__PURE__ */ jsxRuntime.jsx(designSystem.Box, { tag: "li", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
320
|
+
Stage,
|
|
321
|
+
{
|
|
322
|
+
index: index2,
|
|
323
|
+
canDelete: stages.length > 1 && canDelete,
|
|
324
|
+
canReorder: stages.length > 1,
|
|
325
|
+
canUpdate,
|
|
326
|
+
stagesCount: stages.length,
|
|
327
|
+
defaultOpen: isCreating,
|
|
328
|
+
...stage
|
|
329
|
+
}
|
|
330
|
+
) }, stage.__temp_key__);
|
|
331
|
+
}) })
|
|
345
332
|
] }),
|
|
346
333
|
canUpdate && /* @__PURE__ */ jsxRuntime.jsx(
|
|
347
334
|
AddStage,
|
|
@@ -458,7 +445,7 @@ const Stage = ({
|
|
|
458
445
|
addFieldRow("stages", { name, color, permissions });
|
|
459
446
|
};
|
|
460
447
|
const id = React__namespace.useId();
|
|
461
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { ref: composedRef, children: [
|
|
448
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Box, { ref: composedRef, shadow: "tableShadow", children: [
|
|
462
449
|
liveText && /* @__PURE__ */ jsxRuntime.jsx(designSystem.VisuallyHidden, { "aria-live": "assertive", children: liveText }),
|
|
463
450
|
isDragging ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
464
451
|
designSystem.Box,
|
|
@@ -509,7 +496,7 @@ const Stage = ({
|
|
|
509
496
|
{
|
|
510
497
|
background: "transparent",
|
|
511
498
|
hasRadius: true,
|
|
512
|
-
|
|
499
|
+
variant: "ghost",
|
|
513
500
|
"data-handler-id": handlerId,
|
|
514
501
|
ref: dragRef,
|
|
515
502
|
label: formatMessage({
|
|
@@ -523,7 +510,7 @@ const Stage = ({
|
|
|
523
510
|
)
|
|
524
511
|
] }) : null })
|
|
525
512
|
] }),
|
|
526
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid, { gap: 4, padding: 6, children: [
|
|
513
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Accordion.Content, { children: /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Root, { gap: 4, padding: 6, children: [
|
|
527
514
|
{
|
|
528
515
|
disabled: !canUpdate,
|
|
529
516
|
label: formatMessage({
|
|
@@ -561,7 +548,7 @@ const Stage = ({
|
|
|
561
548
|
size: 6,
|
|
562
549
|
type: "permissions"
|
|
563
550
|
}
|
|
564
|
-
].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
551
|
+
].map(({ size, ...field }) => /* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: size, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(InputRenderer, { ...field }) }, field.name)) }) })
|
|
565
552
|
] })
|
|
566
553
|
}
|
|
567
554
|
)
|
|
@@ -666,20 +653,22 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
|
|
|
666
653
|
const { value = [], error, onChange } = strapiAdmin.useField(name);
|
|
667
654
|
const allStages = strapiAdmin.useForm("PermissionsField", (state) => state.values.stages);
|
|
668
655
|
const onFormValueChange = strapiAdmin.useForm("PermissionsField", (state) => state.onChange);
|
|
669
|
-
const
|
|
656
|
+
const rolesErrorCount = React__namespace.useRef(0);
|
|
657
|
+
const { data: roles = [], isLoading, error: getRolesError } = useGetAdminRolesQuery();
|
|
670
658
|
const filteredRoles = roles?.filter((role) => role.code !== "strapi-super-admin") ?? [];
|
|
671
659
|
React__namespace.useEffect(() => {
|
|
672
|
-
if (!isLoading &&
|
|
660
|
+
if (!isLoading && getRolesError && "status" in getRolesError && getRolesError.status == 403 && rolesErrorCount.current === 0) {
|
|
661
|
+
rolesErrorCount.current = 1;
|
|
673
662
|
toggleNotification({
|
|
674
663
|
blockTransition: true,
|
|
675
664
|
type: "danger",
|
|
676
665
|
message: formatMessage({
|
|
677
666
|
id: "review-workflows.stage.permissions.noPermissions.description",
|
|
678
|
-
defaultMessage: "You don’t have the permission to see roles"
|
|
667
|
+
defaultMessage: "You don’t have the permission to see roles. Contact your administrator."
|
|
679
668
|
})
|
|
680
669
|
});
|
|
681
670
|
}
|
|
682
|
-
}, [formatMessage, isLoading, roles, toggleNotification]);
|
|
671
|
+
}, [formatMessage, isLoading, roles, toggleNotification, getRolesError]);
|
|
683
672
|
if (!isLoading && filteredRoles.length === 0) {
|
|
684
673
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
685
674
|
designSystem.Field.Root,
|
|
@@ -713,45 +702,45 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
|
|
|
713
702
|
}
|
|
714
703
|
);
|
|
715
704
|
}
|
|
716
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
717
|
-
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.
|
|
718
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
|
|
722
|
-
}) }),
|
|
723
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
724
|
-
designSystem.MultiSelect,
|
|
725
|
-
{
|
|
726
|
-
disabled,
|
|
727
|
-
onChange: (values) => {
|
|
728
|
-
const permissions = values.map((value2) => ({
|
|
729
|
-
role: parseInt(value2, 10),
|
|
730
|
-
action: "admin::review-workflows.stage.transition"
|
|
731
|
-
}));
|
|
732
|
-
onChange(name, permissions);
|
|
733
|
-
},
|
|
734
|
-
placeholder,
|
|
735
|
-
value: value.map((permission) => `${permission.role}`),
|
|
736
|
-
withTags: true,
|
|
737
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
738
|
-
designSystem.MultiSelectGroup,
|
|
739
|
-
{
|
|
740
|
-
label: formatMessage({
|
|
741
|
-
id: "Settings.review-workflows.stage.permissions.allRoles.label",
|
|
742
|
-
defaultMessage: "All roles"
|
|
743
|
-
}),
|
|
744
|
-
values: filteredRoles.map((r) => `${r.id}`),
|
|
745
|
-
children: filteredRoles.map((role) => {
|
|
746
|
-
return /* @__PURE__ */ jsxRuntime.jsx(NestedOption$1, { value: `${role.id}`, children: role.name }, role.id);
|
|
747
|
-
})
|
|
748
|
-
}
|
|
749
|
-
)
|
|
750
|
-
}
|
|
751
|
-
),
|
|
752
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
753
|
-
] }) }),
|
|
705
|
+
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "flex-end", gap: 3, children: [
|
|
706
|
+
/* @__PURE__ */ jsxRuntime.jsx(PermissionWrapper, { grow: 1, children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Field.Root, { error, name, required: true, children: [
|
|
707
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Label, { children: formatMessage({
|
|
708
|
+
id: "Settings.review-workflows.stage.permissions.label",
|
|
709
|
+
defaultMessage: "Roles that can change this stage"
|
|
710
|
+
}) }),
|
|
754
711
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
712
|
+
designSystem.MultiSelect,
|
|
713
|
+
{
|
|
714
|
+
disabled,
|
|
715
|
+
onChange: (values) => {
|
|
716
|
+
const permissions = values.map((value2) => ({
|
|
717
|
+
role: parseInt(value2, 10),
|
|
718
|
+
action: "admin::review-workflows.stage.transition"
|
|
719
|
+
}));
|
|
720
|
+
onChange(name, permissions);
|
|
721
|
+
},
|
|
722
|
+
placeholder,
|
|
723
|
+
value: value.map((permission) => `${permission.role}`),
|
|
724
|
+
withTags: true,
|
|
725
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
726
|
+
designSystem.MultiSelectGroup,
|
|
727
|
+
{
|
|
728
|
+
label: formatMessage({
|
|
729
|
+
id: "Settings.review-workflows.stage.permissions.allRoles.label",
|
|
730
|
+
defaultMessage: "All roles"
|
|
731
|
+
}),
|
|
732
|
+
values: filteredRoles.map((r) => `${r.id}`),
|
|
733
|
+
children: filteredRoles.map((role) => {
|
|
734
|
+
return /* @__PURE__ */ jsxRuntime.jsx(NestedOption$1, { value: `${role.id}`, children: role.name }, role.id);
|
|
735
|
+
})
|
|
736
|
+
}
|
|
737
|
+
)
|
|
738
|
+
}
|
|
739
|
+
),
|
|
740
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Field.Error, {})
|
|
741
|
+
] }) }),
|
|
742
|
+
/* @__PURE__ */ jsxRuntime.jsxs(designSystem.Dialog.Root, { open: isApplyAllConfirmationOpen, onOpenChange: setIsApplyAllConfirmationOpen, children: [
|
|
743
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Dialog.Trigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
755
744
|
designSystem.IconButton,
|
|
756
745
|
{
|
|
757
746
|
disabled,
|
|
@@ -760,42 +749,38 @@ const PermissionsField = ({ disabled, name, placeholder, required }) => {
|
|
|
760
749
|
defaultMessage: "Apply to all stages"
|
|
761
750
|
}),
|
|
762
751
|
size: "L",
|
|
763
|
-
variant: "secondary",
|
|
764
|
-
onClick: () => setIsApplyAllConfirmationOpen(true),
|
|
765
752
|
children: /* @__PURE__ */ jsxRuntime.jsx(icons.Duplicate, {})
|
|
766
753
|
}
|
|
754
|
+
) }),
|
|
755
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
756
|
+
strapiAdmin.ConfirmDialog,
|
|
757
|
+
{
|
|
758
|
+
onConfirm: () => {
|
|
759
|
+
onFormValueChange(
|
|
760
|
+
"stages",
|
|
761
|
+
allStages.map((stage) => ({
|
|
762
|
+
...stage,
|
|
763
|
+
permissions: value
|
|
764
|
+
}))
|
|
765
|
+
);
|
|
766
|
+
setIsApplyAllConfirmationOpen(false);
|
|
767
|
+
toggleNotification({
|
|
768
|
+
type: "success",
|
|
769
|
+
message: formatMessage({
|
|
770
|
+
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
|
|
771
|
+
defaultMessage: "Applied roles to all other stages of the workflow"
|
|
772
|
+
})
|
|
773
|
+
});
|
|
774
|
+
},
|
|
775
|
+
variant: "default",
|
|
776
|
+
children: formatMessage({
|
|
777
|
+
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
|
|
778
|
+
defaultMessage: "Roles that can change that stage will be applied to all the other stages."
|
|
779
|
+
})
|
|
780
|
+
}
|
|
767
781
|
)
|
|
768
|
-
] })
|
|
769
|
-
|
|
770
|
-
strapiAdmin.ConfirmDialog,
|
|
771
|
-
{
|
|
772
|
-
isOpen: isApplyAllConfirmationOpen,
|
|
773
|
-
onClose: () => setIsApplyAllConfirmationOpen(false),
|
|
774
|
-
onConfirm: () => {
|
|
775
|
-
onFormValueChange(
|
|
776
|
-
"stages",
|
|
777
|
-
allStages.map((stage) => ({
|
|
778
|
-
...stage,
|
|
779
|
-
permissions: value
|
|
780
|
-
}))
|
|
781
|
-
);
|
|
782
|
-
setIsApplyAllConfirmationOpen(false);
|
|
783
|
-
toggleNotification({
|
|
784
|
-
type: "success",
|
|
785
|
-
message: formatMessage({
|
|
786
|
-
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy.success",
|
|
787
|
-
defaultMessage: "Applied roles to all other stages of the workflow"
|
|
788
|
-
})
|
|
789
|
-
});
|
|
790
|
-
},
|
|
791
|
-
variant: "default",
|
|
792
|
-
children: formatMessage({
|
|
793
|
-
id: "Settings.review-workflows.page.edit.confirm.stages.permissions.copy",
|
|
794
|
-
defaultMessage: "Roles that can change that stage will be applied to all the other stages."
|
|
795
|
-
})
|
|
796
|
-
}
|
|
797
|
-
)
|
|
798
|
-
] });
|
|
782
|
+
] })
|
|
783
|
+
] }) });
|
|
799
784
|
};
|
|
800
785
|
const NestedOption$1 = styledComponents.styled(designSystem.MultiSelectOption)`
|
|
801
786
|
padding-left: ${({ theme }) => theme.spaces[7]};
|
|
@@ -807,8 +792,8 @@ const PermissionWrapper = styledComponents.styled(designSystem.Flex)`
|
|
|
807
792
|
`;
|
|
808
793
|
const WorkflowAttributes = ({ canUpdate = true }) => {
|
|
809
794
|
const { formatMessage } = reactIntl.useIntl();
|
|
810
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
|
|
811
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
795
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Grid.Root, { background: "neutral0", hasRadius: true, gap: 4, padding: 6, shadow: "tableShadow", children: [
|
|
796
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
812
797
|
strapiAdmin.InputRenderer,
|
|
813
798
|
{
|
|
814
799
|
disabled: !canUpdate,
|
|
@@ -821,7 +806,7 @@ const WorkflowAttributes = ({ canUpdate = true }) => {
|
|
|
821
806
|
type: "string"
|
|
822
807
|
}
|
|
823
808
|
) }),
|
|
824
|
-
/* @__PURE__ */ jsxRuntime.jsx(designSystem.
|
|
809
|
+
/* @__PURE__ */ jsxRuntime.jsx(designSystem.Grid.Item, { col: 6, direction: "column", alignItems: "stretch", children: /* @__PURE__ */ jsxRuntime.jsx(ContentTypesSelector, { disabled: !canUpdate }) })
|
|
825
810
|
] });
|
|
826
811
|
};
|
|
827
812
|
const ContentTypesSelector = ({ disabled }) => {
|
|
@@ -930,10 +915,10 @@ const WORKFLOW_SCHEMA = yup__namespace.object({
|
|
|
930
915
|
name: yup__namespace.string().max(255, {
|
|
931
916
|
id: "review-workflows.validation.name.max-length",
|
|
932
917
|
defaultMessage: "Name can not be longer than 255 characters"
|
|
933
|
-
}).required(),
|
|
918
|
+
}).required().nullable(),
|
|
934
919
|
stages: yup__namespace.array().of(
|
|
935
920
|
yup__namespace.object().shape({
|
|
936
|
-
name: yup__namespace.string().required({
|
|
921
|
+
name: yup__namespace.string().nullable().required({
|
|
937
922
|
id: "review-workflows.validation.stage.name",
|
|
938
923
|
defaultMessage: "Name is required"
|
|
939
924
|
}).max(255, {
|
|
@@ -950,7 +935,7 @@ const WORKFLOW_SCHEMA = yup__namespace.object({
|
|
|
950
935
|
return stages.filter((stage) => stage.name === stageName).length === 1;
|
|
951
936
|
}
|
|
952
937
|
),
|
|
953
|
-
color: yup__namespace.string().required({
|
|
938
|
+
color: yup__namespace.string().nullable().required({
|
|
954
939
|
id: "review-workflows.validation.stage.color",
|
|
955
940
|
defaultMessage: "Color is required"
|
|
956
941
|
}).matches(/^#(?:[0-9a-fA-F]{3}){1,2}$/i),
|
|
@@ -976,7 +961,6 @@ const EditPage = () => {
|
|
|
976
961
|
const { _unstableFormatValidationErrors: formatValidationErrors } = strapiAdmin.useAPIErrorHandler();
|
|
977
962
|
const navigate = reactRouterDom.useNavigate();
|
|
978
963
|
const { toggleNotification } = strapiAdmin.useNotification();
|
|
979
|
-
const dispatch = reactRedux.useDispatch();
|
|
980
964
|
const {
|
|
981
965
|
isLoading: isLoadingWorkflow,
|
|
982
966
|
meta,
|
|
@@ -984,7 +968,7 @@ const EditPage = () => {
|
|
|
984
968
|
error,
|
|
985
969
|
update,
|
|
986
970
|
create
|
|
987
|
-
} = Layout.useReviewWorkflows(
|
|
971
|
+
} = Layout.useReviewWorkflows();
|
|
988
972
|
const permissions = index.useTypedSelector(
|
|
989
973
|
(state) => state.admin_app.permissions["settings"]?.["review-workflows"]
|
|
990
974
|
);
|
|
@@ -1027,36 +1011,13 @@ const EditPage = () => {
|
|
|
1027
1011
|
});
|
|
1028
1012
|
if ("error" in res && index.isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
|
1029
1013
|
helpers.setErrors(formatValidationErrors(res.error));
|
|
1030
|
-
} else if ("data" in res) {
|
|
1031
|
-
for (const uid of res.data.contentTypes) {
|
|
1032
|
-
dispatch({
|
|
1033
|
-
type: "contentManagerApi/invalidateTags",
|
|
1034
|
-
payload: [
|
|
1035
|
-
{
|
|
1036
|
-
type: "ContentTypesConfiguration",
|
|
1037
|
-
id: uid
|
|
1038
|
-
}
|
|
1039
|
-
]
|
|
1040
|
-
});
|
|
1041
|
-
}
|
|
1042
1014
|
}
|
|
1043
1015
|
} else {
|
|
1044
1016
|
const res = await create(data);
|
|
1045
1017
|
if ("error" in res && index.isBaseQueryError(res.error) && res.error.name === "ValidationError") {
|
|
1046
1018
|
helpers.setErrors(formatValidationErrors(res.error));
|
|
1047
1019
|
} else if ("data" in res) {
|
|
1048
|
-
|
|
1049
|
-
dispatch({
|
|
1050
|
-
type: "contentManagerApi/invalidateTags",
|
|
1051
|
-
payload: [
|
|
1052
|
-
{
|
|
1053
|
-
type: "ContentTypesConfiguration",
|
|
1054
|
-
id: uid
|
|
1055
|
-
}
|
|
1056
|
-
]
|
|
1057
|
-
});
|
|
1058
|
-
}
|
|
1059
|
-
navigate(`../${res.data.id}`);
|
|
1020
|
+
navigate(`../${res.data.id}`, { replace: true });
|
|
1060
1021
|
}
|
|
1061
1022
|
}
|
|
1062
1023
|
} catch (error2) {
|
|
@@ -1155,7 +1116,6 @@ const EditPage = () => {
|
|
|
1155
1116
|
{
|
|
1156
1117
|
startIcon: /* @__PURE__ */ jsxRuntime.jsx(icons.Check, {}),
|
|
1157
1118
|
type: "submit",
|
|
1158
|
-
size: "M",
|
|
1159
1119
|
disabled: !modified || isSubmitting || values.stages.length === 0,
|
|
1160
1120
|
loading: !Boolean(Object.keys(savePrompts).length > 0) && isSubmitting,
|
|
1161
1121
|
children: formatMessage({
|
|
@@ -1178,23 +1138,22 @@ const EditPage = () => {
|
|
|
1178
1138
|
}
|
|
1179
1139
|
),
|
|
1180
1140
|
/* @__PURE__ */ jsxRuntime.jsx(Layout.Root, { children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { alignItems: "stretch", direction: "column", gap: 7, children: [
|
|
1181
|
-
/* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate }),
|
|
1141
|
+
/* @__PURE__ */ jsxRuntime.jsx(WorkflowAttributes, { canUpdate: canUpdate || canCreate }),
|
|
1182
1142
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1183
1143
|
Stages,
|
|
1184
1144
|
{
|
|
1185
1145
|
canDelete,
|
|
1186
|
-
canUpdate,
|
|
1146
|
+
canUpdate: canUpdate || canCreate,
|
|
1187
1147
|
isCreating: isCreatingWorkflow
|
|
1188
1148
|
}
|
|
1189
1149
|
)
|
|
1190
1150
|
] }) }),
|
|
1191
1151
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1192
|
-
|
|
1152
|
+
designSystem.Dialog.Root,
|
|
1193
1153
|
{
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
onConfirm: handleConfirmDeleteDialog(values, { setErrors }),
|
|
1197
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
|
|
1154
|
+
open: Object.keys(savePrompts).length > 0,
|
|
1155
|
+
onOpenChange: handleConfirmClose,
|
|
1156
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.ConfirmDialog, { onConfirm: handleConfirmDeleteDialog(values, { setErrors }), children: /* @__PURE__ */ jsxRuntime.jsxs(designSystem.Flex, { direction: "column", gap: 5, children: [
|
|
1198
1157
|
savePrompts.hasDeletedServerStages && /* @__PURE__ */ jsxRuntime.jsx(designSystem.Typography, { textAlign: "center", variant: "omega", children: formatMessage({
|
|
1199
1158
|
id: "review-workflows.page.delete.confirm.stages.body",
|
|
1200
1159
|
defaultMessage: "All entries assigned to deleted stages will be moved to the previous stage."
|
|
@@ -1206,7 +1165,7 @@ const EditPage = () => {
|
|
|
1206
1165
|
},
|
|
1207
1166
|
{
|
|
1208
1167
|
count: contentTypesFromOtherWorkflows?.filter(
|
|
1209
|
-
(contentType) =>
|
|
1168
|
+
(contentType) => values.contentTypes.includes(contentType)
|
|
1210
1169
|
).length ?? 0
|
|
1211
1170
|
}
|
|
1212
1171
|
) }),
|
|
@@ -1214,7 +1173,7 @@ const EditPage = () => {
|
|
|
1214
1173
|
id: "review-workflows.page.delete.confirm.confirm",
|
|
1215
1174
|
defaultMessage: "Are you sure you want to save?"
|
|
1216
1175
|
}) })
|
|
1217
|
-
] })
|
|
1176
|
+
] }) })
|
|
1218
1177
|
}
|
|
1219
1178
|
)
|
|
1220
1179
|
] })
|
|
@@ -1223,8 +1182,8 @@ const EditPage = () => {
|
|
|
1223
1182
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1224
1183
|
index.LimitsModal.Root,
|
|
1225
1184
|
{
|
|
1226
|
-
|
|
1227
|
-
|
|
1185
|
+
open: showLimitModal === "workflow",
|
|
1186
|
+
onOpenChange: () => setShowLimitModal(null),
|
|
1228
1187
|
children: [
|
|
1229
1188
|
/* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
|
|
1230
1189
|
id: "review-workflows.edit.page.workflows.limit.title",
|
|
@@ -1237,16 +1196,23 @@ const EditPage = () => {
|
|
|
1237
1196
|
]
|
|
1238
1197
|
}
|
|
1239
1198
|
),
|
|
1240
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
|
|
1247
|
-
|
|
1248
|
-
|
|
1249
|
-
|
|
1199
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1200
|
+
index.LimitsModal.Root,
|
|
1201
|
+
{
|
|
1202
|
+
open: showLimitModal === "stage",
|
|
1203
|
+
onOpenChange: () => setShowLimitModal(null),
|
|
1204
|
+
children: [
|
|
1205
|
+
/* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Title, { children: formatMessage({
|
|
1206
|
+
id: "review-workflows.edit.page.stages.limit.title",
|
|
1207
|
+
defaultMessage: "You have reached the limit of stages for this workflow in your plan"
|
|
1208
|
+
}) }),
|
|
1209
|
+
/* @__PURE__ */ jsxRuntime.jsx(index.LimitsModal.Body, { children: formatMessage({
|
|
1210
|
+
id: "review-workflows.edit.page.stages.limit.body",
|
|
1211
|
+
defaultMessage: "Try deleting some stages or contact Sales to enable more stages."
|
|
1212
|
+
}) })
|
|
1213
|
+
]
|
|
1214
|
+
}
|
|
1215
|
+
)
|
|
1250
1216
|
] });
|
|
1251
1217
|
};
|
|
1252
1218
|
const addTmpKeysToStages = (data) => {
|
|
@@ -1268,4 +1234,4 @@ const ProtectedEditPage = () => {
|
|
|
1268
1234
|
return /* @__PURE__ */ jsxRuntime.jsx(strapiAdmin.Page.Protect, { permissions, children: /* @__PURE__ */ jsxRuntime.jsx(EditPage, {}) });
|
|
1269
1235
|
};
|
|
1270
1236
|
exports.ProtectedEditPage = ProtectedEditPage;
|
|
1271
|
-
//# sourceMappingURL=_id-
|
|
1237
|
+
//# sourceMappingURL=_id-DgUOk637.js.map
|