diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index ae8583ddbf..2502ca6a1c 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -1475,6 +1475,21 @@ phpbb.toggleDisplay = function(id, action, type) { $('#' + id).css('display', ((action === 1) ? type : 'none')); } +/** +* Toggle additional settings based on the selected +* option of select element. +* +* @param jQuery el jQuery select element object. +* @return undefined +*/ +phpbb.toggleSelectSettings = function(el) { + el.children().each(function() { + var option = $(this), + setting = $(option.data('toggle-setting')); + setting.toggle(option.is(':selected')); + }); +}; + /** * Get function from name. * Based on http://stackoverflow.com/a/359910 @@ -1516,6 +1531,16 @@ $(document).ready(function() { // Update browser history URL to point to specific post in viewtopic.php // when using view=unread#unread link. phpbb.history.replaceUrl($('#unread[data-url]').data('url')); + + // Hide settings that are not selected via select element. + $('select[data-toggable-settings]').each(function() { + var select = $(this); + + select.change(function() { + phpbb.toggleSelectSettings(select); + }); + phpbb.toggleSelectSettings(select); + }); }); })(jQuery); // Avoid conflicts with other libraries diff --git a/phpBB/includes/functions_acp.php b/phpBB/includes/functions_acp.php index 2c66f6009c..0d19fc4d6a 100644 --- a/phpBB/includes/functions_acp.php +++ b/phpBB/includes/functions_acp.php @@ -364,8 +364,9 @@ function build_cfg_template($tpl_type, $key, &$new, $config_key, $vars) if ($tpl_type[0] == 'select') { $size = (isset($tpl_type[1])) ? (int) $tpl_type[1] : 1; + $data_toggle = (!empty($tpl_type[2])) ? ' data-toggable-settings="true"' : ''; - $tpl = ''; + $tpl = ''; } else {