More UI Tweaks
Mainly to improve consistency and readability across all categories/pages Discussed in meeting with Polly 16/05
This commit is contained in:
parent
f43e5f60fe
commit
d14dea3d1a
@ -3,6 +3,8 @@
|
||||
position: relative;
|
||||
font-size: 1.1rem;
|
||||
font-weight: 410;
|
||||
padding-top: 3px;
|
||||
padding-bottom: 3px;
|
||||
}
|
||||
.data-entry-group-header .data-entry-group-title {
|
||||
padding-left: 0.6rem;
|
||||
|
@ -1,7 +1,7 @@
|
||||
.edit-bar {
|
||||
position: sticky;
|
||||
top: 53px; /* match section-header height */
|
||||
padding: 12px 0; /* match info-container-inner margin-top*/
|
||||
padding: 3px 0 0 0; /* match info-container-inner margin-top*/
|
||||
width: 100%;
|
||||
background-color: white;
|
||||
z-index: 1000;
|
||||
|
@ -413,7 +413,9 @@ const withCopyEdit: (wc: React.ComponentType<CategoryViewProps>) => DataContaine
|
||||
</button> :
|
||||
null
|
||||
}
|
||||
<hr/>
|
||||
</div>
|
||||
|
||||
}
|
||||
</div>
|
||||
: null
|
||||
|
@ -47,7 +47,7 @@ const AgeView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
){
|
||||
return (
|
||||
<Fragment>
|
||||
<DataEntryGroup name="Building Age" collapsed={false} >
|
||||
<DataEntryGroup name="Building Age">
|
||||
<YearDataEntry
|
||||
year={props.building.date_year}
|
||||
upper={props.building.date_upper}
|
||||
@ -140,7 +140,7 @@ const AgeView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
<button className={`map-switcher-inline ${historicData}-state btn btn-outline btn-outline-dark ${darkLightTheme}`} onClick={historicDataSwitchOnClick}>
|
||||
{(historicData === 'enabled')?'Click here to hide historical maps':'Click here to show historical maps'}
|
||||
</button>
|
||||
<DataEntryGroup collapsed={false} name="Constructions and demolitions on this site" showCount={false}>
|
||||
<DataEntryGroup name="Constructions and demolitions on this site" showCount={false}>
|
||||
<DynamicsBuildingPane>
|
||||
<label>Current building (age data <Link to={ageLinkUrl}>editable here</Link>)</label>
|
||||
<FieldRow>
|
||||
@ -261,7 +261,7 @@ const AgeView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
};
|
||||
return (
|
||||
<Fragment>
|
||||
<DataEntryGroup name="Building Age" collapsed={true} >
|
||||
<DataEntryGroup name="Building Age">
|
||||
<YearDataEntry
|
||||
year={props.building.date_year}
|
||||
upper={props.building.date_upper}
|
||||
@ -411,11 +411,11 @@ const AgeView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
mode='view'
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Lifespan and Site History" collapsed={true} >
|
||||
<DataEntryGroup name="Lifespan and Site History">
|
||||
<button className={`map-switcher-inline ${historicData} btn btn-outline btn-outline-dark ${darkLightTheme}`} onClick={historicDataSwitchOnClick}>
|
||||
{(historicData === 'enabled')?'Click here to hide historical maps':'Click here to show historical maps'}
|
||||
</button>
|
||||
<DataEntryGroup collapsed={false} name="Constructions and demolitions on this site" showCount={false}>
|
||||
<DataEntryGroup name="Constructions and demolitions on this site" showCount={false}>
|
||||
<DynamicsBuildingPane>
|
||||
<label>Current building (age data <Link to={ageLinkUrl}>editable here</Link>)</label>
|
||||
<FieldRow>
|
||||
|
@ -40,7 +40,7 @@ const CommunityView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
const { darkLightTheme } = useDisplayPreferences();
|
||||
const worthKeepingReasonsNonEmpty = Object.values(props.building.community_type_worth_keeping_reasons ?? {}).some(x => x);
|
||||
return <>
|
||||
<DataEntryGroup name="Community views on building types" collapsed={false} >
|
||||
<DataEntryGroup name="Community views on building types">
|
||||
<InfoBox>
|
||||
Note: We are not currently collecting data on domestic/privately owned properties, only on public buildings.
|
||||
</InfoBox>
|
||||
@ -151,7 +151,7 @@ const CommunityView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
|
||||
</div>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Building use for community activities" collapsed={false} >
|
||||
<DataEntryGroup name="Building use for community activities">
|
||||
<InfoBox>
|
||||
Here we are collecting information on the location of buildings used for community activities so we can track loss of/additions to community space over time
|
||||
</InfoBox>
|
||||
|
@ -38,7 +38,7 @@ const RoofCoveringOptions = [
|
||||
const ConstructionView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
return (
|
||||
<Fragment>
|
||||
<DataEntryGroup name="Materials" collapsed={false}>
|
||||
<DataEntryGroup name="Materials">
|
||||
<SelectDataEntry
|
||||
title={dataFields.construction_core_material.title}
|
||||
slug="construction_core_material"
|
||||
@ -87,7 +87,7 @@ const ConstructionView: React.FunctionComponent<CategoryViewProps> = (props) =>
|
||||
verified_count={props.building.verified.construction_roof_covering}
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Construction Sectors" collapsed={false}>
|
||||
<DataEntryGroup name="Construction Sectors">
|
||||
<DataEntry
|
||||
title="Construction system type"
|
||||
slug=""
|
||||
|
@ -16,33 +16,50 @@ const locationNumberPattern = "[1-9]\\d*[a-z]?(-([1-9]\\d*))?"; ///[1-9]\d*[a-z]
|
||||
|
||||
const LocationView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
<Fragment>
|
||||
<DataEntry
|
||||
title={dataFields.location_name.title}
|
||||
slug="location_name"
|
||||
value={props.building.location_name}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.location_name.tooltip}
|
||||
placeholder="https://..."
|
||||
isUrl={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="location_name"
|
||||
allow_verify={props.user !== undefined && props.building.location_name !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("location_name")}
|
||||
user_verified_as={props.user_verified.location_name}
|
||||
verified_count={props.building.verified.location_name}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Building Name (Domestic)"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntryGroup name="Address" collapsed={false}>
|
||||
|
||||
<DataEntryGroup name="Address Data">
|
||||
<DataEntry
|
||||
title={dataFields.location_name.title}
|
||||
slug="location_name"
|
||||
value={props.building.location_name}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.location_name.tooltip}
|
||||
placeholder="https://..."
|
||||
isUrl={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="location_name"
|
||||
allow_verify={props.user !== undefined && props.building.location_name !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("location_name")}
|
||||
user_verified_as={props.user_verified.location_name}
|
||||
verified_count={props.building.verified.location_name}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Building Name (Domestic)"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Not yet activated.<br><br>For security reasons, we do not allow the use of free text boxes and are currently looking into alternative ways to collect this data."
|
||||
/>
|
||||
<Verification
|
||||
slug="location_name"
|
||||
allow_verify={props.user !== undefined && props.building.location_name !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("location_name")}
|
||||
user_verified_as={props.user_verified.location_name}
|
||||
verified_count={props.building.verified.location_name}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Building Name Source"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<hr/>
|
||||
<PatternDataEntry
|
||||
title={dataFields.location_number.title}
|
||||
slug="location_number"
|
||||
@ -138,7 +155,7 @@ const LocationView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Other Location Data" collapsed={false}>
|
||||
<DataEntryGroup name="Property/Footprint IDs and Coordinate Data">
|
||||
<DataEntry
|
||||
title={dataFields.ref_toid.title}
|
||||
slug="ref_toid"
|
||||
@ -147,6 +164,7 @@ const LocationView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
copy={props.copy}
|
||||
tooltip={dataFields.ref_toid.tooltip}
|
||||
onChange={props.onChange}
|
||||
disabled={true}
|
||||
/>
|
||||
<UPRNsDataEntry
|
||||
title={dataFields.uprns.title}
|
||||
|
@ -66,7 +66,7 @@ const PlanningView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
return (
|
||||
<Fragment>
|
||||
<DataEntryGroup name="Planning application information" collapsed={true} >
|
||||
<DataEntryGroup name="Current/active applications (official data)" collapsed={false} >
|
||||
<DataEntryGroup name="Current/active applications (official data)">
|
||||
<InfoBox>
|
||||
This section provides data on active applications. We define these as applications with any activity in the last year.
|
||||
<br />
|
||||
|
@ -16,35 +16,7 @@ import InfoBox from '../../components/info-box';
|
||||
*/
|
||||
const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
<Fragment>
|
||||
<DataEntryGroup name="Plot Size">
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_plot_area_total.title}
|
||||
slug="size_plot_area_total"
|
||||
mode='view'
|
||||
step={0.1}
|
||||
min={0}
|
||||
/>
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_far_ratio.title}
|
||||
slug="size_far_ratio"
|
||||
mode='view'
|
||||
step={0.1}
|
||||
min={0}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Plot dimensions"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Plot geometry link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Floors">
|
||||
<DataEntryGroup name="Number of floors/storeys">
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_storeys_core.title}
|
||||
slug="size_storeys_core"
|
||||
@ -64,7 +36,6 @@ const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
user_verified_as={props.user_verified.size_storeys_core}
|
||||
verified_count={props.building.verified.size_storeys_core}
|
||||
/>
|
||||
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_storeys_attic.title}
|
||||
slug="size_storeys_attic"
|
||||
@ -84,7 +55,6 @@ const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
user_verified_as={props.user_verified.size_storeys_attic}
|
||||
verified_count={props.building.verified.size_storeys_attic}
|
||||
/>
|
||||
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_storeys_basement.title}
|
||||
slug="size_storeys_basement"
|
||||
@ -104,9 +74,22 @@ const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
user_verified_as={props.user_verified.size_storeys_basement}
|
||||
verified_count={props.building.verified.size_storeys_basement}
|
||||
/>
|
||||
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Height" collapsed={false}>
|
||||
<DataEntryGroup name="Building height data">
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_height_apex.title}
|
||||
slug="size_height_apex"
|
||||
@ -125,7 +108,21 @@ const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
user_verified_as={props.user_verified.size_height_apex}
|
||||
verified_count={props.building.verified.size_height_apex}
|
||||
/>
|
||||
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<hr/>
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_height_eaves.title}
|
||||
slug="size_height_eaves"
|
||||
@ -137,8 +134,22 @@ const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
step={0.1}
|
||||
min={0}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Floor area">
|
||||
<DataEntryGroup name="Floor area data">
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_floor_area_ground.title}
|
||||
slug="size_floor_area_ground"
|
||||
@ -157,7 +168,6 @@ const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
user_verified_as={props.user_verified.size_floor_area_ground}
|
||||
verified_count={props.building.verified.size_floor_area_ground}
|
||||
/>
|
||||
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_floor_area_total.title}
|
||||
slug="size_floor_area_total"
|
||||
@ -176,33 +186,135 @@ const SizeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
user_verified_as={props.user_verified.size_floor_area_total}
|
||||
verified_count={props.building.verified.size_floor_area_total}
|
||||
/>
|
||||
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_width_frontage.title}
|
||||
slug="size_width_frontage"
|
||||
value={props.building.size_width_frontage}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
step={0.1}
|
||||
min={0}
|
||||
<DataEntryGroup name="Plot size data">
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_plot_area_total.title}
|
||||
slug="size_plot_area_total"
|
||||
mode='view'
|
||||
step={0.1}
|
||||
min={0}
|
||||
/>
|
||||
<Verification
|
||||
slug="size_width_frontage"
|
||||
allow_verify={props.user !== undefined && props.building.size_width_frontage !== null}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("size_width_frontage")}
|
||||
user_verified_as={props.user_verified.size_width_frontage}
|
||||
verified_count={props.building.verified.size_width_frontage}
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
|
||||
<DataEntry
|
||||
title="Total opening area"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<hr/>
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_far_ratio.title}
|
||||
slug="size_far_ratio"
|
||||
mode='view'
|
||||
step={0.1}
|
||||
min={0}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<hr/>
|
||||
<DataEntry
|
||||
title="Plot dimensions"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<hr/>
|
||||
<DataEntry
|
||||
title="Land parcel geometry link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip='INSPIRE Polygons'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<hr/>
|
||||
<NumericDataEntry
|
||||
title={dataFields.size_width_frontage.title}
|
||||
slug="size_width_frontage"
|
||||
value={props.building.size_width_frontage}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
step={0.1}
|
||||
min={0}
|
||||
/>
|
||||
<Verification
|
||||
slug="size_width_frontage"
|
||||
allow_verify={props.user !== undefined && props.building.size_width_frontage !== null}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("size_width_frontage")}
|
||||
user_verified_as={props.user_verified.size_width_frontage}
|
||||
verified_count={props.building.verified.size_width_frontage}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
</Fragment>
|
||||
);
|
||||
const SizeContainer = withCopyEdit(SizeView);
|
||||
|
@ -7,54 +7,61 @@ import NumericDataEntry from '../data-components/numeric-data-entry';
|
||||
import withCopyEdit from '../data-container';
|
||||
|
||||
import { CategoryViewProps } from './category-view-props';
|
||||
import { DataEntryGroup } from '../data-components/data-entry-group';
|
||||
|
||||
/**
|
||||
* Streetscape view/edit section
|
||||
*/
|
||||
const StreetscapeView: React.FunctionComponent<CategoryViewProps> = (props) => (
|
||||
<Fragment>
|
||||
<DataEntry
|
||||
title="Does the building have a front garden?"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Does the building have a back garden?"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Street width"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Pavement width"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Street network geometry link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Distance from Public Green Space"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Distance from front door to nearest tree"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntryGroup name="Does the building have a garden(s)?">
|
||||
<DataEntry
|
||||
title="Does the building have a front garden?"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Does the building have a back garden?"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Street/pavement properties">
|
||||
<DataEntry
|
||||
title="Street width"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Pavement width"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Street network geometry link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Access to green space">
|
||||
<DataEntry
|
||||
title="Distance from public green space"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Distance from front door to nearest tree"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
</Fragment>
|
||||
);
|
||||
const StreetscapeContainer = withCopyEdit(StreetscapeView);
|
||||
|
@ -9,6 +9,7 @@ import withCopyEdit from '../data-container';
|
||||
import InfoBox from '../../components/info-box';
|
||||
|
||||
import { CategoryViewProps } from './category-view-props';
|
||||
import { DataEntryGroup } from '../data-components/data-entry-group';
|
||||
|
||||
const EnergyCategoryOptions = ["A", "B", "C", "D", "E", "F", "G"];
|
||||
const BreeamRatingOptions = [
|
||||
@ -25,102 +26,107 @@ const BreeamRatingOptions = [
|
||||
const SustainabilityView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
return (
|
||||
<Fragment>
|
||||
<SelectDataEntry
|
||||
title={dataFields.sust_breeam_rating.title}
|
||||
slug="sust_breeam_rating"
|
||||
value={props.building.sust_breeam_rating}
|
||||
tooltip={dataFields.sust_breeam_rating.tooltip}
|
||||
options={BreeamRatingOptions}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<Verification
|
||||
slug="sust_breeam_rating"
|
||||
allow_verify={props.user !== undefined && props.building.sust_breeam_rating !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("sust_breeam_rating")}
|
||||
user_verified_as={props.user_verified.sust_breeam_rating}
|
||||
verified_count={props.building.verified.sust_breeam_rating}
|
||||
<DataEntryGroup name="Energy rating data">
|
||||
<SelectDataEntry
|
||||
title={dataFields.sust_breeam_rating.title}
|
||||
slug="sust_breeam_rating"
|
||||
value={props.building.sust_breeam_rating}
|
||||
tooltip={dataFields.sust_breeam_rating.tooltip}
|
||||
options={BreeamRatingOptions}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<Verification
|
||||
slug="sust_breeam_rating"
|
||||
allow_verify={props.user !== undefined && props.building.sust_breeam_rating !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("sust_breeam_rating")}
|
||||
user_verified_as={props.user_verified.sust_breeam_rating}
|
||||
verified_count={props.building.verified.sust_breeam_rating}
|
||||
/>
|
||||
|
||||
<SelectDataEntry
|
||||
title={dataFields.sust_dec.title}
|
||||
slug="sust_dec"
|
||||
value={props.building.sust_dec}
|
||||
tooltip={dataFields.sust_dec.tooltip}
|
||||
options={EnergyCategoryOptions}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<Verification
|
||||
slug="sust_dec"
|
||||
allow_verify={props.user !== undefined && props.building.sust_dec !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("sust_dec")}
|
||||
user_verified_as={props.user_verified.sust_dec}
|
||||
verified_count={props.building.verified.sust_dec}
|
||||
<SelectDataEntry
|
||||
title={dataFields.sust_dec.title}
|
||||
slug="sust_dec"
|
||||
value={props.building.sust_dec}
|
||||
tooltip={dataFields.sust_dec.tooltip}
|
||||
options={EnergyCategoryOptions}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<Verification
|
||||
slug="sust_dec"
|
||||
allow_verify={props.user !== undefined && props.building.sust_dec !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("sust_dec")}
|
||||
user_verified_as={props.user_verified.sust_dec}
|
||||
verified_count={props.building.verified.sust_dec}
|
||||
/>
|
||||
|
||||
<SelectDataEntry
|
||||
title={dataFields.sust_aggregate_estimate_epc.title}
|
||||
slug="sust_aggregate_estimate_epc"
|
||||
value={props.building.sust_aggregate_estimate_epc}
|
||||
tooltip={dataFields.sust_aggregate_estimate_epc.tooltip}
|
||||
options={EnergyCategoryOptions}
|
||||
disabled={true}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
|
||||
<NumericDataEntry
|
||||
title={dataFields.sust_retrofit_date.title}
|
||||
slug="sust_retrofit_date"
|
||||
value={props.building.sust_retrofit_date}
|
||||
tooltip={dataFields.sust_retrofit_date.tooltip}
|
||||
step={1}
|
||||
min={1086}
|
||||
max={new Date().getFullYear()}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<Verification
|
||||
slug="sust_retrofit_date"
|
||||
allow_verify={props.user !== undefined && props.building.sust_retrofit_date !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("sust_retrofit_date")}
|
||||
user_verified_as={props.user_verified.sust_retrofit_date}
|
||||
verified_count={props.building.verified.sust_retrofit_date}
|
||||
<SelectDataEntry
|
||||
title={dataFields.sust_aggregate_estimate_epc.title}
|
||||
slug="sust_aggregate_estimate_epc"
|
||||
value={props.building.sust_aggregate_estimate_epc}
|
||||
tooltip={dataFields.sust_aggregate_estimate_epc.tooltip}
|
||||
options={EnergyCategoryOptions}
|
||||
disabled={true}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Date of Significant Retrofits"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<Verification
|
||||
slug="date_link"
|
||||
allow_verify={props.user !== undefined && props.building.date_link !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("date_link")}
|
||||
user_verified_as={props.user_verified.date_link}
|
||||
verified_count={props.building.verified.date_link}
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Retrofit Data">
|
||||
<NumericDataEntry
|
||||
title={dataFields.sust_retrofit_date.title}
|
||||
slug="sust_retrofit_date"
|
||||
value={props.building.sust_retrofit_date}
|
||||
tooltip={dataFields.sust_retrofit_date.tooltip}
|
||||
step={1}
|
||||
min={1086}
|
||||
max={new Date().getFullYear()}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Green Walls / Green Roof"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<Verification
|
||||
slug="sust_retrofit_date"
|
||||
allow_verify={props.user !== undefined && props.building.sust_retrofit_date !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("sust_retrofit_date")}
|
||||
user_verified_as={props.user_verified.sust_retrofit_date}
|
||||
verified_count={props.building.verified.sust_retrofit_date}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Date of Significant Retrofits"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<Verification
|
||||
slug="date_link"
|
||||
allow_verify={props.user !== undefined && props.building.date_link !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("date_link")}
|
||||
user_verified_as={props.user_verified.date_link}
|
||||
verified_count={props.building.verified.date_link}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Other sustainability features">
|
||||
<DataEntry
|
||||
title="Green Walls / Green Roof"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
</Fragment>
|
||||
);
|
||||
};
|
||||
|
@ -21,257 +21,267 @@ const TeamView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
const currentBuildingConstructionYear = building.date_year || undefined;
|
||||
return (
|
||||
<form>
|
||||
<NumericDataEntry
|
||||
slug='date_year'
|
||||
title={dataFields.date_year.title}
|
||||
value={currentBuildingConstructionYear}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
step={1}
|
||||
min={1}
|
||||
max={currentYear}
|
||||
tooltip={dataFields.extension_year.tooltip}
|
||||
/>
|
||||
<Verification
|
||||
slug="date_year"
|
||||
allow_verify={props.user !== undefined && props.building.date_year !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("date_year")}
|
||||
user_verified_as={props.user_verified.date_year}
|
||||
verified_count={props.building.verified.date_year}
|
||||
/>
|
||||
<LogicalDataEntry
|
||||
title={dataFields.has_extension.title}
|
||||
slug="has_extension"
|
||||
value={props.building.has_extension}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.has_extension.tooltip}
|
||||
/>
|
||||
{props.building.has_extension ? (
|
||||
<>
|
||||
<DataEntryGroup name="Dates of construction/extension">
|
||||
<NumericDataEntry
|
||||
slug='extension_year'
|
||||
title={dataFields.extension_year.title}
|
||||
value={props.building.extension_year}
|
||||
slug='date_year'
|
||||
title={dataFields.date_year.title}
|
||||
value={currentBuildingConstructionYear}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
step={1}
|
||||
min={1}
|
||||
max={currentYear}
|
||||
tooltip={dataFields.extension_year.tooltip_extension}
|
||||
tooltip={dataFields.extension_year.tooltip}
|
||||
/>
|
||||
<Verification
|
||||
slug="date_year"
|
||||
allow_verify={props.user !== undefined && props.building.date_year !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("date_year")}
|
||||
user_verified_as={props.user_verified.date_year}
|
||||
verified_count={props.building.verified.date_year}
|
||||
/>
|
||||
<LogicalDataEntry
|
||||
title={dataFields.has_extension.title}
|
||||
slug="has_extension"
|
||||
value={props.building.has_extension}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.has_extension.tooltip}
|
||||
/>
|
||||
{props.building.has_extension ? (
|
||||
<>
|
||||
<NumericDataEntry
|
||||
slug='extension_year'
|
||||
title={dataFields.extension_year.title}
|
||||
value={props.building.extension_year}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
step={1}
|
||||
min={1}
|
||||
max={currentYear}
|
||||
tooltip={dataFields.extension_year.tooltip_extension}
|
||||
/>
|
||||
<Verification
|
||||
slug="extension_year"
|
||||
allow_verify={props.user !== undefined && props.building.extension_year !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("extension_year")}
|
||||
user_verified_as={props.user_verified.extension_year}
|
||||
verified_count={props.building.verified.extension_year}
|
||||
/>
|
||||
</>
|
||||
) : (null)}
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Land ownership data">
|
||||
<MultiDataEntry
|
||||
title={dataFields.landowner.title}
|
||||
slug="landowner"
|
||||
value={props.building.landowner}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.landowner.tooltip}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="landowner"
|
||||
allow_verify={props.user !== undefined && props.building.landowner !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("landowner")}
|
||||
user_verified_as={props.user_verified.landowner}
|
||||
verified_count={props.building.verified.landowner}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.landowner_source_link.title}
|
||||
slug="landowner_source_link"
|
||||
value={props.building.landowner_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.landowner_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Developer data">
|
||||
<SelectDataEntry
|
||||
slug='developer_type'
|
||||
title={dataFields.developer_type.title}
|
||||
value={props.building.developer_type}
|
||||
options={dataFields.developer_type.items}
|
||||
onChange={props.onChange}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
/>
|
||||
<Verification
|
||||
slug="extension_year"
|
||||
allow_verify={props.user !== undefined && props.building.extension_year !== null && !props.edited}
|
||||
slug="developer_type"
|
||||
allow_verify={props.user !== undefined && props.building.developer_type !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("extension_year")}
|
||||
user_verified_as={props.user_verified.extension_year}
|
||||
verified_count={props.building.verified.extension_year}
|
||||
user_verified={props.user_verified.hasOwnProperty("developer_type")}
|
||||
user_verified_as={props.user_verified.developer_type}
|
||||
verified_count={props.building.verified.developer_type}
|
||||
/>
|
||||
</>
|
||||
) : (null)}
|
||||
<MultiDataEntry
|
||||
title={dataFields.landowner.title}
|
||||
slug="landowner"
|
||||
value={props.building.landowner}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.landowner.tooltip}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="landowner"
|
||||
allow_verify={props.user !== undefined && props.building.landowner !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("landowner")}
|
||||
user_verified_as={props.user_verified.landowner}
|
||||
verified_count={props.building.verified.landowner}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.landowner_source_link.title}
|
||||
slug="landowner_source_link"
|
||||
value={props.building.landowner_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.landowner_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
<SelectDataEntry
|
||||
slug='developer_type'
|
||||
title={dataFields.developer_type.title}
|
||||
value={props.building.developer_type}
|
||||
options={dataFields.developer_type.items}
|
||||
onChange={props.onChange}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
/>
|
||||
<Verification
|
||||
slug="developer_type"
|
||||
allow_verify={props.user !== undefined && props.building.developer_type !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("developer_type")}
|
||||
user_verified_as={props.user_verified.developer_type}
|
||||
verified_count={props.building.verified.developer_type}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.developer_name.title}
|
||||
slug="developer_name"
|
||||
value={props.building.developer_name}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.developer_name.tooltip}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="developer_name"
|
||||
allow_verify={props.user !== undefined && props.building.developer_name !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("developer_name")}
|
||||
user_verified_as={props.user_verified.developer_name}
|
||||
verified_count={props.building.verified.developer_name}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.developer_source_link.title}
|
||||
slug="developer_source_link"
|
||||
value={props.building.developer_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.developer_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.designers.title}
|
||||
slug="designers"
|
||||
value={props.building.designers}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.designers.tooltip}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="designers"
|
||||
allow_verify={props.user !== undefined && props.building.designers !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("designers")}
|
||||
user_verified_as={props.user_verified.designers}
|
||||
verified_count={props.building.verified.designers}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.designers_source_link.title}
|
||||
slug="designers_source_link"
|
||||
value={props.building.designers_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.designers_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
<SelectDataEntry
|
||||
slug='lead_designer_type'
|
||||
title={dataFields.lead_designer_type.title}
|
||||
value={props.building.lead_designer_type}
|
||||
options={dataFields.lead_designer_type.items}
|
||||
onChange={props.onChange}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
/>
|
||||
<Verification
|
||||
slug="lead_designer_type"
|
||||
allow_verify={props.user !== undefined && props.building.lead_designer_type !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("lead_designer_type")}
|
||||
user_verified_as={props.user_verified.lead_designer_type}
|
||||
verified_count={props.building.verified.lead_designer_type}
|
||||
/>
|
||||
<LogicalDataEntryYesOnly
|
||||
slug='designer_awards'
|
||||
title={dataFields.designer_awards.title}
|
||||
tooltip={dataFields.designer_awards.tooltip}
|
||||
value={props.building.designer_awards}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
mode={props.mode}
|
||||
/>
|
||||
<Verification
|
||||
slug="designer_awards"
|
||||
allow_verify={props.user !== undefined && props.building.designer_awards !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("designer_awards")}
|
||||
user_verified_as={props.user_verified.designer_awards}
|
||||
verified_count={props.building.verified.designer_awards}
|
||||
/>
|
||||
{props.building.designer_awards ? (
|
||||
<>
|
||||
<MultiDataEntry
|
||||
title={dataFields.awards_source_link.title}
|
||||
slug="awards_source_link"
|
||||
value={props.building.awards_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.awards_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="awards_source_link"
|
||||
allow_verify={props.user !== undefined && props.building.awards_source_link !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("awards_source_link")}
|
||||
user_verified_as={props.user_verified.awards_source_link}
|
||||
verified_count={props.building.verified.awards_source_link}
|
||||
/>
|
||||
</>
|
||||
) : (null)
|
||||
}
|
||||
<MultiDataEntry
|
||||
title={dataFields.builder.title}
|
||||
slug="builder"
|
||||
value={props.building.builder}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="builder"
|
||||
allow_verify={props.user !== undefined && props.building.builder !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("builder")}
|
||||
user_verified_as={props.user_verified.builder}
|
||||
verified_count={props.building.verified.builder}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.builder_source_link.title}
|
||||
slug="builder_source_link"
|
||||
value={props.building.builder_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.developer_name.title}
|
||||
slug="developer_name"
|
||||
value={props.building.developer_name}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.developer_name.tooltip}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="developer_name"
|
||||
allow_verify={props.user !== undefined && props.building.developer_name !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("developer_name")}
|
||||
user_verified_as={props.user_verified.developer_name}
|
||||
verified_count={props.building.verified.developer_name}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.developer_source_link.title}
|
||||
slug="developer_source_link"
|
||||
value={props.building.developer_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.developer_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Designer data">
|
||||
<MultiDataEntry
|
||||
title={dataFields.designers.title}
|
||||
slug="designers"
|
||||
value={props.building.designers}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.designers.tooltip}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="designers"
|
||||
allow_verify={props.user !== undefined && props.building.designers !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("designers")}
|
||||
user_verified_as={props.user_verified.designers}
|
||||
verified_count={props.building.verified.designers}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.designers_source_link.title}
|
||||
slug="designers_source_link"
|
||||
value={props.building.designers_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.designers_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
<SelectDataEntry
|
||||
slug='lead_designer_type'
|
||||
title={dataFields.lead_designer_type.title}
|
||||
value={props.building.lead_designer_type}
|
||||
options={dataFields.lead_designer_type.items}
|
||||
onChange={props.onChange}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
/>
|
||||
<Verification
|
||||
slug="lead_designer_type"
|
||||
allow_verify={props.user !== undefined && props.building.lead_designer_type !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("lead_designer_type")}
|
||||
user_verified_as={props.user_verified.lead_designer_type}
|
||||
verified_count={props.building.verified.lead_designer_type}
|
||||
/>
|
||||
<LogicalDataEntryYesOnly
|
||||
slug='designer_awards'
|
||||
title={dataFields.designer_awards.title}
|
||||
tooltip={dataFields.designer_awards.tooltip}
|
||||
value={props.building.designer_awards}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
mode={props.mode}
|
||||
/>
|
||||
<Verification
|
||||
slug="designer_awards"
|
||||
allow_verify={props.user !== undefined && props.building.designer_awards !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("designer_awards")}
|
||||
user_verified_as={props.user_verified.designer_awards}
|
||||
verified_count={props.building.verified.designer_awards}
|
||||
/>
|
||||
{props.building.designer_awards ? (
|
||||
<>
|
||||
<MultiDataEntry
|
||||
title={dataFields.awards_source_link.title}
|
||||
slug="awards_source_link"
|
||||
value={props.building.awards_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
tooltip={dataFields.awards_source_link.tooltip}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="awards_source_link"
|
||||
allow_verify={props.user !== undefined && props.building.awards_source_link !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("awards_source_link")}
|
||||
user_verified_as={props.user_verified.awards_source_link}
|
||||
verified_count={props.building.verified.awards_source_link}
|
||||
/>
|
||||
</>
|
||||
) : (null)
|
||||
}
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Builder data">
|
||||
<MultiDataEntry
|
||||
title={dataFields.builder.title}
|
||||
slug="builder"
|
||||
value={props.building.builder}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
placeholder=""
|
||||
editableEntries={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="builder"
|
||||
allow_verify={props.user !== undefined && props.building.builder !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("builder")}
|
||||
user_verified_as={props.user_verified.builder}
|
||||
verified_count={props.building.verified.builder}
|
||||
/>
|
||||
<MultiDataEntry
|
||||
title={dataFields.builder_source_link.title}
|
||||
slug="builder_source_link"
|
||||
value={props.building.builder_source_link}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
placeholder="https://..."
|
||||
editableEntries={true}
|
||||
isUrl={true}
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
</form>
|
||||
);
|
||||
};
|
||||
|
@ -9,6 +9,7 @@ import withCopyEdit from '../data-container';
|
||||
|
||||
import { CategoryViewProps } from './category-view-props';
|
||||
import InfoBox from '../../components/info-box';
|
||||
import { DataEntryGroup } from '../data-components/data-entry-group';
|
||||
|
||||
const AttachmentFormOptions = [
|
||||
"Detached",
|
||||
@ -23,98 +24,131 @@ const AttachmentFormOptions = [
|
||||
const TypeView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
return (
|
||||
<Fragment>
|
||||
<SelectDataEntry
|
||||
title={dataFields.building_attachment_form.title}
|
||||
slug="building_attachment_form"
|
||||
value={props.building.building_attachment_form}
|
||||
tooltip={dataFields.building_attachment_form.tooltip}
|
||||
options={AttachmentFormOptions}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<Verification
|
||||
slug="building_attachment_form"
|
||||
allow_verify={props.user !== undefined && props.building.building_attachment_form !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("building_attachment_form")}
|
||||
user_verified_as={props.user_verified.building_attachment_form}
|
||||
verified_count={props.building.verified.building_attachment_form}
|
||||
<DataEntryGroup name="Adjacency and Building Use Data">
|
||||
<SelectDataEntry
|
||||
title={dataFields.building_attachment_form.title}
|
||||
slug="building_attachment_form"
|
||||
value={props.building.building_attachment_form}
|
||||
tooltip={dataFields.building_attachment_form.tooltip}
|
||||
options={AttachmentFormOptions}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/>
|
||||
<DataEntry
|
||||
title={dataFields.original_building_use.title}
|
||||
slug="original_building_use" // doesn't exist in database yet
|
||||
tooltip={dataFields.original_building_use.tooltip}
|
||||
value={undefined}
|
||||
copy={props.copy}
|
||||
mode={props.mode}
|
||||
onChange={props.onChange}
|
||||
disabled={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="building_attachment_form"
|
||||
allow_verify={props.user !== undefined && props.building.building_attachment_form !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("building_attachment_form")}
|
||||
user_verified_as={props.user_verified.building_attachment_form}
|
||||
verified_count={props.building.verified.building_attachment_form}
|
||||
<Verification
|
||||
slug="building_attachment_form"
|
||||
allow_verify={props.user !== undefined && props.building.building_attachment_form !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("building_attachment_form")}
|
||||
user_verified_as={props.user_verified.building_attachment_form}
|
||||
verified_count={props.building.verified.building_attachment_form}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Local typology/architectural style"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Base type classification"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<SelectDataEntry
|
||||
title={dataFields.size_roof_shape.title}
|
||||
slug="size_roof_shape"
|
||||
value={props.building.size_roof_shape}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
disabled={true}
|
||||
options={[
|
||||
"Flat",
|
||||
"Pitched",
|
||||
"Other"
|
||||
]}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Local typology mutations"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="3D procedural model classifications"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Dynamic tissue type classification"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
{/* <NumericDataEntry
|
||||
title={dataFields.date_change_building_use.title}
|
||||
slug="date_change_building_use"
|
||||
value={props.building.date_change_building_use}
|
||||
tooltip={dataFields.date_change_building_use.tooltip}
|
||||
min={1086}
|
||||
max={new Date().getFullYear()}
|
||||
step={1}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/> */}
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<hr/>
|
||||
<DataEntry
|
||||
title={dataFields.original_building_use.title}
|
||||
slug="original_building_use" // doesn't exist in database yet
|
||||
tooltip={dataFields.original_building_use.tooltip}
|
||||
value={undefined}
|
||||
copy={props.copy}
|
||||
mode={props.mode}
|
||||
onChange={props.onChange}
|
||||
disabled={true}
|
||||
/>
|
||||
<Verification
|
||||
slug="building_attachment_form"
|
||||
allow_verify={props.user !== undefined && props.building.building_attachment_form !== null && !props.edited}
|
||||
onVerify={props.onVerify}
|
||||
user_verified={props.user_verified.hasOwnProperty("building_attachment_form")}
|
||||
user_verified_as={props.user_verified.building_attachment_form}
|
||||
verified_count={props.building.verified.building_attachment_form}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source type"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
<DataEntry
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Building Typology and Classification Data">
|
||||
<DataEntry
|
||||
title="Local typology/architectural style"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Base type classification"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<SelectDataEntry
|
||||
title={dataFields.size_roof_shape.title}
|
||||
slug="size_roof_shape"
|
||||
value={props.building.size_roof_shape}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
disabled={true}
|
||||
options={[
|
||||
"Flat",
|
||||
"Pitched",
|
||||
"Other"
|
||||
]}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Local typology mutations"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="3D procedural model classifications"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
<DataEntry
|
||||
title="Dynamic tissue type classification"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
/>
|
||||
{/* <NumericDataEntry
|
||||
title={dataFields.date_change_building_use.title}
|
||||
slug="date_change_building_use"
|
||||
value={props.building.date_change_building_use}
|
||||
tooltip={dataFields.date_change_building_use.tooltip}
|
||||
min={1086}
|
||||
max={new Date().getFullYear()}
|
||||
step={1}
|
||||
mode={props.mode}
|
||||
copy={props.copy}
|
||||
onChange={props.onChange}
|
||||
/> */}
|
||||
</DataEntryGroup>
|
||||
</Fragment>
|
||||
);
|
||||
};
|
||||
|
@ -25,10 +25,14 @@ const UseView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
const { darkLightTheme } = useDisplayPreferences();
|
||||
return (
|
||||
<Fragment>
|
||||
<DataEntryGroup name="Domestic or non-domestic use" collapsed={false}>
|
||||
<InfoBox msg="93% of properties in UK are dwellings so we have set 'residential' as the default value. Can you help us identify non-residential and mixed use buildings (and verify residential buildings too)?"></InfoBox>
|
||||
<DataEntryGroup name="Domestic/non-domestic use data">
|
||||
<div className={`alert alert-dark`} role="alert" style={{ fontSize: 13, backgroundColor: "#f6f8f9" }}>
|
||||
<i>
|
||||
93% of properties in UK are residential dwellings so we have set 'residential' as the default value. Can you help us identify non-residential and mixed use buildings (and verify residential buildings too)?
|
||||
</i>
|
||||
</div>
|
||||
<button className={`map-switcher-inline ${props.mapColourScale == "is_domestic" ? "enabled-state" : "disabled-state"} btn btn-outline btn-outline-dark ${darkLightTheme}`} onClick={switchToIsDomesticMapStyle}>
|
||||
{(props.mapColourScale == "is_domestic")? 'Showing domestic status for specific buildings' : 'Click to see domestic, non-domestic and mixed-use buildings'}
|
||||
{(props.mapColourScale == "is_domestic")? 'Showing domestic, non-domestic and mixed-use buildings (click to hide)' : 'Click to see domestic, non-domestic and mixed-use buildings on the map.'}
|
||||
</button>
|
||||
<SelectDataEntry
|
||||
title={dataFields.is_domestic.title}
|
||||
@ -48,17 +52,18 @@ const UseView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
user_verified_as={props.user_verified.is_domestic}
|
||||
verified_count={props.building.verified.is_domestic}
|
||||
/>
|
||||
<InfoBox type='warning'>Note: Work from home does not count as office and does not make building non-domestic.</InfoBox>
|
||||
<SelectDataEntry
|
||||
title={dataFields.is_domestic_source.title}
|
||||
slug="is_domestic_source"
|
||||
value={props.building.is_domestic}
|
||||
options={
|
||||
[
|
||||
"Citizen/passerby",
|
||||
"Expert knowledge",
|
||||
"Observed from the street",
|
||||
"Google or other photograph/satellite imagery",
|
||||
"Government Record",
|
||||
"Other Record"
|
||||
"Government/public record/database",
|
||||
"Independently managed record/database",
|
||||
"Other type of record/database"
|
||||
]
|
||||
}
|
||||
mode={props.mode}
|
||||
@ -67,14 +72,14 @@ const UseView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
tooltip={dataFields.is_domestic_source.tooltip}
|
||||
/>
|
||||
<DataEntry
|
||||
title="Please provide a link to the data source"
|
||||
title="Source link"
|
||||
slug=""
|
||||
value=""
|
||||
mode='view'
|
||||
tooltip="Coming Soon"
|
||||
/>
|
||||
</DataEntryGroup>
|
||||
<DataEntryGroup name="Specific Land Use" collapsed={false}>
|
||||
<DataEntryGroup name="Specific land use data">
|
||||
<MultiDataEntry
|
||||
title={dataFields.current_landuse_group.title}
|
||||
slug="current_landuse_group"
|
||||
@ -127,7 +132,14 @@ const UseView: React.FunctionComponent<CategoryViewProps> = (props) => {
|
||||
}
|
||||
{
|
||||
props.mode != 'view' &&
|
||||
<InfoBox msg="A more general classification for the land use of this building is automatically derived and shown below."></InfoBox>
|
||||
<div>
|
||||
<hr/>
|
||||
<div className={`alert alert-dark`} role="alert" style={{ fontSize: 13, backgroundColor: "#f6f8f9" }}>
|
||||
<i>
|
||||
Below is a more general classification for the land use of this building, automatically derived from the information above.
|
||||
</i>
|
||||
</div>
|
||||
</div>
|
||||
}
|
||||
<DataEntry
|
||||
title={dataFields.current_landuse_order.title}
|
||||
|
@ -80,7 +80,7 @@ export const categoriesConfig: {[key in Category]: CategoryDefinition} = {
|
||||
slug: 'community',
|
||||
name: 'Community',
|
||||
aboutUrl: 'https://pages.colouring.london/community',
|
||||
intro: 'This section collects data on how well citizens think specific *types* of building work (rather than individual buildings). This will help us save and reuse as many useful buildings as possible, and to help improve urban design quality in future.',
|
||||
intro: 'This section collects data on how well citizens think specific *types* of building work. This will help us save/reuse as many useful buildings as possible, and help improve urban design quality in future.',
|
||||
},
|
||||
[Category.Planning]: {
|
||||
slug: 'planning',
|
||||
@ -98,7 +98,7 @@ export const categoriesConfig: {[key in Category]: CategoryDefinition} = {
|
||||
slug: 'type',
|
||||
name: 'Typology',
|
||||
aboutUrl: 'https://pages.colouring.london/buildingtypology',
|
||||
intro: 'This section provides open data on the type of activities being carried out within buildings.',
|
||||
intro: 'Note: This section is currently under development, we are working to activate it as soon as possible. This section provides open data on the typology of the building.',
|
||||
},
|
||||
[Category.LandUse]: {
|
||||
slug: 'use',
|
||||
|
@ -177,7 +177,7 @@ export const dataFields = { /* eslint-disable @typescript-eslint/camelcase */
|
||||
uprns: {
|
||||
category: Category.Location,
|
||||
title: "Unique Property Reference Number(s) (UPRN)",
|
||||
tooltip: "Unique Property Reference Numbers (to be filled automatically)",
|
||||
tooltip: "Unique Property Reference Numbers (to be filled automatically) [<a href='https://beta.ordnancesurvey.co.uk/products/os-open-uprn'>LINK</a>]",
|
||||
example: [{uprn: "", parent_uprn: "" }, {uprn: "", parent_uprn: "" }],
|
||||
},
|
||||
|
||||
@ -211,13 +211,13 @@ export const dataFields = { /* eslint-disable @typescript-eslint/camelcase */
|
||||
},
|
||||
current_landuse_group: {
|
||||
category: Category.LandUse,
|
||||
title: "Current Land Use",
|
||||
title: "Current land use(s)",
|
||||
tooltip: "Land use Groups as classified by [NLUD](https://www.gov.uk/government/statistics/national-land-use-database-land-use-and-land-cover-classification)",
|
||||
example: ["", ""],
|
||||
},
|
||||
current_landuse_order: {
|
||||
category: Category.LandUse,
|
||||
title: "Current Land Use (Order)",
|
||||
title: "Current land use (order)",
|
||||
tooltip: "Land use Order as classified by [NLUD](https://www.gov.uk/government/statistics/national-land-use-database-land-use-and-land-cover-classification)",
|
||||
example: "",
|
||||
},
|
||||
@ -272,7 +272,7 @@ export const dataFields = { /* eslint-disable @typescript-eslint/camelcase */
|
||||
original_building_use: {
|
||||
category: Category.Type,
|
||||
title: "Original building use",
|
||||
tooltip: "What was the building originally used for when it was built? I.e. If it was Victorian warehouse which is now an office this would be warehouse",
|
||||
tooltip: "What was the building <u><i>originally</i></u> used for when it was built?",
|
||||
example: "",
|
||||
},
|
||||
size_roof_shape: {
|
||||
@ -290,7 +290,7 @@ export const dataFields = { /* eslint-disable @typescript-eslint/camelcase */
|
||||
date_lower : {
|
||||
category: Category.Age,
|
||||
title: "Earliest possible start year",
|
||||
tooltip: "This should be the earliest year in which building could have started.",
|
||||
tooltip: "This should be the earliest year in which construction could have started.",
|
||||
example: 1900,
|
||||
},
|
||||
date_upper: {
|
||||
@ -362,13 +362,13 @@ export const dataFields = { /* eslint-disable @typescript-eslint/camelcase */
|
||||
category: Category.Size,
|
||||
title: "Height to apex (m)",
|
||||
example: 100.5,
|
||||
//tooltip: ,
|
||||
tooltip: "i.e. the highest part of the roof.",
|
||||
},
|
||||
size_height_eaves: {
|
||||
category: Category.Size,
|
||||
title: "Height to eaves (m)",
|
||||
example: 20.33,
|
||||
//tooltip: ,
|
||||
tooltip: "i.e. to where the top of the wall meets the roof",
|
||||
},
|
||||
size_floor_area_ground: {
|
||||
category: Category.Size,
|
||||
@ -601,12 +601,12 @@ export const dataFields = { /* eslint-disable @typescript-eslint/camelcase */
|
||||
is_domestic: {
|
||||
category: Category.Team,
|
||||
title: "Is the building a home/domestic building?",
|
||||
tooltip: "",
|
||||
tooltip: "Note: Homes used as offices for working from home should be classified as domestic.",
|
||||
example: "mixed domestic/non-domestic"
|
||||
},
|
||||
is_domestic_source: {
|
||||
category: Category.Team,
|
||||
title: "Domestic/non-domestic data source?",
|
||||
title: "Source type",
|
||||
tooltip: "",
|
||||
example: ""
|
||||
},
|
||||
|
@ -50,9 +50,9 @@ article .color-block {
|
||||
hr {
|
||||
display: block;
|
||||
height: 1px;
|
||||
border: 0;
|
||||
background: #000;
|
||||
border: none;
|
||||
background-color: #ccc;
|
||||
width: 100%;
|
||||
margin: 2em 0;
|
||||
margin: 1.2em 0 1em 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user