CCM NG: PageModelsEditor bugfixes

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5612 8810af33-2d31-482b-a856-94f89814c4df

Former-commit-id: 964d762df2
pull/2/head
jensp 2018-07-19 08:50:38 +00:00
parent be8f46f134
commit 99fa7d0986
2 changed files with 42 additions and 14 deletions

View File

@ -113,12 +113,15 @@ class ItemListComponentEditor
descending: false, descending: false,
limitToType: "", limitToType: "",
pageSize: 30, pageSize: 30,
listOrder: [ "objectId", ], listOrder: [],
}); });
} }
public renderPropertyList(): React.ReactFragment { public renderPropertyList(): React.ReactFragment {
console.log("Rendering properties list for ItemListComponent...");
console.log(`listOrder = ${this.props.component.listOrder}`);
return <React.Fragment> return <React.Fragment>
<dt>descending</dt> <dt>descending</dt>
<dd>{this.props.component.descending}</dd> <dd>{this.props.component.descending}</dd>
@ -128,13 +131,15 @@ class ItemListComponentEditor
<dd>{this.props.component.pageSize}</dd> <dd>{this.props.component.pageSize}</dd>
<dt>listOrder</dt> <dt>listOrder</dt>
<dd> <dd>
<ul> {Array.isArray(this.props.component.listOrder) ?
{this.props.component.listOrder.map((order) => { (
<li> this.props.component.listOrder.map((order) => {
{order} <li>
</li> {order}
})} </li>
</ul> })
) : ("No order set")
}
</dd> </dd>
</React.Fragment> </React.Fragment>
} }

View File

@ -878,11 +878,20 @@ class ContainerModelComponent
private getComponentModelEditor( private getComponentModelEditor(
component: ComponentModel): React.ReactNode { component: ComponentModel): React.ReactNode {
console.log(`Trying to find editor for ${component.type}`);
// console.log("Available editors:");
// for(let key of Object.keys(PageModelEditor.getAvailableComponents())) {
//
// console.log(`${key} -> ${PageModelEditor.getAvailableComponents()[key]}`);
// }
if (PageModelEditor.getAvailableComponents()[component.type]) { if (PageModelEditor.getAvailableComponents()[component.type]) {
console.log(`Found editor generator: ${PageModelEditor.getAvailableComponents()[component.type]}`); console.log(`Found a editor generator for ${component.type} `);
return PageModelEditor return PageModelEditor
.getAvailableComponents()[component.type](component); .getAvailableComponents()[component.type](component);
} else { } else {
console.warn(`No editor for type ${component.type} found. `
+ `Using default editor.`);
return <DefaultComponentModelEditor component={component} />; return <DefaultComponentModelEditor component={component} />;
} }
} }
@ -936,13 +945,13 @@ abstract class AbstractComponentModelEditor<
<dd>{this.props.component.key}</dd> <dd>{this.props.component.key}</dd>
<dt>Type</dt> <dt>Type</dt>
<dd>{this.props.component.type}</dd> <dd>{this.props.component.type}</dd>
{this.renderPropertyList} {this.renderPropertyList()}
</dl> </dl>
<button onClick={this.toggleEditorDialog}> <button onClick={this.toggleEditorDialog}>
Edit Edit
</button> </button>
<dialog className="{this.state.dialogExpanded}"> <dialog className="{this.state.dialogExpanded}">
{this.renderEditorDialog} {this.renderEditorDialog()}
</dialog> </dialog>
</li>; </li>;
} }
@ -1026,7 +1035,10 @@ class PageModelEditor
[type: string]: (component: ComponentModel) => React.ReactFragment} { [type: string]: (component: ComponentModel) => React.ReactFragment} {
console.log("Available editors:"); console.log("Available editors:");
console.log(PageModelEditor.componentModelEditors.toString()); for(let key of Object.keys(PageModelEditor.componentModelEditors)) {
console.log(`${key} -> ${PageModelEditor.componentModelEditors}`);
}
return { return {
...PageModelEditor.componentModelEditors, ...PageModelEditor.componentModelEditors,
@ -1037,10 +1049,21 @@ class PageModelEditor
type: string, type: string,
generator: ((component: ComponentModel) => React.ReactFragment)): void { generator: ((component: ComponentModel) => React.ReactFragment)): void {
PageModelEditor.componentModelEditors = { console.log(`Registering editor for type ${type}...`);
const editors = {
...PageModelEditor.componentModelEditors, ...PageModelEditor.componentModelEditors,
type: generator,
}; };
editors[type] = generator;
PageModelEditor.componentModelEditors = editors;
console.log("The following editors are now available:");
for(let key of Object.keys(PageModelEditor.componentModelEditors)) {
console.log(`${key} -> ${PageModelEditor.componentModelEditors}`);
}
console.log("-----------------------");
} }
private static componentModelEditors: { private static componentModelEditors: {