diff options
author | David Colón <david@davidiq.com> | 2012-06-26 00:37:48 -0400 |
---|---|---|
committer | Nathan Guse <nathaniel.guse@gmail.com> | 2013-01-15 23:29:01 -0600 |
commit | babe07caefe8a035f711fd76c38b4dbeb0a8e804 (patch) | |
tree | c7715b2a01240600c3f80405cb5ca6a0ffed193d | |
parent | de541ac13b44d1f52e1ba4bb626b9ec4e124557f (diff) | |
download | forums-babe07caefe8a035f711fd76c38b4dbeb0a8e804.tar forums-babe07caefe8a035f711fd76c38b4dbeb0a8e804.tar.gz forums-babe07caefe8a035f711fd76c38b4dbeb0a8e804.tar.bz2 forums-babe07caefe8a035f711fd76c38b4dbeb0a8e804.tar.xz forums-babe07caefe8a035f711fd76c38b4dbeb0a8e804.zip |
[ticket/10786] Javascript toggle member search panel in memberlist.php
Search functions on the memberlist.php page are now rendered by default and displayed via javascript. If javascript is disabled the page still works as it previously did.
PHPBB3-10786
-rw-r--r-- | phpBB/memberlist.php | 6 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/ajax.js | 13 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/forum_fn.js | 37 | ||||
-rw-r--r-- | phpBB/styles/prosilver/template/memberlist_body.html | 2 | ||||
-rw-r--r-- | phpBB/styles/subsilver2/template/memberlist_body.html | 8 | ||||
-rw-r--r-- | phpBB/styles/subsilver2/template/memberlist_search.html | 41 |
6 files changed, 22 insertions, 85 deletions
diff --git a/phpBB/memberlist.php b/phpBB/memberlist.php index 681e51e3fd..ebc1757810 100644 --- a/phpBB/memberlist.php +++ b/phpBB/memberlist.php @@ -1025,7 +1025,7 @@ switch ($mode) // We validate form and field here, only id/class allowed $form = (!preg_match('/^[a-z0-9_-]+$/i', $form)) ? '' : $form; $field = (!preg_match('/^[a-z0-9_-]+$/i', $field)) ? '' : $field; - if ((in_array($mode, array('', 'searchuser')) || sizeof(array_intersect($request->variable_names(phpbb_request_interface::GET), $search_params)) > 0) && ($config['load_search'] || $auth->acl_get('a_'))) + if ((($mode == '' || $mode == 'searchuser') || sizeof(array_intersect($request->variable_names(phpbb_request_interface::GET), $search_params)) > 0) && ($config['load_search'] || $auth->acl_get('a_'))) { $username = request_var('username', '', true); $email = strtolower(request_var('email', '')); @@ -1377,7 +1377,7 @@ switch ($mode) } // Some search user specific data - if (in_array($mode, array('', 'searchuser')) && ($config['load_search'] || $auth->acl_get('a_'))) + if (($mode == '' || $mode == 'searchuser') && ($config['load_search'] || $auth->acl_get('a_'))) { $group_selected = request_var('search_group_id', 0); $s_group_select = '<option value="0"' . ((!$group_selected) ? ' selected="selected"' : '') . '> </option>'; @@ -1447,7 +1447,7 @@ switch ($mode) 'S_IP_SEARCH_ALLOWED' => ($auth->acl_getf_global('m_info')) ? true : false, 'S_EMAIL_SEARCH_ALLOWED'=> ($auth->acl_get('a_user')) ? true : false, 'S_IN_SEARCH_POPUP' => ($form && $field) ? true : false, - 'S_SEARCH_USER' => ($mode == 'searchuser' || ($mode == '' && $submit)) ? true : false, + 'S_SEARCH_USER' => ($mode == 'searchuser' || ($mode == '' && $submit)), 'S_FORM_NAME' => $form, 'S_FIELD_NAME' => $field, 'S_SELECT_SINGLE' => $select_single, diff --git a/phpBB/styles/prosilver/template/ajax.js b/phpBB/styles/prosilver/template/ajax.js index 8583fb565c..968f57bba2 100644 --- a/phpBB/styles/prosilver/template/ajax.js +++ b/phpBB/styles/prosilver/template/ajax.js @@ -192,6 +192,17 @@ $('#quick-mod-select').change(function () { $('#quickmodform').submit(); }); - +/** +* Toggle the member search panel in memberlist.php. +*/ +$('#member_search').click(function () { + $('#memberlist_search').slideToggle('fast'); + phpbb.ajax_callbacks['alt_text'].call(this); + //Focus on the username textbox if it's available and displayed + if ($('#username').length > 0 && $('#memberlist_search').is(':visible')) { + $('#username').focus(); + } + return false; +}); })(jQuery); // Avoid conflicts with other libraries diff --git a/phpBB/styles/prosilver/template/forum_fn.js b/phpBB/styles/prosilver/template/forum_fn.js index 527a064fa9..995b4b0ab7 100644 --- a/phpBB/styles/prosilver/template/forum_fn.js +++ b/phpBB/styles/prosilver/template/forum_fn.js @@ -434,43 +434,6 @@ function apply_onkeypress_event() } /** -* Toggle a section's visibility status -*/ -function toggle_section(link, panel_id, expand_text, collapse_text) -{ - if (jquery_present) - { - var panel = jQuery('#' + panel_id); - if (panel.is(':visible')) - { - jQuery(link).text(expand_text); - panel.slideUp('fast'); - } - else - { - jQuery(link).text(collapse_text); - panel.slideDown('fast'); - } - } - else - { - var panel = document.getElementById(panel_id); - if (panel.style.display == 'none') - { - link.innerHTML = collapse_text; - panel.style.display = ''; - } - else - { - link.innerHTML = expand_text; - panel.style.display = 'none'; - } - } - - return false; -} - -/** * Detect JQuery existance. We currently do not deliver it, but some styles do, so why not benefit from it. ;) */ var jquery_present = typeof jQuery == 'function'; diff --git a/phpBB/styles/prosilver/template/memberlist_body.html b/phpBB/styles/prosilver/template/memberlist_body.html index 023c0e1e4e..17dc2c33c0 100644 --- a/phpBB/styles/prosilver/template/memberlist_body.html +++ b/phpBB/styles/prosilver/template/memberlist_body.html @@ -30,7 +30,7 @@ <ul class="linklist"> <li> - <!-- IF U_FIND_MEMBER and not S_SEARCH_USER --><a href="{U_FIND_MEMBER}" onclick="return toggle_section(this, 'memberlist_search', '{LA_FIND_USERNAME}', '{LA_HIDE_MEMBER_SEARCH}')">{L_FIND_USERNAME}</a> • <!-- ELSEIF S_SEARCH_USER and U_HIDE_FIND_MEMBER and not S_IN_SEARCH_POPUP --><a href="{U_HIDE_FIND_MEMBER}" onclick="return toggle_section(this, 'memberlist_search', '{LA_FIND_USERNAME}', '{LA_HIDE_MEMBER_SEARCH}')">{L_HIDE_MEMBER_SEARCH}</a> • <!-- ENDIF --> + <!-- IF U_FIND_MEMBER and not S_SEARCH_USER --><a href="{U_FIND_MEMBER}" id="member_search" data-alt-text="{LA_HIDE_MEMBER_SEARCH}">{L_FIND_USERNAME}</a> • <!-- ELSEIF S_SEARCH_USER and U_HIDE_FIND_MEMBER and not S_IN_SEARCH_POPUP --><a href="{U_HIDE_FIND_MEMBER}" id="member_search" data-alt-text="{LA_FIND_USERNAME}">{L_HIDE_MEMBER_SEARCH}</a> • <!-- ENDIF --> <strong style="font-size: 0.95em;"> <!-- BEGIN first_char --> <a href="{first_char.U_SORT}">{first_char.DESC}</a> diff --git a/phpBB/styles/subsilver2/template/memberlist_body.html b/phpBB/styles/subsilver2/template/memberlist_body.html index c2846dd18a..c7ba116d34 100644 --- a/phpBB/styles/subsilver2/template/memberlist_body.html +++ b/phpBB/styles/subsilver2/template/memberlist_body.html @@ -4,9 +4,9 @@ <!-- INCLUDE overall_header.html --> <!-- ENDIF --> -<div class="panel" id="memberlist_search"<!-- IF not S_SEARCH_USER --> style="display: none;"<!-- ENDIF -->> +<!-- IF S_SEARCH_USER --> <!-- INCLUDE memberlist_search.html --> -</div> +<!-- ENDIF --> <!-- IF S_SHOW_GROUP --><!-- INCLUDE memberlist_group.html --><!-- ENDIF --> @@ -21,9 +21,9 @@ <!-- END first_char --> </select> <input type="submit" name="char" value="{L_DISPLAY}" class="btnlite" /></td> <!-- IF U_FIND_MEMBER and not S_SEARCH_USER --> - <td class="genmed" align="{S_CONTENT_FLOW_END}"><a href="{U_FIND_MEMBER}" onclick="return toggle_section(this, 'memberlist_search', '{LA_FIND_USERNAME}', '{LA_HIDE_MEMBER_SEARCH}')">{L_FIND_USERNAME}</a></td> + <td class="genmed" align="{S_CONTENT_FLOW_END}"><a href="{U_FIND_MEMBER}">{L_FIND_USERNAME}</a></td> <!-- ELSEIF S_SEARCH_USER and U_HIDE_FIND_MEMBER and not S_IN_SEARCH_POPUP --> - <td class="genmed" align="{S_CONTENT_FLOW_END}"><a href="{U_HIDE_FIND_MEMBER}" onclick="return toggle_section(this, 'memberlist_search', '{LA_FIND_USERNAME}', '{LA_HIDE_MEMBER_SEARCH}')">{L_HIDE_MEMBER_SEARCH}</a></td> + <td class="genmed" align="{S_CONTENT_FLOW_END}"><a href="{U_HIDE_FIND_MEMBER}">{L_HIDE_MEMBER_SEARCH}</a></td> <!-- ENDIF --> </tr> </table> diff --git a/phpBB/styles/subsilver2/template/memberlist_search.html b/phpBB/styles/subsilver2/template/memberlist_search.html index f1f96e1ecd..fb76cacc79 100644 --- a/phpBB/styles/subsilver2/template/memberlist_search.html +++ b/phpBB/styles/subsilver2/template/memberlist_search.html @@ -1,8 +1,8 @@ <!-- You should retain this javascript in your own template! --> +<!-- IF S_IN_SEARCH_POPUP --> <script type="text/javascript"> // <![CDATA[ -<!-- IF S_IN_SEARCH_POPUP --> function insert_user(user) { opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.value = ( opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.value.length && opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.type == "textarea" ) ? opener.document.forms['{S_FORM_NAME}'].{S_FIELD_NAME}.value + "\n" + user : user; @@ -60,46 +60,9 @@ } } } -<!-- ENDIF --> - - /** - * Toggle a section's visibility status - */ - function toggle_section(link, panel_id, expand_text, collapse_text) - { - if (window.jQuery) - { - var panel = jQuery('#' + panel_id); - if (panel.is(':visible')) - { - jQuery(link).text(expand_text); - panel.slideUp('fast'); - } - else - { - jQuery(link).text(collapse_text); - panel.slideDown('fast'); - } - } - else - { - var panel = document.getElementById(panel_id); - if (panel.style.display == 'none') - { - link.innerHTML = collapse_text; - panel.style.display = ''; - } - else - { - link.innerHTML = expand_text; - panel.style.display = 'none'; - } - } - - return false; - } // ]]> </script> +<!-- ENDIF --> <form method="post" action="{S_MODE_ACTION}" name="search"> |