/** @jsx React.DOM */
var FlowRow = React.createClass({
render: function(){
var flow = this.props.flow;
var columns = this.props.columns.map(function(column){
return column({
key: column.displayName,
flow: flow
});
}.bind(this));
return
{columns}
;
}
});
var FlowTableHead = React.createClass({
render: function(){
var columns = this.props.columns.map(function(column){
return column.renderTitle();
}.bind(this));
return {columns};
}
});
var FlowTableBody = React.createClass({
render: function(){
var rows = this.props.flows.map(function(flow){
//TODO: Add UUID
return ;
}.bind(this));
return {rows};
}
});
var TLSColumn = React.createClass({
statics: {
renderTitle: function(){
return | ;
}
},
render: function(){
var flow = this.props.flow;
var ssl = (flow.request.scheme == "https");
return | ;
}
});
var IconColumn = React.createClass({
statics: {
renderTitle: function(){
return | ;
}
},
render: function(){
var flow = this.props.flow;
return | ;
}
});
var PathColumn = React.createClass({
statics: {
renderTitle: function(){
return Path | ;
}
},
render: function(){
var flow = this.props.flow;
return {flow.request.scheme + "://" + flow.request.host + flow.request.path} | ;
}
});
var MethodColumn = React.createClass({
statics: {
renderTitle: function(){
return Method | ;
}
},
render: function(){
var flow = this.props.flow;
return {flow.request.method} | ;
}
});
var StatusColumn = React.createClass({
statics: {
renderTitle: function(){
return Status | ;
}
},
render: function(){
var flow = this.props.flow;
var status;
if(flow.response){
status = flow.response.code;
} else {
status = null;
}
return {status} | ;
}
});
var TimeColumn = React.createClass({
statics: {
renderTitle: function(){
return Time | ;
}
},
render: function(){
var flow = this.props.flow;
var time;
if(flow.response){
time = Math.round(1000 * (flow.response.timestamp_end - flow.request.timestamp_start))+"ms";
} else {
time = "...";
}
return {time} | ;
}
});
var all_columns = [TLSColumn, IconColumn, PathColumn, MethodColumn, StatusColumn, TimeColumn];
var FlowTable = React.createClass({
getInitialState: function () {
return {
flows: [],
columns: all_columns
};
},
componentDidMount: function () {
this.flowStore = FlowStore.getView();
this.flowStore.addListener("change",this.onFlowChange);
},
componentWillUnmount: function () {
this.flowStore.removeListener("change",this.onFlowChange);
this.flowStore.close();
},
onFlowChange: function () {
this.setState({
flows: this.flowStore.getAll()
});
},
onClick: function(e){
console.log("rowclick", e);
},
render: function () {
var flows = this.state.flows.map(function(flow){
return {flow.request.method} {flow.request.scheme}://{flow.request.host}{flow.request.path}
;
});
return (
);
}
});