/
ExampleList.js
68 lines (60 loc) · 1.94 KB
/
ExampleList.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
'use strict';
var React = require('react');
//bootstrap
var ReactBootstrap = require('react-bootstrap');
var Button = ReactBootstrap.Button;
var ListGroup = ReactBootstrap.ListGroup;
var ListGroupItem = ReactBootstrap.ListGroupItem;
var formService = require('../services/formService');
var request = require('superagent');
var ExampleList = React.createClass({
getInitialState() {
return {
schemaList: []
}
},
componentDidMount: function () {
formService.getSchemaList().then(
function (schemas) {
if (this.isMounted()) {
//alert(JSON.stringify(res.body));
this.setState({
schemaList: schemas
});
}
}.bind(this),
function (err) {
console.log(error)
});
},
handleClick: function (ctrl) {
formService.getSchema(ctrl.name).then(
function (schema) {
if (this.isMounted()) {
//alert(JSON.stringify(res.body));
this.props.loadSchema(schema, ctrl.name);
}
}.bind(this),
function (err) {
console.log(error)
});
},
render: function () {
return (
<div>
<ListGroup fill>
{this.state.schemaList.map(function (ctrl, j) {
return (
<ListGroupItem key={ctrl.name + '|' + j}>
<Button bsStyle='link' onClick={this.handleClick.bind(null, ctrl)} >
<span>{ctrl.label}</span>
</Button>
</ListGroupItem>
);
}, this)}
</ListGroup>
</div>
);
}
});
module.exports = ExampleList;