Files
old-spike/client/dashboard/layout/layout.js

89 lines
2.0 KiB
JavaScript
Raw Normal View History

2016-02-09 11:16:49 -06:00
import React from 'react';
2016-02-08 18:23:40 -06:00
import layoutRt from './layout.rt.js';
2016-02-10 16:11:56 -06:00
import House from './../../models/house';
2016-02-21 18:40:55 -06:00
import PowerDatum from './../../models/power_datum';
2016-02-10 16:11:56 -06:00
2016-02-08 18:23:40 -06:00
var Layout = React.createClass({
2016-02-09 11:16:49 -06:00
getInitialState: function(){
2016-02-10 16:11:56 -06:00
var layout = this;
return {
houses: null,
house: null,
2016-02-15 11:38:41 -06:00
view: 'graph',
2016-02-15 16:09:40 -06:00
dataset: 'power',
2016-02-10 16:11:56 -06:00
requesting_data: true
};
2016-02-08 18:23:40 -06:00
},
handleResize: function(e) {
this.setState({windowWidth: window.innerWidth});
},
componentDidMount: function() {
2016-02-10 16:11:56 -06:00
var layout = this;
// window.addEventListener('resize', this.handleResize);
House.ensureHouses().then((houses)=>{
layout.setState({
houses: houses,
house: houses[0],
requesting_data: false,
month: houses[0].current_month,
year: houses[0].current_year
});
2016-02-10 16:11:56 -06:00
});
2016-02-08 18:23:40 -06:00
},
2016-02-15 11:38:41 -06:00
setHouse: function(event){
var layout = this,
house_id = event.target.value,
old_house = layout.state.house,
2016-02-15 11:38:41 -06:00
house = layout.state.houses.find((house)=>{ return house.data.id == house_id });
2016-02-21 18:40:55 -06:00
layout.setState({house: house}, ()=>{
old_house.closeDb();
2016-02-21 18:40:55 -06:00
});
2016-02-15 11:38:41 -06:00
},
2016-02-10 16:11:56 -06:00
setView: function(event){
var layout = this,
2016-02-15 11:38:41 -06:00
view = event.target.dataset.value;
2016-02-10 16:11:56 -06:00
layout.view_name = event.target.innerText;
2016-02-13 16:49:32 -06:00
layout.setState({view: view});
2016-02-10 16:11:56 -06:00
},
2016-02-15 11:38:41 -06:00
setDataset: function(event){
2016-02-10 16:11:56 -06:00
var layout = this,
2016-02-15 11:38:41 -06:00
dataset = event.target.dataset.value;
layout.setState({dataset: dataset});
2016-02-08 18:23:40 -06:00
},
setYear: function(event){
var layout = this,
year = event.target.dataset.value,
house = layout.state.house;
if (year != house.current_year){
house.setYear(year);
layout.setState({year: year});
}
},
2016-02-21 18:40:55 -06:00
refreshData: function(){
var layout = this,
houses = layout.state.houses,
all = [];
houses.forEach((house)=>{
all.push(house.clearData());
});
Promise.all(all)
.then(()=>{
window.location.reload();
});
},
2016-02-08 18:23:40 -06:00
render: function() {
2016-02-09 11:16:49 -06:00
return layoutRt.call(this);
2016-02-08 18:23:40 -06:00
}
});
export default Layout;