Add "Add All" button to ONVIF Scanner (Adds all cameras not already added)
parent
b25004921d
commit
1c03744f5a
|
@ -525,6 +525,7 @@
|
|||
"Enable": "Enable",
|
||||
"Disable": "Disable",
|
||||
"Delete": "Delete",
|
||||
"Add All": "Add All",
|
||||
"Name": "Name",
|
||||
"Skip Ping": "Skip Ping",
|
||||
"Retry Connection": "Retry Connection <small>Number of times allowed to fail</small>",
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
$(document).ready(function(e){
|
||||
//onvif probe
|
||||
var currentUsername = ''
|
||||
var currentPassword = ''
|
||||
var loadedResults = {}
|
||||
var onvifScannerWindow = $('#onvif_probe')
|
||||
var scanForm = onvifScannerWindow.find('form');
|
||||
var outputBlock = onvifScannerWindow.find('.onvif_result');
|
||||
|
@ -36,8 +39,65 @@ $(document).ready(function(e){
|
|||
</div>
|
||||
</div>
|
||||
`)
|
||||
if(!options.error){
|
||||
var theLocation = getLocationFromUri(options.uri)
|
||||
var pathLocation = theLocation.location
|
||||
loadedResults[tempID] = {
|
||||
mid: tempID + `${options.port}`,
|
||||
host: pathLocation.hostname,
|
||||
port: pathLocation.port,
|
||||
path: pathLocation.pathname,
|
||||
protocol: theLocation.protocol,
|
||||
details: {
|
||||
auto_host: streamUrl,
|
||||
muser: currentUsername,
|
||||
mpass: currentPassword,
|
||||
is_onvif: '1',
|
||||
onvif_port: options.port,
|
||||
},
|
||||
}
|
||||
console.log(loadedResults[tempID])
|
||||
}
|
||||
}
|
||||
var filterOutMonitorsThatAreAlreadyAdded = function(listOfCameras,callback){
|
||||
$.get($.ccio.init('location',$user)+$user.auth_token+'/monitor/'+$user.ke,function(monitors){
|
||||
var monitorsNotExisting = []
|
||||
$.each(listOfCameras,function(n,camera){
|
||||
var matches = false
|
||||
$.each(monitors,function(m,monitor){
|
||||
if(monitor.host === camera.host){
|
||||
matches = true
|
||||
}
|
||||
})
|
||||
if(!matches){
|
||||
monitorsNotExisting.push(camera)
|
||||
}
|
||||
})
|
||||
callback(monitorsNotExisting)
|
||||
})
|
||||
}
|
||||
var getLocationFromUri = function(uri){
|
||||
var newString = uri.split('://')
|
||||
var protocol = `${newString[0]}`
|
||||
newString[0] = 'http'
|
||||
newString = newString.join('://')
|
||||
var uriLocation = new URL(newString)
|
||||
// uriLocation.protocol = protocol
|
||||
return {
|
||||
location: uriLocation,
|
||||
protocol: protocol
|
||||
}
|
||||
}
|
||||
var postMonitor = function(monitorToPost){
|
||||
var newMon = mergeDeep($.aM.generateDefaultMonitorSettings(),monitorToPost)
|
||||
$.post($.ccio.init('location',$user)+$user.auth_token+'/configureMonitor/'+$user.ke+'/'+monitorToPost.mid,{data:JSON.stringify(newMon,null,3)},function(d){
|
||||
$.ccio.log(d)
|
||||
})
|
||||
}
|
||||
scanForm.submit(function(e){
|
||||
currentUsername = onvifScannerWindow.find('[name="user"]').val()
|
||||
currentPassword = onvifScannerWindow.find('[name="pass"]').val()
|
||||
loadedResults = {}
|
||||
e.preventDefault();
|
||||
$.oB.foundMonitors = {}
|
||||
var el = $(this)
|
||||
|
@ -74,6 +134,14 @@ $(document).ready(function(e){
|
|||
$.aM.e.find('[name="mode"]').val('start')
|
||||
onvifScannerWindow.modal('hide')
|
||||
})
|
||||
onvifScannerWindow.on('click','.add-all',function(){
|
||||
filterOutMonitorsThatAreAlreadyAdded(loadedResults,function(importableCameras){
|
||||
$.each(importableCameras,function(n,camera){
|
||||
// console.log(camera)
|
||||
postMonitor(camera)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
var currentOptions = $.ccio.op()
|
||||
$.each(['ip','port','user'],function(n,key){
|
||||
|
@ -86,6 +154,13 @@ $(document).ready(function(e){
|
|||
}
|
||||
})
|
||||
delete(currentOptions)
|
||||
$user.ws.on('f',function (d){
|
||||
switch(d.f){
|
||||
case'onvif':
|
||||
drawProbeResult(d)
|
||||
break;
|
||||
}
|
||||
})
|
||||
|
||||
$.oB = {}
|
||||
$.oB.drawProbeResult = drawProbeResult
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
window.onWebsocketConnection = []
|
||||
$(document).ready(function(e){
|
||||
//websocket functions
|
||||
$.users = {}
|
||||
|
@ -867,10 +868,10 @@ $user.ws.on('f',function (d){
|
|||
// $.oB.o.append('<td class="text-center _notfound">Sorry, nothing was found.</td>')
|
||||
// }
|
||||
// break;
|
||||
case'onvif':
|
||||
$.oB.drawProbeResult(d)
|
||||
break;
|
||||
}
|
||||
delete(d);
|
||||
});
|
||||
$.each(onWebsocketConnection,function(n,extender){
|
||||
extender()
|
||||
})
|
||||
})
|
||||
|
|
|
@ -78,6 +78,7 @@
|
|||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-success add-all" data-dismiss="modal"><i class="fa fa-plus"></i> <%-lang['Add All'] %></button>
|
||||
<button type="button" class="btn btn-default pull-left" data-dismiss="modal"><i class="fa fa-times"></i> <%-lang.Close%></button>
|
||||
</div>
|
||||
</form>
|
||||
|
|
|
@ -156,6 +156,11 @@
|
|||
</html>
|
||||
<!---->
|
||||
<div class="hidden" id="temp"></div>
|
||||
<script src="<%-window.libURL%>libs/js/basic.js"></script>
|
||||
<script><% include ../libs/js/dash2.config.js %></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.basic.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.confirm.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.socketio.js"></script>
|
||||
<% include blocks/multimon.ejs %>
|
||||
<% include blocks/api.ejs %>
|
||||
<% include blocks/logs.ejs %>
|
||||
|
@ -209,11 +214,6 @@
|
|||
<script src="<%-window.libURL%>libs/js/gridstack.min.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/gridstack.jQueryUI.min.js"></script>
|
||||
<script src="<%-window.libURL%>libs/vendor/leaflet/leaflet.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/basic.js"></script>
|
||||
<script><% include ../libs/js/dash2.config.js %></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.basic.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.confirm.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.socketio.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.gridstack.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.elements.js"></script>
|
||||
<script src="<%-window.libURL%>libs/js/dash2.elementbuilder.js"></script>
|
||||
|
|
Loading…
Reference in New Issue