CCM NG: PageModelsEditor: Create new PageModels
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5500 8810af33-2d31-482b-a856-94f89814c4dfccm-docs
parent
bb6ac896d2
commit
63d2730fbf
|
|
@ -24,6 +24,7 @@ import org.libreccm.configuration.ConfigurationManager;
|
||||||
import org.libreccm.core.CoreConstants;
|
import org.libreccm.core.CoreConstants;
|
||||||
import org.libreccm.l10n.GlobalizationHelper;
|
import org.libreccm.l10n.GlobalizationHelper;
|
||||||
import org.libreccm.pagemodel.PageModel;
|
import org.libreccm.pagemodel.PageModel;
|
||||||
|
import org.libreccm.pagemodel.PageModelManager;
|
||||||
import org.libreccm.pagemodel.PageModelRepository;
|
import org.libreccm.pagemodel.PageModelRepository;
|
||||||
import org.libreccm.security.AuthorizationRequired;
|
import org.libreccm.security.AuthorizationRequired;
|
||||||
import org.libreccm.security.RequiresPrivilege;
|
import org.libreccm.security.RequiresPrivilege;
|
||||||
|
|
@ -61,6 +62,9 @@ public class PageModels {
|
||||||
@Inject
|
@Inject
|
||||||
private PageModelsController controller;
|
private PageModelsController controller;
|
||||||
|
|
||||||
|
@Inject
|
||||||
|
private PageModelManager pageModelManager;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private PageModelRepository pageModelRepo;
|
private PageModelRepository pageModelRepo;
|
||||||
|
|
||||||
|
|
@ -189,11 +193,10 @@ public class PageModels {
|
||||||
final PageModel pageModel;
|
final PageModel pageModel;
|
||||||
if (controller.existsPageModel(app, pageModelName)) {
|
if (controller.existsPageModel(app, pageModelName)) {
|
||||||
pageModel = controller.findPageModel(app, pageModelName);
|
pageModel = controller.findPageModel(app, pageModelName);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
pageModel = new PageModel();
|
pageModel = pageModelManager.createPageModel(pageModelName, app);
|
||||||
pageModel.setApplication(app);
|
|
||||||
}
|
}
|
||||||
pageModel.setName(pageModelName);
|
|
||||||
if (pageModelData.containsKey("title")) {
|
if (pageModelData.containsKey("title")) {
|
||||||
pageModel.getTitle().addValue(kernelConfig.getDefaultLocale(),
|
pageModel.getTitle().addValue(kernelConfig.getDefaultLocale(),
|
||||||
pageModelData.getString("title"));
|
pageModelData.getString("title"));
|
||||||
|
|
@ -207,7 +210,7 @@ public class PageModels {
|
||||||
|
|
||||||
controller.savePageModel(pageModel);
|
controller.savePageModel(pageModel);
|
||||||
|
|
||||||
return mapPageModelToJson(controller.findPageModel(app, pageModelName));
|
return mapPageModelToJson(pageModel);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
||||||
|
|
@ -195,7 +195,7 @@ class PageModelComponent
|
||||||
super(props);
|
super(props);
|
||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
editMode: false,
|
editMode: this.props.pageModel.pageModelId === 0,
|
||||||
errorMsg: null,
|
errorMsg: null,
|
||||||
form: {
|
form: {
|
||||||
name: this.props.pageModel.name,
|
name: this.props.pageModel.name,
|
||||||
|
|
@ -225,7 +225,7 @@ class PageModelComponent
|
||||||
Name
|
Name
|
||||||
</label>
|
</label>
|
||||||
<input
|
<input
|
||||||
disabled={this.props.pageModel.pageModelId === 0 ? true : false}
|
disabled={this.props.pageModel.pageModelId === 0 ? false : true}
|
||||||
id="pageModelName"
|
id="pageModelName"
|
||||||
onChange={this.handleChange}
|
onChange={this.handleChange}
|
||||||
size={32}
|
size={32}
|
||||||
|
|
@ -271,7 +271,7 @@ class PageModelComponent
|
||||||
<dt>Type</dt>
|
<dt>Type</dt>
|
||||||
<dd>{this.props.pageModel.type}</dd>
|
<dd>{this.props.pageModel.type}</dd>
|
||||||
<dt>Version</dt>
|
<dt>Version</dt>
|
||||||
<dd>{this.props.pageModel.version}</dd>
|
<dd>{this.props.pageModel.version.toString()}</dd>
|
||||||
<dt>Description</dt>
|
<dt>Description</dt>
|
||||||
<dd>{this.props.pageModel.description}</dd>
|
<dd>{this.props.pageModel.description}</dd>
|
||||||
</dl>
|
</dl>
|
||||||
|
|
@ -458,9 +458,12 @@ class PageModelEditor
|
||||||
</h3>
|
</h3>
|
||||||
<div className="bebop-segment-body">
|
<div className="bebop-segment-body">
|
||||||
<button
|
<button
|
||||||
className="pagemodeleditor addbutton">
|
className="pagemodeleditor addbutton"
|
||||||
|
onClick={
|
||||||
|
(event) => this.createNewPageModel(event)
|
||||||
|
}>
|
||||||
<span>+</span> Create new PageModel
|
<span>+</span> Create new PageModel
|
||||||
</button>
|
</button>
|
||||||
<PageModelsList
|
<PageModelsList
|
||||||
ccmApplication={this.getCcmApplication()}
|
ccmApplication={this.getCcmApplication()}
|
||||||
dispatcherPrefix={this.getDispatcherPrefix()}
|
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
|
<span>+</span> Create new PageModel
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -507,6 +514,25 @@ class PageModelEditor
|
||||||
</React.Fragment>;
|
</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 {
|
private fetchPageModels(): void {
|
||||||
|
|
||||||
const init: RequestInit = {
|
const init: RequestInit = {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue