Added industries collection

This commit is contained in:
vjrj 2018-02-26 12:11:23 +01:00
parent 1ad6bf17cb
commit ccbfe642a8
19 changed files with 277 additions and 58 deletions

View file

@ -21,6 +21,7 @@ import { dateLongFormat } from '/imports/api/Common/dates';
import '/imports/startup/client/comments';
import FalsePositiveTypes from '/imports/api/FalsePositives/FalsePositiveTypes';
import FalsePositivesCollection, { falsePositivesRemap } from '/imports/api/FalsePositives/FalsePositives';
import IndustriesCollection, { industriesRemap } from '/imports/api/Industries/Industries';
import ShareIt from '/imports/ui/components/ShareIt/ShareIt';
import './Fires.scss';
@ -76,6 +77,7 @@ class Fire extends React.Component {
notfound, loading, fire, t
} = this.props;
if (Meteor.isDevelopment) console.log(`False positives total: ${this.props.falsePositives.length}`);
if (Meteor.isDevelopment) console.log(`Industries total: ${this.props.industries.length}`);
/* console.log(`loading fire: ${loading}`);
* console.log(`Not found fire: ${notfound}`); */
if (fire && fire.when) {
@ -109,7 +111,7 @@ class Fire extends React.Component {
fillColor="red"
fillOpacity={0.0}
interactive={false}
radius={fire.scan ? fire.scan * 1000 : 300}
radius={fire.scan ? fire.scan * 500 : 300}
ref={(circle) => { this.circle = circle; this.handleLeafletLoad(circle); }}
/>
</Fragment>
@ -121,6 +123,17 @@ class Fire extends React.Component {
useMarkers
nasa={false}
falsePositives
industries={false}
/>
<FireList
t={t}
history={this.props.history}
fires={this.props.industries}
scale
useMarkers
nasa={false}
falsePositives={false}
industries
/>
<DefMapLayers satellite />
</Map>
@ -136,7 +149,7 @@ class Fire extends React.Component {
{(fire.type !== 'vecinal') &&
<Fragment>
{ this.props.falsePositives.length > 0 &&
{ (this.props.falsePositives.length > 0 || this.props.industries.length > 0) &&
<Row>
<Col>
<Alert bsStyle="success"><Trans>Parece que este fuego no es un fuego forestal.</Trans></Alert>
@ -196,6 +209,7 @@ Fire.propTypes = {
loading: PropTypes.bool.isRequired,
notfound: PropTypes.bool.isRequired,
falsePositives: PropTypes.arrayOf(PropTypes.object).isRequired,
industries: PropTypes.arrayOf(PropTypes.object).isRequired,
fromHash: PropTypes.bool.isRequired,
active: PropTypes.bool.isRequired,
alert: PropTypes.bool.isRequired,
@ -236,12 +250,14 @@ const FireContainer = withTracker(({ match }) => {
/* console.log(`loading fire: ${loading}`);
* console.log(`Not found fire: ${notfound}`); */
const falsePositives = FalsePositivesCollection.find().fetch().map(falsePositivesRemap);
const industries = IndustriesCollection.find().fetch().map(industriesRemap);
return {
loading,
active,
alert,
fromHash,
falsePositives,
industries,
fire: FiresCollection.findOne(),
notfound,
when: subscription.ready() && FiresCollection.findOne() ? FiresCollection.findOne().when : null

View file

@ -27,6 +27,7 @@ import DefMapLayers from '/imports/ui/components/Maps/DefMapLayers';
import FromNow from '/imports/ui/components/FromNow/FromNow';
import ActiveFiresCollection from '/imports/api/ActiveFires/ActiveFires';
import FireAlertsCollection from '/imports/api/FireAlerts/FireAlerts';
import IndustriesCollection, { industriesRemap } from '/imports/api/Industries/Industries';
import FalsePositivesCollection, { falsePositivesRemap } from '/imports/api/FalsePositives/FalsePositives';
import SiteSettings from '/imports/api/SiteSettings/SiteSettings';
import { isNotHomeAndMobile, isChrome } from '/imports/ui/components/Utils/isMobile';
@ -187,6 +188,8 @@ class FiresMap extends React.Component {
if (Meteor.isDevelopment) console.log(`False positives total: ${this.props.falsePositives.length}`);
if (Meteor.isDevelopment) console.log(`Industries total: ${this.props.industries.length}`);
return (
/* Large number of markers:
https://stackoverflow.com/questions/43015854/large-dataset-of-markers-or-dots-in-leaflet/43019740#43019740 */
@ -270,6 +273,17 @@ class FiresMap extends React.Component {
useMarkers={this.state.useMarkers}
nasa={false}
falsePositives
industries={false}
/>
<FireList
t={t}
history={this.props.history}
fires={this.props.industries}
scale={this.state.viewport.zoom >= MAXZOOM}
useMarkers={this.state.useMarkers}
nasa={false}
falsePositives={false}
industries
/>
<FireList
t={t}
@ -279,6 +293,7 @@ class FiresMap extends React.Component {
useMarkers={this.state.useMarkers}
nasa
falsePositives={false}
industries={false}
/>
<FireList
t={t}
@ -288,6 +303,7 @@ class FiresMap extends React.Component {
useMarkers={this.state.useMarkers}
nasa={false}
falsePositives={false}
industries={false}
/>
</Fragment> }
<DefMapLayers gray />
@ -318,6 +334,7 @@ FiresMap.propTypes = {
activefires: PropTypes.arrayOf(PropTypes.object).isRequired,
firealerts: PropTypes.arrayOf(PropTypes.object).isRequired,
falsePositives: PropTypes.arrayOf(PropTypes.object).isRequired,
industries: PropTypes.arrayOf(PropTypes.object).isRequired,
lastCheck: PropTypes.instanceOf(Date),
activefirestotal: PropTypes.number.isRequired,
center: PropTypes.arrayOf(PropTypes.number),
@ -331,6 +348,10 @@ FiresMap.propTypes = {
let geoInit = true;
export default translate([], { wait: true })(withTracker(() => {
// const firesType = match.params.type;
// const withIndustries = firesType === 'with-industries';
// console.log(`With industries: ${withIndustries}`);
let subscription;
let alertSubscription;
@ -339,6 +360,7 @@ export default translate([], { wait: true })(withTracker(() => {
const marksStored = store.get('firesmap_marks');
const showUnionStored = store.get('firesmap_showunion');
zoom.set(zoomStored || 8);
center.set(centerStored || [0, 0]);
if (typeof marksStored === 'boolean') {
marks.set(marksStored);
}
@ -346,7 +368,7 @@ export default translate([], { wait: true })(withTracker(() => {
showUnion.set(showUnionStored);
}
Meteor.autorun(() => {
if ((centerStored || geolocation.get()) && geoInit) {
if ((centerStored !== [0, 0] || geolocation.get()) && geoInit) {
center.set(centerStored || geolocation.get());
// console.log(`Geolocation ${geolocation.get()}`);
geoInit = false;
@ -367,16 +389,28 @@ export default translate([], { wait: true })(withTracker(() => {
mapSize.get()[1].lng,
mapSize.get()[1].lat
);
/* if (withIndustries) {
Meteor.subscribe(
'industriesMyloc',
mapSize.get()[0].lng,
mapSize.get()[0].lat,
mapSize.get()[1].lng,
mapSize.get()[1].lat
);
} */
}
});
Meteor.subscribe('activefirestotal');
const settingsSubs = Meteor.subscribe('settings');
const lastCheck = SiteSettings.findOne({ name: 'last-fire-check' });
const userSubs = SiteSettings.findOne({ name: 'subs-public-union' });
const userSubsBounds = SiteSettings.findOne({ name: 'subs-public-union-bounds' });
const fireAlerts = FireAlertsCollection.find().fetch();
const falsePositives = FalsePositivesCollection.find().fetch().map(falsePositivesRemap);
const industries = IndustriesCollection.find().fetch().map(industriesRemap);
return {
loading: !subscription ? true : !(subscription.ready() && settingsSubs.ready() && alertSubscription.ready()),
userSubs: userSubs ? userSubs.value : null,
@ -387,6 +421,7 @@ export default translate([], { wait: true })(withTracker(() => {
activefirestotal: Counter.get('countActiveFires') + fireAlerts.length,
firealerts: fireAlerts,
falsePositives,
industries,
lastCheck: lastCheck ? lastCheck.value : null,
center: center.get(),
marks: marks.get(),