diff options
author | Cesar G <prototech91@gmail.com> | 2014-05-06 17:50:22 -0700 |
---|---|---|
committer | Cesar G <prototech91@gmail.com> | 2014-05-08 08:35:38 -0700 |
commit | 2e025f1655293d3032f04907e5d74a812e1a659a (patch) | |
tree | c600a31cbcbd116e076ba67df399cc5c4db45914 /phpBB | |
parent | d4fc060bcd61228fdf78da4f2d290a7a17546c46 (diff) | |
download | forums-2e025f1655293d3032f04907e5d74a812e1a659a.tar forums-2e025f1655293d3032f04907e5d74a812e1a659a.tar.gz forums-2e025f1655293d3032f04907e5d74a812e1a659a.tar.bz2 forums-2e025f1655293d3032f04907e5d74a812e1a659a.tar.xz forums-2e025f1655293d3032f04907e5d74a812e1a659a.zip |
[ticket/9388] Add support for making <select> options able to toggle settings.
PHPBB3-9388
Diffstat (limited to 'phpBB')
-rw-r--r-- | phpBB/assets/javascript/core.js | 25 | ||||
-rw-r--r-- | phpBB/includes/functions_acp.php | 3 |
2 files changed, 27 insertions, 1 deletions
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 @@ -1476,6 +1476,21 @@ phpbb.toggleDisplay = function(id, action, type) { } /** +* 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 = '<select id="' . $key . '" name="' . $name . '"' . (($size > 1) ? ' size="' . $size . '"' : '') . '>' . $return . '</select>'; + $tpl = '<select id="' . $key . '" name="' . $name . '"' . (($size > 1) ? ' size="' . $size . '"' : '') . $data_toggle . '>' . $return . '</select>'; } else { |