CCM NG: Some things for the PageModelEditor

git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@5475 8810af33-2d31-482b-a856-94f89814c4df
pull/2/head
jensp 2018-06-04 18:28:58 +00:00
parent 15bd5b32d6
commit 4de79a3629
2 changed files with 168 additions and 99 deletions

View File

@ -119,7 +119,7 @@ class PageModelsList
public render(): React.ReactNode { public render(): React.ReactNode {
return <div className="pageModelsList"> return <div className="pagemodeleditor pageModelsList">
{this.state.errorMsg !== null && {this.state.errorMsg !== null &&
<div className="errorPanel"> <div className="errorPanel">
{this.state.errorMsg} {this.state.errorMsg}
@ -170,16 +170,56 @@ interface PageModelComponentProps {
pageModel: PageModel; pageModel: PageModel;
} }
class PageModelComponent extends React.Component<PageModelComponentProps, {}> { interface PageModelComponentState {
editMode: boolean;
}
class PageModelComponent
extends React.Component<PageModelComponentProps, PageModelComponentState> {
constructor(props: PageModelComponentProps) { constructor(props: PageModelComponentProps) {
super(props); super(props);
this.state = {
editMode: false
};
} }
public render(): React.ReactNode { public render(): React.ReactNode {
if (this.state.editMode) {
return <div className="bebop-body"> return <div className="bebop-body">
<dl className="properties-list"> <form className="pagemodeleditor pagemodel propertiesForm">
<label htmlFor="pageModelName">
Name
</label>
<input
id="pageModelName"
size={32}
type="text"
value={this.props.pageModel.name} />
<label htmlFor="pageModelTitle">
Name
</label>
<input
id="pageModelTitle"
size={32}
type="text"
value={this.props.pageModel.title}/>
<label htmlFor="pageModelDescription">
Name
</label>
<textarea id="pageModeDescription" cols={80} rows={20}>
{this.props.pageModel.description}
</textarea>
</form>
</div>
} else {
return <div className="bebop-body">
<dl className="pagemodeleditor pagemodel propertiesList">
<dt>Name</dt> <dt>Name</dt>
<dd>{this.props.pageModel.name}</dd> <dd>{this.props.pageModel.name}</dd>
<dt>Title</dt> <dt>Title</dt>
@ -191,9 +231,16 @@ class PageModelComponent extends React.Component<PageModelComponentProps, {}> {
<dt>Description</dt> <dt>Description</dt>
<dd>{this.props.pageModel.description}</dd> <dd>{this.props.pageModel.description}</dd>
</dl> </dl>
<button>Edit</button> <button onClick={(event) => {
</div>;
event.preventDefault();
this.setState({
editMode: true
});
}}>Edit</button>
</div>;
}
// return <dl> // return <dl>
// <dt>Name</dt> // <dt>Name</dt>
// <dd>{this.props.pageModel.name}</dd> // <dd>{this.props.pageModel.name}</dd>
@ -251,7 +298,7 @@ class PageModelEditor
</h3> </h3>
<div className="bebop-segment-body"> <div className="bebop-segment-body">
<button <button
className="pagemodels addbutton"> className="pagemodeleditor addbutton">
<span>+</span> Create new PageModel <span>+</span> Create new PageModel
</button> </button>
<PageModelsList <PageModelsList
@ -269,7 +316,7 @@ class PageModelEditor
}; };
}); });
}} /> }} />
<button className="pagemodels addbutton"> <button className="pagemodeleditor addbutton">
<span>+</span> Create new PageModel <span>+</span> Create new PageModel
</button> </button>
</div> </div>
@ -301,9 +348,6 @@ class PageModelEditor
// </React.Fragment> // </React.Fragment>
} }
</pageModelEditorContext.Consumer> </pageModelEditorContext.Consumer>
<pre>
{this.getCcmApplication()}
</pre>
</div> </div>
</div> </div>
</pageModelEditorContext.Provider> </pageModelEditorContext.Provider>

View File

@ -1978,7 +1978,7 @@ span#quickLinksCascade {
white-space: pre; white-space: pre;
} }
button.pagemodels.addbutton { button.pagemodeleditor.addbutton {
border: none; border: none;
border-radius: 0.25em; border-radius: 0.25em;
@ -1990,7 +1990,7 @@ button.pagemodels.addbutton {
padding: 0.2em 0.33em; padding: 0.2em 0.33em;
} }
button.pagemodels.addbutton > span { button.pagemodeleditor.addbutton > span {
border-right: 1px solid #eee; border-right: 1px solid #eee;
@ -2000,7 +2000,7 @@ button.pagemodels.addbutton > span {
} }
div.pageModelsList { div.pagemodeleditor.pageModelsList {
margin-top: 0.66em; margin-top: 0.66em;
margin-bottom: 0.66em; margin-bottom: 0.66em;
@ -2008,5 +2008,30 @@ div.pageModelsList {
padding-top: 0.66em; padding-top: 0.66em;
border-bottom: 1px solid #0776A0; border-bottom: 1px solid #0776A0;
padding-bottom: 0.66em; padding-bottom: 0.66em;
}
dl.pagemodeleditor.pagemodel.propertiesList {
display: grid;
grid-template-columns: 1fr 2fr;
max-width: 30em;
}
dl.pagemodeleditor.pagemodel.propertiesList dt{
font-weight: bold;
}
dl.pagemodeleditor.pagemodel.propertiesList dd {
}
dl.pagemodeleditor.pagemodel.propertiesForm {
display: grid;
grid-template-columns: 1fr 2fr;
max-width: 30em;
}
dl.pagemodeleditor.pagemodel.propertiesForm label {
font-weight: bold;
} }