Get rid of momentjs for the silly calculations we do.
This commit is contained in:
@ -3,29 +3,52 @@ window.handlePopState = (event) ->
|
||||
if event.state
|
||||
return gotoDate event.state.dateFrom, event.state.dateTo, false
|
||||
|
||||
window.goPrevious = ->
|
||||
window.gotoDate window.datePrevFrom, window.datePrevTo
|
||||
|
||||
window.goNext = ->
|
||||
window.gotoDate window.dateNextFrom, window.dateNextTo
|
||||
|
||||
window.updateDateNav = (_dateFrom, _dateTo) ->
|
||||
console.log 'updateDateNav: %o, %o', _dateFrom, _dateTo
|
||||
|
||||
_dateFrom ?= window.dateFrom
|
||||
_dateTo ?= window.dateTo
|
||||
|
||||
diff = _dateTo.diff _dateFrom, 'days'
|
||||
# if(dateTo.isSame(dateFrom)){ diff = diff+1; }
|
||||
|
||||
window.datePrevTo = moment(_dateFrom).subtract 1, 'days'
|
||||
window.datePrevFrom = moment(datePrevTo).subtract diff, 'days'
|
||||
|
||||
window.dateNextFrom = moment(_dateTo).add 1, 'days'
|
||||
window.dateNextTo = moment(dateNextFrom).add diff, 'days'
|
||||
|
||||
# disable Next button
|
||||
if dateNextFrom.isAfter moment()
|
||||
# Prepare for calculations
|
||||
objFrom = new Date _dateFrom
|
||||
objTo = new Date _dateTo
|
||||
|
||||
span = objTo.getTime() - objFrom.getTime() # milliseconds
|
||||
|
||||
console.log 'Current range: %o - %o (%o)', _dateFrom, _dateTo, span
|
||||
|
||||
objPrevTo = new Date objFrom.getTime()
|
||||
objPrevTo.setDate objPrevTo.getDate() - 1 # get day before current "dateFrom"
|
||||
objPrevFrom = new Date objPrevTo.getTime() - span # calculate span
|
||||
|
||||
window.datePrevFrom = objPrevFrom.toISOString()[...10]
|
||||
window.datePrevTo = objPrevTo.toISOString()[...10]
|
||||
|
||||
console.log 'PREV button will go to: %o - %o', window.datePrevFrom, window.datePrevTo
|
||||
|
||||
objNextFrom = new Date objTo.getTime()
|
||||
objNextFrom.setDate objNextFrom.getDate() + 1 # get day after current "dateTo"
|
||||
objNextTo = new Date objNextFrom.getTime() + span # calculate span
|
||||
|
||||
window.dateNextFrom = objNextFrom.toISOString()[...10]
|
||||
window.dateNextTo = objNextTo.toISOString()[...10]
|
||||
|
||||
console.log 'NEXT button will go to: %o - %o', window.dateNextFrom, window.dateNextTo
|
||||
|
||||
# disable Next button if we'd end up in the future
|
||||
if objNextFrom > new Date()
|
||||
$('#nextButton').addClass 'disabled'
|
||||
else
|
||||
$('#nextButton').removeClass 'disabled'
|
||||
|
||||
# disable today button
|
||||
if _dateFrom.isSame moment(), 'day'
|
||||
# disable today button if dateFrom isn't today
|
||||
if _dateFrom is new Date().toISOString()[...10]
|
||||
$('#todayButton').addClass 'disabled'
|
||||
$('#livemap_on').removeClass 'disabled'
|
||||
else
|
||||
@ -35,21 +58,22 @@ window.updateDateNav = (_dateFrom, _dateTo) ->
|
||||
window.gotoDate = (_dateFrom, _dateTo, pushState) ->
|
||||
console.log 'gotoDate: %o, %o, %o', _dateFrom, _dateTo, pushState
|
||||
|
||||
_dateFrom = if _dateFrom? then moment(_dateFrom) else moment()
|
||||
_dateTo = if _dateTo? then moment(_dateTo) else moment()
|
||||
today = new Date().toISOString()[...10]
|
||||
_dateFrom = _dateFrom ? today
|
||||
_dateTo = _dateTo ? today
|
||||
pushState = pushState ? true
|
||||
|
||||
window.dateFrom = _dateFrom
|
||||
window.dateTo = _dateTo
|
||||
|
||||
$('#dateFrom').val moment(window.dateFrom).format('YYYY-MM-DD')
|
||||
$('#dateTo').val moment(window.dateTo).format('YYYY-MM-DD')
|
||||
$('#dateFrom').val window.dateFrom
|
||||
$('#dateTo').val window.dateTo
|
||||
|
||||
# push selected dates in window.history stack
|
||||
if pushState
|
||||
data =
|
||||
dateFrom: moment(window.dateFrom).format 'YYYY-MM-DD'
|
||||
dateTo: moment(window.dateTo).format 'YYYY-MM-DD'
|
||||
dateFrom: window.dateFrom
|
||||
dateTo: window.dateTo
|
||||
url = "#{window.location.pathname}?dateFrom=#{data.dateFrom}&dateTo=#{data.dateTo}"
|
||||
console.log 'Pushing state: %o with data: %o', url, data
|
||||
window.history.pushState data, '', url
|
||||
@ -67,7 +91,6 @@ window.gotoAccuracy = ->
|
||||
Cookies.set 'accuracy', _accuracy
|
||||
console.log 'Accuracy cookie = %o', Cookies.get 'accuracy'
|
||||
|
||||
# location.href='./?dateFrom='+moment(dateFrom).format('YYYY-MM-DD') + '&dateTo=' + moment(dateTo).format('YYYY-MM-DD') + '&accuracy=' + _accuracy + '&trackerID=' + trackerID;
|
||||
window.accuracy = _accuracy
|
||||
window.mymap.getMarkers()
|
||||
else
|
||||
@ -94,10 +117,11 @@ window.initUI = ->
|
||||
|
||||
_GET = new URLSearchParams window.location.search
|
||||
|
||||
window.dateFrom = if _GET.has 'dateFrom' then moment _GET.get 'dateFrom' else moment()
|
||||
window.dateTo = if _GET.has 'dateTo' then moment _GET.get 'dateTo' else moment()
|
||||
$('#dateFrom').val window.dateFrom.format 'YYYY-MM-DD'
|
||||
$('#dateTo').val window.dateTo.format 'YYYY-MM-DD'
|
||||
today = new Date().toISOString()[...10]
|
||||
window.dateFrom = if _GET.has 'dateFrom' then _GET.get 'dateFrom' else today
|
||||
window.dateTo = if _GET.has 'dateTo' then _GET.get 'dateTo' else today
|
||||
$('#dateFrom').val window.dateFrom
|
||||
$('#dateTo').val window.dateTo
|
||||
|
||||
# date params event handlers
|
||||
updateDateNav()
|
||||
|
@ -90,8 +90,8 @@ class window.OwnMap
|
||||
console.log 'getMarkers'
|
||||
params =
|
||||
'action': 'getMarkers'
|
||||
'dateFrom': window.dateFrom.format 'YYYY-MM-DD'
|
||||
'dateTo': window.dateTo.format 'YYYY-MM-DD'
|
||||
'dateFrom': window.dateFrom
|
||||
'dateTo': window.dateTo
|
||||
'accuracy': window.accuracy
|
||||
#'trackerID' : trackerID
|
||||
#'epoc': time()
|
||||
|
@ -22,8 +22,7 @@
|
||||
"js-cookie": "^2.2.0",
|
||||
"leaflet": "^1.3.1",
|
||||
"leaflet-hotline": "https://github.com/iosphere/Leaflet.hotline.git#v0.4.0",
|
||||
"leaflet-awesome-markers": "^2.0.2",
|
||||
"moment": "^2.22.1"
|
||||
"leaflet-awesome-markers": "^2.0.2"
|
||||
},
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
|
@ -19,7 +19,7 @@
|
||||
<div class="container">
|
||||
<div class="row page-header">
|
||||
<div class="col-1 text-left">
|
||||
<a href="#" onclick="gotoDate(datePrevFrom, datePrevTo);" class="btn btn-primary" role="button">
|
||||
<a href="#" onclick="goPrevious();" class="btn btn-primary" role="button">
|
||||
<span class="d-none d-sm-block">Previous</span>
|
||||
<span class="d-block d-sm-none"><span class="fas fa-arrow-left"></span></span>
|
||||
</a>
|
||||
@ -45,7 +45,7 @@
|
||||
<span class="d-none d-sm-block">Today</span>
|
||||
<span class="d-block d-sm-none"><span class="fas fa-arrow-up"></span></span>
|
||||
</a>
|
||||
<a href="#" onclick="gotoDate(dateNextFrom, dateNextTo);" class="btn btn-primary" style="display: inline-block;" id="nextButton">
|
||||
<a href="#" onclick="goNext();" class="btn btn-primary" style="display: inline-block;" id="nextButton">
|
||||
<span class="d-none d-sm-block">Next</span>
|
||||
<span class="d-block d-sm-none"><span class="fas fa-arrow-right"></span></span>
|
||||
</a>
|
||||
|
@ -1,9 +1,6 @@
|
||||
<!-- JQUERY !-->
|
||||
<script type="text/javascript" src="bower_components/jQuery/dist/jquery.min.js"></script>
|
||||
|
||||
<!-- MOMENTS.JS !-->
|
||||
<script type="text/javascript" src="bower_components/moment/min/moment-with-locales.min.js"></script>
|
||||
|
||||
<!-- BOOTSTRAP !-->
|
||||
<script type="text/javascript" src="bower_components/bootstrap/dist/js/bootstrap.min.js" ></script>
|
||||
<link rel="stylesheet" href="bower_components/bootstrap/dist/css/bootstrap.min.css"/>
|
||||
|
Reference in New Issue
Block a user