From 63d2730fbff15f46b4a2272e244c8d3dc07612da Mon Sep 17 00:00:00 2001 From: jensp Date: Thu, 7 Jun 2018 18:26:07 +0000 Subject: [PATCH] CCM NG: PageModelsEditor: Create new PageModels git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5500 8810af33-2d31-482b-a856-94f89814c4df --- .../org/libreccm/pagemodel/rs/PageModels.java | 11 ++++-- .../ccm-pagemodelseditor/PageModelsEditor.tsx | 38 ++++++++++++++++--- 2 files changed, 39 insertions(+), 10 deletions(-) diff --git a/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java b/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java index 5e7e4c2b5..1b46b43e0 100644 --- a/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java +++ b/ccm-core/src/main/java/org/libreccm/pagemodel/rs/PageModels.java @@ -24,6 +24,7 @@ import org.libreccm.configuration.ConfigurationManager; import org.libreccm.core.CoreConstants; import org.libreccm.l10n.GlobalizationHelper; import org.libreccm.pagemodel.PageModel; +import org.libreccm.pagemodel.PageModelManager; import org.libreccm.pagemodel.PageModelRepository; import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.RequiresPrivilege; @@ -61,6 +62,9 @@ public class PageModels { @Inject private PageModelsController controller; + @Inject + private PageModelManager pageModelManager; + @Inject private PageModelRepository pageModelRepo; @@ -189,11 +193,10 @@ public class PageModels { final PageModel pageModel; if (controller.existsPageModel(app, pageModelName)) { pageModel = controller.findPageModel(app, pageModelName); + } else { - pageModel = new PageModel(); - pageModel.setApplication(app); + pageModel = pageModelManager.createPageModel(pageModelName, app); } - pageModel.setName(pageModelName); if (pageModelData.containsKey("title")) { pageModel.getTitle().addValue(kernelConfig.getDefaultLocale(), pageModelData.getString("title")); @@ -207,7 +210,7 @@ public class PageModels { controller.savePageModel(pageModel); - return mapPageModelToJson(controller.findPageModel(app, pageModelName)); + return mapPageModelToJson(pageModel); } /** diff --git a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx index eb1b94682..f4cc6b2ee 100644 --- a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx +++ b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx @@ -195,7 +195,7 @@ class PageModelComponent super(props); this.state = { - editMode: false, + editMode: this.props.pageModel.pageModelId === 0, errorMsg: null, form: { name: this.props.pageModel.name, @@ -225,7 +225,7 @@ class PageModelComponent Name Type
{this.props.pageModel.type}
Version
-
{this.props.pageModel.version}
+
{this.props.pageModel.version.toString()}
Description
{this.props.pageModel.description}
@@ -458,9 +458,12 @@ class PageModelEditor
+ -
@@ -507,6 +514,25 @@ class PageModelEditor ; } + private createNewPageModel(event: React.MouseEvent): void { + + event.preventDefault(); + + this.setState({ + ...this.state, + selectedPageModel: { + description: "", + modelUuid: "", + name: "", + pageModelId: 0, + title: "", + type: "", + uuid: "", + version: PageModelVersion.DRAFT, + } + }); + } + private fetchPageModels(): void { const init: RequestInit = {