diff --git a/src/containers/BGroup/BGroupBuildingTable.js b/src/containers/BGroup/BGroupBuildingTable.js index 115457370af351129e3b2c10baf55fda683d27d1..9b7b842f3aff0fe9b960019ce36fc3f40fbe56e0 100644 --- a/src/containers/BGroup/BGroupBuildingTable.js +++ b/src/containers/BGroup/BGroupBuildingTable.js @@ -748,8 +748,7 @@ export default class BGroupBuildingTable extends Component { return (
  • { i.state } - {' '} - { i.project_type } - {' '} - {i.name} + {' '} - {i.project_type}
  • ); })} diff --git a/src/containers/BGroup/BGroupProjectOverview.js b/src/containers/BGroup/BGroupProjectOverview.js index 5c853d8cfb3581b10ef028da899da6f3b68d9d62..a235ab8d0646870554346842ebc04deb76c40f34 100644 --- a/src/containers/BGroup/BGroupProjectOverview.js +++ b/src/containers/BGroup/BGroupProjectOverview.js @@ -44,7 +44,7 @@ export default class BGroupProjectOverview extends Component { Project Type - Count + Count (Number of Projects) @@ -75,7 +75,7 @@ export default class BGroupProjectOverview extends Component { Project Stage - Count + Count (Number of Projects) diff --git a/src/containers/Reports/components/Impact/Impact.js b/src/containers/Reports/components/Impact/Impact.js index d5b2b54ef61a010134991c93b77dedebc9ced813..d5a63f26fa8ea4941a84da8955dbba7776c9e608 100644 --- a/src/containers/Reports/components/Impact/Impact.js +++ b/src/containers/Reports/components/Impact/Impact.js @@ -2,7 +2,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import ReactTooltip from 'react-tooltip'; -import { Icon } from 'react-fa'; import { UncontrolledTooltip } from 'reactstrap'; import { impactReportPropTypes } from '../../propTypes'; @@ -14,6 +13,44 @@ export default class Impact extends Component { state = {} + renderChangeEl = (impactReports, val, index, uid, recommended = false) => { + let change = 0; + if (impactReports.length > 1) { + const previousReport = impactReports[1]; + if (recommended) { + change = val.rec_value - previousReport.report[index].rec_value; + } else { + change = val.value - previousReport.report[index].value; + } + } + let changeString = ''; + if (change > 0) { + changeString = ` +${change}`; + } + if (change < 0) { + changeString = ` ${change}`; + } + return ( + + {changeString} + + ); + } + + renderChangeTooltip = (dateCompareString, index, uid, recommended = false) => { + return ( + + {dateCompareString} + + ); + } + render() { if (this.props.loading) { return ; @@ -27,76 +64,79 @@ export default class Impact extends Component { The last reports were generated on ${impactReports[0].created} and ${impactReports.length > 1 ? impactReports[1].created : 'n/a'}. `; + const showRecommended = this.props.showRecommended; + const tableBody = impactReports[0].report.map((val, index) => { + if (val.col === 'Number of Buildings in Pipeline') { + const trStyling = {}; + if (this.props.totalBuildingsTooltip) { + return ( + + {val.col} + + + {val.value} + + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} + + + {this.props.totalBuildingsTooltip} + + + + ); + } + return ( + + {val.col} + + {val.value} + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} + + + + ); + } + return ( + + {val.col} + {showRecommended ? ( + + {val.rec_value.toFixed(1)} + {this.renderChangeEl(impactReports, val, index, this.props.uid, true)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid, true)} + + ) : null} + + {val.value.toFixed(1)} + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} + + + + ); + }); + // Add the recommended and completed columns + if (showRecommended) { + tableBody.splice(1, 0, ( + + Impact Category + Recommended Retrofits + Completed Retrofits + + )); + } return (
    - { - impactReports[0].report.map((val, index) => { - let change = 0; - if (impactReports.length > 1) { - const previousReport = impactReports[1]; - change = val.value - previousReport.report[index].value; - } - let changeString = ''; - if (change > 0) { - changeString = ` +${change}`; - } - if (change < 0) { - changeString = ` ${change}`; - } - const changeEl = ( - - {changeString} - - ); - let trStyling = {}; - if (val.col === 'Total Buildings') { - trStyling = { - backgroundColor: 'rgba(176, 167, 167, 0.41)', - }; - if (this.props.totalBuildingsTooltip) { - return ( - - - - - {this.props.totalBuildingsTooltip} - - - - ); - } - } - return ( - - - - - - ); - }) - } + {tableBody}
    {val.col} - {val.value} - {changeEl} - {' '} - - - - - {dateCompareString} - -
    {val.col} - {val.value} - {changeEl} - - {dateCompareString} - -
    @@ -105,10 +145,14 @@ export default class Impact extends Component { } } +Impact.defaultProps = { + showRecommended: true, +}; + Impact.propTypes = { impactReports: impactReportPropTypes, loading: PropTypes.bool, uid: PropTypes.number, totalBuildingsTooltip: PropTypes.string, - + showRecommended: PropTypes.bool, }; diff --git a/src/containers/Reports/components/Impact/ImpactWrapper.js b/src/containers/Reports/components/Impact/ImpactWrapper.js index 2ff2f9514eae5e2cbe029f1c6a22d60ab1215f40..fc1ba06267a3bdb4dce21860560b095cb05c3bb0 100644 --- a/src/containers/Reports/components/Impact/ImpactWrapper.js +++ b/src/containers/Reports/components/Impact/ImpactWrapper.js @@ -2,7 +2,6 @@ import React, { Component } from 'react'; import PropTypes from 'prop-types'; import { UncontrolledTooltip } from 'reactstrap'; -import { Icon } from 'react-fa'; import { impactReportPropTypes } from '../../propTypes'; import { BGroup } from '../../../../containers/BGroup'; @@ -53,6 +52,7 @@ export default class ImpactWrapper extends Component { impactReports={this.props.impactReports} loading={this.props.loading} uid={1} + showRecommended={false} /> ); } @@ -66,7 +66,7 @@ export default class ImpactWrapper extends Component {
    -

    Overall Report

    +

    Impact Report: All Projects

    - - - {' '} - Filter Report + + Impact Report: Filtered Filter buildings below to see a new report generated diff --git a/src/containers/Reports/index.js b/src/containers/Reports/index.js index b77c647de47380b0ce455f3ec445d9e6fcc46bcf..2be7449c958917b07e76052088fb32cdc003dfd6 100644 --- a/src/containers/Reports/index.js +++ b/src/containers/Reports/index.js @@ -35,7 +35,7 @@ class Reports extends Component { if (this.props.user.permissions['read::BpImpact']) { reportTab = 'BP Impact'; } else if (this.props.user.permissions['read::CbraImpact']) { - reportTab = 'MOS Impact'; + reportTab = 'CRNYC Impact'; } else if (this.props.user.permissions['read::KissflowLighting']) { reportTab = 'Lighting'; } @@ -82,7 +82,7 @@ class Reports extends Component { /> ); break; - case 'MOS Impact': + case 'CRNYC Impact': loading = ( this.props.report.cbraImpactReports === null || this.props.report.loadingCbraImpact @@ -124,7 +124,7 @@ class Reports extends Component { if ( (this.state.reportTab === 'Lighting' && !this.props.user.permissions['read::KissflowLighting']) || (this.state.reportTab === 'BP Impact' && !this.props.user.permissions['read::BpImpact']) || - (this.state.reportTab === 'MOS Impact' && !this.props.user.permissions['read::CbraImpact']) + (this.state.reportTab === 'CRNYC Impact' && !this.props.user.permissions['read::CbraImpact']) ) { content = 'You do not have the permission to view this report'; } @@ -146,10 +146,10 @@ class Reports extends Component { BP Impact this.setState({ reportTab: 'MOS Impact' })} + onClick={() => this.setState({ reportTab: 'CRNYC Impact' })} style={{ display: this.props.user.permissions['read::CbraImpact'] ? '' : 'none' }} > - MOS Impact + CRNYC Impact this.setState({ reportTab: 'Lighting' })} @@ -166,7 +166,7 @@ class Reports extends Component { ) : null }
    -
    +
    {content}