allow monitor grouping from simple monitor settings

cron-addstorage-fix^2
Moe 2021-11-09 08:26:58 -08:00
parent 575c268085
commit 2653fb8e41
2 changed files with 63 additions and 20 deletions

View File

@ -30,8 +30,11 @@ $(document).ready(function(){
function writewMonGroups(){ function writewMonGroups(){
theForm.find('[detail="mon_groups"]').val(JSON.stringify($user.mon_groups)).change() theForm.find('[detail="mon_groups"]').val(JSON.stringify($user.mon_groups)).change()
} }
window.getMonitorGroups = function(){
return $user.mon_groups ? $user.mon_groups : safeJsonParse($user.details.mon_groups)
}
window.reDrawMonGroupsInAccountSettings = function(){ window.reDrawMonGroupsInAccountSettings = function(){
$user.mon_groups = $user.mon_groups ? $user.mon_groups : safeJsonParse($user.details.mon_groups) $user.mon_groups = getMonitorGroups()
var monitorList = Object.values($user.mon_groups).map(function(item){ var monitorList = Object.values($user.mon_groups).map(function(item){
return { return {
value: item.id, value: item.id,

View File

@ -684,7 +684,7 @@ function magnifyStream(options){
function getCardMonitorSettingsFields(formElement){ function getCardMonitorSettingsFields(formElement){
var formValues = {}; var formValues = {};
formValues.details = {} formValues.details = {}
$.each(['name','detail'],function(n,keyType){ $.each(['name','detail','monitor-groups-selected'],function(n,keyType){
formElement.find(`[${keyType}]`).each(function(n,v){ formElement.find(`[${keyType}]`).each(function(n,v){
var el = $(v); var el = $(v);
var key = el.attr(keyType) var key = el.attr(keyType)
@ -697,6 +697,9 @@ function getCardMonitorSettingsFields(formElement){
case'detail': case'detail':
formValues.details[key] = value; formValues.details[key] = value;
break; break;
case'monitor-groups-selected':
formValues.details.groups = value;
break;
case'name': case'name':
formValues[key] = value; formValues[key] = value;
break; break;
@ -708,7 +711,6 @@ function getCardMonitorSettingsFields(formElement){
} }
}) })
}) })
console.log(formValues)
return formValues; return formValues;
} }
function updateMonitor(monitorToPost,callback){ function updateMonitor(monitorToPost,callback){
@ -736,7 +738,23 @@ var miniCardSettingsFields = [
value: monitorAlreadyAdded.details.detector_pam || '0', value: monitorAlreadyAdded.details.detector_pam || '0',
fieldType: 'toggle', fieldType: 'toggle',
} }
} },
function(monitorAlreadyAdded){
var monitorGroups = Object.values($user.mon_groups).map(function(item){
return {
value: item.id,
name: item.name,
selected: monitorAlreadyAdded.details.groups.indexOf(item.id) > -1,
}
});
return {
label: lang['Grouping'],
name: `monitor-groups-selected="${monitorAlreadyAdded.mid}"`,
fieldType: 'select',
attributes: 'multiple',
possible: monitorGroups,
}
},
] ]
function buildMiniMonitorCardBody(monitorAlreadyAdded,monitorConfigPartial,additionalInfo,doOpenVideosInsteadOfDelete){ function buildMiniMonitorCardBody(monitorAlreadyAdded,monitorConfigPartial,additionalInfo,doOpenVideosInsteadOfDelete){
if(!monitorConfigPartial)monitorConfigPartial = monitorAlreadyAdded; if(!monitorConfigPartial)monitorConfigPartial = monitorAlreadyAdded;
@ -758,21 +776,40 @@ function buildMiniMonitorCardBody(monitorAlreadyAdded,monitorConfigPartial,addit
` `
$.each(([]).concat(miniCardSettingsFields),function(n,option){ $.each(([]).concat(miniCardSettingsFields),function(n,option){
option = typeof option === 'function' ? option(monitorAlreadyAdded,monitorConfigPartial,additionalInfo,doOpenVideosInsteadOfDelete) : option option = typeof option === 'function' ? option(monitorAlreadyAdded,monitorConfigPartial,additionalInfo,doOpenVideosInsteadOfDelete) : option
monitorSettingsHtml += `<div class="row mb-2"> var newFieldHtml = '';
<div class="col-md-9"> if((['div']).indexOf(option.fieldType) > -1){
${option.label} switch(option.fieldType){
</div> case'div':
<div class="col-md-3 text-right">` newFieldHtml += `<div id="${option.id}" ${option.attributes || ''} class="${option.class || ''}" style="${option.style || ''}">${option.divContent || ''}</div>`
switch(option.fieldType){ break;
case'toggle': }
monitorSettingsHtml += `<input class="form-check-input" type="checkbox" ${option.value === '1' ? 'checked' : ''} ${option.name.indexOf('=') > -1 ? option.name : `name="${option.name}"`}>` }else{
break; newFieldHtml += `<div class="row mb-2">
case'text': <div class="col-md-9">
monitorSettingsHtml += `<input class="form-control text-center form-control-sm" type="text" ${option.name.indexOf('=') > -1 ? option.name : `name="${option.name}"`} value="${option.value || ''}" placeholder="${option.placeholder || ''}">` ${option.label}
break; </div>
} <div class="col-md-3 text-right">`
monitorSettingsHtml += `</div> switch(option.fieldType){
</div>` case'toggle':
newFieldHtml += `<input class="form-check-input" type="checkbox" ${option.value === '1' ? 'checked' : ''} ${option.name.indexOf('=') > -1 ? option.name : `name="${option.name}"`}>`
break;
case'text':
newFieldHtml += `<input class="form-control text-center form-control-sm" type="text" ${option.name.indexOf('=') > -1 ? option.name : `name="${option.name}"`} value="${option.value || ''}" placeholder="${option.placeholder || ''}">`
break;
case'select':
newFieldHtml += `<select ${option.name.indexOf('=') > -1 ? option.name : `name="${option.name}"`} ${option.id ? `id="${option.id}"` : ''} ${option.attributes || ''} class="form-control form-control-sm ${option.class || ''}" style="${option.style || ''}">`
if(option.possible){
option.possible.forEach(function(item){
newFieldHtml += `<option value="${item.value}" ${item.selected ? 'selected' : ''}>${item.name}</option>`
})
}
newFieldHtml += `</select>`
break;
}
newFieldHtml += `</div>
</div>`
}
monitorSettingsHtml += newFieldHtml;
}) })
monitorSettingsHtml += `</div> monitorSettingsHtml += `</div>
<div class="card-footer text-center"> <div class="card-footer text-center">
@ -825,7 +862,10 @@ $(document).ready(function(){
var monitorId = formElement.attr('data-mid'); var monitorId = formElement.attr('data-mid');
var loadedMonitor = getDbColumnsForMonitor(loadedMonitors[monitorId]) var loadedMonitor = getDbColumnsForMonitor(loadedMonitors[monitorId])
var thisForm = getCardMonitorSettingsFields(formElement); var thisForm = getCardMonitorSettingsFields(formElement);
updateMonitor(mergeDeep({},loadedMonitor,thisForm)) var baseConfig = mergeDeep({},loadedMonitor)
baseConfig.details.groups = [];
var newConfig = mergeDeep(baseConfig,thisForm)
updateMonitor(newConfig)
}) })
.on('click','.card-page-selector',function(e){ .on('click','.card-page-selector',function(e){
e.preventDefault() e.preventDefault()