Shinobi/web/libs/js/dash2.regioneditor.js

201 lines
6.8 KiB
JavaScript

$(document).ready(function(e){
//Region Editor
$.zO={e:$('#region_editor')};
$.zO.f=$.zO.e.find('form');
$.zO.o=function(){return $.zO.e.find('canvas')};
$.zO.c=$.zO.e.find('.canvas_holder');
$.zO.name=$.zO.e.find('[name="name"]');
$.zO.rl=$('#regions_list');
$.zO.rp=$('#regions_points');
$.zO.ca=$('#regions_canvas');
$.zO.saveCoords=function(){
$.aM.e.find('[detail="cords"]').val(JSON.stringify($.zO.regionViewerDetails.cords)).change()
}
$.zO.initRegionList=function(){
$('#regions_list,#region_points').empty();
$.each($.zO.regionViewerDetails.cords,function(n,v){
if(v&&v.name){
$.zO.rl.append('<option value="'+n+'">'+v.name+'</option>')
}
});
$.zO.rl.change();
}
$.zO.rl.change(function(e){
$.zO.initCanvas();
})
$.zO.initLiveStream=function(e){
var e={}
e.re=$('#region_editor_live');
e.re.find('iframe,img').attr('src','about:blank').hide()
if($('#region_still_image').is(':checked')){
e.re=e.re.find('img')
e.choice='jpeg'
}else{
e.re=e.re.find('iframe')
e.choice='embed'
}
e.src=$.ccio.init('location',$user)+$user.auth_token+'/'+e.choice+'/'+$user.ke+'/'+$.aM.selected.mid
if(e.choice=='embed'){
e.src+='/fullscreen|jquery|relative'
}else{
e.src+='/s.jpg'
}
if(e.re.attr('src')!==e.src){
e.re.attr('src',e.src).show()
}
e.re.attr('width',$.zO.regionViewerDetails.detector_scale_x)
e.re.attr('height',$.zO.regionViewerDetails.detector_scale_y)
}
$('#region_still_image').change(function(e){
e.o=$.ccio.op().switches
if(!e.o){e.o={}}
if($(this).is(':checked')){
e.o.regionStillImage=1
}else{
e.o.regionStillImage="0"
}
$.ccio.op('switches',e.o)
$.zO.initLiveStream()
}).ready(function(e){
e.switches=$.ccio.op().switches
if(e.switches&&e.switches.regionStillImage===1){
$('#region_still_image').prop('checked',true)
}
})
$.zO.initCanvas=function(){
var e={};
e.ar=[];
e.val=$.zO.rl.val();
if(!e.val){
$.zO.f.find('[name="name"]').val('')
$.zO.f.find('[name="sensitivity"]').val('')
$.zO.f.find('[name="max_sensitivity"]').val('')
$.zO.f.find('[name="threshold"]').val('')
$.zO.f.find('[name="color_threshold"]').val('')
$.zO.rp.empty()
}else{
e.cord=$.zO.regionViewerDetails.cords[e.val];
if(!e.cord.points){e.cord.points=[[0,0],[0,100],[100,0]]}
$.each(e.cord.points,function(n,v){
e.ar=e.ar.concat(v)
});
if(isNaN(e.cord.sensitivity)){
e.cord.sensitivity=$.zO.regionViewerDetails.detector_sensitivity;
}
$.zO.f.find('[name="name"]').val(e.val)
$.zO.e.find('.cord_name').text(e.val)
$.zO.f.find('[name="sensitivity"]').val(e.cord.sensitivity)
$.zO.f.find('[name="max_sensitivity"]').val(e.cord.max_sensitivity)
$.zO.f.find('[name="threshold"]').val(e.cord.threshold)
$.zO.f.find('[name="color_threshold"]').val(e.cord.color_threshold)
$.zO.e.find('.canvas_holder canvas').remove();
$.zO.initLiveStream()
e.e=$.zO.ca.val(e.ar.join(','))
e.e.canvasAreaDraw({
imageUrl:placeholder.getData(placeholder.plcimg({
bgcolor:'transparent',
text:' ',
size:$.zO.regionViewerDetails.detector_scale_x+'x'+$.zO.regionViewerDetails.detector_scale_y
}))
});
e.e.change();
}
}
$.zO.e.on('change','[name]:not([name="name"])',function(){
var el = $(this)
var val = el.val()
var key = el.attr('name')
$.zO.regionViewerDetails.cords[$.zO.rl.val()][key] = val
$.zO.saveCoords()
})
$.zO.e.on('change','[name="name"]',function(e){
e.old=$.zO.rl.val();
e.new=$.zO.name.val();
$.zO.regionViewerDetails.cords[e.new]=$.zO.regionViewerDetails.cords[e.old];
delete($.zO.regionViewerDetails.cords[e.old]);
$.zO.rl.find('option[value="'+e.old+'"]').attr('value',e.new).text(e.new)
$.zO.saveCoords()
})
$.zO.e.on('change','[point]',function(e){
e.points=[];
$('[points]').each(function(n,v){
v=$(v);
n=v.find('[point="x"]').val();
if(n){
e.points.push([n,v.find('[point="y"]').val()])
}
})
$.zO.regionViewerDetails.cords[$.zO.name.val()].points=e.points;
$.zO.initCanvas();
})
$.zO.e.find('.erase').click(function(e){
e.arr=[]
$.each($.zO.regionViewerDetails.cords,function(n,v){
if(v&&v!==$.zO.regionViewerDetails.cords[$.zO.rl.val()]){
e.arr.push(v)
}
})
$.zO.regionViewerDetails.cords=e.arr.concat([]);
if(Object.keys($.zO.regionViewerDetails.cords).length>0){
$.zO.initRegionList();
}else{
$.zO.f.find('input').prop('disabled',true)
$('#regions_points tbody').empty()
$('#regions_list [value="'+$.zO.rl.val()+'"]').remove()
$.aM.e.find('[detail="cords"]').val('[]')
}
});
//$.zO.e.find('.new').click(function(e){
// $.zO.regionViewerDetails.cords[$.zO.rl.val()]
// $.zO.initRegionList();
//})
$.zO.e.on('changed','#regions_canvas',function(e){
e.val=$(this).val().replace(/(,[^,]*),/g, '$1;').split(';');
e.ar=[];
$.each(e.val,function(n,v){
v=v.split(',')
if(v[1]){
e.ar.push([v[0],v[1]])
}
})
$.zO.regionViewerDetails.cords[$.zO.rl.val()].points=e.ar;
e.selected=$.zO.regionViewerDetails.cords[$.zO.rl.val()];
e.e=$('#regions_points tbody').empty();
$.each($.zO.regionViewerDetails.cords[$.zO.rl.val()].points,function(n,v){
if(isNaN(v[0])){v[0]=20}
if(isNaN(v[1])){v[1]=20}
e.e.append('<tr points="'+n+'"><td><input class="form-control" placeholder="X" point="x" value="'+v[0]+'"></td><td><input class="form-control" placeholder="Y" point="y" value="'+v[1]+'"></td><td class="text-right"><a class="delete btn btn-danger"><i class="fa fa-trash-o"></i></a></td></tr>')
});
$.zO.saveCoords()
})
$.zO.f.submit(function(e){
e.preventDefault();e.e=$(this),e.s=e.e.serializeObject();
return false;
});
$('#regions_points')
.on('click','.delete',function(e){
e.p=$(this).parents('tr'),e.row=e.p.attr('points');
delete($.zO.regionViewerDetails.cords[$.zO.rl.val()].points[e.row])
$.zO.saveCoords()
e.p.remove();
$.zO.rl.change();
})
$.zO.e.on('click','.add',function(e){
$.zO.f.find('input').prop('disabled',false)
e.gid=$.ccio.gid(5);
e.save={};
$.each($.zO.regionViewerDetails.cords,function(n,v){
if(v&&v!==null&&v!=='null'){
e.save[n]=v;
}
})
$.zO.regionViewerDetails.cords=e.save;
$.zO.regionViewerDetails.cords[e.gid]={name:e.gid,sensitivity:0.0005,max_sensitivity:'',threshold:1,color_threshold:9,points:[[0,0],[0,100],[100,0]]};
$.zO.rl.append('<option value="'+e.gid+'">'+e.gid+'</option>');
$.zO.rl.val(e.gid)
$.zO.rl.change();
});
})