diff --git a/htdocs/js/collection-edit.js b/htdocs/js/collection-edit.js new file mode 100644 index 00000000..c8173723 --- /dev/null +++ b/htdocs/js/collection-edit.js @@ -0,0 +1,24 @@ +{ + let element = document.getElementById("fld_is_calendar"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_enabled('fld_is_calendar','=fld_timezone','=fld_schedule_transp','!fld_is_addressbook'); + }); + } + element = document.getElementById("fld_is_addressbook"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_enabled('fld_is_addressbook','!fld_is_calendar'); + }); + } + element = document.getElementById("fld_use_default_privs"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_visible('fld_use_default_privs','!privileges_settings'); + }); + } +} + +toggle_enabled('fld_is_calendar','=fld_timezone','=fld_schedule_transp','!fld_is_addressbook'); +toggle_enabled('fld_is_addressbook','!fld_is_calendar'); +toggle_visible('fld_use_default_privs','!privileges_settings'); diff --git a/htdocs/js/common.js b/htdocs/js/common.js new file mode 100644 index 00000000..99cceb54 --- /dev/null +++ b/htdocs/js/common.js @@ -0,0 +1,73 @@ +function toggle_visible() { + var argv = toggle_visible.arguments; + var argc = argv.length; + + var fld_checkbox = document.getElementById(argv[0]); + + if ( argc < 2 ) { + return; + } + + for (var i = 1; i < argc; i++) { + var block_id = argv[i].substr(1); + var block_logical = argv[i].substr(0,1); + var b = document.getElementById(block_id); + if ( block_logical == '!' ) + b.style.display = (fld_checkbox.checked ? 'none' : ''); + else + b.style.display = (!fld_checkbox.checked ? 'none' : ''); + } +} + +function toggle_privileges() { + var argv = toggle_privileges.arguments; + var argc = argv.length; + + if ( argc < 2 ) { + return; + } + var match_me = argv[0]; + + var set_to = -1; + if ( argv[1] == 'all' ) { + let fields = document.querySelectorAll('[id^=' + match_me + '_]'); + fields.forEach((field) => { + if ( set_to == -1 ) { + set_to = ( field.checked ? 0 : 1 ); + } + field.checked = set_to; + }); + } + else { + for (var i = 1; i < argc; i++) { + var f = document.getElementById( match_me + '_' + argv[i]); + if ( f != null ) { + if ( set_to == -1 ) { + set_to = ( f.checked ? 0 : 1 ); + } + f.checked = set_to; + } + } + } +} + +function toggle_enabled() { + var argv = toggle_enabled.arguments; + var argc = argv.length; + + var fld_checkbox = document.getElementById(argv[0]); + + if ( argc < 2 ) { + return; + } + + for (var i = 1; i < argc; i++) { + var fld_id = argv[i].substr(1); + var fld_logical = argv[i].substr(0,1); + var f = document.getElementById(fld_id); + if ( fld_logical == '=' ) + f.disabled = !fld_checkbox.checked; + else + f.disabled = fld_checkbox.checked; + } +} diff --git a/htdocs/js/edit.js b/htdocs/js/edit.js new file mode 100644 index 00000000..48557049 --- /dev/null +++ b/htdocs/js/edit.js @@ -0,0 +1,42 @@ +const privilege_types = ['grant_privileges', 'ticket_privileges', 'default_privileges']; + +for (const fname of privilege_types) { + let element = document.getElementById("toggle_priv_"+fname+"_all"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_privileges(fname, 'all'); + }); + } + element = document.getElementById("toggle_priv_"+fname+"_rw"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_privileges(fname, 'read', 'write-properties', 'write-content', 'bind', 'unbind', 'read-free-busy', 'read-current-user-privilege-set', + 'schedule-deliver-invite', 'schedule-deliver-reply', 'schedule-query-freebusy', 'schedule-send-invite', 'schedule-send-reply', + 'schedule-send-freebusy' ); + }); + } + element = document.getElementById("toggle_priv_"+fname+"_read"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_privileges(fname, 'read', 'read-free-busy', 'schedule-query-freebusy', 'read-current-user-privilege-set' ); + }); + } + element = document.getElementById("toggle_priv_"+fname+"_fb"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_privileges(fname, 'read-free-busy', 'schedule-query-freebusy' ); + }); + } + element = document.getElementById("toggle_priv_"+fname+"_sd"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_privileges(fname, 'schedule-deliver-invite', 'schedule-deliver-reply', 'schedule-query-freebusy' ); + }); + } + element = document.getElementById("toggle_priv_"+fname+"_ss"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_privileges(fname, 'schedule-send-invite', 'schedule-send-reply', 'schedule-send-freebusy' ); + }); + } +} diff --git a/htdocs/js/setup.js b/htdocs/js/setup.js new file mode 100644 index 00000000..9de677db --- /dev/null +++ b/htdocs/js/setup.js @@ -0,0 +1,8 @@ +{ + let element = document.getElementById("fld_show_phpinfo"); + if (element != null ) { + element.addEventListener('click', function() { + toggle_visible('fld_show_phpinfo','=phpinfo'); + }); + } +} diff --git a/htdocs/setup.php b/htdocs/setup.php index cb42df65..3c465596 100644 --- a/htdocs/setup.php +++ b/htdocs/setup.php @@ -483,30 +483,11 @@ $content_config2
$site_statistics_table