Changeset 3351
- Timestamp:
- 10/14/10 11:10:26 (14 years ago)
- Location:
- branches/2.2/expressoAdmin1_2
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/2.2/expressoAdmin1_2/inc/class.ldap_functions.inc.php
r3171 r3351 764 764 765 765 if ($recursive == 'true') 766 {767 $lists_search = ldap_search($ldap_conn_following_ref, $context, $lists_filter, $justthese);768 766 $users_search = ldap_search($ldap_conn_following_ref, $context, $users_filter, $justthese); 769 } 770 else 771 { 772 $lists_search = ldap_list($ldap_conn_following_ref, $context, $lists_filter, $justthese); 767 else 773 768 $users_search = ldap_list($ldap_conn_following_ref, $context, $users_filter, $justthese); 774 } 775 769 776 770 /* email lists */ 777 $lists_entries = ldap_get_entries($ldap_conn_following_ref, $lists_search); 778 779 for ($i=0; $i<$lists_entries["count"]; $i++) 780 { 781 $l_tmp[$lists_entries[$i]["mail"][0]] = $lists_entries[$i]["cn"][0]; 782 } 783 784 if (count($l_tmp)) 785 natcasesort($l_tmp); 786 787 $i = 0; 788 $lists = array(); 789 790 $options .= '<option value="-1" disabled>------------------------------ '.$this->functions->lang('email lists').' ------------------------------ </option>'."\n"; 791 if (count($l_tmp)) 792 { 793 foreach ($l_tmp as $mail => $cn) 794 { 795 $options .= "<option value=$mail>$cn</option>"; 796 } 797 unset($l_tmp); 771 if($params['listSearch'] == 'true'){ 772 if ($recursive == 'true') 773 $lists_search = ldap_search($ldap_conn_following_ref, $context, $lists_filter, $justthese); 774 else 775 $lists_search = ldap_list($ldap_conn_following_ref, $context, $lists_filter, $justthese); 776 777 $lists_entries = ldap_get_entries($ldap_conn_following_ref, $lists_search); 778 779 for ($i=0; $i<$lists_entries["count"]; $i++) 780 { 781 $l_tmp[$lists_entries[$i]["mail"][0]] = $lists_entries[$i]["cn"][0]; 782 } 783 784 if (count($l_tmp)) 785 natcasesort($l_tmp); 786 787 $i = 0; 788 $lists = array(); 789 790 $options .= '<option value="-1" disabled>------------------------------ '.$this->functions->lang('email lists').' ------------------------------ </option>'."\n"; 791 if (count($l_tmp)) 792 { 793 foreach ($l_tmp as $mail => $cn) 794 { 795 $options .= "<option value=$mail>$cn</option>"; 796 } 797 unset($l_tmp); 798 } 798 799 } 799 800 … … 2626 2627 return $return; 2627 2628 } 2629 2630 function search_available_users_and_maillist($params) 2631 { 2632 $context = $params['context']; 2633 $recursive = $params['recursive']; 2634 $filtro =utf8_encode($params['filter']); 2635 //Usado para retirar a própria lista das possibilidades de inclusão. 2636 $denied_uidnumber = $params['denied_uidnumber']; 2637 2638 $justthese = array("cn", "uidNumber", "mail"); 2639 2640 $users_filter="(&(phpgwaccounttype=u)(!(phpgwaccountvisible=-1))(phpgwaccountstatus=A)(|(cn=*$filtro*)(mail=$filtro*)))"; 2641 $lists_filter = $denied_uidnumber == '' ? "(&(phpgwAccountType=l)(cn=*$filtro*))" : "(&(phpgwAccountType=l)(!(uidnumber=$denied_uidnumber))(|(cn=*$filtro*)(mail=$filtro*)))"; 2642 2643 $users = Array(); 2644 $lists = Array(); 2645 2646 /* folling referral connection */ 2647 $ldap_conn_following_ref = ldap_connect($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['host']); 2648 if ($ldap_conn_following_ref) 2649 { 2650 ldap_set_option($ldap_conn_following_ref, LDAP_OPT_PROTOCOL_VERSION, 3); 2651 ldap_set_option($ldap_conn_following_ref, LDAP_OPT_REFERRALS, 1); 2652 2653 if ( ($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['acc'] != '') && ($_SESSION['phpgw_info']['expresso']['cc_ldap_server']['pw'] != '') ) 2654 ldap_bind($ldap_conn_following_ref, $_SESSION['phpgw_info']['expresso']['cc_ldap_server']['acc'], $_SESSION['phpgw_info']['expresso']['cc_ldap_server']['pw']); 2655 } 2656 else 2657 return false; 2658 2659 if ($recursive == 'true') 2660 $users_search = ldap_search($ldap_conn_following_ref, $context, $users_filter, $justthese); 2661 else 2662 $users_search = ldap_list($ldap_conn_following_ref, $context, $users_filter, $justthese); 2663 2664 /* email lists */ 2665 if($params['listSearch'] == 'true'){ 2666 if ($recursive == 'true') 2667 $lists_search = ldap_search($ldap_conn_following_ref, $context, $lists_filter, $justthese); 2668 else 2669 $lists_search = ldap_list($ldap_conn_following_ref, $context, $lists_filter, $justthese); 2670 2671 $lists_entries = ldap_get_entries($ldap_conn_following_ref, $lists_search); 2672 2673 for ($i=0; $i<$lists_entries["count"]; $i++) 2674 { 2675 $l_tmp[$lists_entries[$i]["mail"][0]] = $lists_entries[$i]["cn"][0]; 2676 } 2677 2678 if (count($l_tmp)) 2679 natcasesort($l_tmp); 2680 2681 $i = 0; 2682 $lists = array(); 2683 2684 $options .= '<option value="-1" disabled>------------------------------ '.$this->functions->lang('email lists').' ------------------------------ </option>'."\n"; 2685 if (count($l_tmp)) 2686 { 2687 foreach ($l_tmp as $mail => $cn) 2688 { 2689 $options .= "<option value=$mail>$cn</option>"; 2690 } 2691 unset($l_tmp); 2692 } 2693 } 2694 2695 /* users */ 2696 $users_entries = ldap_get_entries($ldap_conn_following_ref, $users_search); 2697 for ($i=0; $i<$users_entries["count"]; $i++) 2698 { 2699 $u_tmp[$users_entries[$i]["mail"][0]] = $users_entries[$i]["cn"][0]; 2700 } 2701 2702 if (count($u_tmp)) 2703 natcasesort($u_tmp); 2704 2705 $i = 0; 2706 $users = array(); 2707 2708 $options .= '<option value="-1" disabled>----------------------------- '.$this->functions->lang('users').' ---------------------------- </option>'."\n"; 2709 2710 if (count($u_tmp)) 2711 { 2712 foreach ($u_tmp as $mail => $cn) 2713 { 2714 $options .= "<option value=$mail class='line-above'>$cn</option>"; 2715 } 2716 unset($u_tmp); 2717 } 2718 2719 ldap_close($ldap_conn_following_ref); 2720 return $options; 2721 } 2722 2628 2723 } 2629 2724 ?> -
branches/2.2/expressoAdmin1_2/inc/class.uimaillists.inc.php
r493 r3351 166 166 function add_maillists() 167 167 { 168 $GLOBALS['phpgw']->js->set_onload('get_available_users(document.forms[0].org_context.value, document.forms[0].ea_check_allUsers.checked);'); 169 168 if($this->current_config['users_auto_search'] == "true"){ 169 $GLOBALS['phpgw']->js->set_onload('get_available_users(document.forms[0].org_context.value, document.forms[0].ea_check_allUsers.checked);'); 170 } 170 171 $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; 171 172 $manager_acl = $this->functions->read_acl($manager_lid); … … 205 206 'combo_manager_org' => $combo_manager_org, 206 207 'combo_all_orgs' => $combo_all_orgs, 207 'defaultDomain' => $this->current_config['expressoAdmin_defaultDomain'] 208 'defaultDomain' => $this->current_config['expressoAdmin_defaultDomain'], 209 'autosearch' => $this->current_config['users_auto_search'], 210 'minNum' => ($this->current_config['min_num_characters'] == "") ? 0:$this->current_config['min_num_characters'] 208 211 ); 209 212 $p->set_var($var); … … 304 307 'phpgwAccountVisible_checked' => $maillist_info['phpgwAccountVisible'] == '-1' ? 'CHECKED' : '', 305 308 'ea_select_usersInMaillist' => $ea_select_usersInMaillist, 306 'defaultDomain' => $this->current_config['expressoAdmin_defaultDomain'] 309 'defaultDomain' => $this->current_config['expressoAdmin_defaultDomain'], 310 'autosearch' => $this->current_config['users_auto_search'], 311 'minNum' => ($this->current_config['min_num_characters'] == "") ? 0:$this->current_config['min_num_characters'] 307 312 ); 308 313 $p->set_var($var); … … 373 378 'accountRestrictive_checked' => $maillist_info['accountRestrictive'] == 'mailListRestriction' ? 'CHECKED' : '', 374 379 'participantCanSendMail_checked'=> $maillist_info['participantCanSendMail'] == 'TRUE' ? 'CHECKED' : '', 375 'ea_select_users_SCL_Maillist' => $ea_select_users_SCL_Maillist 380 'ea_select_users_SCL_Maillist' => $ea_select_users_SCL_Maillist, 381 'autosearch' => $this->current_config['users_auto_search'], 382 'minNum' => ($this->current_config['min_num_characters'] == "") ? 0:$this->current_config['min_num_characters'] 376 383 ); 377 384 $p->set_var($var); -
branches/2.2/expressoAdmin1_2/js/jscode/maillists.js
r482 r3351 157 157 } 158 158 159 function get_available_users(context, recursive) 160 { 161 var handler_get_available_users = function(data) 162 { 163 select_available_users = document.getElementById('ea_select_available_users'); 164 165 //Limpa o select 166 for(var i=0; i<select_available_users.options.length; i++) 167 { 168 select_available_users.options[i] = null; 169 i--; 170 } 171 172 if ((data) && (data.length > 0)) 173 { 174 // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio. 175 select_available_users.innerHTML = ' ' + data; 159 function get_available_users(context, recursive,listSearch) 160 { 161 //Impede chamada recursiva na raiz das organizações 162 if(document.getElementById("autosearch").value == "true"){ 163 if ((recursive) && (document.forms[0].ldap_context.value == document.getElementById('ea_combo_org_maillists').value)) 164 { 165 alert(get_lang('It is not allow select all users from the root organization') + '.'); 166 document.getElementById('ea_check_allUsers').checked = false; 167 168 // Limpa select 169 select_available_users = document.getElementById('ea_select_available_users'); 170 select_available_users.innerHTML = ' '; 176 171 select_available_users.outerHTML = select_available_users.outerHTML; 177 178 select_available_users.disabled = false; 179 select_available_users_clone = document.getElementById('ea_select_available_users').cloneNode(true); 180 document.getElementById('ea_input_searchUser').value = ''; 181 } 182 } 183 184 //Impede chamada recursiva na raiz das organizações 185 if ((recursive) && (document.forms[0].ldap_context.value == document.getElementById('ea_combo_org_maillists').value)) 186 { 187 alert(get_lang('It is not allow select all users from the root organization') + '.'); 188 document.getElementById('ea_check_allUsers').checked = false; 189 190 // Limpa select 191 select_available_users = document.getElementById('ea_select_available_users'); 192 select_available_users.innerHTML = ' '; 193 select_available_users.outerHTML = select_available_users.outerHTML; 194 return; 195 } 196 cExecute ('$this.ldap_functions.get_available_users_and_maillist&context='+context+'&recursive='+recursive+'&denied_uidnumber='+document.forms[0].uidnumber.value, handler_get_available_users); 172 return; 173 } 174 cExecute ('$this.ldap_functions.get_available_users_and_maillist&context='+context+'&recursive='+recursive+'&denied_uidnumber='+document.forms[0].uidnumber.value+'&listSearch='+listSearch, handler_get_available_users); 175 }else 176 document.getElementById('ea_input_searchUser').value = ''; 197 177 } 198 178 … … 321 301 322 302 // Funcoes 323 function optionFinderTimeout(obj)303 /*function optionFinderTimeout(obj) 324 304 { 325 305 clearTimeout(finderTimeout); … … 327 307 oWait.innerHTML = get_lang('Searching') + '...'; 328 308 finderTimeout = setTimeout("optionFinder('"+obj.id+"')",500); 329 } 330 function optionFinder(id) { 309 }*/ 310 311 function optionFinderTimeout(obj, numMin, type, autoSearch,listSearch){ 312 var oWait = document.getElementById("ea_span_searching"); 313 oWait.innerHTML = 'Buscando...'; 314 clearTimeout(finderTimeout); 315 316 if(autoSearch == "True"){ 317 finderTimeout = setTimeout("optionFinderLocal('"+obj.id+"')",600); 318 } 319 else if (obj.value.length >= numMin){ 320 finderTimeout = setTimeout("optionFinderLdap('"+obj.id+"','"+numMin+"','"+type+"','"+listSearch+"')",600); 321 }else { 322 oWait.innerHTML = 'Mínimo de '+numMin+' letras para pesquisa'; 323 var select_available_users_tmp = document.getElementById('ea_select_available_users'); 324 for(var i = 0;i < select_available_users_tmp.options.length; i++) 325 select_available_users_tmp.options[i--] = null; 326 } 327 } 328 var handler_get_available_users = function(data) 329 { 330 select_available_users = document.getElementById('ea_select_available_users'); 331 332 //Limpa o select 333 for(var i=0; i<select_available_users.options.length; i++) 334 { 335 select_available_users.options[i] = null; 336 i--; 337 } 338 339 if ((data) && (data.length > 0)) 340 { 341 // Necessario, pois o IE6 tem um bug que retira o primeiro options se o innerHTML estiver vazio. 342 select_available_users.innerHTML = ' ' + data; 343 select_available_users.outerHTML = select_available_users.outerHTML; 344 345 select_available_users.disabled = false; 346 select_available_users_clone = document.getElementById('ea_select_available_users').cloneNode(true); 347 //document.getElementById('ea_input_searchUser').value = ''; 348 } 349 350 } 351 // Pesquisa LDAP 352 function optionFinderLdap(id,numMin, type,listSearch){ 353 var oWait = document.getElementById("ea_span_searching"); 354 var oText = document.getElementById(id); 355 356 if (oText.value.length < numMin) { 357 oWait.innerHTML = ''; 358 var select_available_users_tmp = document.getElementById('ea_select_available_users'); 359 for(var i = 0;i < select_available_users_tmp.options.length; i++) 360 select_available_users_tmp.options[i--] = null; 361 } 362 363 if (oText.value.length >= numMin){ 364 var context = document.getElementById('ea_combo_org_maillists').value; 365 recursive = document.getElementById("ea_check_allUsers").checked; 366 cExecute ('$this.ldap_functions.search_available_users_and_maillist&context='+(context)+'&recursive='+(recursive)+'&type='+(type == '' ? 'list' : 'search')+'&filter='+oText.value+'&listSearch='+listSearch, handler_get_available_users); 367 oWait.innerHTML = ' '; 368 } 369 } 370 371 function optionFinderLocal(id) { 331 372 var oWait = document.getElementById("ea_span_searching"); 332 373 var oText = document.getElementById(id); -
branches/2.2/expressoAdmin1_2/templates/default/config.tpl
r1867 r3351 150 150 </tr> 151 151 152 <tr bgcolor="{row_on}"> 153 <td>{lang_Do_you_wish_enable_autosearch?}</td> 154 <td> 155 <select id="usersAutoSearch" name="newsettings[users_auto_search]"> 156 <option value="false" {selected_users_auto_search_false}>{lang_No}</option> 157 <option value="true" {selected_users_auto_search_true}>{lang_Yes}</option> 158 </select> 159 </td> 160 </tr> 161 162 <tr bgcolor="{row_off}"> 163 <td>{lang_Minimum_number_of_characters_to_start_the_search_for_participants}</td> 164 <td> 165 <input type="text" id="minNum" value="{value_min_num_characters}" name="newsettings[min_num_characters] " size=2 maxlength=2 /> 166 </td> 167 </tr> 168 152 169 <tr class="th"> 153 170 <td colspan="2" align="center"><b>{lang_Configurations_to_get_nextID_from_another_DB}<br>{lang_Leave_the_host_field_empty_to_use_the_same_DB_of_the_ExpressoLivre}</b></td> -
branches/2.2/expressoAdmin1_2/templates/default/maillists_form.tpl
r621 r3351 14 14 <input type="hidden" name="restrictionsOnEmailLists" value="{restrictionsOnEmailLists}"> 15 15 <input type="hidden" name="defaultDomain" value="{defaultDomain}"> 16 <input type="hidden" id="autosearch" value="{autosearch}"> 16 17 17 18 <tr> … … 62 63 63 64 {lang_organizations}:<br> 64 <select name="org_context" id="ea_combo_org_maillists" onchange="javascript:get_available_users(this.value, ea_check_allUsers.checked );">{combo_all_orgs}</select>65 <select name="org_context" id="ea_combo_org_maillists" onchange="javascript:get_available_users(this.value, ea_check_allUsers.checked,true);">{combo_all_orgs}</select> 65 66 <br> 66 67 <input type="checkbox" name="ea_check_allUsers" id="ea_check_allUsers" onclick="javascript:get_available_users(org_context.value, this.checked);">{lang_show_users_from_all_sub-organizations}. … … 68 69 69 70 {lang_search_user}:<br> 70 <input id="ea_input_searchUser" size="35" autocomplete="off" onkeyup="javascript:optionFinderTimeout(this )"><br>71 <input id="ea_input_searchUser" size="35" autocomplete="off" onkeyup="javascript:optionFinderTimeout(this,{minNum},'search',{autosearch},true)"><br> 71 72 72 73 <font color="red"><span id="ea_span_searching"> </span></font> -
branches/2.2/expressoAdmin1_2/templates/default/maillists_scl.tpl
r483 r3351 12 12 <input type="hidden" name="ldap_context" value="{ldap_context}"> 13 13 <input type="hidden" name="manager_context" value="{manager_context}"> 14 14 <input type="hidden" id="autosearch" value="{autosearch}"> 15 15 <tr> 16 16 <td colspan="3" align="right" bgcolor="{color_bg1}"> … … 39 39 <td valign="bottom" bgcolor="#DDDDDD"> 40 40 {lang_organizations}:<br> 41 <select name="org_context" id="ea_combo_org_maillists" onchange="javascript:get_available_users(this.value, ea_check_allUsers.checked );">{combo_org}</select>41 <select name="org_context" id="ea_combo_org_maillists" onchange="javascript:get_available_users(this.value, ea_check_allUsers.checked,false);">{combo_org}</select> 42 42 43 43 <br> … … 47 47 48 48 {lang_search_user}:<br> 49 <input id="ea_input_searchUser" size="35" autocomplete="off" onkeyup="javascript:optionFinderTimeout(this )"><br>49 <input id="ea_input_searchUser" size="35" autocomplete="off" onkeyup="javascript:optionFinderTimeout(this,{minNum},'search',{autosearch},false)"><br> 50 50 51 51 <font color="red"><span id="ea_span_searching"> </span></font>
Note: See TracChangeset
for help on using the changeset viewer.