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

View File

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