diff --git a/web/libs/js/dash2.elements.js b/web/libs/js/dash2.elements.js index 123f8133..a6e03001 100644 --- a/web/libs/js/dash2.elements.js +++ b/web/libs/js/dash2.elements.js @@ -10,6 +10,25 @@ $(document).ready(function(e){ } }) + var createMonitorsList = function(selectElement,selectedMonitor){ + var selectedOption + var loadedMonitors = $.ccio.mon + selectElement.find('.monitor').remove() + $.each(loadedMonitors,function(n,monitor){ + selectElement.append(``) + }) + var optionElements = selectElement.find('.monitor') + optionElements.prop('selected',false) + if(selectedMonitor !== ''){ + selectedOption = selectElement.find(`.monitor[value="${selectedMonitor}"]`) + }else{ + selectedOption = optionElements.first() + } + selectedOption.prop('selected',true) + var monitorId = selectedOption.attr('value') + return monitorId + } + //Group Selector $.gR={e:$('#group_list'),b:$('#group_list_button')}; $.gR.drawList=function(){ @@ -412,16 +431,8 @@ $(document).ready(function(e){ } break; case'timelapseJpeg': - $.timelapseJpeg.e.modal('show') - $.timelapseJpeg.monitors.find('.monitor').remove() - $.each($.ccio.mon,function(n,v){ - $.timelapseJpeg.monitors.append('') - }) - e.e=$.timelapseJpeg.monitors.find('.monitor').prop('selected',false) - if(e.mid!==''){ - e.e=$.timelapseJpeg.monitors.find('.monitor[value="'+e.mid+'"]') - } - e.e.first().prop('selected',true) + var monitorId = createMonitorsList($.timelapseJpeg.monitorsList) + $.timelapseJpeg.openWindow(monitorId) break; case'region': if(!e.mon){ diff --git a/web/libs/js/dash2.timelapse.jpeg.js b/web/libs/js/dash2.timelapse.jpeg.js index 55b69ff6..3e8d6363 100644 --- a/web/libs/js/dash2.timelapse.jpeg.js +++ b/web/libs/js/dash2.timelapse.jpeg.js @@ -1,22 +1,46 @@ $(document).ready(function(e){ //Timelapse JPEG Window - $.timelapseJpeg = {e:$('#timelapsejpeg')} - $.timelapseJpeg.datepicker = $('#timelapsejpeg_date') - $.timelapseJpeg.timelapseJpegFps = $('#timelapseJpegFps') - $.timelapseJpeg.framesContainer = $.timelapseJpeg.e.find('.frames') - $.timelapseJpeg.frameStrip = $.timelapseJpeg.e.find('.frameStrip') - $.timelapseJpeg.frameIcons = $.timelapseJpeg.e.find('.frameIcons') - $.timelapseJpeg.fieldHolder = $.timelapseJpeg.e.find('.fieldHolder') - $.timelapseJpeg.frameStripPreview = $.timelapseJpeg.e.find('.frameStripPreview') - $.timelapseJpeg.frameStripContainer = $.timelapseJpeg.e.find('.frameStripContainer') - $.timelapseJpeg.playBackViewImg = $.timelapseJpeg.e.find('.playBackView img') - $.timelapseJpeg.liveStreamView = $.timelapseJpeg.e.find('.liveStreamView') - $.timelapseJpeg.monitors=$.timelapseJpeg.e.find('.monitors_list') - $.timelapseJpeg.pointer = $.ccio.init('location',$user) - $.timelapseJpeg.downloadRecheckTimers = {} - $.timelapseJpeg.selectedStartDate = moment().utc().subtract(2, 'days').format('YYYY-MM-DDTHH:mm:ss') - $.timelapseJpeg.selectedEndDate = moment().utc().format('YYYY-MM-DDTHH:mm:ss') - $.timelapseJpeg.datepicker.daterangepicker({ + var timelapseWindow = $('#timelapsejpeg') + var dateSelector = $('#timelapsejpeg_date') + var fpsSelector = $('#timelapseJpegFps') + var framesContainer = timelapseWindow.find('.frames') + var frameStrip = timelapseWindow.find('.frameStrip') + var frameIcons = timelapseWindow.find('.frameIcons') + var fieldHolder = timelapseWindow.find('.fieldHolder') + var frameStripPreview = timelapseWindow.find('.frameStripPreview') + var frameStripContainer = timelapseWindow.find('.frameStripContainer') + var playBackViewImage = timelapseWindow.find('.playBackView img') + var liveStreamView = timelapseWindow.find('.liveStreamView') + var monitorsList = timelapseWindow.find('.monitors_list') + var apiBaseUrl = $.ccio.init('location',$user) + $user.auth_token + var downloadRecheckTimers = {} + var currentPlaylist = {} + var frameSelected = null + var playIntervalTimer = null + var playInterval = 1000 / 30 + var fieldHolderCssHeightModifier = 0 + + var openTimelapseWindow = function(monitorId,startDate,endDate){ + timelapseWindow.modal('show') + drawTimelapseWindowElements(monitorId,startDate,endDate) + } + var getSelectedTime = function(asUtc){ + var dateRange = dateSelector.data('daterangepicker') + var startDate = dateRange.startDate + var endDate = dateRange.endDate + if(asUtc){ + startDate = startDate.utc() + endDate = endDate.utc() + } + startDate = startDate.format('YYYY-MM-DDTHH:mm:ss') + endDate = endDate.format('YYYY-MM-DDTHH:mm:ss') + return { + startDate: startDate, + endDate: endDate + } + } + + dateSelector.daterangepicker({ startDate: moment().utc().subtract(2, 'days'), endDate: moment().utc(), timePicker: true, @@ -24,118 +48,113 @@ $(document).ready(function(e){ format: 'YYYY/MM/DD hh:mm:ss A' } }, function(start, end, label) { - console.log(start,end) - var selectedStartDate = moment(start).utc().format('YYYY-MM-DDTHH:mm:ss') - var selectedEndDate = moment(end).utc().format('YYYY-MM-DDTHH:mm:ss') - $.timelapseJpeg.draw(selectedStartDate,selectedEndDate) - $.timelapseJpeg.selectedStartDate = selectedStartDate - $.timelapseJpeg.selectedEndDate = selectedEndDate + drawTimelapseWindowElements() }) - $.timelapseJpeg.monitors.change(function(){ - $.timelapseJpeg.draw() - $.timelapseJpeg.getLiveStream() + monitorsList.change(function(){ + drawTimelapseWindowElements() + getLiveStream() }) - $.timelapseJpeg.getLiveStream = function(){ - var selectedMonitor = $.timelapseJpeg.monitors.val() - $.timelapseJpeg.liveStreamView.html(``) - $.timelapseJpeg.liveStreamView.find('iframe').width($.timelapseJpeg.playBackViewImg.width()) + var getLiveStream = function(){ + var selectedMonitor = monitorsList.val() + liveStreamView.html(``) + liveStreamView.find('iframe').width(playBackViewImage.width()) } - $.timelapseJpeg.draw = function(startDate,endDate){ - if(!startDate)startDate = $.timelapseJpeg.selectedStartDate - if(!endDate)endDate = $.timelapseJpeg.selectedEndDate - $.timelapseJpeg.frameStripContainerOffset = $.timelapseJpeg.frameStripContainer.offset() + var drawTimelapseWindowElements = function(selectedMonitor,startDate,endDate){ + var dateRange = getSelectedTime(true) + if(!startDate)startDate = dateRange.startDate + if(!endDate)endDate = dateRange.endDate + if(!selectedMonitor)selectedMonitor = monitorsList.val() var queryString = ['start=' + startDate,'end=' + endDate] var frameIconsHtml = '' - var selectedMonitor = $.timelapseJpeg.monitors.val() - var apiURL = $.timelapseJpeg.pointer+$user.auth_token+'/timelapse/'+$user.ke+'/'+selectedMonitor + var apiURL = apiBaseUrl + '/timelapse/' + $user.ke + '/' + selectedMonitor console.log(apiURL + '?' + queryString.join('&')) $.getJSON(apiURL + '?' + queryString.join('&'),function(data){ if(data && data[0]){ var firstFilename = data[0].filename - $.timelapseJpeg.frameSelected = firstFilename - $.timelapseJpeg.playlist = {} - $.timelapseJpeg.playlistArray = [] + frameSelected = firstFilename + currentPlaylist = {} + currentPlaylistArray = [] $.each(data.reverse(),function(n,fileInfo){ fileInfo.href = apiURL + '/' + fileInfo.filename.split('T')[0] + '/' + fileInfo.filename fileInfo.number = n frameIconsHtml += '