From 1399cdb50f24cf80f0673f54a06b88296f7cb11f Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 21 Mar 2018 11:18:22 -0400 Subject: [PATCH 1/3] Add recommended retrofits section to report --- .../Reports/components/Impact/Impact.js | 113 +++++++++++++----- 1 file changed, 80 insertions(+), 33 deletions(-) diff --git a/src/containers/Reports/components/Impact/Impact.js b/src/containers/Reports/components/Impact/Impact.js index d5b2b54e..7a9d91ad 100644 --- a/src/containers/Reports/components/Impact/Impact.js +++ b/src/containers/Reports/components/Impact/Impact.js @@ -14,6 +14,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,52 +65,41 @@ 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; return (
+ {showRecommended ? ( + + + + + ) : null} { 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 = { + const trStyling = { backgroundColor: 'rgba(176, 167, 167, 0.41)', }; if (this.props.totalBuildingsTooltip) { return ( - {this.props.totalBuildingsTooltip} @@ -81,16 +108,32 @@ export default class Impact extends Component { ); } + return ( + + + + + + ); } return ( - + + {showRecommended ? ( + + ) : null} @@ -105,10 +148,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, }; -- GitLab From 2fb07fe6b09dadf7440fa4b12b1432f2d6f49dd8 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 21 Mar 2018 13:35:50 -0400 Subject: [PATCH 2/3] Feedback on Report view for MOS --- src/containers/BGroup/BGroupBuildingTable.js | 3 +- .../BGroup/BGroupProjectOverview.js | 4 +- .../Reports/components/Impact/Impact.js | 139 +++++++++--------- .../components/Impact/ImpactWrapper.js | 10 +- src/containers/Reports/index.js | 10 +- 5 files changed, 80 insertions(+), 86 deletions(-) diff --git a/src/containers/BGroup/BGroupBuildingTable.js b/src/containers/BGroup/BGroupBuildingTable.js index 11545737..9b7b842f 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 5c853d8c..a235ab8d 100644 --- a/src/containers/BGroup/BGroupProjectOverview.js +++ b/src/containers/BGroup/BGroupProjectOverview.js @@ -44,7 +44,7 @@ export default class BGroupProjectOverview extends Component {
    - + @@ -75,7 +75,7 @@ export default class BGroupProjectOverview extends Component { - + diff --git a/src/containers/Reports/components/Impact/Impact.js b/src/containers/Reports/components/Impact/Impact.js index 7a9d91ad..c7dec072 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'; @@ -34,7 +33,7 @@ export default class Impact extends Component { return ( {changeString} @@ -66,80 +65,78 @@ export default class Impact extends Component { ${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 ( + + + + + {this.props.totalBuildingsTooltip} + + + + ); + } + return ( + + + + + + ); + } + return ( + + + {showRecommended ? ( + + ) : null} + + + + ); + }); + // Add the recommended and completed columns + if (showRecommended) { + tableBody.splice(1, 0, ( + + + + + + )); + } return (
    + RecommendedCompleted
    {val.col} + {val.value} - {changeEl} + {this.renderChangeEl(impactReports, val, index, this.props.uid)} {' '} - - {dateCompareString} - + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)}
    {val.col} + {val.value} + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} +
    {val.col} + {val.rec_value} + {this.renderChangeEl(impactReports, val, index, this.props.uid, true)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid, true)} + {val.value} - {changeEl} - - {dateCompareString} - + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)}
    Project TypeCountCount (Number of Projects)
    Project StageCountCount (Number of Projects)
    {val.col} + + {val.value} + + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} +
    {val.col} + {val.value} + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} +
    {val.col} + {val.rec_value.toFixed(1)} + {this.renderChangeEl(impactReports, val, index, this.props.uid, true)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid, true)} + + {val.value.toFixed(1)} + {this.renderChangeEl(impactReports, val, index, this.props.uid)} + {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} +
    Impact CategoryRecommendedCompleted
    - {showRecommended ? ( - - - - - ) : null} - { - impactReports[0].report.map((val, index) => { - if (val.col === 'Total Buildings') { - const trStyling = { - backgroundColor: 'rgba(176, 167, 167, 0.41)', - }; - if (this.props.totalBuildingsTooltip) { - return ( - - - - - {this.props.totalBuildingsTooltip} - - - - ); - } - return ( - - - - - - ); - } - return ( - - - {showRecommended ? ( - - ) : null} - - - - ); - }) - } + {tableBody}
    - RecommendedCompleted
    {val.col} - {val.value} - {this.renderChangeEl(impactReports, val, index, this.props.uid)} - {' '} - - - - {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} -
    {val.col} - {val.value} - {this.renderChangeEl(impactReports, val, index, this.props.uid)} - {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} -
    {val.col} - {val.rec_value} - {this.renderChangeEl(impactReports, val, index, this.props.uid, true)} - {this.renderChangeTooltip(dateCompareString, index, this.props.uid, true)} - - {val.value} - {this.renderChangeEl(impactReports, val, index, this.props.uid)} - {this.renderChangeTooltip(dateCompareString, index, this.props.uid)} -
    diff --git a/src/containers/Reports/components/Impact/ImpactWrapper.js b/src/containers/Reports/components/Impact/ImpactWrapper.js index 2ff2f951..fc1ba062 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 b77c647d..da138d18 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' })} -- GitLab From 01963f234fd1926fc5429142aa109de79891d632 Mon Sep 17 00:00:00 2001 From: Conrad Date: Wed, 21 Mar 2018 15:32:42 -0400 Subject: [PATCH 3/3] Update name of column --- src/containers/Reports/components/Impact/Impact.js | 4 ++-- src/containers/Reports/index.js | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/containers/Reports/components/Impact/Impact.js b/src/containers/Reports/components/Impact/Impact.js index c7dec072..d5a63f26 100644 --- a/src/containers/Reports/components/Impact/Impact.js +++ b/src/containers/Reports/components/Impact/Impact.js @@ -126,8 +126,8 @@ export default class Impact extends Component { tableBody.splice(1, 0, ( Impact Category - Recommended - Completed + Recommended Retrofits + Completed Retrofits )); } diff --git a/src/containers/Reports/index.js b/src/containers/Reports/index.js index da138d18..2be7449c 100644 --- a/src/containers/Reports/index.js +++ b/src/containers/Reports/index.js @@ -166,7 +166,7 @@ class Reports extends Component { ) : null }
    -
    +
    {content}
    -- GitLab