diff options
-rw-r--r-- | program/steps/addressbook/ldapsearchform.inc | 35 | ||||
-rw-r--r-- | skins/default/includes/ldapscripts.html | 7 |
2 files changed, 28 insertions, 14 deletions
diff --git a/program/steps/addressbook/ldapsearchform.inc b/program/steps/addressbook/ldapsearchform.inc index f7d7cc9f5..036ade6c8 100644 --- a/program/steps/addressbook/ldapsearchform.inc +++ b/program/steps/addressbook/ldapsearchform.inc @@ -82,23 +82,36 @@ function rcmail_ldap_public_search_form($attrib) $out .= '<tr><td class="title"><label for="' . $field_id . '">' . rep_specialchars_output(rcube_label('ldappublicsearchfield')) . "</label></td><td>" . $search_fields->show() . "</td></tr>\n"; + + $attributes = array('name' => '_ldap_public_search_type', + 'id' => 'rcmfd_ldap_public_search_type'); - $search_type = new checkbox(array('name' => '_ldap_public_search_type', - 'id' => 'rcmfd_ldap_public_search_type', 'value' => 0)); + // if there's only one server, and it doesn't accept fuzzy searches, + // then check and disable the check box - thanks pieter + if ($server_count == 1 && !$server['fuzzy_search']) + { + $attributes['CHECKED'] = 'CHECKED'; + $attributes['disabled'] = 'disabled'; + } + + $search_type = new checkbox($attributes); $out .= '<tr id="ldap_fuzzy_search"><td class="title"><label for="rcmfd_ldap_public_search_type">' . rep_specialchars_output(rcube_label('ldappublicsearchtype')) . "</label></td><td>" . $search_type->show() . "</td></tr>\n"; } - - // store the search fields in a js array for each server - $js = ''; - foreach ($server['search_fields'] as $k => $search_field) - $js .= "'$search_field', "; - - // store whether this server accepts fuzzy search as last item in array - $js .= $server['fuzzy_search'] ? "'fuzzy'" : "'exact'"; - $OUTPUT->add_script("rcmail.set_env('{$server_names[$i]}_search_fields', new Array($js));"); + + if ($server_count > 1) + { + // store the search fields in a js array for each server + $js = ''; + foreach ($server['search_fields'] as $k => $search_field) + $js .= "'$search_field', "; + + // store whether this server accepts fuzzy search as last item in array + $js .= $server['fuzzy_search'] ? "'fuzzy'" : "'exact'"; + $OUTPUT->add_script("rcmail.set_env('{$server_names[$i]}_search_fields', new Array($js));"); + } } // add contact button label text diff --git a/skins/default/includes/ldapscripts.html b/skins/default/includes/ldapscripts.html index 0dfda6cb7..4b911e718 100644 --- a/skins/default/includes/ldapscripts.html +++ b/skins/default/includes/ldapscripts.html @@ -1,16 +1,17 @@ <script type="text/javascript"> var ldap_server_select = document.getElementById('rcfmd_ldap_public_servers'); + if (ldap_server_select) { // attach event to ldap server drop down ldap_server_select.onchange = function() { updateLdapSearchFields(this); return false; } + + // update the fields on page load + updateLdapSearchFields(ldap_server_select); } -// update the fields on page load -updateLdapSearchFields(ldap_server_select); - /** * function to change the attributes of the ldap server search fields select box * this function is triggered by an onchange event in the server select box |