Changeset 3351


Ignore:
Timestamp:
10/14/10 11:10:26 (10 years ago)
Author:
eduardoalex
Message:

Ticket #1232 - e Ticket #1001. Feitas as correcoes referentes aos tickets

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  
    764764 
    765765                if ($recursive == 'true') 
    766                 { 
    767                         $lists_search = ldap_search($ldap_conn_following_ref, $context, $lists_filter, $justthese); 
    768766                        $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 
    773768                        $users_search = ldap_list($ldap_conn_following_ref, $context, $users_filter, $justthese); 
    774                 } 
    775                  
     769 
    776770                /* 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>------------------------------&nbsp;&nbsp;&nbsp;&nbsp;'.$this->functions->lang('email lists').'&nbsp;&nbsp;&nbsp;&nbsp;------------------------------ </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>------------------------------&nbsp;&nbsp;&nbsp;&nbsp;'.$this->functions->lang('email lists').'&nbsp;&nbsp;&nbsp;&nbsp;------------------------------ </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                        } 
    798799                } 
    799800                 
     
    26262627                return $return; 
    26272628        } 
     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>------------------------------&nbsp;&nbsp;&nbsp;&nbsp;'.$this->functions->lang('email lists').'&nbsp;&nbsp;&nbsp;&nbsp;------------------------------ </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>-----------------------------&nbsp;&nbsp;&nbsp;&nbsp;'.$this->functions->lang('users').'&nbsp;&nbsp;&nbsp;&nbsp;---------------------------- </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 
    26282723} 
    26292724?> 
  • branches/2.2/expressoAdmin1_2/inc/class.uimaillists.inc.php

    r493 r3351  
    166166                function add_maillists() 
    167167                { 
    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                        } 
    170171                        $manager_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; 
    171172                        $manager_acl = $this->functions->read_acl($manager_lid); 
     
    205206                                'combo_manager_org'                     => $combo_manager_org, 
    206207                                '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'] 
    208211                        ); 
    209212                        $p->set_var($var); 
     
    304307                                'phpgwAccountVisible_checked'   => $maillist_info['phpgwAccountVisible'] == '-1' ? 'CHECKED' : '', 
    305308                                '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'] 
    307312                        ); 
    308313                        $p->set_var($var); 
     
    373378                                'accountRestrictive_checked'    => $maillist_info['accountRestrictive'] == 'mailListRestriction' ? 'CHECKED' : '', 
    374379                                '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'] 
    376383                        ); 
    377384                        $p->set_var($var); 
  • branches/2.2/expressoAdmin1_2/js/jscode/maillists.js

    r482 r3351  
    157157} 
    158158 
    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 = '&nbsp;' + data; 
     159function 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 = '&nbsp;'; 
    176171                        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 = '&nbsp;'; 
    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 = ''; 
    197177} 
    198178 
     
    321301 
    322302// Funcoes 
    323 function optionFinderTimeout(obj) 
     303/*function optionFinderTimeout(obj) 
    324304{ 
    325305        clearTimeout(finderTimeout);     
     
    327307        oWait.innerHTML = get_lang('Searching') + '...'; 
    328308        finderTimeout = setTimeout("optionFinder('"+obj.id+"')",500); 
    329 } 
    330 function optionFinder(id) { 
     309}*/ 
     310 
     311function 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} 
     328var 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 = '&nbsp;' + 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 
     352function 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 = '&nbsp;'; 
     368        } 
     369} 
     370 
     371function optionFinderLocal(id) { 
    331372        var oWait = document.getElementById("ea_span_searching"); 
    332373        var oText = document.getElementById(id); 
  • branches/2.2/expressoAdmin1_2/templates/default/config.tpl

    r1867 r3351  
    150150        </tr> 
    151151         
     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         
    152169        <tr class="th"> 
    153170                <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  
    1414                                        <input type="hidden" name="restrictionsOnEmailLists" value="{restrictionsOnEmailLists}"> 
    1515                                        <input type="hidden" name="defaultDomain" value="{defaultDomain}"> 
     16                                        <input type="hidden" id="autosearch" value="{autosearch}"> 
    1617 
    1718                                        <tr> 
     
    6263                                                         
    6364                                                        {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> 
    6566                                                        <br> 
    6667                                                        <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}. 
     
    6869                                                         
    6970                                                        {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> 
    7172                                                         
    7273                                                        <font color="red"><span id="ea_span_searching">&nbsp;</span></font> 
  • branches/2.2/expressoAdmin1_2/templates/default/maillists_scl.tpl

    r483 r3351  
    1212                                        <input type="hidden" name="ldap_context" value="{ldap_context}"> 
    1313                                        <input type="hidden" name="manager_context" value="{manager_context}"> 
    14                                          
     14                                        <input type="hidden" id="autosearch" value="{autosearch}"> 
    1515                                        <tr> 
    1616                                                <td colspan="3" align="right" bgcolor="{color_bg1}"> 
     
    3939                                                <td valign="bottom" bgcolor="#DDDDDD"> 
    4040                                                        {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> 
    4242                                                         
    4343                                                        <br> 
     
    4747                                                         
    4848                                                        {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> 
    5050                                                         
    5151                                                        <font color="red"><span id="ea_span_searching">&nbsp;</span></font> 
Note: See TracChangeset for help on using the changeset viewer.