$(document).ready(function(e){ //POWER videos window $.pwrvid={e:$('#pvideo_viewer')}; $.pwrvid.f=$.pwrvid.e.find('form'), $.pwrvid.d=$('#vis_pwrvideo'), $.pwrvid.mL=$('#motion_list'), $.pwrvid.m=$('#vis_monitors'), $.pwrvid.lv=$('#live_view'), $.pwrvid.dr=$('#pvideo_daterange'), $.pwrvid.vp=$('#video_preview'), $.pwrvid.seekBar=$('#pwrvid_seekBar'), $.pwrvid.seekBarProgress=$.pwrvid.seekBar.find('.progress-bar'), $.pwrvid.playRate = 1; $.pwrvid.dr.daterangepicker({ startDate:$.ccio.timeObject().subtract(moment.duration("24:00:00")), endDate:$.ccio.timeObject().add(moment.duration("24:00:00")), timePicker: true, timePicker24Hour: true, timePickerSeconds: true, timePickerIncrement: 30, locale: { format: 'MM/DD/YYYY h:mm A' } },function(start, end, label){ $.pwrvid.drawTimeline() $.pwrvid.dr.focus() }); $('#pvideo_show_events').change(function(){ $.pwrvid.drawTimeline() }) $.pwrvid.e.on('click','[preview]',function(e){ e.e=$(this); e.video=$.pwrvid.vp.find('video')[0]; if(e.video){ e.duration=e.video.duration; e.now=e.video.currentTime; } if($.pwrvid.video){ clearInterval($.pwrvid.video.interval); } switch(e.e.attr('preview')){ case'fullscreen': $.ccio.init('fullscreen',e.video) break; case'mute': e.video.muted = !e.video.muted e.e.find('i').toggleClass('fa-volume-off fa-volume-up') e.e.toggleClass('btn-danger') break; case'play': e.video.playbackRate = 1; $.pwrvid.vpOnPlayPause(1) break; case'stepFrontFront': e.add=e.e.attr('add') e.stepFrontFront=parseInt(e.e.attr('stepFrontFront')) if(!e.stepFrontFront||isNaN(e.stepFrontFront)){e.stepFrontFront = 5} if(e.add==="0"){ $.pwrvid.playRate = e.stepFrontFront }else{ $.pwrvid.playRate += e.stepFrontFront } e.video.playbackRate = $.pwrvid.playRate; e.video.play() break; case'stepFront': e.video.currentTime += 1; e.video.pause() break; case'stepBackBack': $.pwrvid.video.interval = setInterval(function(){ e.video.playbackRate = 1.0; if(e.video.currentTime == 0){ clearInterval($.pwrvid.video.interval); e.video.pause(); } else{ e.video.currentTime += -.2; } },30); break; case'stepBack': e.video.currentTime += -1; e.video.pause() break; case'video': // e.preventDefault(); e.p=e.e.parents('[mid]'); e.filename=e.p.attr('file'); $.pwrvid.vp.find('h3').text(e.filename) e.href=e.e.attr('href'); e.status=e.p.attr('status'); e.mon=$.ccio.mon[e.p.attr('ke')+e.p.attr('mid')+$user.auth_token]; $.pwrvid.vp.find('.holder').html(''); $.pwrvid.vp .attr('mid',e.mon.mid) .attr('mid',e.mon.user.auth_token) .attr('ke',e.mon.ke) .attr('status',e.status) .attr('file',e.filename) .find('[download],[video="download"]') .attr('download',e.filename) .attr('href',e.href) $.pwrvid.vp.find('video').off('loadeddata').on('loadeddata',function(){ $.pwrvid.vp.find('.stream-objects .stream-detected-object').remove() }) if(e.status==1){ $.get($.ccio.init('videoHrefToRead',e.href),function(d){ }) } var labels=[] var Dataset1=[] var events=$.pwrvid.currentDataObject[e.filename].motion var eventsLabeledByTime={} $.each(events,function(n,v){ if(!v.details.confidence){v.details.confidence=0} var time=$.ccio.timeObject(v.time).format('MM/DD/YYYY HH:mm:ss') labels.push(time) Dataset1.push(v.details.confidence) eventsLabeledByTime[time]=v; }) if(events.length>0){ $.pwrvid.mL.html("") var timeFormat = 'MM/DD/YYYY HH:mm:ss'; var color = Chart.helpers.color; Chart.defaults.global.defaultFontColor = '#fff'; var config = { type: 'bar', data: { labels: labels, datasets: [{ type: 'line', label: 'Motion Confidence', backgroundColor: color(window.chartColors.red).alpha(0.2).rgbString(), borderColor: window.chartColors.red, data: Dataset1, }] }, options: { maintainAspectRatio: false, title: { fontColor: "white", text:"Events in this video" }, scales: { xAxes: [{ type: "time", display: true, time: { format: timeFormat, // round: 'day' } }], }, } }; var ctx = $.pwrvid.mL.find('canvas')[0].getContext("2d"); $.pwrvid.miniChart = new Chart(ctx, config); $.pwrvid.mL.find('canvas').click(function(f) { var target = $.pwrvid.miniChart.getElementsAtEvent(f)[0]; if(!target){return false} var video = $.pwrvid.currentDataObject[e.filename]; var event = video.motion[target._index]; var video1 = $('#video_preview video')[0]; video1.currentTime=$.ccio.timeObject(event.time).diff($.ccio.timeObject(video.row.time),'seconds') video1.play() }); var colorNames = Object.keys(window.chartColors); }else{ $.pwrvid.mL.html('