update design build

This commit is contained in:
Eric Hulburd
2016-03-05 16:53:29 -06:00
parent 43a9daf94e
commit d7af1fc2b2
20 changed files with 172 additions and 149 deletions

View File

@@ -35,6 +35,6 @@ class EnergyComponent extends React.Component {
return energyRt.call(this);
}
}
EnergyComponent.NAME = 'EnergyComponent'
EnergyComponent.NAME = 'Energy';
module.exports = EnergyComponent;

View File

@@ -70,4 +70,6 @@ class GraphComponent extends React.Component {
}
GraphComponent.NAME = 'EnergyGraph';
module.exports = GraphComponent;

View File

@@ -20,4 +20,6 @@ class TableComponent extends React.Component {
}
TableComponent.NAME = 'EnergyTable';
module.exports = TableComponent;

View File

@@ -26,6 +26,14 @@ class LayoutComponent extends React.Component {
return this.state_manager && this.state_manager.state.house;
}
get should_show_energy_data(){
return this.state.dataset === 'energy' && this.house && this.house.energy_data;
}
get should_show_power_data(){
return this.state.dataset === 'power' && this.house && this.house.power_data;
}
componentDidMount() {
var layout = this;
House.ensureHouses().then((houses)=>{
@@ -83,4 +91,6 @@ class LayoutComponent extends React.Component {
}
}
export default LayoutComponent;
LayoutComponent.NAME = 'Layout';
module.exports = LayoutComponent;

View File

@@ -1,5 +1,5 @@
<rt-require dependency="./../energy/energy.component" as="EnergyComponent"/>
<rt-require dependency="./../power/power.component" as="PowerComponent"/>
<rt-require dependency="./../energy/energy.component" as="Energy"/>
<rt-require dependency="./../power/power.component" as="Power"/>
<div id="layout">
<div rt-if="!this.house" id="about">
<div class="panel panel-default">
@@ -75,16 +75,16 @@
</div>
</div><br/>
<EnergyComponent
rt-if="this.state.dataset === 'energy'"
<Energy
rt-if="this.should_show_energy_data"
house="{this.state.house}"
loading_energy_data="{this.state.loading_energy_data}"
state_manager="{this.state_manager}"
view="{this.state.view}"
graph_attr="{this.state.graph_attr}"
year="{this.state.year}" />
<PowerComponent
rt-if="this.state.dataset === 'power'"
<Power
rt-if="this.should_show_power_data"
house="{this.state.house}"
loading_power_data="{this.state.loading_power_data}"
state_manager="{this.state_manager}"

View File

@@ -6,11 +6,6 @@ import SplineStackChart from './../../../d3/line/spline_stack';
class GraphComponent extends React.Component {
componentDidMount(){
var power_graph = this;
power_graph.updateGraph();
}
get house(){
return this.state_manager.state.house;
}
@@ -19,6 +14,11 @@ class GraphComponent extends React.Component {
return this.props.state_manager;
}
componentDidMount(){
var power_graph = this;
power_graph.updateGraph();
}
componentDidUpdate(prev_props, prev_state){
var power_graph = this;
if (prev_props.house != power_graph.props.house || prev_props.power_range != power_graph.props.power_range){
@@ -84,4 +84,6 @@ class GraphComponent extends React.Component {
}
GraphComponent.NAME = 'PowerGraph';
module.exports = GraphComponent;

View File

@@ -37,8 +37,8 @@ class PowerComponent extends React.Component {
componentDidUpdate(prev_props, prev_state){
var power = this,
state_manager = power.state_manager;
if (prev_props.month != power.props.month ||
prev_props.year != power.props.year ||
if (prev_props.power_range[0] != power.props.power_range[0] ||
prev_props.power_range[1] != power.props.power_range[1] ||
prev_props.house != power.props.house){
power.initDateRange();
state_manager.powerDataRendered();
@@ -101,6 +101,6 @@ class PowerComponent extends React.Component {
}
PowerComponent.NAME = 'PowerComponent'
PowerComponent.NAME = 'Power';
module.exports = PowerComponent
module.exports = PowerComponent;

View File

@@ -19,4 +19,6 @@ class TableComponent extends React.Component {
}
}
TableComponent.NAME = 'PowerTable';
module.exports = TableComponent;

View File

@@ -44,7 +44,7 @@ class StateManager {
}
// This will update the house state acccording to passed update parameters.
updateHouseFromState(component){
updateHouseFromState(component, fnResolve){
var state_manager = this,
house = state_manager.state.house,
promise;
@@ -133,26 +133,23 @@ class StateManager {
updateStateFromUrl(location, component){
var state_manager = this;
return new Promise((fnResolve, fnReject)=>{
var params = state_manager.parseUrl(location.pathname),
house = null;
if (params.dataset === 'power' && location.query.dates) {
params.power_range = [+location.query.dates[0], +location.query.dates[1]];
}
if (params.house_id || params.house_id != state_manager.state.house_id){
house = state_manager.houses.find((h)=>{ return h.data.id == params.house_id; });
}
state_manager.state.house = house;
Object.assign(state_manager.state, params);
if (state_manager.state.house_id) {
state_manager.updateHouseFromState(component);
} else {
component.syncFromStateManager(()=>{
state_manager.update_in_progress = false;
fnResolve();
});
}
});
var params = state_manager.parseUrl(location.pathname),
house = null;
if (params.dataset === 'power' && location.query.dates) {
params.power_range = [+location.query.dates[0], +location.query.dates[1]];
}
if (params.house_id || params.house_id != state_manager.state.house_id){
house = state_manager.houses.find((h)=>{ return h.data.id == params.house_id; });
}
state_manager.state.house = house;
Object.assign(state_manager.state, params);
if (state_manager.state.house_id) {
state_manager.updateHouseFromState(component);
} else {
component.syncFromStateManager(()=>{
state_manager.update_in_progress = false;
});
}
}
parseUrl(url, query){