CCM NG: PageModelsEditor: Create new PageModels

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5500 8810af33-2d31-482b-a856-94f89814c4df
ccm-docs
jensp 2018-06-07 18:26:07 +00:00
parent bb6ac896d2
commit 63d2730fbf
2 changed files with 39 additions and 10 deletions

View File

@ -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);
}
/**

View File

@ -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
</label>
<input
disabled={this.props.pageModel.pageModelId === 0 ? true : false}
disabled={this.props.pageModel.pageModelId === 0 ? false : true}
id="pageModelName"
onChange={this.handleChange}
size={32}
@ -271,7 +271,7 @@ class PageModelComponent
<dt>Type</dt>
<dd>{this.props.pageModel.type}</dd>
<dt>Version</dt>
<dd>{this.props.pageModel.version}</dd>
<dd>{this.props.pageModel.version.toString()}</dd>
<dt>Description</dt>
<dd>{this.props.pageModel.description}</dd>
</dl>
@ -458,9 +458,12 @@ class PageModelEditor
</h3>
<div className="bebop-segment-body">
<button
className="pagemodeleditor addbutton">
className="pagemodeleditor addbutton"
onClick={
(event) => this.createNewPageModel(event)
}>
<span>+</span> Create new PageModel
</button>
</button>
<PageModelsList
ccmApplication={this.getCcmApplication()}
dispatcherPrefix={this.getDispatcherPrefix()}
@ -473,7 +476,11 @@ class PageModelEditor
};
});
}} />
<button className="pagemodeleditor addbutton">
<button
className="pagemodeleditor addbutton"
onClick={
(event) => this.createNewPageModel(event)
}>
<span>+</span> Create new PageModel
</button>
</div>
@ -507,6 +514,25 @@ class PageModelEditor
</React.Fragment>;
}
private createNewPageModel(event: React.MouseEvent<HTMLButtonElement>): 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 = {