mirror of
https://github.com/alibaba/anyproxy.git
synced 2025-04-20 17:14:20 +00:00
72 lines
2.0 KiB
JavaScript
72 lines
2.0 KiB
JavaScript
function init(React){
|
|
var RecordRow = require("./recordRow").init(React);
|
|
|
|
var RecordPanel = React.createClass({displayName: "RecordPanel",
|
|
getInitialState : function(){
|
|
return {
|
|
list : [],
|
|
filter: ""
|
|
};
|
|
},
|
|
render : function(){
|
|
var self = this,
|
|
rowCollection = [],
|
|
filterStr = self.state.filter,
|
|
filter = filterStr;
|
|
|
|
//regexp
|
|
if(filterStr[0]=="/" && filterStr[filterStr.length-1]=="/"){
|
|
try{
|
|
filter = new RegExp(filterStr.substr(1,filterStr.length-2));
|
|
}catch(e){}
|
|
}
|
|
|
|
for(var i = self.state.list.length-1 ; i >=0 ; i--){
|
|
var item = self.state.list[i];
|
|
if(item){
|
|
if(filter && item){
|
|
try{
|
|
if(typeof filter == "object" && !filter.test(item.url)){
|
|
continue;
|
|
}else if(typeof filter == "string" && item.url.indexOf(filter) < 0){
|
|
continue;
|
|
}
|
|
}catch(e){}
|
|
}
|
|
|
|
if(item._justUpdated){
|
|
item._justUpdated = false;
|
|
item._needRender = true;
|
|
}else{
|
|
item._needRender = false;
|
|
}
|
|
|
|
rowCollection.push(React.createElement(RecordRow, {key: item.id, data: item, onSelect: self.props.onSelect.bind(self,item)}));
|
|
}
|
|
}
|
|
|
|
return (
|
|
React.createElement("table", {className: "uk-table uk-table-condensed uk-table-hover"},
|
|
React.createElement("thead", null,
|
|
React.createElement("tr", null,
|
|
React.createElement("th", {className: "col_id"}, "#"),
|
|
React.createElement("th", {className: "col_method"}, "method"),
|
|
React.createElement("th", {className: "col_code"}, "code"),
|
|
React.createElement("th", {className: "col_host"}, "host"),
|
|
React.createElement("th", {className: "col_path"}, "path"),
|
|
React.createElement("th", {className: "col_mime"}, "mime type"),
|
|
React.createElement("th", {className: "col_time"}, "time")
|
|
)
|
|
),
|
|
React.createElement("tbody", null,
|
|
rowCollection
|
|
)
|
|
)
|
|
);
|
|
}
|
|
});
|
|
|
|
return RecordPanel;
|
|
}
|
|
|
|
module.exports.init = init; |