@webiny/app-headless-cms-workflows 6.4.11 → 6.6.0-alpha.1
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/Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.js +27 -25
- package/Components/CmsEntriesWorkflowStateList/CmsEntriesWorkflowStateListFooterMenu.js.map +1 -1
- package/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js +17 -25
- package/Components/ContentEntryForm/CmsEntryFormCreateNewRevisionButton.js.map +1 -1
- package/Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.js +3 -4
- package/Components/ContentEntryForm/CmsEntryFormScheduleMenuItemAction.js.map +1 -1
- package/Components/ContentEntryForm/CmsEntryFormTooltipButton.js +3 -3
- package/Components/ContentEntryForm/CmsEntryFormTooltipButton.js.map +1 -1
- package/Components/ContentEntryForm/ContentEntryFormWorkflow.js +20 -36
- package/Components/ContentEntryForm/ContentEntryFormWorkflow.js.map +1 -1
- package/Components/ContentEntryForm/index.d.ts +0 -3
- package/Components/ContentEntryForm/index.js +0 -3
- package/Routes/CmsWorkflowsEditor.js +8 -2
- package/Routes/CmsWorkflowsEditor.js.map +1 -1
- package/features/WorkflowStateCacheHandler.d.ts +11 -0
- package/features/WorkflowStateCacheHandler.js +50 -0
- package/features/WorkflowStateCacheHandler.js.map +1 -0
- package/features/feature.d.ts +1 -0
- package/features/feature.js +11 -0
- package/features/feature.js.map +1 -0
- package/index.d.ts +1 -1
- package/index.js +16 -3
- package/index.js.map +1 -1
- package/package.json +15 -13
- package/presentation/CmsWorkflowsEditorView.d.ts +5 -0
- package/{Components/CmsWorkflows → presentation}/CmsWorkflowsEditorView.js +27 -27
- package/presentation/CmsWorkflowsEditorView.js.map +1 -0
- package/presentation/ContentEntryFormPresenterWorkflowDecorator.d.ts +24 -0
- package/presentation/ContentEntryFormPresenterWorkflowDecorator.js +67 -0
- package/presentation/ContentEntryFormPresenterWorkflowDecorator.js.map +1 -0
- package/presentation/TableRowMapperWorkflowDecorator.d.ts +11 -0
- package/presentation/TableRowMapperWorkflowDecorator.js +25 -0
- package/presentation/TableRowMapperWorkflowDecorator.js.map +1 -0
- package/presentation/WorkflowStateGetEntryFieldSelection.d.ts +8 -0
- package/presentation/WorkflowStateGetEntryFieldSelection.js +24 -0
- package/presentation/WorkflowStateGetEntryFieldSelection.js.map +1 -0
- package/presentation/WorkflowStateListEntriesFieldSelection.d.ts +8 -0
- package/presentation/WorkflowStateListEntriesFieldSelection.js +24 -0
- package/presentation/WorkflowStateListEntriesFieldSelection.js.map +1 -0
- package/presentation/cmsWorkflowsEditor/CmsWorkflowsEditorPresenter.d.ts +15 -0
- package/presentation/cmsWorkflowsEditor/CmsWorkflowsEditorPresenter.js +50 -0
- package/presentation/cmsWorkflowsEditor/CmsWorkflowsEditorPresenter.js.map +1 -0
- package/presentation/cmsWorkflowsEditor/abstractions.d.ts +19 -0
- package/presentation/cmsWorkflowsEditor/abstractions.js +5 -0
- package/presentation/cmsWorkflowsEditor/abstractions.js.map +1 -0
- package/presentation/cmsWorkflowsEditor/feature.d.ts +3 -0
- package/presentation/cmsWorkflowsEditor/feature.js +17 -0
- package/presentation/cmsWorkflowsEditor/feature.js.map +1 -0
- package/presentation/feature.d.ts +1 -0
- package/presentation/feature.js +21 -0
- package/presentation/feature.js.map +1 -0
- package/types.d.ts +10 -0
- package/types.js +0 -0
- package/Components/CmsWorkflows/CmsWorkflowsEditorView.d.ts +0 -3
- package/Components/CmsWorkflows/CmsWorkflowsEditorView.js.map +0 -1
- package/Components/ContentEntryForm/CmsEntryFormPublishButton.d.ts +0 -2
- package/Components/ContentEntryForm/CmsEntryFormPublishButton.js +0 -26
- package/Components/ContentEntryForm/CmsEntryFormPublishButton.js.map +0 -1
- package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.d.ts +0 -2
- package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js +0 -24
- package/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js.map +0 -1
- package/Components/ContentEntryForm/CmsEntryFormSaveButton.d.ts +0 -2
- package/Components/ContentEntryForm/CmsEntryFormSaveButton.js +0 -23
- package/Components/ContentEntryForm/CmsEntryFormSaveButton.js.map +0 -1
- package/Components/ContentEntryForm/ContentEntryWorkflow.d.ts +0 -2
- package/Components/ContentEntryForm/ContentEntryWorkflow.js +0 -23
- package/Components/ContentEntryForm/ContentEntryWorkflow.js.map +0 -1
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import { useContentEntry, usePermission } from "@webiny/app-headless-cms";
|
|
2
|
-
import { ContentEntryEditorConfig } from "@webiny/app-headless-cms/admin/config/contentEntries/index.js";
|
|
3
|
-
import react, { useCallback } from "react";
|
|
4
|
-
const CmsEntryFormPublishButton = ()=>{
|
|
5
|
-
const { loading, entry, publishEntryRevision } = useContentEntry();
|
|
6
|
-
const { ButtonPrimary } = ContentEntryEditorConfig.Actions.ButtonAction.useButtons();
|
|
7
|
-
const publish = useCallback(()=>{
|
|
8
|
-
if (!entry.id) return void console.warn("You cannot publish an entry that hasn't been saved yet.");
|
|
9
|
-
publishEntryRevision({
|
|
10
|
-
id: entry.id
|
|
11
|
-
});
|
|
12
|
-
}, [
|
|
13
|
-
entry.id
|
|
14
|
-
]);
|
|
15
|
-
const { canEdit, canPublish } = usePermission();
|
|
16
|
-
if ("published" === entry.meta.status) return null;
|
|
17
|
-
if (!canEdit(entry, "cms.contentEntry") || !canPublish("cms.contentEntry")) return null;
|
|
18
|
-
return /*#__PURE__*/ react.createElement(ButtonPrimary, {
|
|
19
|
-
onAction: publish,
|
|
20
|
-
disabled: loading,
|
|
21
|
-
"data-testid": "workflows-cms-content-publish-content-button"
|
|
22
|
-
}, "Publish");
|
|
23
|
-
};
|
|
24
|
-
export { CmsEntryFormPublishButton };
|
|
25
|
-
|
|
26
|
-
//# sourceMappingURL=CmsEntryFormPublishButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormPublishButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormPublishButton.tsx"],"sourcesContent":["import { useContentEntry, usePermission } from \"@webiny/app-headless-cms\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms/admin/config/contentEntries/index.js\";\nimport React, { useCallback } from \"react\";\n\nexport const CmsEntryFormPublishButton = () => {\n const { loading, entry, publishEntryRevision } = useContentEntry();\n const { ButtonPrimary } = ContentEntryEditorConfig.Actions.ButtonAction.useButtons();\n\n const publish = useCallback(() => {\n if (!entry.id) {\n console.warn(`You cannot publish an entry that hasn't been saved yet.`);\n return;\n }\n publishEntryRevision({ id: entry.id });\n }, [entry.id]);\n\n const { canEdit, canPublish } = usePermission();\n\n if (entry.meta.status === \"published\") {\n return null;\n } else if (!canEdit(entry, \"cms.contentEntry\") || !canPublish(\"cms.contentEntry\")) {\n return null;\n }\n\n return (\n <ButtonPrimary\n onAction={publish}\n disabled={loading}\n data-testid=\"workflows-cms-content-publish-content-button\"\n >\n {\"Publish\"}\n </ButtonPrimary>\n );\n};\n"],"names":["CmsEntryFormPublishButton","loading","entry","publishEntryRevision","useContentEntry","ButtonPrimary","ContentEntryEditorConfig","publish","useCallback","console","canEdit","canPublish","usePermission"],"mappings":";;;AAIO,MAAMA,4BAA4B;IACrC,MAAM,EAAEC,OAAO,EAAEC,KAAK,EAAEC,oBAAoB,EAAE,GAAGC;IACjD,MAAM,EAAEC,aAAa,EAAE,GAAGC,yBAAyB,OAAO,CAAC,YAAY,CAAC,UAAU;IAElF,MAAMC,UAAUC,YAAY;QACxB,IAAI,CAACN,MAAM,EAAE,EAAE,YACXO,QAAQ,IAAI,CAAC;QAGjBN,qBAAqB;YAAE,IAAID,MAAM,EAAE;QAAC;IACxC,GAAG;QAACA,MAAM,EAAE;KAAC;IAEb,MAAM,EAAEQ,OAAO,EAAEC,UAAU,EAAE,GAAGC;IAEhC,IAAIV,AAAsB,gBAAtBA,MAAM,IAAI,CAAC,MAAM,EACjB,OAAO;IACJ,IAAI,CAACQ,QAAQR,OAAO,uBAAuB,CAACS,WAAW,qBAC1D,OAAO;IAGX,OAAO,WAAP,GACI,oBAACN,eAAAA;QACG,UAAUE;QACV,UAAUN;QACV,eAAY;OAEX;AAGb"}
|
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
import react from "react";
|
|
2
|
-
import { ContentEntryEditorConfig } from "@webiny/app-headless-cms";
|
|
3
|
-
import { WorkflowStateValue, useWorkflowState } from "@webiny/app-workflows";
|
|
4
|
-
import { observer } from "mobx-react-lite";
|
|
5
|
-
import { CmsEntryFormPublishButton } from "./CmsEntryFormPublishButton.js";
|
|
6
|
-
const { Actions: Actions } = ContentEntryEditorConfig;
|
|
7
|
-
const { ButtonAction: ButtonAction } = Actions;
|
|
8
|
-
const OverrideSaveAndPublishButton = observer((props)=>{
|
|
9
|
-
const { presenter } = useWorkflowState();
|
|
10
|
-
if ("publish" !== props.name || !presenter.vm.workflow) return props.children;
|
|
11
|
-
if (presenter.vm.state?.state === WorkflowStateValue.approved) return /*#__PURE__*/ react.createElement(CmsEntryFormPublishButton, null);
|
|
12
|
-
return null;
|
|
13
|
-
});
|
|
14
|
-
const CmsEntryFormSaveAndPublishButton = ButtonAction.createDecorator((Original)=>function(props) {
|
|
15
|
-
return /*#__PURE__*/ react.createElement(Original, {
|
|
16
|
-
...props,
|
|
17
|
-
element: /*#__PURE__*/ react.createElement(OverrideSaveAndPublishButton, {
|
|
18
|
-
name: props.name
|
|
19
|
-
}, props.element)
|
|
20
|
-
});
|
|
21
|
-
});
|
|
22
|
-
export { CmsEntryFormSaveAndPublishButton };
|
|
23
|
-
|
|
24
|
-
//# sourceMappingURL=CmsEntryFormSaveAndPublishButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormSaveAndPublishButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\nimport { WorkflowStateValue } from \"@webiny/app-workflows\";\nimport { CmsEntryFormPublishButton } from \"./CmsEntryFormPublishButton.js\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { ButtonAction } = Actions;\n\ninterface IOverrideSaveAndPublishButtonProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideSaveAndPublishButton = observer((props: IOverrideSaveAndPublishButtonProps) => {\n const { presenter } = useWorkflowState();\n\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (props.name !== \"publish\" || !presenter.vm.workflow) {\n return props.children;\n } else if (presenter.vm.state?.state === WorkflowStateValue.approved) {\n return <CmsEntryFormPublishButton />;\n }\n return null;\n});\n\nexport const CmsEntryFormSaveAndPublishButton = ButtonAction.createDecorator(Original => {\n return function WorkflowCmsEntryFormSaveAndPublishButton(props) {\n return (\n <Original\n {...props}\n element={\n <OverrideSaveAndPublishButton name={props.name}>\n {props.element}\n </OverrideSaveAndPublishButton>\n }\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","ButtonAction","OverrideSaveAndPublishButton","observer","props","presenter","useWorkflowState","WorkflowStateValue","CmsEntryFormPublishButton","CmsEntryFormSaveAndPublishButton","Original"],"mappings":";;;;;AAOA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,cAAAA,YAAY,EAAE,GAAGF;AAOzB,MAAMG,+BAA+BC,SAAS,CAACC;IAC3C,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAMtB,IAAIF,AAAe,cAAfA,MAAM,IAAI,IAAkB,CAACC,UAAU,EAAE,CAAC,QAAQ,EAClD,OAAOD,MAAM,QAAQ;IAClB,IAAIC,UAAU,EAAE,CAAC,KAAK,EAAE,UAAUE,mBAAmB,QAAQ,EAChE,OAAO,WAAP,GAAO,oBAACC,2BAAyBA;IAErC,OAAO;AACX;AAEO,MAAMC,mCAAmCR,aAAa,eAAe,CAACS,CAAAA,WAClE,SAAkDN,KAAK;QAC1D,OAAO,WAAP,GACI,oBAACM,UAAAA;YACI,GAAGN,KAAK;YACT,uBACI,oBAACF,8BAA4BA;gBAAC,MAAME,MAAM,IAAI;eACzCA,MAAM,OAAO;;IAKlC"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import react from "react";
|
|
2
|
-
import { ContentEntryEditorConfig } from "@webiny/app-headless-cms";
|
|
3
|
-
import { useWorkflowState } from "@webiny/app-workflows";
|
|
4
|
-
import { observer } from "mobx-react-lite";
|
|
5
|
-
const { Actions: Actions } = ContentEntryEditorConfig;
|
|
6
|
-
const { ButtonAction: ButtonAction } = Actions;
|
|
7
|
-
const OverrideSaveButton = observer((props)=>{
|
|
8
|
-
const { presenter } = useWorkflowState();
|
|
9
|
-
if ("save" !== props.name) return props.children;
|
|
10
|
-
if (!presenter.vm.state) return props.children;
|
|
11
|
-
return null;
|
|
12
|
-
});
|
|
13
|
-
const CmsEntryFormSaveButton = ButtonAction.createDecorator((Original)=>function(props) {
|
|
14
|
-
return /*#__PURE__*/ react.createElement(Original, {
|
|
15
|
-
...props,
|
|
16
|
-
element: /*#__PURE__*/ react.createElement(OverrideSaveButton, {
|
|
17
|
-
name: props.name
|
|
18
|
-
}, props.element)
|
|
19
|
-
});
|
|
20
|
-
});
|
|
21
|
-
export { CmsEntryFormSaveButton };
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=CmsEntryFormSaveButton.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Components/ContentEntryForm/CmsEntryFormSaveButton.js","sources":["../../../src/Components/ContentEntryForm/CmsEntryFormSaveButton.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig } from \"@webiny/app-headless-cms\";\nimport { useWorkflowState } from \"@webiny/app-workflows\";\nimport { observer } from \"mobx-react-lite\";\n\nconst { Actions } = ContentEntryEditorConfig;\nconst { ButtonAction } = Actions;\n\ninterface IOverrideSaveButtonProps {\n name: string;\n children: React.ReactElement;\n}\n\nconst OverrideSaveButton = observer((props: IOverrideSaveButtonProps) => {\n const { presenter } = useWorkflowState();\n\n /**\n * If there is no workflow state or state is approved, we simply render the original element.\n * This is to ensure that no button will be shown if workflow state is active.\n */\n if (props.name !== \"save\") {\n return props.children;\n } else if (!presenter.vm.state) {\n return props.children;\n }\n return null;\n});\n\nexport const CmsEntryFormSaveButton = ButtonAction.createDecorator(Original => {\n return function WorkflowCmsEntryFormSaveButton(props) {\n return (\n <Original\n {...props}\n element={<OverrideSaveButton name={props.name}>{props.element}</OverrideSaveButton>}\n />\n );\n };\n});\n"],"names":["Actions","ContentEntryEditorConfig","ButtonAction","OverrideSaveButton","observer","props","presenter","useWorkflowState","CmsEntryFormSaveButton","Original"],"mappings":";;;;AAKA,MAAM,EAAEA,SAAAA,OAAO,EAAE,GAAGC;AACpB,MAAM,EAAEC,cAAAA,YAAY,EAAE,GAAGF;AAOzB,MAAMG,qBAAqBC,SAAS,CAACC;IACjC,MAAM,EAAEC,SAAS,EAAE,GAAGC;IAMtB,IAAIF,AAAe,WAAfA,MAAM,IAAI,EACV,OAAOA,MAAM,QAAQ;IAClB,IAAI,CAACC,UAAU,EAAE,CAAC,KAAK,EAC1B,OAAOD,MAAM,QAAQ;IAEzB,OAAO;AACX;AAEO,MAAMG,yBAAyBN,aAAa,eAAe,CAACO,CAAAA,WACxD,SAAwCJ,KAAK;QAChD,OAAO,WAAP,GACI,oBAACI,UAAAA;YACI,GAAGJ,KAAK;YACT,uBAAS,oBAACF,oBAAkBA;gBAAC,MAAME,MAAM,IAAI;eAAGA,MAAM,OAAO;;IAGzE"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import react from "react";
|
|
2
|
-
import { ContentEntryEditorConfig, useContentEntry } from "@webiny/app-headless-cms";
|
|
3
|
-
import { Components } from "@webiny/app-workflows";
|
|
4
|
-
import { useSecurity } from "@webiny/app-admin";
|
|
5
|
-
import { useApolloClient } from "@apollo/react-hooks";
|
|
6
|
-
import { createAppName } from "../../utils/appName.js";
|
|
7
|
-
const { ContentReview: { WorkflowStateProvider: WorkflowStateProvider } } = Components;
|
|
8
|
-
const { ContentEntry: ContentEntry } = ContentEntryEditorConfig;
|
|
9
|
-
const ContentEntryWorkflow = ContentEntry.createDecorator((Original)=>function() {
|
|
10
|
-
const { entry, contentModel: model } = useContentEntry();
|
|
11
|
-
const client = useApolloClient();
|
|
12
|
-
const { identity } = useSecurity();
|
|
13
|
-
return /*#__PURE__*/ react.createElement(WorkflowStateProvider, {
|
|
14
|
-
app: createAppName(model),
|
|
15
|
-
id: entry.id,
|
|
16
|
-
identity: identity,
|
|
17
|
-
client: client,
|
|
18
|
-
title: `${model.name}: ${entry.meta?.title || "unknown"}`
|
|
19
|
-
}, /*#__PURE__*/ react.createElement(Original, null));
|
|
20
|
-
});
|
|
21
|
-
export { ContentEntryWorkflow };
|
|
22
|
-
|
|
23
|
-
//# sourceMappingURL=ContentEntryWorkflow.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Components/ContentEntryForm/ContentEntryWorkflow.js","sources":["../../../src/Components/ContentEntryForm/ContentEntryWorkflow.tsx"],"sourcesContent":["import React from \"react\";\nimport { ContentEntryEditorConfig, useContentEntry } from \"@webiny/app-headless-cms\";\nimport { Components } from \"@webiny/app-workflows\";\nimport { useSecurity } from \"@webiny/app-admin\";\nimport { useApolloClient } from \"@apollo/react-hooks\";\nimport { createAppName } from \"~/utils/appName.js\";\n\nconst {\n ContentReview: { WorkflowStateProvider }\n} = Components;\n\nconst { ContentEntry } = ContentEntryEditorConfig;\n\nexport const ContentEntryWorkflow = ContentEntry.createDecorator(Original => {\n return function ContentEntryWorkflowSetup() {\n const { entry, contentModel: model } = useContentEntry();\n const client = useApolloClient();\n\n const { identity } = useSecurity();\n\n return (\n <WorkflowStateProvider\n app={createAppName(model)}\n id={entry.id}\n identity={identity}\n client={client}\n title={`${model.name}: ${entry.meta?.title || \"unknown\"}`}\n >\n <Original />\n </WorkflowStateProvider>\n );\n };\n});\n"],"names":["WorkflowStateProvider","Components","ContentEntry","ContentEntryEditorConfig","ContentEntryWorkflow","Original","entry","model","useContentEntry","client","useApolloClient","identity","useSecurity","createAppName"],"mappings":";;;;;;AAOA,MAAM,EACF,eAAe,EAAEA,uBAAAA,qBAAqB,EAAE,EAC3C,GAAGC;AAEJ,MAAM,EAAEC,cAAAA,YAAY,EAAE,GAAGC;AAElB,MAAMC,uBAAuBF,aAAa,eAAe,CAACG,CAAAA,WACtD;QACH,MAAM,EAAEC,KAAK,EAAE,cAAcC,KAAK,EAAE,GAAGC;QACvC,MAAMC,SAASC;QAEf,MAAM,EAAEC,QAAQ,EAAE,GAAGC;QAErB,OAAO,WAAP,GACI,oBAACZ,uBAAqBA;YAClB,KAAKa,cAAcN;YACnB,IAAID,MAAM,EAAE;YACZ,UAAUK;YACV,QAAQF;YACR,OAAO,GAAGF,MAAM,IAAI,CAAC,EAAE,EAAED,MAAM,IAAI,EAAE,SAAS,WAAW;yBAEzD,oBAACD,UAAAA;IAGb"}
|