Add Primary Fields to Region Editor

rkmpp-v4l2m2m-decode
Moe 2022-11-27 15:11:35 -08:00
parent d021652078
commit f797521d51
2 changed files with 202 additions and 71 deletions

View File

@ -2674,7 +2674,6 @@ module.exports = function(s,config,lang){
"field": lang['Filter for Objects only'], "field": lang['Filter for Objects only'],
"description": "", "description": "",
"default": "0", "default": "0",
"example": "",
"fieldType": "select", "fieldType": "select",
"form-group-class": "h_det_fil_input h_det_fil_1", "form-group-class": "h_det_fil_input h_det_fil_1",
"form-group-class-pre-layer": "h_det_input h_det_1", "form-group-class-pre-layer": "h_det_input h_det_1",
@ -5906,79 +5905,199 @@ module.exports = function(s,config,lang){
"section": "Region Editor", "section": "Region Editor",
"blocks": { "blocks": {
"Regions": { "Regions": {
"name": lang["Regions"], "color": "green",
"headerTitle": `<span class="cord_name">&nbsp;</span> isFormGroupGroup: true,
<div class="pull-right"> "noHeader": true,
<a href=# class="btn btn-success btn-sm add"><i class="fa fa-plus"></i></a> "section-class": "col-md-6",
<a href=# class="btn btn-danger btn-sm erase"><i class="fa fa-trash-o"></i></a> "noDefaultSectionClasses": true,
</div>`, "info": [
"color": "orange", {
"section-pre-class": "col-md-6", "name": lang["Regions"],
"section-class": "where", "headerTitle": `<span class="cord_name">&nbsp;</span>
"box-wrapper-class": "row", <div class="pull-right">
"info": [ <a href=# class="btn btn-success btn-sm add"><i class="fa fa-plus"></i></a>
{ <a href=# class="btn btn-danger btn-sm erase"><i class="fa fa-trash-o"></i></a>
"field": lang["Monitor"], </div>`,
"id": "region_editor_monitors", "color": "orange",
"fieldType": "select", "box-wrapper-class": "row",
"form-group-class": "col-md-6", isFormGroupGroup: true,
}, "info": [
{
"id": "regions_list",
"field": lang["Regions"],
"fieldType": "select",
"possible": [],
"form-group-class": "col-md-6",
},
{
"name": "name",
"field": lang['Region Name'],
},
{
"name": "sensitivity",
"field": lang['Minimum Change'],
"form-group-class": "col-md-6",
},
{
"name": "max_sensitivity",
"field": lang['Maximum Change'],
"form-group-class": "col-md-6",
},
{
"name": "threshold",
"field": lang['Trigger Threshold'],
"form-group-class": "col-md-6",
},
{
"name": "color_threshold",
"field": lang['Color Threshold'],
"form-group-class": "col-md-6",
},
{
hidden: true,
id: "regions_points",
"fieldType": "table",
"class": 'table table-striped',
},
{
"class": 'col-md-12',
"fieldType": 'div',
info: [
{ {
"fieldType": "btn", "field": lang["Monitor"],
attribute: "href=#", "id": "region_editor_monitors",
"class": `btn-info toggle-region-still-image`, "fieldType": "select",
"btnContent": `<i class="fa fa-retweet"></i> &nbsp; ${lang['Live Stream Toggle']}`, "form-group-class": "col-md-6",
}, },
{ {
"fieldType": "btn", "id": "regions_list",
forForm: true, "field": lang["Regions"],
attribute: "href=#", "fieldType": "select",
"class": `btn-success`, "possible": [],
"btnContent": `<i class="fa fa-check"></i> &nbsp; ${lang['Save']}`, "form-group-class": "col-md-6",
},
{
"name": "name",
"field": lang['Region Name'],
},
{
"name": "sensitivity",
"field": lang['Minimum Change'],
"form-group-class": "col-md-6",
},
{
"name": "max_sensitivity",
"field": lang['Maximum Change'],
"form-group-class": "col-md-6",
},
{
"name": "threshold",
"field": lang['Trigger Threshold'],
"form-group-class": "col-md-6",
},
{
"name": "color_threshold",
"field": lang['Color Threshold'],
"form-group-class": "col-md-6",
},
{
hidden: true,
id: "regions_points",
"fieldType": "table",
"class": 'table table-striped',
},
{
"class": 'col-md-12',
"fieldType": 'div',
info: [
{
"fieldType": "btn",
attribute: "href=#",
"class": `btn-info toggle-region-still-image`,
"btnContent": `<i class="fa fa-retweet"></i> &nbsp; ${lang['Live Stream Toggle']}`,
},
{
"fieldType": "btn",
forForm: true,
attribute: "href=#",
"class": `btn-success`,
"btnContent": `<i class="fa fa-check"></i> &nbsp; ${lang['Save']}`,
},
]
}, },
] ]
}, },
{
"name": lang["Primary"],
"color": "blue",
"section-class": "hide-box-wrapper",
"box-wrapper-class": "row",
isFormGroupGroup: true,
"info": [
{
"name": "detail=detector_sensitivity",
"field": lang['Minimum Change'],
"description": "The motion confidence rating must exceed this value to be seen as a trigger. This number correlates directly to the confidence rating returned by the motion detector. This option was previously named \"Indifference\".",
"default": "10",
"example": "10",
},
{
"name": "detail=detector_max_sensitivity",
"field": lang["Maximum Change"],
"description": "The motion confidence rating must be lower than this value to be seen as a trigger. Leave blank for no maximum. This option was previously named \"Max Indifference\".",
"default": "",
"example": "75",
},
{
"name": "detail=detector_threshold",
"field": lang["Trigger Threshold"],
"description": lang["fieldTextDetectorThreshold"],
"default": "1",
"example": "3",
"possible": "Any non-negative integer."
},
{
"name": "detail=detector_color_threshold",
"field": lang["Color Threshold"],
"description": lang["fieldTextDetectorColorThreshold"],
"default": "9",
"example": "9",
"possible": "Any non-negative integer."
},
{
"name": "detail=detector_frame",
"field": lang["Full Frame Detection"],
"description": lang["fieldTextDetectorFrame"],
"default": "1",
"fieldType": "select",
"possible": [
{
"name": lang.No,
"value": "0"
},
{
"name": lang.Yes,
"value": "1"
}
]
},
{
"name": "detail=detector_motion_tile_mode",
"field": lang['Accuracy Mode'],
"default": "1",
"example": "",
"fieldType": "select",
"possible": [
{
"name": lang.No,
"value": "0"
},
{
"name": lang.Yes,
"value": "1"
}
]
},
{
"name": "detail=detector_tile_size",
"field": lang["Tile Size"],
"description": lang.fieldTextTileSize,
"default": "20",
},
{
"name": "detail=use_detector_filters",
"field": lang['Event Filters'],
"description": lang.fieldTextEventFilters,
"default": "0",
"fieldType": "select",
"possible": [
{
"name": lang.No,
"value": "0"
},
{
"name": lang.Yes,
"value": "1"
}
]
},
{
"name": "detail=use_detector_filters_object",
"field": lang['Filter for Objects only'],
"default": "0",
"fieldType": "select",
"possible": [
{
"name": lang.No,
"value": "0"
},
{
"name": lang.Yes,
"value": "1"
}
]
},
]
},
] ]
}, },
"Points": { "Points": {

View File

@ -41,6 +41,7 @@ $(document).ready(function(e){
} }
} }
var loadRegionEditor = function(monitor){ var loadRegionEditor = function(monitor){
regionEditorForm.find('input').prop('disabled',false)
var theCanvas = getRegionEditorCanvas() var theCanvas = getRegionEditorCanvas()
var monitorDetails = Object.assign({},monitor.details) var monitorDetails = Object.assign({},monitor.details)
var imageWidth = !isNaN(monitorDetails.detector_scale_x) ? parseInt(monitorDetails.detector_scale_x) : 640 var imageWidth = !isNaN(monitorDetails.detector_scale_x) ? parseInt(monitorDetails.detector_scale_x) : 640
@ -59,6 +60,13 @@ $(document).ready(function(e){
} }
regionViewerDetails = monitorDetails; regionViewerDetails = monitorDetails;
initiateRegionList() initiateRegionList()
loadPrimaryFields(monitor)
}
function loadPrimaryFields(monitor){
var monitorDetails = Object.assign({},monitor.details)
$.each(monitorDetails,function(n,v){
regionEditorForm.find(`[detail="${n}"]`).val(v)
})
} }
var drawPointsTable = function(){ var drawPointsTable = function(){
var currentRegionId = getCurrentlySelectedRegionId() var currentRegionId = getCurrentlySelectedRegionId()
@ -90,6 +98,12 @@ $(document).ready(function(e){
var monitorId = getCurrentlySelectedMonitorId() var monitorId = getCurrentlySelectedMonitorId()
var monitorConfig = Object.assign({},loadedMonitors[monitorId]) var monitorConfig = Object.assign({},loadedMonitors[monitorId])
var regionCoordinates = Object.assign({},coorindates || regionViewerDetails.cords instanceof Object ? regionViewerDetails.cords : safeJsonParse(regionViewerDetails.cords) || {}); var regionCoordinates = Object.assign({},coorindates || regionViewerDetails.cords instanceof Object ? regionViewerDetails.cords : safeJsonParse(regionViewerDetails.cords) || {});
regionEditorForm.find('[detail]').each(function(n,v){
var el = $(this);
var key = el.attr('detail')
var value = el.val()
monitorConfig.details[key] = value;
});
monitorConfig.details.cords = JSON.stringify(regionCoordinates) monitorConfig.details.cords = JSON.stringify(regionCoordinates)
monitorConfig.details = JSON.stringify(monitorConfig.details) monitorConfig.details = JSON.stringify(monitorConfig.details)
$.post(getApiPrefix(`configureMonitor`)+ '/' + monitorId,{ $.post(getApiPrefix(`configureMonitor`)+ '/' + monitorId,{
@ -311,9 +325,7 @@ $(document).ready(function(e){
} }
}) })
addOnTabOpen('regionEditor', function () { addOnTabOpen('regionEditor', function () {
if(!regionEditorMonitorsList.val()){ drawMonitorListToSelector(regionEditorMonitorsList,true)
drawMonitorListToSelector(regionEditorMonitorsList,true)
}
initLiveStream() initLiveStream()
}) })
addOnTabReopen('regionEditor', function () { addOnTabReopen('regionEditor', function () {