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 b71433ff5..1e3d15c05 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 @@ -26,6 +26,7 @@ import org.libreccm.security.AuthorizationRequired; import org.libreccm.security.RequiresPrivilege; import org.libreccm.web.CcmApplication; +import java.util.Locale; import java.util.Objects; import javax.enterprise.context.RequestScoped; @@ -84,7 +85,7 @@ public class PageModels { @RequiresPrivilege(CoreConstants.PRIVILEGE_ADMIN) public JsonArray getAllPageModels( @PathParam(PageModelsApp.APP_NAME) String appPath) { - + Objects.requireNonNull(appPath); final CcmApplication app = controller @@ -129,7 +130,7 @@ public class PageModels { public JsonObject getPageModel( @PathParam(PageModelsApp.APP_NAME) final String appPath, @PathParam(PageModelsApp.PAGE_MODEL_NAME) final String pageModelName) { - + Objects.requireNonNull(appPath); Objects.requireNonNull(pageModelName); @@ -169,7 +170,7 @@ public class PageModels { @PathParam(PageModelsApp.APP_NAME) final String appPath, @PathParam(PageModelsApp.PAGE_MODEL_NAME) final String pageModelName, final JsonObject pageModelData) { - + Objects.requireNonNull(appPath); Objects.requireNonNull(pageModelName); @@ -184,6 +185,16 @@ public class PageModels { pageModel.setApplication(app); } pageModel.setName(pageModelName); + if (pageModelData.containsKey("title")) { + pageModel.getTitle().addValue(Locale.ROOT, + pageModelData.getString("title")); + } + if (pageModelData.containsKey("description")) { + pageModel + .getDescription() + .addValue(Locale.ROOT, + pageModelData.getString("description")); + } controller.savePageModel(pageModel); @@ -205,7 +216,7 @@ public class PageModels { public void deletePageModel( @PathParam(PageModelsApp.APP_NAME) final String appPath, @PathParam(PageModelsApp.PAGE_MODEL_NAME) final String pageModelName) { - + Objects.requireNonNull(appPath); Objects.requireNonNull(pageModelName); diff --git a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx index 1d4b5d3df..b4d7e7ed5 100644 --- a/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx +++ b/ccm-pagemodelseditor/src/main/typescript/ccm-pagemodelseditor/PageModelsEditor.tsx @@ -167,12 +167,22 @@ class PageModelListItem interface PageModelComponentProps { + ccmApplication: string; + dispatcherPrefix: string; pageModel: PageModel; } interface PageModelComponentState { editMode: boolean; + + errorMsg: string | null; + + form: { + name: string; + title: string; + description: string; + } } class PageModelComponent @@ -182,39 +192,70 @@ class PageModelComponent super(props); this.state = { - editMode: false + editMode: false, + errorMsg: null, + form: { + name: this.props.pageModel.name, + title: this.props.pageModel.title, + description: this.props.pageModel.description + } }; + + this.handleChange = this.handleChange.bind(this); + this.handleSubmit = this.handleSubmit.bind(this); } public render(): React.ReactNode { if (this.state.editMode) { return
-
+ {this.state.errorMsg !== null && +
+ {this.state.errorMsg} +
+ } + + + value={this.state.form.name} /> + value={this.state.form.title} /> - +