2017-12-12 17:40:07 -07:00
|
|
|
'use strict'
|
2017-03-15 02:01:55 -06:00
|
|
|
|
2017-12-12 17:40:07 -07:00
|
|
|
const router = require('express').Router()
|
|
|
|
const mw = require('../middleware.js')
|
|
|
|
const env = require('../env/env.js')
|
|
|
|
const User = require('../models.js').user
|
2017-04-01 11:03:05 -06:00
|
|
|
|
|
|
|
// Redirect to real slug
|
2017-12-12 17:40:07 -07:00
|
|
|
router.get('/', mw.ensureAuth, (req, res) => {
|
2017-12-13 12:52:01 -07:00
|
|
|
if (req.query.new) res.redirect(`/map/${req.user.slug}?new=1`)
|
|
|
|
else res.redirect(`/map/${req.user.slug}`)
|
2017-12-12 17:40:07 -07:00
|
|
|
})
|
2016-05-31 21:54:21 -06:00
|
|
|
|
2017-06-27 11:36:46 -06:00
|
|
|
// Demo
|
2017-12-12 17:40:07 -07:00
|
|
|
router.get('/demo', (req, res, next) => {
|
|
|
|
res.render('map', {
|
|
|
|
active: 'demo',
|
|
|
|
mapuser: {
|
|
|
|
_id: 'demo',
|
|
|
|
name: 'Demo',
|
|
|
|
last: {
|
|
|
|
lat: 40.1165853,
|
|
|
|
lon: -87.5417312,
|
|
|
|
dir: 249.0,
|
|
|
|
spd: 19.015747
|
|
|
|
},
|
|
|
|
settings: {
|
2017-12-13 11:39:05 -07:00
|
|
|
marker: 'red',
|
2017-12-12 17:40:07 -07:00
|
|
|
showAlt: false,
|
|
|
|
showTemp: false,
|
|
|
|
showSpeed: false,
|
|
|
|
showScale: false,
|
|
|
|
showStreetview: true,
|
|
|
|
defaultZoom: 13,
|
|
|
|
defaultMap: 'road',
|
|
|
|
units: 'standard'
|
|
|
|
}
|
|
|
|
},
|
|
|
|
mapApi: env.googleMapsAPI,
|
|
|
|
user: req.user,
|
|
|
|
noFooter: '1',
|
|
|
|
noHeader: (req.query.noheader) ? req.query.noheader.match(/\d/)[0] : 0,
|
|
|
|
disp: (req.query.disp) ? req.query.disp.match(/\d/)[0] : 2, // 0=map, 1=streetview, 2=both
|
|
|
|
newuserurl: (req.query.new) ? env.url + '/map/' + req.params.slug : ''
|
|
|
|
})
|
|
|
|
})
|
2017-06-27 11:36:46 -06:00
|
|
|
|
2016-05-31 21:54:21 -06:00
|
|
|
// Show map
|
2018-01-20 20:45:25 -07:00
|
|
|
router.get('/:slug?', async (req, res, next) => {
|
|
|
|
try {
|
|
|
|
let map_user = await User.findOne({slug: req.params.slug})
|
|
|
|
if (!map_user) next() // 404
|
2017-12-13 12:52:01 -07:00
|
|
|
else {
|
2017-12-12 17:40:07 -07:00
|
|
|
var active = '' // For header nav
|
2018-01-20 20:45:25 -07:00
|
|
|
if (req.user && req.user.id === map_user.id) active = 'map'
|
2017-12-12 17:40:07 -07:00
|
|
|
res.render('map', {
|
|
|
|
active: active,
|
2018-01-20 20:45:25 -07:00
|
|
|
mapuser: map_user,
|
2017-12-12 17:40:07 -07:00
|
|
|
mapApi: env.googleMapsAPI,
|
|
|
|
user: req.user,
|
|
|
|
noFooter: '1',
|
|
|
|
noHeader: (req.query.noheader) ? req.query.noheader.match(/\d/)[0] : 0,
|
|
|
|
disp: (req.query.disp) ? req.query.disp.match(/\d/)[0] : 2, // 0=map, 1=streetview, 2=both
|
|
|
|
newuserurl: (req.query.new) ? env.url + '/map/' + req.params.slug : ''
|
|
|
|
})
|
|
|
|
}
|
2018-01-20 20:45:25 -07:00
|
|
|
} catch (err) { mw.throwErr(err, req) }
|
2017-12-12 17:40:07 -07:00
|
|
|
})
|
2016-05-31 21:54:21 -06:00
|
|
|
|
2017-12-12 17:40:07 -07:00
|
|
|
module.exports = router
|