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)=>{
|
2016-02-22 13:45:43 -06:00
|
|
|
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,
|
2016-02-22 13:45:43 -06:00
|
|
|
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}, ()=>{
|
2016-02-22 13:45:43 -06:00
|
|
|
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
|
|
|
},
|
|
|
|
|
|
2016-02-22 13:45:43 -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;
|