diff --git a/definitions/en_CA.js b/definitions/en_CA.js index 23cc3eb9..d50c40c8 100644 --- a/definitions/en_CA.js +++ b/definitions/en_CA.js @@ -4897,7 +4897,24 @@ module.exports = function(s,config,lang){ "default": "", "example": "", "form-group-class": "imaging-field", - "possible": "" + "fieldType": "select", + "possible": [ + { + "name": lang.On, + "value": "ON", + "info": "Enable Ir cut fiter. Typically Day mode." + }, + { + "name": lang.Off, + "value": "OFF", + "info": "Disable Ir cut fiter. Typically Night mode." + }, + { + "name": lang.Auto, + "value": "AUTO", + "info": "Ir cut filter is automatically activated by the device." + }, + ] }, { "field": lang['Sharpness'], @@ -4989,6 +5006,7 @@ module.exports = function(s,config,lang){ { "field": lang['Quality'], "name": "Quality", + "fieldType": "number", "placeholder": "", "description": "", "default": "", @@ -4998,6 +5016,7 @@ module.exports = function(s,config,lang){ { "field": lang['FrameRateLimit'], "name": "RateControl:FrameRateLimit", + "fieldType": "number", "placeholder": "", "description": "", "default": "", @@ -5007,6 +5026,7 @@ module.exports = function(s,config,lang){ { "field": lang['EncodingInterval'], "name": "RateControl:EncodingInterval", + "fieldType": "number", "placeholder": "", "description": "", "default": "", diff --git a/languages/en_CA.json b/languages/en_CA.json index bb4b1b94..4bcbc6d2 100644 --- a/languages/en_CA.json +++ b/languages/en_CA.json @@ -1096,6 +1096,8 @@ "MaxExposureTime": "Maximum Exposure Time", "MinExposureTime": "Minimum Exposure Time", "ColorSaturation": "Color Saturation", + "On": "On", + "Off": "Off", "Encoding": "Encoding", "Brightness": "Brightness", "Resolution": "Resolution", diff --git a/libs/onvifDeviceManager/utils.js b/libs/onvifDeviceManager/utils.js index 49688c9b..021862e4 100644 --- a/libs/onvifDeviceManager/utils.js +++ b/libs/onvifDeviceManager/utils.js @@ -140,10 +140,10 @@ const getDeviceInformation = async (onvifDevice,options) => { const imagingSettings = (await runOnvifMethod({ device: onvifDevice, action: 'getImagingSettings', - service: 'media', + service: 'imaging', options: {"ConfigurationToken":"__CURRENT_TOKEN"} })); - response.imagingSettings = imagingSettings.responseFromDevice ? imagingSettings.responseFromDevice : imagingSettings + response.imagingSettings = imagingSettings.responseFromDevice ? imagingSettings.responseFromDevice.GetImagingSettingsResponse.ImagingSettings : imagingSettings } }catch(err){ response.ok = false diff --git a/web/libs/js/dash2.onvifDeviceManager.js b/web/libs/js/dash2.onvifDeviceManager.js index e09842f6..443338b7 100644 --- a/web/libs/js/dash2.onvifDeviceManager.js +++ b/web/libs/js/dash2.onvifDeviceManager.js @@ -43,6 +43,7 @@ $(document).ready(function(){ setIntegerGuider('name="H264:GovLength"',encoderOptions.H264.GovLengthRange) setIntegerGuider('name="RateControl:FrameRateLimit"',encoderOptions.H264.FrameRateRange) setIntegerGuider('name="RateControl:EncodingInterval"',encoderOptions.H264.EncodingIntervalRange) + setIntegerGuider('name="Quality"',encoderOptions.QualityRange) } if(onvifData.videoEncoders){ loadedVideoEncoders = {} @@ -83,9 +84,10 @@ $(document).ready(function(){ formFields["setHostname:name"] = onvifData.hostname } if(onvifData.dns && onvifData.dns.DNSManual){ - var dnsList = onvifData.dns.DNSManual.map((item) => { + var dnsList = onvifData.dns.DNSManual + dnsList = typeof dnsList === 'array' ? dnsList.map((item) => { return item.IPv4Address - }).join(',') + }).join(',') : typeof dnsList === 'object' ? dnsList.IPv4Address : dnsList formFields["setDNS:dns"] = dnsList } if(onvifData.ntp && onvifData.ntp.NTPManual){ @@ -102,7 +104,14 @@ $(document).ready(function(){ setFieldsFromOnvifKeys(onvifData.videoEncoders[0]) } if(onvifData.imagingSettings && onvifData.imagingSettings.ok !== false){ + $('#Imaging').find('.form-group').hide() setFieldsFromOnvifKeys(onvifData.imagingSettings) + $.each(onvifData.imagingSettings,function(key){ + $('#Imaging').find(`[name="${key}"]`).parents('.form-group').show() + }) + $('#Imaging').show() + }else{ + $('#Imaging').hide() } Object.keys(formFields).forEach((key) => { var value = formFields[key] @@ -113,7 +122,7 @@ $(document).ready(function(){ var formFields = converObjectKeysToFormFieldName(encoder) Object.keys(formFields).forEach((key) => { var value = formFields[key] - blockForm.find(`[name="${key}"]`).val(value) + blockForm.find(`[name="${key}"]`).val(value).parents('.form-group') }) } var getUIFieldValues = function(monitorId){ @@ -131,7 +140,7 @@ $(document).ready(function(){ getUIFieldValues(monitorId) }) blockForm.on('change','[name="videoToken"]',function(){ - selectVideoEncoder(loadedVideoEncoders[$(this).val()]) + setFieldsFromOnvifKeys(loadedVideoEncoders[$(this).val()]) }) blockForm.on('change','[detail="Resolution"]',function(){ var resolution = $(this).val().split('x')