improve timelapse.jpeg appearance and performance
parent
bcdb54d02b
commit
85bfd75280
|
|
@ -119,7 +119,7 @@ module.exports = function(s,config){
|
|||
if(err)console.error(err)
|
||||
},true)
|
||||
//add Timelapses and Timelapse Frames tables, will remove in future
|
||||
s.sqlQuery("CREATE TABLE IF NOT EXISTS `Timelapses` (`ke`varchar(50)NOT NULL,`mid`varchar(50)NOT NULL,`details`longtext,`date`date NOT NULL,`time`timestamp NOT NULL,`end`timestamp NOT NULL,`size`int(11)NOT NULL)" + mySQLtail + ';',[],function(err){
|
||||
s.sqlQuery("CREATE TABLE IF NOT EXISTS `Timelapses` (`ke` varchar(50) NOT NULL,`mid` varchar(50) NOT NULL,`details` longtext,`date` date NOT NULL,`time` timestamp NOT NULL,`end` timestamp NOT NULL,`size` int(11)NOT NULL)" + mySQLtail + ';',[],function(err){
|
||||
if(err)console.error(err)
|
||||
},true)
|
||||
s.sqlQuery("CREATE TABLE IF NOT EXISTS `Timelapse Frames` (`ke` varchar(50) NOT NULL,`mid` varchar(50) NOT NULL,`details` longtext,`filename` varchar(50) NOT NULL,`time` timestamp NULL DEFAULT NULL,`size` int(11) NOT NULL)" + mySQLtail + ';',[],function(err){
|
||||
|
|
|
|||
|
|
@ -409,7 +409,7 @@ ul.msg_list li .message {
|
|||
}
|
||||
|
||||
.demo-drawer .mdl-menu__container{
|
||||
height: 500px!important;
|
||||
max-height: 500px!important;
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -12,12 +12,8 @@
|
|||
top:0;
|
||||
left:0;
|
||||
}
|
||||
#timelapsejpeg .contained{
|
||||
position:relative;
|
||||
height:100px;
|
||||
}
|
||||
#timelapsejpeg .row,
|
||||
#timelapsejpeg .row > div {
|
||||
#timelapsejpeg .modal-body > .row,
|
||||
#timelapsejpeg .modal-body > .row > div {
|
||||
position:relative;
|
||||
height: 100%;
|
||||
}
|
||||
|
|
@ -32,13 +28,46 @@
|
|||
}
|
||||
#timelapsejpeg .frameStrip{
|
||||
position:absolute;
|
||||
height:10px;
|
||||
width:100%;
|
||||
height:30px;
|
||||
width:90%;
|
||||
margin:auto;
|
||||
bottom:0;
|
||||
left:0;
|
||||
right:0;
|
||||
border-radius:5px;
|
||||
overflow:hidden;
|
||||
}
|
||||
#timelapsejpeg .frameStripPreview{
|
||||
position:absolute;
|
||||
height:80px;
|
||||
width:100px;
|
||||
border:3px solid #333;
|
||||
border-radius:5px;
|
||||
background-size: cover;
|
||||
z-index: 10;
|
||||
transition: none;
|
||||
bottom: 40px;
|
||||
}
|
||||
#timelapsejpeg .frameIcons{
|
||||
overflow-y: auto;
|
||||
overflow-x: hidden;
|
||||
}
|
||||
#timelapsejpeg .frameIcons .frame{
|
||||
background-size: cover;
|
||||
width: 100%;
|
||||
height: 100px;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
}
|
||||
#timelapsejpeg .frameIcons .frame .shade{
|
||||
position: absolute;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
padding: 5px 10px;
|
||||
font-family: monospace;
|
||||
background: rgba(0,0,0,0.6);
|
||||
}
|
||||
#timelapsejpeg .playBackView{
|
||||
position:absolute;
|
||||
height: calc(100% - 100px);
|
||||
|
|
|
|||
|
|
@ -4,6 +4,10 @@ $(document).ready(function(e){
|
|||
$.timelapseJpeg.datepicker = $('#timelapsejpeg_date')
|
||||
$.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.monitors=$.timelapseJpeg.e.find('.monitors_list')
|
||||
$.timelapseJpeg.datepicker.daterangepicker({
|
||||
|
|
@ -18,9 +22,12 @@ $(document).ready(function(e){
|
|||
$.timelapseJpeg.draw(start._d.valueOf())
|
||||
})
|
||||
$.timelapseJpeg.draw = function(selectedDate){
|
||||
var html = ''
|
||||
$.timelapseJpeg.frameStripContainerOffset = $.timelapseJpeg.frameStripContainer.offset()
|
||||
var frameStripHtml = ''
|
||||
var frameIconsHtml = ''
|
||||
var selectedMonitor = $.timelapseJpeg.monitors.val()
|
||||
var apiURL=$.ccio.init('location',$user)+$user.auth_token+'/timelapse/'+$user.ke+'/'+selectedMonitor+'/'+selectedDate
|
||||
var apiURL = $.ccio.init('location',$user)+$user.auth_token+'/timelapse/'+$user.ke+'/'+selectedMonitor+'/'+selectedDate
|
||||
$.timelapseJpeg.frameStripHrefPrefix = apiURL + '/'
|
||||
$.getJSON(apiURL,function(data){
|
||||
if(data && data[0]){
|
||||
var firstFilename = data[0].filename
|
||||
|
|
@ -30,11 +37,13 @@ $(document).ready(function(e){
|
|||
$.each(data.reverse(),function(n,fileInfo){
|
||||
fileInfo.href = apiURL + '/' + fileInfo.filename
|
||||
fileInfo.number = n
|
||||
html += '<div class="frame" data-filename="' + fileInfo.filename + '"><img src="' + fileInfo.href + '"></div>'
|
||||
// frameStripHtml += '<div class="frame" data-filename="' + fileInfo.filename + '"><img src="' + fileInfo.href + '"></div>'
|
||||
frameIconsHtml += '<div class="col-md-4"><div class="frame" data-filename="' + fileInfo.filename + '" style="background-image:url(\'' + fileInfo.href + '\')"><div class="shade">' + moment(fileInfo.time).format('YYYY-MM-DD HH:mm:ss') + '</div></div></div>'
|
||||
$.timelapseJpeg.playlist[fileInfo.filename] = fileInfo
|
||||
})
|
||||
$.timelapseJpeg.playlistArray = data
|
||||
$.timelapseJpeg.frameStrip.html(html)
|
||||
// $.timelapseJpeg.frameStrip.html(frameStripHtml)
|
||||
$.timelapseJpeg.frameIcons.html(frameIconsHtml)
|
||||
$.timelapseJpeg.resetFilmStripPositions()
|
||||
}else{
|
||||
html = lang['No Data']
|
||||
|
|
@ -43,21 +52,25 @@ $(document).ready(function(e){
|
|||
})
|
||||
}
|
||||
$.timelapseJpeg.resetFilmStripPositions = function(){
|
||||
var numberOfFrames = Object.keys($.timelapseJpeg.playlist).length
|
||||
var frameStripWidth = $.timelapseJpeg.frameStrip.width()
|
||||
var widthForEachFrame = frameStripWidth / numberOfFrames
|
||||
$.timelapseJpeg.frameStrip.find('.frame').css('width',widthForEachFrame)
|
||||
// var numberOfFrames = Object.keys($.timelapseJpeg.playlist).length
|
||||
// var frameStripWidth = $.timelapseJpeg.frameStrip.width()
|
||||
// var widthForEachFrame = frameStripWidth / numberOfFrames
|
||||
// $.timelapseJpeg.frameStrip.find('.frame').css('width',widthForEachFrame)
|
||||
var fieldHolderHeight = $.timelapseJpeg.fieldHolder.height()
|
||||
console.log("calc(100% - " + fieldHolderHeight + "px)")
|
||||
$.timelapseJpeg.frameIcons.css({height:"calc(100% - " + fieldHolderHeight + "px)"})
|
||||
}
|
||||
$.timelapseJpeg.setPlayBackFrame = function(href){
|
||||
$.timelapseJpeg.playBackViewImg[0].src = href
|
||||
}
|
||||
$.timelapseJpeg.playInterval = 200
|
||||
$.timelapseJpeg.playInterval = 400
|
||||
$.timelapseJpeg.play = function(){
|
||||
var selectedFrame = $.timelapseJpeg.playlist[$.timelapseJpeg.frameSelected]
|
||||
var selectedFrameNumber = $.timelapseJpeg.playlist[$.timelapseJpeg.frameSelected].number
|
||||
$.timelapseJpeg.setPlayBackFrame(selectedFrame.href)
|
||||
$.timelapseJpeg.e.find('.frameStrip .frame').removeClass('selected')
|
||||
$.timelapseJpeg.e.find(`.frameStrip .frame[data-filename="${selectedFrame.filename}"]`).addClass('selected')
|
||||
// $.timelapseJpeg.frameStrip.find(`.frameStrip .frame.selected`).removeClass('selected')
|
||||
// $.timelapseJpeg.frameStrip.find(`.frameStrip .frame[data-filename="${selectedFrame.filename}"]`).addClass('selected')
|
||||
clearTimeout($.timelapseJpeg.playIntervalTimer)
|
||||
$.timelapseJpeg.playIntervalTimer = setTimeout(function(){
|
||||
++selectedFrameNumber
|
||||
var newSelectedFrame = $.timelapseJpeg.playlistArray[selectedFrameNumber]
|
||||
|
|
@ -92,6 +105,17 @@ $(document).ready(function(e){
|
|||
var href = $.timelapseJpeg.playlist[selectedFrame].href
|
||||
$.timelapseJpeg.setPlayBackFrame(href)
|
||||
})
|
||||
// $.timelapseJpeg.frameStrip.on('mouseover','.frame',function(e){
|
||||
// var relativeX = (e.pageX - $.timelapseJpeg.frameStripContainerOffset.left) - 50
|
||||
// var selectedFrameHref = $.timelapseJpeg.frameStripHrefPrefix + $(this).attr('data-filename')
|
||||
// $.timelapseJpeg.frameStripPreview.css({
|
||||
// left:relativeX,
|
||||
// backgroundImage: 'url(' + selectedFrameHref + ')'
|
||||
// })
|
||||
// })
|
||||
// $.timelapseJpeg.e.on('mouseout','.frame',function(e){
|
||||
//
|
||||
// })
|
||||
$.timelapseJpeg.e.on('hidden.bs.modal', function (e) {
|
||||
$.timelapseJpeg.destroy()
|
||||
})
|
||||
|
|
|
|||
|
|
@ -91,21 +91,24 @@
|
|||
<div class="modal-body text-center">
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<div class="form-group">
|
||||
<label><div><span><%-lang['Monitor']%></span></div>
|
||||
<div><select class="form-control dark monitors_list"></select></div>
|
||||
</label>
|
||||
<div class="fieldHolder">
|
||||
<div class="form-group">
|
||||
<label><div><span><%-lang['Monitor']%></span></div>
|
||||
<div><select class="form-control dark monitors_list"></select></div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label><div><span><%-lang['Date']%></span></div>
|
||||
<div><input type="text" id="timelapsejpeg_date" class="form-control" value="" /></div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label><div><span><%-lang['Date']%></span></div>
|
||||
<div><input type="text" id="timelapsejpeg_date" class="form-control" value="" /></div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="frames"></div>
|
||||
<div class="frameIcons row"></div>
|
||||
</div>
|
||||
<div class="col-md-8 contained">
|
||||
<div class="col-md-8 frameStripContainer contained">
|
||||
<div class="playBackView"><img></div>
|
||||
<div class="frames"></div>
|
||||
<div class="frameStripPreview"></div>
|
||||
<div class="frameStrip"></div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue