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
parent
be8f46f134
commit
99fa7d0986
|
|
@ -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>
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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: {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue