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 = {