diff --git a/web/pages/admin.ejs b/web/pages/admin.ejs index af63fa70..9c6c53bc 100644 --- a/web/pages/admin.ejs +++ b/web/pages/admin.ejs @@ -181,7 +181,9 @@ $.sU.e.on('click','.permission',function(e){ $.each($.ccio.subs[$.pR.user],function(n,v){ $.pR.e.find('[name="'+n+'"]').val(v) }) - $.pR.e.find('[detail="allmonitors"]').val(e.d.allmonitors).change() + $.pR.e.find('[detail]').each(function(n,v){ + $(v).val(e.d[$(v).attr('detail')]) + }).first().change() $.each(['monitors','monitor_edit','video_delete','video_view'],function(m,b){ if(e.d[b]){ $.each(e.d[b],function(n,v){ @@ -193,37 +195,43 @@ $.sU.e.on('click','.permission',function(e){ //permission window $.pR={e:$('#permissions'),l:$('#permissionsLabel small')};$.pR.f=$.pR.e.find('form') +$.pR.e.on('change','[detail]',function(e){ + e.f=$(this).parents('form'); + var details = $.pR.e.find('[name="details"]') + e.ar = JSON.parse(details.val()) + e.f.find('[detail]').each(function(n,v){ + v = $(v);e.ar[v.attr('detail')] = v.val() + }) + details.val(JSON.stringify(e.ar)) +}) $.pR.e.on('change','[detail="allmonitors"]',function(e){ e.e=$(this), e.mon=$('.permission-view') - e.details=$.pR.e.find('[name="details"]') - e.json=JSON.parse(e.details.val()) - if(e.e.val()=='1'){ + if(e.e.val() === '1'){ e.mon.hide(); - e.json.allmonitors='1'; }else{ e.mon.show() - e.json.allmonitors='0'; $.pR.e.find('[monitor]').first().change() } - e.details.val(JSON.stringify(e.json)) }) $.pR.e.on('click','[check]',function(e){ $(this).parents('.form-group-group').find('select').val($(this).attr('check')).first().change() }) $.pR.e.on('change','[monitor]',function(e){ - e.monitors=[]; - e.key=$(this).attr('monitor'); e.details=$.pR.e.find('[name="details"]') try{e.detail=JSON.parse(e.details.val())}catch(err){e.detail={}} if(!e.detail){e.detail={}} - $.pR.e.find('[monitor="'+e.key+'"]').each(function(n,v){ - v=$(v) - if(v.val()=='1'){ - e.monitors.push(v.attr('mid')) - } - }); - e.detail[e.key]=e.monitors; + $.pR.e.find('[monitor]').each(function(n,kel){ + var monitors = []; + var key = $(kel).attr('monitor') + $.pR.e.find('[monitor="'+key+'"]').each(function(n,v){ + var el = $(v) + if(el.val() === '1'){ + monitors.push(el.attr('mid')) + } + }); + e.detail[key] = monitors + }) e.details.val(JSON.stringify(e.detail)) }); $.pR.f.submit(function(e){ diff --git a/web/pages/blocks/subpermissions.ejs b/web/pages/blocks/subpermissions.ejs index 4801a321..99cc107e 100644 --- a/web/pages/blocks/subpermissions.ejs +++ b/web/pages/blocks/subpermissions.ejs @@ -17,6 +17,17 @@ + +
+

<%-lang['Can Create and Delete Monitors']%>

+
+ +