forked from p15670423/monkey
configuration page - split view to top level "sections"
This commit is contained in:
parent
27e9d28a82
commit
f0c43f8bb5
|
@ -10,7 +10,9 @@ class ConfigurePageComponent extends React.Component {
|
||||||
this.state = {
|
this.state = {
|
||||||
schema: {},
|
schema: {},
|
||||||
configuration: {},
|
configuration: {},
|
||||||
saved: false
|
saved: false,
|
||||||
|
sections: [],
|
||||||
|
selectedSection: ''
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,7 +21,12 @@ class ConfigurePageComponent extends React.Component {
|
||||||
.then(res => res.json())
|
.then(res => res.json())
|
||||||
.then(res => this.setState({
|
.then(res => this.setState({
|
||||||
schema: res.schema,
|
schema: res.schema,
|
||||||
configuration: res.configuration
|
configuration: res.configuration,
|
||||||
|
sections: Object.keys(res.schema.properties)
|
||||||
|
.map(key => {
|
||||||
|
return {key: key, title: res.schema.properties[key].title}
|
||||||
|
}),
|
||||||
|
selectedSection: 'monkey'
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -40,6 +47,12 @@ class ConfigurePageComponent extends React.Component {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
setSelectedSection = (event) => {
|
||||||
|
this.setState({
|
||||||
|
selectedSection: event.target.value
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<Col xs={8}>
|
<Col xs={8}>
|
||||||
|
@ -48,9 +61,20 @@ class ConfigurePageComponent extends React.Component {
|
||||||
<i className="glyphicon glyphicon-info-sign" style={{'marginRight': '5px'}}/>
|
<i className="glyphicon glyphicon-info-sign" style={{'marginRight': '5px'}}/>
|
||||||
This configuration will only apply on new infections.
|
This configuration will only apply on new infections.
|
||||||
</div>
|
</div>
|
||||||
<Form schema={this.state.schema}
|
|
||||||
formData={this.state.configuration}
|
<select value={this.state.selectedSection} onChange={this.setSelectedSection}
|
||||||
onSubmit={this.onSubmit}/>
|
className="form-control input-lg" style={{'margin-bottom': '1em'}}>
|
||||||
|
{this.state.sections.map(section =>
|
||||||
|
<option value={section.key}>{section.title}</option>
|
||||||
|
)}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
{ this.state.selectedSection ?
|
||||||
|
<Form schema={this.state.schema.properties[this.state.selectedSection]}
|
||||||
|
formData={this.state.configuration}
|
||||||
|
onSubmit={this.onSubmit}/>
|
||||||
|
: ''}
|
||||||
|
|
||||||
{ this.state.saved ?
|
{ this.state.saved ?
|
||||||
<p>Configuration saved successfully.</p>
|
<p>Configuration saved successfully.</p>
|
||||||
: ''}
|
: ''}
|
||||||
|
|
|
@ -140,6 +140,18 @@ body {
|
||||||
background: #666;
|
background: #666;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Configuration Page
|
||||||
|
*/
|
||||||
|
|
||||||
|
.rjsf .form-group .form-group {
|
||||||
|
margin-left: 2em;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rjsf #root__title {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Run Monkey Page
|
* Run Monkey Page
|
||||||
*/
|
*/
|
||||||
|
|
Loading…
Reference in New Issue