Changeset 325


Ignore:
Timestamp:
06/24/08 16:45:40 (16 years ago)
Author:
rafaelraymundo
Message:

Alterações realizadas para unificação do ExpressoMail?


r39 | 50673548368 | 2008-06-24 18:17:33 -0300 (Ter, 24 Jun 2008) | 9 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
M /trunk/expressoMail1_2/js/QuickCatalogSearch.js

Os arquivos abaixo sofreram modificacoes para tratar a exibicao do departamento na opcao "Pesquisar" do email.

  • alteracao na funcao catalogsearch() em expressoMail1_2/inc/class.ldap_functions.inc.php
  • alteracao na funcao searchCatalogList em expressoMail1_2/js/QuickCatalogSearch.js

r38 | 98954890059 | 2008-06-24 18:07:11 -0300 (Ter, 24 Jun 2008) | 1 line
Caminhos mudados:

M /trunk/expressoMail1_2/js/rich_text_editor.js

Correcao de traducoes e remocao da variavel defaultDraftsFodler


r35 | 98954890059 | 2008-06-19 21:11:11 -0300 (Qui, 19 Jun 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
M /trunk/expressoMail1_2/js/QuickCatalogSearch.js

Melhoria inseridas pelo Emerson:

Pesquisa por catalogos externos na Lupa(f9).


r34 | 00105772038 | 2008-06-19 19:51:58 -0300 (Qui, 19 Jun 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/templates/default/preferences.tpl

Em preferências do Email foi removida a opção duplicada:

  • Salvar rascunhos automaticamente

r33 | 98954890059 | 2008-06-19 19:23:04 -0300 (Qui, 19 Jun 2008) | 2 lines
Caminhos mudados:

M /trunk/expressoMail1_2/js/draw_api.js

correcao de bug que nao mostrava a cota do usuario ao abrir o expressoMail.


r32 | 98954890059 | 2008-06-19 18:17:39 -0300 (Qui, 19 Jun 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.ScriptS.inc.php
M /trunk/expressoMail1_2/inc/class.imap_functions.inc.php
M /trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
M /trunk/expressoMail1_2/index.php
M /trunk/expressoMail1_2/js/DropDownContacts.js
M /trunk/expressoMail1_2/js/InfoContact.js
M /trunk/expressoMail1_2/js/TreeS.js
M /trunk/expressoMail1_2/js/TreeShow.js
M /trunk/expressoMail1_2/js/abas.js
M /trunk/expressoMail1_2/js/common_functions.js
M /trunk/expressoMail1_2/js/doiMenuData.js
M /trunk/expressoMail1_2/js/drag_area.js
M /trunk/expressoMail1_2/js/draw_api.js
M /trunk/expressoMail1_2/js/globals.js
M /trunk/expressoMail1_2/js/main.js
M /trunk/expressoMail1_2/js/rich_text_editor.js
M /trunk/expressoMail1_2/js/search.js
M /trunk/expressoMail1_2/js/shortcut.js
M /trunk/expressoMail1_2/preferences.php
M /trunk/expressoMail1_2/setup/phpgw_pt-br.lang
M /trunk/expressoMail1_2/setup/setup.inc.php
M /trunk/expressoMail1_2/templates/default/index.tpl
M /trunk/expressoMail1_2/templates/default/preferences.tpl

Corcacoes da celepar do bug das imagens e tabelas


r30 | 00105772038 | 2008-06-05 18:12:17 -0300 (Qui, 05 Jun 2008) | 5 lines
Caminhos mudados:

M /trunk/expressoMail1_2/js/common_functions.js
M /trunk/expressoMail1_2/js/globals.js

  • Foram inseridas funcionalidades para:

globals.js: Extenções de imagens permitidas "allowFileExtensions"

common_functions.js: Alterada a função validateFileExtension para rejeitar arquivos que não sejam imagens no corpo do email


r28 | 98954890059 | 2008-05-28 17:37:52 -0300 (Qua, 28 Mai 2008) | 2 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.imap_functions.inc.php
M /trunk/expressoMail1_2/js/main.js

Alterada a funcao empty_trash() para mudar de Lixeira para imapDefaultTrashFolder.


r27 | 00105772038 | 2008-05-28 17:11:41 -0300 (Qua, 28 Mai 2008) | 1 line
Caminhos mudados:

M /trunk/expressoMail1_2/setup/phpgw_pt-br.lang

Incluida tradução para mensagem de 'alert' ao tentar excluir emails de uma pasta compartilhada


r26 | 98954890059 | 2008-05-28 13:08:26 -0300 (Qua, 28 Mai 2008) | 1 line
Caminhos mudados:

M /trunk/expressoMail1_2/js/main.js

Inserido get_lang na ACL das pastas compartilhadas. Função move_msgs()


r24 | 98954890059 | 2008-05-27 17:53:30 -0300 (Ter, 27 Mai 2008) | 2 lines
Caminhos mudados:

M /trunk/expressoMail1_2/js/preferences.js

Aumentado o tamanho da janela javascript das preferencias do expressoMail.


r23 | 03436989789 | 2008-05-27 17:43:54 -0300 (Ter, 27 Mai 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.imap_functions.inc.php
M /trunk/expressoMail1_2/js/QuickCatalogSearch.js

Substituição de links no email.


r22 | 98954890059 | 2008-05-27 17:07:32 -0300 (Ter, 27 Mai 2008) | 2 lines
Caminhos mudados:

M /trunk/expressoMail1_2/js/draw_api.js

Corrigido um bug na visualizacao das pastas compartilhadas.


r19 | 03436989789 | 2008-05-27 15:37:01 -0300 (Ter, 27 Mai 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.ldap_functions.inc.php

Pesquisa em catalogos externos


r17 | 03436989789 | 2008-05-27 13:18:56 -0300 (Ter, 27 Mai 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
M /trunk/expressoMail1_2/js/QuickCatalogSearch.js

Busca de catálogos externos no email.


r15 | 98954890059 | 2008-05-27 12:19:50 -0300 (Ter, 27 Mai 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
M /trunk/expressoMail1_2/js/QuickCatalogSearch.js

Procura em catálogos externos


r6 | 98954890059 | 2008-05-21 16:14:33 -0300 (Qua, 21 Mai 2008) | 2 lines
Caminhos mudados:

M /trunk/expressoMail1_2/js/draw_api.js

Correção para atualizar a visualização das cotas
de pastas compartilhadas ao mudar de pasta.


r5 | 98954890059 | 2008-05-21 16:02:37 -0300 (Qua, 21 Mai 2008) | 3 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.imap_functions.inc.php
M /trunk/expressoMail1_2/js/draw_api.js

Alterações iniciais do serpro:

-Mostrar quotas das pastas compartilhadas


r4 | 03436989789 | 2008-05-21 13:25:29 -0300 (Qua, 21 Mai 2008) | 10 lines
Caminhos mudados:

M /trunk/expressoMail1_2/inc/class.imap_functions.inc.php
M /trunk/expressoMail1_2/inc/class.ldap_functions.inc.php
M /trunk/expressoMail1_2/index.php
M /trunk/expressoMail1_2/js/common_functions.js
M /trunk/expressoMail1_2/js/filter.js
M /trunk/expressoMail1_2/js/main.js
M /trunk/expressoMail1_2/js/preferences.js
M /trunk/expressoMail1_2/js/rich_text_editor.js
M /trunk/expressoMail1_2/preferences.php
M /trunk/expressoMail1_2/setup/phpgw_pt-br.lang
M /trunk/expressoMail1_2/templates/default/preferences.tpl

Alterações iniciais do sepro:

  • Assinatura automática no corpo das mensagens
  • Fixar assinatura no corpo das mensagens
  • Questão dos Catálogos Externos (Ao clicar em um email o módulo abre nova mensagem)
  • Inserção de imagens em Firefox3
  • Quota nas pastas compartilhadas
  • Traduções nas pastas

Location:
trunk/expressoMail1_2
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r320 r325  
    696696                //Search for emails, then open a new message tab. 
    697697                //$body = @ereg_replace('[a-zA-Z0-9!#$%&\'*+/=?^_`{|}~]+@([.]?[a-zA-Z0-9_/-])*', '<a title=\''.$this->functions->getLang("New Message").' -> \\0\'" onclick="Element(\'msg_number\').value=\'\\0\';new_message(\'new\',\'null\')" href="#">\\0</a>',$body);              
    698                 $matches = array(); 
     698                //$matches = array(); 
    699699                // Verify exception. 
    700                 @preg_match("/<a href=\"notes:\/\/\//",$body,$matches); 
     700                //@preg_match("/<a href=\"notes:\/\/\//",$body,$matches); 
    701701                // It no has exception,then open the link in new window. 
    702                 if(!count($matches)){ 
     702                /*if(!count($matches)){ 
    703703                        $body = @eregi_replace("<a (.*) href=", "<a \\1 target='_blank' href=", $body); 
    704704                        $body = @str_replace("<a href=", "<a target='_blank' href=", $body); 
    705705                        $body = @eregi_replace("target=\"\"", "target='_blank'", $body); 
    706706                        $body = @eregi_replace("target=''", "target='_blank'", $body); 
    707                 } 
     707                }*/ 
     708                $body = preg_replace('/(?<=[\s|(<br>)|\n|\r|;])((http(s?):\/\/((?:[\w]\.?)+(?::[\d]+)?[\/.\-~&=?%;@#,+\w]*))|((?:www?\.)(?:\w\.?)*(?::\d+)?[\/\w.\-~&=?%;@+]*))/i', '<a href="http$3://$4$5" target="_blank">http$3://$4$5</a>', $body); 
    708709                return $body; 
    709710        } 
     
    946947                if (is_array($folders_list)) { 
    947948                        reset($folders_list); 
     949                $ldap = new ldap_functions(); 
    948950                         
    949951                        $i = 0; 
     
    960962                                $result[$i]['folder_name'] = array_pop($tmp_folder_parent); 
    961963                                $result[$i]['folder_name'] = $result[$i]['folder_name'] == 'INBOX' ? 'Inbox' : $result[$i]['folder_name']; 
    962                                  
     964                                if (is_numeric($result[$i]['folder_name']))     { 
     965                                        if ($cn = $ldap->uid2cn($result[$i]['folder_name'])){ 
     966                                                $result[$i]['folder_name'] = $cn; 
     967                                        } 
     968                                } 
     969                                                                 
    963970                                $tmp_folder_parent = implode($this->imap_delimiter, $tmp_folder_parent); 
    964971                                $result[$i]['folder_parent'] = $tmp_folder_parent == 'INBOX' ? '' : $tmp_folder_parent; 
     
    985992                } 
    986993                 
    987                 return array_merge($result2, $this->get_quota()); 
     994                if($mbox_stream) 
     995                        imap_close($mbox_stream); 
     996                return array_merge($result2); 
    988997        } 
    989998         
     
    14081417                                                'folder' => $folder, 
    14091418                                                'new_folder_name' => $new_folder_name, 
    1410                                                 'border_ID' => $params['border_ID']); 
    1411                  
    1412                 // Caso estejamos no box principal, não é necessário pegar a informação da mensagem anterior.            
     1419                                                'border_ID' => $params['border_ID'], 
     1420                                                'status' => true); //Status foi adicionado para validar as permissoes ACL 
     1421                 
     1422                //Este bloco tem a finalidade de averiguar as permissoes para pastas compartilhadas 
     1423        if (substr($folder,0,4) == 'user'){ 
     1424                $acl = $this->getacltouser($folder); 
     1425                /* 
     1426                 *   l - lookup (mailbox is visible to LIST/LSUB commands) 
     1427                 *   r - read (SELECT the mailbox, perform CHECK, FETCH, PARTIAL, SEARCH, COPY from mailbox) 
     1428                 *   s - keep seen/unseen information across sessions (STORE SEEN flag) 
     1429                 *   w - write (STORE flags other than SEEN and DELETED) 
     1430                 *   i - insert (perform APPEND, COPY into mailbox) 
     1431                 *   p - post (send mail to submission address for mailbox, not enforced by IMAP4 itself) 
     1432                 *   c - create (CREATE new sub-mailboxes in any implementation-defined hierarchy) 
     1433                 *   d - delete (STORE DELETED flag, perform EXPUNGE) 
     1434                 *   a - administer (perform SETACL) 
     1435                        */ 
     1436                        if (strpos($acl, "d") === false){ 
     1437                                $return['status'] = false; 
     1438                                return $return; 
     1439                        } 
     1440        } 
     1441                                 
     1442                // Caso estejamos no box principal, nï¿œo ï¿œ necessï¿œrio pegar a informaᅵᅵo da mensagem anterior.                  
    14131443                if (($params['get_previous_msg']) && ($params['border_ID'] != 'null') && ($params['border_ID'] != '')) 
    14141444                        $return['previous_msg'] = $this->get_info_previous_msg($params); 
     
    18941924        } 
    18951925         
    1896         function get_quota(){ 
    1897                  
     1926        function get_quota($params){ 
     1927                $folder_id = $params['folder_id']; 
    18981928                if(!$this->mbox) 
    18991929                        $this->mbox = $this->open_mbox(); 
    19001930                 
    1901                 $quota = imap_get_quotaroot($this->mbox, "INBOX"); 
     1931                $quota = imap_get_quotaroot($this->mbox, $folder_id); 
    19021932                if($this->mbox) 
    19031933                        imap_close($this->mbox); 
     
    19351965                $toaddress = $params['notificationto']; 
    19361966                 
    1937                 $subject = 'Confirmação de leitura: ' . $params['subject']; 
     1967                $subject = 'Confirmaᅵᅵo de leitura: ' . $params['subject']; 
    19381968                $body = 'Sua mensagem: ' . $params['subject'] . '<br>'; 
    19391969                $body .= 'foi lida por: ' . $_SESSION['phpgw_info']['expressomail']['user']['fullname'] . ' &lt;' . $_SESSION['phpgw_info']['expressomail']['user']['email'] . '&gt; em ' . date("d/m/Y H:i"); 
     
    19591989        function empty_trash() 
    19601990        { 
    1961                 $folder = 'INBOX' . $this->imap_delimiter . 'Lixeira'; 
     1991                $folder = 'INBOX' . $this->imap_delimiter . $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder'];  
    19621992                $mbox_stream = $this->open_mbox($folder); 
    19631993                $return = imap_delete($mbox_stream,'1:*'); 
     
    20682098                $before_date = date("m/d/Y", strtotime("-".$params['before_date']." day")); 
    20692099                $criteria =  'BEFORE "'.$before_date.'"'; 
    2070                 $mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter."Lixeira"); 
     2100                $mbox_stream = $this->open_mbox('INBOX'.$this->imap_delimiter.$_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']); 
    20712101                $messages = imap_search($mbox_stream, $criteria, SE_UID); 
    20722102                if (is_array($messages)){ 
     
    20822112        function remove_accents($string) { 
    20832113                return strtr($string,  
    2084                 "?Ó??ó?Ý?úÁÀÃÂÄÇÉÈÊËÍÌ?ÎÏÑÕÔÓÒÖÚÙ?ÛÜ?áàãâäçéèêëíì?îïñóòõôöúù?ûüýÿ",  
     2114                "?ï¿œ??ï¿œ?ï¿œ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵᅵᅵᅵᅵᅵᅵ?ᅵᅵᅵᅵ",  
    20852115                "SOZsozYYuAAAAACEEEEIIIIINOOOOOUUUUUsaaaaaceeeeiiiiinooooouuuuuyy"); 
    20862116        } 
     
    22872317                $return = array(); 
    22882318                $mbox_stream = $this->open_mbox(); 
    2289                 $mbox_acl = imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user); 
     2319                //Alterado, antes era 'imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user); 
     2320                //Afim de tratar as pastas compartilhadas, verificandos as permissoes de operacao sobre as mesmas 
     2321                //No caso de se tratar da caixa do proprio usuario logado, utiliza a sintaxe abaixo 
     2322                if(substr($user,0,4) != 'user') 
     2323                  $mbox_acl = imap_getacl($mbox_stream, 'user'.$this->imap_delimiter.$user); 
     2324                else 
     2325                  $mbox_acl = imap_getacl($mbox_stream, $user); 
    22902326                return $mbox_acl[$this->username]; 
    22912327        } 
     
    23542390                        $msg = $header . $body; 
    23552391                        $email = $_SESSION['phpgw_info']['expressomail']['user']['email']; 
    2356                         $username = $this->username; 
     2392                        //$tmp_file = $tmp_dir . "msg." . $email . '.'. $msg_number . time(); 
     2393                        // maybe we can get it faster with regex, don't know how :'( 
     2394                        $signature = trim(substr($header, strpos($header, 'X-DSPAM-Signature:') + 18)); 
    23572395                        strtok($email, '@'); 
    23582396                        $domain = strtok('@'); 
    23592397 
    2360                         //Encontrar a assinatura do dspam no cabecalho 
    2361                         $v = explode("\r\n", $header); 
    2362                         foreach ($v as $linha){ 
    2363                                 if (eregi("^X-DSPAM-Signature", $linha)) { 
    2364                                          
    2365                                         $args = explode(" ",$linha); 
    2366                                         $signature = $args[1]; 
    2367                                 } 
    2368                         } 
    2369  
    23702398                        // feed dspam 
    2371                         switch($is_spam){ 
    2372                                 case 'true':  $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam']; break; 
    2373                                 case 'false': $cmd = $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham']; break; 
    2374                         } 
    2375                         $tags = array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##'); 
    2376                         $cmd = str_replace($tags,array($email,$username,$domain,$signature),$cmd); 
     2399                        if ($is_spam) 
     2400                                $cmd = str_replace( 
     2401                                                        array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##'),  
     2402                                                        array($email, $this->username, $domain, $signature), $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_spam'] 
     2403                                                ); 
     2404                        else 
     2405                                $cmd = str_replace( 
     2406                                                        array('##EMAIL##', '##USERNAME##', '##DOMAIN##', '##SIGNATURE##'), 
     2407                                                array($email, $this->username, $domain, $signature), $_SESSION['phpgw_info']['server']['expressomail']['expressoMail_command_for_ham'] 
     2408                                        ); 
     2409                         
    23772410                        system($cmd); 
     2411                         
    23782412                } 
    23792413                imap_close($mbox_stream); 
  • trunk/expressoMail1_2/inc/class.ldap_functions.inc.php

    r320 r325  
    1515         
    1616        // usa o host e context do contact center. 
    17         function ldapConnect($refer = false){ 
    18                 $this->ldap_host        = $_SESSION['phpgw_info']['expressomail']['ldap_server']['host']; 
    19                 $this->ldap_context = $_SESSION['phpgw_info']['expressomail']['ldap_server']['dn']; 
    20                 $this->ds                       = ldap_connect($this->ldap_host); 
     17        function ldapConnect($refer = false,$catalogo = 0){ 
     18        include("../contactcenter/setup/external_catalogs.inc.php"); 
     19                if ($catalogo == 0){ 
     20                        $this->ldap_host        = $_SESSION['phpgw_info']['expressomail']['ldap_server']['host']; 
     21                        $this->ldap_context = $_SESSION['phpgw_info']['expressomail']['ldap_server']['dn']; 
     22                        $this->bind_dn = $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc']; 
     23                        $this->bind_dn_pw = $_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']; 
     24                        $this->branch = 'ou';                    
     25                }else { 
     26                         
     27                        $this->ldap_host        =   $external_srcs[$catalogo]['host']; 
     28                        $this->ldap_context =   $external_srcs[$catalogo]['dn']; 
     29                        $this->bind_dn = $external_srcs[$catalogo]['acc']; 
     30                        $this->bind_dn_pw = $external_srcs[$catalogo]['pw']; 
     31                        $this->object_class = $external_srcs[$catalogo]['obj']; 
     32                        $this->base_dn = $external_srcs[$catalogo]['dn']; 
     33                        $this->branch = $external_srcs[$catalogo]['branch']; 
     34 
     35                } 
     36                $this->ds = ldap_connect($this->ldap_host); 
    2137                ldap_set_option($this->ds, LDAP_OPT_PROTOCOL_VERSION, 3); 
    2238                ldap_set_option($this->ds, LDAP_OPT_REFERRALS, $refer); 
    23                 if ($refer) 
    24                 { 
     39                if ($refer){ 
    2540                        ldap_set_rebind_proc($this->ds, ldapRebind); 
    2641                } 
    27                 @ldap_bind($this->ds, $_SESSION['phpgw_info']['expressomail']['ldap_server']['acc'],$_SESSION['phpgw_info']['expressomail']['ldap_server']['pw']);                               
     42                @ldap_bind($this->ds,$this->bind_dn,$this->bind_dn_pw );                                 
     43                 
    2844        } 
    2945 
     
    5874        function quicksearch($params) 
    5975        {        
     76                include_once("../contactcenter/setup/external_catalogs.inc.php"); 
    6077                include_once("class.functions.inc.php"); 
    6178                $functions = new functions;                                              
    6279 
    63                 $search_for     = $params['search_for']; 
     80                $search_for     = utf8_encode($params['search_for']); 
    6481                $field          = $params['field']; 
    6582                $ID                     = $params['ID']; 
    6683                 
     84                $search_for     = explode(" ",$search_for); 
     85                $aux=""; 
     86                foreach ($search_for as $search) 
     87                        { 
     88                        if(!$aux) 
     89                                { 
     90                                $aux=$search; 
     91                                } 
     92                                else 
     93                                { 
     94                                $aux=$aux."*".$search; 
     95                                } 
     96                        } 
     97                $search_for=$aux; 
    6798                $contacts_result = array(); 
    6899                $contacts_result['field'] = $field; 
     
    73104                 
    74105                if ($this->ds) 
    75                 { 
     106                        { 
    76107                        if (($field != 'null') && ($ID != 'null')) 
    77                         { 
    78                                 $filter="(& (|(phpgwAccountType=u)(phpgwAccountType=l)) (|(cn=*$search_for*)(mail=$search_for*)) (!(phpgwaccountvisible=-1)) )"; 
    79                                 $justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible", "uid"); 
    80                         } 
     108                                { 
     109                                $filter="(& (|(phpgwAccountType=u)(phpgwAccountType=l)) (|(cn=*$search_for*)(mail=*$search_for*)) (!(phpgwaccountvisible=-1)) )"; 
     110                                $justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible", "uid", "employeeNumber", "ou"); 
     111                                } 
    81112                        else 
    82                         { 
     113                                { 
    83114                                $filter="(& (phpgwAccountType=u)(cn=*$search_for*) (!(phpgwaccountvisible=-1)) )"; 
    84                                 $justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible", "jpegPhoto", "uid"); 
    85                         } 
    86                          
    87                         $sr=ldap_search($this->ds, $this->ldap_context, $filter, $justthese); 
     115                                $justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible", "jpegPhoto", "uid", "employeeNumber", "ou"); 
     116                                } 
     117                        $sr=ldap_search($this->ds, $this->ldap_context, $filter, $justthese, 0, 201); 
    88118                        $count_entries = ldap_count_entries($this->ds,$sr); 
    89  
     119                         
    90120                        // Get user org dn.                      
    91121                        $user_dn = $_SESSION['phpgw_info']['expressomail']['user']['account_dn']; 
     
    104134                                $this->ldapRootConnect(true); 
    105135                                 
    106                                 $sr=ldap_search($this->ds, $user_sector_dn, $filter, $justthese); 
     136                                $sr=ldap_search($this->ds, $user_sector_dn, $filter, $justthese, 0, 201); 
    107137                                $count_entries = ldap_count_entries($this->ds,$sr); 
    108138                                 
     
    123153                        $tmp = array(); 
    124154                        $tmp_users_from_user_org = array(); 
     155                         
     156                        if (!$quickSearch_only_in_userSector) 
     157                                { 
     158                                $catalogsNum=count($external_srcs); 
     159                                for ($i=0; $i<=count($external_srcs); $i++) 
     160                                        { 
     161                                        if ($external_srcs[$i]["quicksearch"]) 
     162                                                { 
     163                                                $this->ldapConnect(true,$i); 
     164                                                $filter="(|(cn=*$search_for*)(mail=*$search_for*))"; 
     165                                                $justthese = array("cn", "mail", "telephoneNumber", "mobile", "phpgwAccountVisible", "uid", "employeeNumber", "ou"); 
     166                                                $sr=ldap_search($this->ds, $this->ldap_context, $filter, $justthese, 0, 201); 
     167                                                $count_entries = ldap_count_entries($this->ds,$sr); 
     168                                                $search = ldap_get_entries($this->ds, $sr); 
     169                                                for ($i=0; $i<$search["count"]; $i++) 
     170                                                        { 
     171                                                        $info[] = $search[$i]; 
     172                                                        } 
     173                                                $info["count"] = count($info)-1; 
     174                                                } 
     175                                        } 
     176                                } 
     177                         
    125178                        for ($i=0; $i<$info["count"]; $i++) 
    126                         { 
    127                                 // Usuario sempre serao da minha org. 
     179                                { 
    128180                                if ($quickSearch_only_in_userSector) 
    129                                 { 
    130                                         $tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count']] = $info[$i]["cn"][0]; 
    131                                 } 
     181                                        { 
     182                                        $tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]] = utf8_decode($info[$i]["cn"][0]); 
     183                                        } 
    132184                                else 
    133                                 { 
     185                                        { 
    134186                                        if (preg_match("/$user_sector_dn/i", $info[$i]['dn'])) 
    135                                         { 
    136                                                 $tmp_users_from_user_org[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count']] = $info[$i]["cn"][0]; 
     187                                                { 
     188                                                $tmp_users_from_user_org[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]] = utf8_decode($info[$i]["cn"][0]); 
     189                                                } 
     190                                        else 
     191                                                { 
     192                                                $tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count'] . '%' . $info[$i]["employeenumber"][0] . '%' . $info[$i]["ou"][0]] = utf8_decode($info[$i]["cn"][0]); 
     193                                                } 
    137194                                        } 
    138                                         else 
    139                                         { 
    140                                                 $tmp[$info[$i]["mail"][0] . '%' . $info[$i]["telephonenumber"][0] . '%'. $info[$i]["mobile"][0] . '%' . $info[$i]["uid"][0] . '%' . $info[$i]["jpegphoto"]['count']] = $info[$i]["cn"][0]; 
    141                                         } 
    142                                 } 
    143                         } 
     195                                } 
    144196                        natcasesort($tmp_users_from_user_org); 
    145197                        natcasesort($tmp); 
     
    156208                                        $contacts_result[$i] = array(); 
    157209                                        $contacts_result[$i]["cn"] = $cn; 
    158                                         list ($contacts_result[$i]["mail"], $contacts_result[$i]["phone"], $contacts_result[$i]["mobile"]) = split ('%', $info); 
     210                                        list ($contacts_result[$i]["mail"], $contacts_result[$i]["phone"], $contacts_result[$i]["mobile"], $contacts_result[$i]["uid"], $contacts_result[$i]["jpegphoto"], $contacts_result[$i]["employeenumber"], $contacts_result[$i]["ou"]) = split ('%', $info); 
    159211                                        $i++; 
    160212                                } 
     
    272324        } 
    273325 
     326        function get_catalogs(){ 
     327                include("../contactcenter/setup/external_catalogs.inc.php"); 
     328                $catalogs = array(); 
     329                $catalogs[0] = "Catalogo geral";  
     330                foreach ($external_srcs as $key => $valor ){ 
     331                        $catalogs[$key] = $valor['name']; 
     332                } 
     333                return $catalogs; 
     334        } 
    274335        function get_organizations($params){ 
     336 
    275337                $organizations = array(); 
    276                 $referral = $params['referral']; 
    277                 $this->ldapConnect($referral); 
    278                 if ($this->ds) { 
    279                         $filter="ou=*";          
    280                         $justthese = array("ou"); 
    281                         $sr = ldap_list($this->ds, $this->ldap_context, $filter, $justthese); 
    282                         $info = ldap_get_entries($this->ds, $sr); 
    283                          
    284                         for ($i=0; $i<$info["count"]; $i++) 
    285                                 $organizations[$i] = $info[$i]["ou"][0]; 
    286  
    287                         ldap_close($this->ds); 
    288                         sort($organizations);                                    
    289                 } 
    290                 return $organizations; 
    291         } 
    292  
     338                $params['referral']?$referral = $params['referral']:$referral = false; 
     339                $cat = $params['catalog']; 
     340 
     341                $this->ldapConnect($referral,$cat); 
     342 
     343                        if($this->branch != '') { 
     344                                $filter=$this->branch."=*"; 
     345                                $justthese = array("$this->branch"); 
     346                                $sr = ldap_list($this->ds, $this->ldap_context, $filter, $justthese); 
     347                                $info = ldap_get_entries($this->ds, $sr); 
     348 
     349                                for ($i=0; $i<$info["count"]; $i++) 
     350                                        $organizations[$i] = $info[$i]["ou"][0]; 
     351 
     352                                ldap_close($this->ds); 
     353                                sort($organizations); 
     354                                return $organizations; 
     355                        }else{ 
     356                        return null; 
     357                } 
     358        } 
    293359        function get_organizations2($params){ 
    294360                $organizations = array(); 
     
    315381        function catalogsearch($params) 
    316382        {        
    317                 $this->ldapConnect(true); 
    318                 $cn     = $params['search_for'] ? "*".$params['search_for']."*" : "*"; 
    319                 $user_context = "ou=".$params['organization'].",".$this->ldap_context;           
    320                 $max_result       = $params['max_result'] ? $params['max_result'] : '200';               
     383                //$this->ldapConnect(true); 
     384                include("../contactcenter/inc/external_catalogs.inc.php"); 
     385                $cn     = $params['search_for'] ? "*".utf8_encode($params['search_for'])."*" : "*"; 
     386                $max_result       = $params['max_result'] ? $params['max_result'] : '200'; 
     387                $catalog = $params['catalog']; 
    321388                $error = False; 
     389                         
     390                $this->ldapConnect(false,$catalog); 
     391                 
     392                $params['organization'] == 'todos'?$user_context = $this->ldap_context :$user_context = $this->branch."=".$params['organization'].",".$this->ldap_context;               
    322393                 
    323394                if ($this->ds) {                                                                                         
    324                         $justthese = array("cn", "mail", "phpgwaccounttype", "phpgwAccountVisible"); 
    325                         $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(cn=".$cn."))"; 
    326                         $sr=ldap_search($this->ds, $user_context, $filter, $justthese); 
    327                          
     395                        if ($catalog == 0){ 
     396                                //os atributos "employeeNumber" e "ou" foram adicionado ao vetor de busca; 
     397                                $justthese = array("cn", "mail", "phpgwaccounttype", "phpgwAccountVisible", "employeeNumber", "ou"); 
     398                                $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(cn=".$cn."))"; 
     399                                //$user_context = "ou=".$params['organization'].",".$this->ldap_context; 
     400                        }else { 
     401                                //os atributos "employeeNumber" e "ou" foram adicionado ao vetor de busca; 
     402                                $justthese = array("cn", "mail", "employeeNumber", "ou"); 
     403                                $filter="(&(objectClass=".$this->object_class.")(cn=".$cn."))"; 
     404                                //$user_context = $this->branch."=".$params['organization'].",".$external_srcs[$catalog]['dn']; 
     405                        } 
     406                         
     407                        $sr=ldap_search($this->ds, $user_context, $filter, $justthese,0,200); 
    328408                        $count_entries = ldap_count_entries($this->ds,$sr); 
    329409                        if ($count_entries > $max_result){ 
     
    340420                         
    341421                        for ($i=0; $i<$info["count"]; $i++){ 
    342                                 if ($info[$i]["phpgwaccountvisible"][0] == '-1') 
    343                                         continue; 
    344                                 if((strtoupper($info[$i]["phpgwaccounttype"][0]) == 'U') && ($info[$i]["phpgwaccountvisible"][0] != '-1')) 
    345                                         $u_tmp[$info[$i]["mail"][0]] = $info[$i]["cn"][0]; 
     422                                if((!$catalog==0)||(strtoupper($info[$i]["phpgwaccounttype"][0]) == 'U') && ($info[$i]["phpgwaccountvisible"][0] != '-1')) 
     423                                        //aqui eh feita a concatenacao do departamento ao cn; 
     424                                        $u_tmp[$info[$i]["mail"][0]] = utf8_decode($info[$i]["cn"][0]). '%' . $info[$i]["ou"][0]; 
    346425                                else 
    347                                         $g_tmp[$info[$i]["mail"][0]] = $info[$i]["cn"][0]; 
     426                                        $g_tmp[$info[$i]["mail"][0]] = utf8_decode($info[$i]["cn"][0]); 
    348427                        }                                                                                
    349428                         
    350429                        natcasesort($u_tmp); 
    351430                        natcasesort($g_tmp); 
    352                          
     431 
    353432                        $i = 0; 
    354                         $users = array();                        
    355                          
    356                         foreach ($u_tmp as $mail => $cn){                                
    357                                 $users[$i++] = array("name" => $cn, "email" => $mail); 
    358                         } 
     433                        $users = array(); 
     434 
     435 
     436                        foreach ($u_tmp as $mail => $cn){ 
     437 
     438                                $tmp = explode("%", $cn); //explode o cn pelo caracter "%" e joga em $tmp; 
     439                                $name = $tmp[0]; //pega o primeiro item (cn) do vetor resultante do explode acima; 
     440                                $department = $tmp[1]; //pega o segundo item (ou) do vetor resultanto do explode acima; 
     441                                $users[$i++] = array("name" => $name, "email" => $mail, "department" => $department); 
     442 
     443                        } 
     444 
    359445                        unset($u_tmp); 
    360446                         
     
    368454                         
    369455                        return  array('users' => $users, 'groups' => $groups, 'error' => $error); 
    370                 }                                
     456                }else                            
    371457                return null; 
    372458        } 
     
    393479        } 
    394480         
    395         //Busca usuários de um contexto e já retorna as options do select; 
     481        //Busca usuï¿œrios de um contexto e jï¿œ retorna as options do select; 
    396482        function get_available_users($params) 
    397483    { 
    398484        $this->ldapRootConnect(); 
    399         //Monta lista de Grupos e Usuários 
     485        //Monta lista de Grupos e Usuï¿œrios 
    400486        $users = Array(); 
    401487        $groups = Array(); 
     
    449535    } 
    450536 
    451         //Busca usuários de um contexto e já retorna as options do select; 
     537        //Busca usuï¿œrios de um contexto e jï¿œ retorna as options do select; 
    452538        function get_available_users2($params) 
    453539        { 
     
    499585                         
    500586                        $info = ldap_get_entries($this->ds, $sr); 
    501                         return $info[0]["cn"][0]; 
     587                        return utf8_decode($info[0]["cn"][0]); 
    502588                } 
    503589                return false; 
     
    524610                        $info   =       ldap_get_entries($this->ds, $sr); 
    525611                        $info['myname'] = $_SESSION['phpgw_info']['expressomail']['user']['fullname'];                                           
     612                        for ($i = 0;$i < $info["count"]; $i++) 
     613                                $info[$i]['cn'][0] = utf8_decode($info[$i]['cn'][0]); 
    526614                        return $info; 
    527615                } 
     
    546634                         
    547635                        if($entry) {                                             
    548                                 $obj =  array("cn" => ldap_get_values($ds, $entry, "cn"), 
     636                                $obj =  array("cn" => utf8_decode(ldap_get_values($ds, $entry, "cn")), 
    549637                                                  "email" => $params['email'], 
    550638                                                  "uid" => ldap_get_values($ds, $entry, "uid"), 
  • trunk/expressoMail1_2/index.php

    r320 r325  
    4040         
    4141        //Enable/Disable VoIP Service 
    42         $voip_enabled = false; 
     42        $voip_enabled = true; 
    4343 
    4444        // Get Data from ldap_manager and emailadmin. 
     
    6262                'mainscreen_showmail'                           => $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['mainscreen_showmail'] : "0", 
    6363                'signature'                                             => $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature'], 
    64                 'hide_folders'                                          => $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'] : "0",                  
     64                'use_signature'                                         => $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature'], 
     65                        'hide_folders'                                          => $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['hide_folders'] : "0",                  
    6566                'save_in_folder'                                        => $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['save_in_folder'] : "-1", 
    6667                'line_height'                                           => $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'] ? $GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['line_height'] : "30", 
     
    114115       // Set Imap Folder names options 
    115116 
    116     $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']   = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']     ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']             : lang("Trash"); 
    117     $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']  = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'] ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']       : lang("Drafts"); 
    118     $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']    = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']      ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']              : lang("Spam"); 
    119     $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']    = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']      ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']              : lang("Sent"); 
     117    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']   = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']     ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultTrashFolder']             : "Trash"; 
     118    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']  = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder'] ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultDraftsFolder']       : "Drafts"; 
     119    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']    = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']      ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSpamFolder']              : "Spam"; 
     120    $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']    = $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']      ? $_SESSION['phpgw_info']['expressomail']['email_server']['imapDefaultSentFolder']              : "Sent"; 
    120121 
    121122    echo '<script> var special_folders = new Array(4); 
  • trunk/expressoMail1_2/js/QuickCatalogSearch.js

    r271 r325  
    3535                        var cmb = document.createElement("SELECT"); 
    3636                        cmb.id = "select_QuickCatalogSearch"; 
    37                         cmb.style.width = "585px"; 
     37                        cmb.style.width = "685px"; // na comunidade valor eh 585px 
    3838                        cmb.size = "12"; 
    3939                        cmb.onkeypress = function (e) 
     
    134134                        Op.text = data[i].cn + ' (' + data[i].mail + ')'; 
    135135                        if (data[i].phone != '') 
    136                                 Op.text += ' (tel: ' + data[i].phone + ')'; 
     136                                Op.text += ' - ' + data[i].phone; 
     137                        if (data[i].ou != '') 
     138                                Op.text += ' - ' + data[i].ou; // adicionado "data[i].ou" para exibir setor (F9) 
    137139                        Op.value = '"' + data[i].cn + '" ' + '<' + data[i].mail + '>'; 
    138140                        cmb.options.add(Op); 
     141 
    139142                } 
    140143                cmb.options[0].selected = true; 
     
    150153                                                         
    151154                if(! this.arrayWin[div.id]) { 
    152                         div.style.width = "600px"; 
     155                        div.style.width = "700px"; //na comunidade valor eh 600px 
    153156                        div.style.height = "230px"; 
    154157                        var title = get_lang('The results were found in the Global Catalog')+':'; 
     
    223226                el.style.visibility = "hidden"; 
    224227                el.style.position = "absolute"; 
    225                 el.style.width = "495px"; 
     228                el.style.width = "700px"; // na comunidade valor eh 495px 
    226229                el.style.height = is_ie ? "360px" : "375px";             
    227230                el.style.left = "0px"; 
     
    234237                                           '<table border="0" cellpading="0" cellspacing="0">'+ 
    235238                                           '<tr><td>'+get_lang("Select an organization and click on button <b>Search</b>")+'&nbsp;:</td></tr>'+ 
    236                                            '<tr><td><select id="select_organization" name="select_organization"></select>&nbsp;'+ 
    237                                            '<input type="text" id="search_for" name="search_for" value="" size="17" maxlength="20"/>&nbsp;<input type="button" onclick="QuickCatalogSearch.searchCatalogList(true)" class="button" value="'+get_lang('Search')+'">&nbsp;<input type="button" onclick="QuickCatalogSearch.searchCatalogList(false)" class="button" value="'+get_lang('List All')+'"></td></tr>'+ 
     239                                        '<tr><td><select style="width:150px" id="select_catalog" name="select_catalog" onchange="javascript:QuickCatalogSearch.update_organizations();"></select>&nbsp'+ 
     240                                        '<select id="select_organization" style="width:100px" name="select_organization"></select>&nbsp;'+    
     241                                        '<input type="text" id="search_for" name="search_for" value="" size="10" maxlength="15"/>&nbsp;<input type="button" onclick="QuickCatalogSearch.searchCatalogList(true)" class="button" value="'+get_lang('Search')+'">&nbsp;<input style="display:none" type="button" onclick="QuickCatalogSearch.searchCatalogList(false)" class="button" value="'+get_lang('List All')+'"></td></tr>'+ 
    238242                                           '<tr><td><input onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" id="type" type="radio" name="type" value="l"/>'+get_lang('Public Lists')+'&nbsp;&nbsp;<input type="radio" name="type" value="u" onclick="javascript:QuickCatalogSearch.changeOptions(this.value)" checked/>'+get_lang('Users')+'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+ 
    239243                                           '<span style="visibility:hidden;background:#cc4444" id=msg_search>&nbsp;&nbsp;<font face="Verdana" size="1" color="WHITE">'+get_lang('Search in Catalog')+'...</font>&nbsp;</span></td></tr>'+ 
    240244                                           '<tr><td>'+ 
    241                                            '<span id="list_span"><select multiple style="display:none;width:400px" size="14" id="list_values"></select></span>'+ 
    242                                            '<span id="user_span"><select multiple style="width:400px" size="14" id="user_values"></select></span>'+ 
     245                                           '<span id="list_span"><select multiple style="display:none;width:450px" size="14" id="list_values"></select></span>'+ 
     246                                           '<span id="user_span"><select multiple style="width:580px" size="14" id="user_values"></select></span>'+ 
    243247                                           '</td></tr>'+ 
    244248                                           '<tr><td nowrap><center>'+get_lang('Click here to add into the fields')+':&nbsp;<input type="button" class="button" value="'+get_lang('TO')+'" onClick="javascript:QuickCatalogSearch.addContacts(\'to\')">&nbsp;'+ 
     
    291295                win.open(); 
    292296 
    293                 var handler_organizations = function(data){ 
    294                         var user_organization = Element('user_organization').value; 
     297                var handler_catalogs = function(data){ 
     298                        var user_catalog = "Catalogo Geral"; 
    295299 
    296300                        for(i = 0; i < data.length; i++) { 
    297                                 Element('select_organization').options[i] = new Option(data[i],data[i]); 
    298                                 if(user_organization.toUpperCase() == data[i].toUpperCase()) 
    299                                         Element('select_organization').options[i].selected = true; 
    300                         } 
    301                 } 
    302                 cExecute ("$this.ldap_functions.get_organizations&referral=true", handler_organizations); 
    303                  
     301                         
     302                                Element('select_catalog').options[i] = new Option(data[i],i); 
     303                                if(user_catalog.toUpperCase() == data[i].toUpperCase()) 
     304                                        Element('select_catalog').options[i].selected = true; 
     305                        } 
     306                } 
     307                cExecute ("$this.ldap_functions.get_catalogs", handler_catalogs);                
     308 
     309                this.update_organizations(); 
     310         
    304311                var handler_cc_contacts= function(data){ 
    305312                        if(data && data.length > 0){ 
     
    367374        } 
    368375 
     376        emQuickCatalogSearch.prototype.update_organizations = function(){ 
     377 
     378                         
     379                while(Element('select_organization').options.length > 0) { 
     380                        Element('select_organization').remove(0); 
     381                } 
     382                 
     383                 
     384                var handler_org = function(data){ 
     385                        Element('select_organization').options[0] = new Option('todos','todos'); 
     386                        if (data != null){ 
     387                         
     388                        for(x = 0; x < data.length; x++) { 
     389                                Element('select_organization').options[x+1] = new Option(data[x],data[x]); 
     390                                } 
     391                        } 
     392                         
     393                } 
     394                 
     395                cExecute ("$this.ldap_functions.get_organizations&referral=false&catalog="+Element('select_catalog').value, handler_org); 
     396                 
     397        } 
     398 
    369399        emQuickCatalogSearch.prototype.changeOptions = function(type){   
    370400 
     
    428458        emQuickCatalogSearch.prototype.searchCatalogList = function (itemSearch){ 
    429459 
    430                 if(itemSearch && Element('search_for').value.length == 0){ 
    431                         alert(get_lang('No data to search')); 
     460                if(itemSearch && Element('search_for').value.length < 4){ 
     461                        alert(get_lang('your search argument must be longer than 4 characters.')); 
    432462                        Element('search_for').focus(); 
    433463                        return false; 
     
    435465                var organization = Element('select_organization').value;                 
    436466                var search               = itemSearch ? Element('search_for').value : ''; 
    437                 var max_result   = 2000; 
     467                var catalog              = Element('select_catalog').value; 
     468                var max_result   = 300; 
    438469 
    439470                var handler_searchResults = function(data){ 
     
    477508                         
    478509                        for(i = 0; data.users && i < data.users.length; i++) {                   
    479                                 if(is_ie) 
     510                                if(is_ie){ 
    480511                                        arr[i] = '<option value="'+'&quot;'+data.users[i].name+'&quot; &lt;'+data.users[i].email+'&gt;">'+data.users[i].name+' ('+data.users[i].email+')'+'</option>'; 
    481                                 else 
    482                                         user.options[i] = new Option(data.users[i].name+' ('+data.users[i].email+')','"'+data.users[i].name+'" <'+data.users[i].email+'>'); 
     512                                } 
     513                                else{ 
     514 
     515                                /*******************************************************************************************/ 
     516                                /* O resultado pratico do bloco de codigo a seguir eh a exibicao dos valores em tela, 
     517                                ja que vai verificar se o departamento e o email estao vazios ou nulos e a partir dai o 
     518                                resultado apresentado em tela sera exibido de maneira mais apresentavel; 
     519                                */ 
     520                                        //verifica se departamento eh null ou nao; 
     521                                        var departamento_nulo = 'false'; 
     522                                        if((data.users[i].department == null) || (data.users[i].department == '')) { 
     523                                                data.users[i].department = ''; 
     524                                                departamento_nulo = 'true'; 
     525                                        } 
     526                                        else { 
     527                                                data.users[i].department = ' - ' + data.users[i].department; 
     528                                        } 
     529 
     530                                        //verifica se email eh null ou nao; 
     531                                        if((data.users[i].email == null) || (data.users[i].email == '')) { 
     532                                                if(departamento_nulo = 'true') { 
     533                                                        data.users[i].email = ''; 
     534                                                } 
     535                                                else { 
     536                                                        data.users[i].email = ' - '; 
     537                                                } 
     538                                        } 
     539                                        else { 
     540                                                data.users[i].email = ' (' + data.users[i].email + ') '; 
     541                                        } 
     542 
     543                                        user.options[i] = new Option(data.users[i].name+data.users[i].email+data.users[i].department,'"'+data.users[i].name+'" <'+data.users[i].email+'>'); // incluido data.users[i].department para exibir setor na opcao "Pesquisar" do email; 
     544                                } 
    483545                        } 
    484546         
     
    488550 
    489551                Element('msg_search').style.visibility = 'visible'; 
    490                 cExecute ("$this.ldap_functions.catalogsearch&max_result="+max_result+"&organization="+organization+"&search_for="+search, handler_searchResults); 
     552                cExecute ("$this.ldap_functions.catalogsearch&max_result="+max_result+"&organization="+organization+"&search_for="+search+"&catalog="+catalog, handler_searchResults); 
    491553        } 
    492554 
  • trunk/expressoMail1_2/js/common_functions.js

    r320 r325  
    3535        var bar = Element("toolbar"); 
    3636        var offset = 0; 
    37         if(bar.style.visibility != 'hidden')  
    38                 offset = (bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight);      
     37        if(bar.style.visibility != 'hidden') 
     38                offset = (bar.offsetHeight ? bar.offsetHeight :  bar.clientHeight); 
    3939 
    4040        var screenHeight = document.body.clientHeight ? document.body.clientHeight : document.body.offsetHeight; 
     
    5757// END: FUNCTION RESIZE WINDOW 
    5858 
    59 // onUnload edit message 
    60  
    6159var _beforeunload_ = window.onbeforeunload; 
    6260 
     
    7977function get_lang(_key,_arg1,_arg2,_arg3,_arg4) { 
    8078 
    81         if(!array_lang[0]){              
     79        if(!array_lang[0]){ 
    8280                return _key+"*"; 
    8381        } 
    84         _value = "";     
     82        _value = ""; 
    8583        for(i = 0; i < array_lang[0].length;i++){ 
    8684                if(array_lang[0][i] == _key.toLowerCase()) { 
    87                         _value = array_lang[1][i];                                       
     85                        _value = array_lang[1][i]; 
    8886                        break; 
    8987                } 
    90         }        
    91          
     88        } 
     89 
    9290        if(!_value) 
    9391                return _key+"*"; 
    94                          
     92 
    9593        if(_arg1 || _arg2 ||_arg3 || _arg4) { 
    9694                for(j = 1; j <= 4; j++){ 
    9795                        if(eval("_arg"+j)) { 
    98                                 var regExp = new RegExp("%"+j+"");               
     96                                var regExp = new RegExp("%"+j+""); 
    9997                                _value = _value.replace(regExp,eval("_arg"+j)); 
    10098                        } 
    10199                } 
    102100        } 
    103          
     101 
    104102        return _value; 
    105103} 
     
    112110 
    113111// Change the class of message. 
    114 // In refresh, the flags UnRead and UnSeen don't exist anymore.  
     112// In refresh, the flags UnRead and UnSeen don't exist anymore. 
    115113function set_msg_as_read(msg_number, selected){ 
    116114        tr_message = Element(msg_number); 
     
    170168        //Get element tBody. 
    171169        main = document.getElementById("tbody_box"); 
    172                  
     170 
    173171        // Get all TR (messages) in tBody. 
    174172        main_list = main.childNodes; 
    175          
     173 
    176174        return main_list.length; 
    177175} 
     
    180178        div_attachment = document.getElementById("id_div_attachment"); 
    181179        var params = ''; 
    182          
     180 
    183181        if (div_attachment == null){ 
    184182                var div_attachment = document.createElement("DIV"); 
     
    195193 
    196194function download_all_attachments(msg_folder, msg_number){ 
    197         var handler_source = function(data){             
     195        var handler_source = function(data){ 
    198196                download_attachments(null, null, data, null,null,'anexos.zip'); 
    199197        } 
     
    205203        if (! divFiles) 
    206204                return false; 
    207          
     205 
    208206        if (divFiles.lastChild) 
    209207                var countDivFiles = parseInt(divFiles.lastChild.id.split('_')[2]) + 1; 
     
    211209        if (! countDivFiles) 
    212210                var countDivFiles = 1; 
    213          
     211 
    214212        divFile = document.createElement('DIV'); 
    215          
     213 
    216214        var inputFile = document.createElement("INPUT"); 
    217          
     215 
    218216        var tmp_id_border = document.createAttribute('id_border'); 
    219217        tmp_id_border.value = id_border; 
    220          
     218 
    221219        inputFile.setAttributeNode(tmp_id_border); 
    222220        inputFile.id = "inputFile_"+id_border+"_"+countDivFiles; 
     
    226224        inputFile.maxLength = 255; 
    227225        inputFile.name='file_'+countDivFiles; 
    228          
     226 
    229227        divFile.appendChild(inputFile); 
    230          
     228 
    231229        var linkFile = document.createElement("A"); 
    232230        linkFile.id = "linkFile_"+id_border+"_"+countDivFiles; 
    233231        linkFile.href='javascript:void(0)'; 
    234232        linkFile.onclick=function () {removeFile(this.id.replace("link","div")); return false;}; 
    235         linkFile.innerHTML=get_lang("Remove");   
     233        linkFile.innerHTML=get_lang("Remove"); 
    236234        //divFile.innerHTML += "&nbsp;&nbsp;"; 
    237235        divFile.appendChild(linkFile); 
    238         divFile.id = "divFile_"+id_border+"_"+countDivFiles;     
     236        divFile.id = "divFile_"+id_border+"_"+countDivFiles; 
    239237        divFiles.appendChild(divFile); 
    240238} 
     
    289287// Funcao usada para escrever mensagem 
    290288// notimeout = True : mensagem nao apaga 
    291 function write_msg(msg, notimeout){      
    292          
     289function write_msg(msg, notimeout){ 
     290 
    293291        if (setTimeout_write_msg) 
    294292                clearTimeout(setTimeout_write_msg); 
    295          
     293 
    296294        var msg_div = Element('em_div_write_msg'); 
    297295        var old_divStatusBar = Element("divStatusBar"); 
     
    304302                msg_div.style.display = 'none'; 
    305303                old_divStatusBar.parentNode.insertBefore(msg_div,old_divStatusBar); 
    306         }        
     304        } 
    307305        msg_div.innerHTML = '<table bgcolor="#f7f8fa" width=100% cellspacing="0" cellpadding="0" border="0"><tbody><tr><th width="40%"></th><th noWrap class="action_info_th">'+msg+'</th><th width="40%"></th></tr></tbody></table>'; 
    308306        old_divStatusBar.style.display = 'none'; 
    309         msg_div.style.display = '';      
     307        msg_div.style.display = ''; 
    310308        // Nao ponha var na frente!! jakjr 
    311309        handle_write_msg = function(){ 
     
    314312                                clean_msg(); 
    315313                        else 
    316                                 write_msg(old_msg, true);                        
     314                                write_msg(old_msg, true); 
    317315                } 
    318316                catch(e){} 
     
    330328        if(msg_div) 
    331329                msg_div.style.display = 'none'; 
    332         old_divStatusBar.style.display = '';     
     330        old_divStatusBar.style.display = ''; 
    333331} 
    334332 
     
    373371        var quickSearchKeyBegin; 
    374372        var quickSearchKeyEnd; 
    375          
     373 
    376374        var handler_emQuickSearch = function(data) 
    377375        { 
     
    380378                        window_DropDownContacts.style.visibility = 'hidden'; 
    381379                } 
    382                  
     380 
    383381                if ((!data.status) && (data.error == "many results")){ 
    384382                        alert(get_lang('More than %1 results. Please, try to refine your search.',200)); 
    385383                        return false; 
    386384                } 
    387                          
     385 
    388386                if (data.length > 0){ 
    389387                        if ((field != 'null') && (ID != 'null')) 
     
    402400                return true; 
    403401        } 
    404          
     402 
    405403        if ((field != 'null') && (ID != 'null')) 
    406404        { 
    407                 Element(field +'_'+ ID).focus(); //necessário para o IE. 
     405                Element(field +'_'+ ID).focus(); //necessï¿œrio para o IE. 
    408406                var i = getPosition(Element(field +'_'+ ID)); //inputBox.selectionStart; 
    409407                var j = --i; 
     
    422420        else 
    423421                var search_for = emailList; 
    424          
     422 
    425423        if (search_for.length < 4){ 
    426424                alert(get_lang('Your search argument must be longer than 4 characters.')); 
    427425                return false; 
    428426        } 
    429          
     427 
    430428        cExecute ("$this.ldap_functions.quicksearch&search_for="+search_for+"&field="+field+"&ID="+ID, handler_emQuickSearch); 
    431429} 
     
    475473 
    476474function url_encode(str){ 
    477     var hex_chars = "0123456789ABCDEF";  
    478     var noEncode = /^([a-zA-Z0-9\_\-\.])$/;  
    479     var n, strCode, hex1, hex2, strEncode = "";  
    480  
    481     for(n = 0; n < str.length; n++) {  
    482         if (noEncode.test(str.charAt(n))) {  
    483             strEncode += str.charAt(n);  
    484         } else {  
    485             strCode = str.charCodeAt(n);  
    486             hex1 = hex_chars.charAt(Math.floor(strCode / 16));  
    487             hex2 = hex_chars.charAt(strCode % 16);  
    488             strEncode += "%" + (hex1 + hex2);  
    489         }  
    490     }  
    491     return strEncode;  
    492 }   
    493  
    494 function url_decode(str) {  
    495  
    496         var n, strCode, strDecode = "";  
    497         for (n = 0; n < str.length; n++) {  
    498             if (str.charAt(n) == "%") {  
    499                 strCode = str.charAt(n + 1) + str.charAt(n + 2);  
    500                 strDecode += String.fromCharCode(parseInt(strCode, 16));  
    501                 n += 2;  
    502             } else {  
    503                 strDecode += str.charAt(n);  
    504             }  
    505         }  
    506         return strDecode;  
    507 }   
     475    var hex_chars = "0123456789ABCDEF"; 
     476    var noEncode = /^([a-zA-Z0-9\_\-\.])$/; 
     477    var n, strCode, hex1, hex2, strEncode = ""; 
     478 
     479    for(n = 0; n < str.length; n++) { 
     480        if (noEncode.test(str.charAt(n))) { 
     481            strEncode += str.charAt(n); 
     482        } else { 
     483            strCode = str.charCodeAt(n); 
     484            hex1 = hex_chars.charAt(Math.floor(strCode / 16)); 
     485            hex2 = hex_chars.charAt(strCode % 16); 
     486            strEncode += "%" + (hex1 + hex2); 
     487        } 
     488    } 
     489    return strEncode; 
     490} 
     491 
     492function url_decode(str) { 
     493 
     494        var n, strCode, strDecode = ""; 
     495        for (n = 0; n < str.length; n++) { 
     496            if (str.charAt(n) == "%") { 
     497                strCode = str.charAt(n + 1) + str.charAt(n + 2); 
     498                strDecode += String.fromCharCode(parseInt(strCode, 16)); 
     499                n += 2; 
     500            } else { 
     501                strDecode += str.charAt(n); 
     502            } 
     503        } 
     504        return strDecode; 
     505} 
    508506 
    509507 
     
    530528                        var Lp=obj.createTextRange(); 
    531529                } 
    532                  
     530 
    533531                Lp.setEndPoint("EndToStart",M); 
    534532                var rb=Lp.text.length; 
    535                  
     533 
    536534                if(rb > obj.value.length) 
    537535                { 
     
    543541 
    544542function trim(inputString) { 
    545    if (typeof inputString != "string")  
     543   if (typeof inputString != "string") 
    546544        return inputString; 
    547        
     545 
    548546   var retValue = inputString; 
    549547   var ch = retValue.substring(0, 1); 
    550    while (ch == " ") {  
     548   while (ch == " ") { 
    551549          retValue = retValue.substring(1, retValue.length); 
    552550          ch = retValue.substring(0, 1); 
    553551   } 
    554552   ch = retValue.substring(retValue.length-1, retValue.length); 
    555    while (ch == " ") {  
     553   while (ch == " ") { 
    556554          retValue = retValue.substring(0, retValue.length-1); 
    557555          ch = retValue.substring(retValue.length-1, retValue.length); 
    558556   } 
    559    while (retValue.indexOf("  ") != -1) {  
    560           retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length);  
     557   while (retValue.indexOf("  ") != -1) { 
     558          retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); 
    561559   } 
    562    return retValue;  
     560   return retValue; 
    563561} 
    564562 
    565563function increment_folder_unseen(){ 
    566564        var folder_id = get_current_folder(); 
    567          
     565 
    568566        var folder_unseen = Element('dftree_'+folder_id+'_unseen'); 
    569567        if (folder_unseen) 
     
    581579function decrement_folder_unseen(){ 
    582580        var folder_id = get_current_folder(); 
    583          
     581 
    584582        var folder_unseen = Element('dftree_'+folder_id+'_unseen'); 
    585583        if(!folder_unseen) 
     
    605603        var strTemp = ""; 
    606604        var iTemp = 0; 
    607          
     605 
    608606        if(v_length < 1) 
    609607                return ""; 
    610608 
    611609        var v_length = value ? value.length : 0; 
    612          
     610 
    613611        while(iTemp < v_length){ 
    614612                if(value && value.charAt(iTemp) != w_space){ 
     
    617615                } 
    618616                iTemp++; 
    619         }        
     617        } 
    620618        return strTemp; 
    621619} 
     
    673671        var main_list = main.childNodes; 
    674672        var len_main_list = main_list.length; 
    675          
     673 
    676674        if (select) 
    677675        { 
  • trunk/expressoMail1_2/js/draw_api.js

    r320 r325  
    3434//                                      } 
    3535                                        Element('new_m').innerHTML = data[i].folder_unseen ? '<font color="RED">'+data[i].folder_unseen+'</font>' : 0; 
    36                                         draw_paging(Element('tot_m').innerHTML); 
     36                                        draw_paging(Element('tot_m').innerHTML);                 
    3737                                } 
    3838                        } 
     
    114114                draw_tree_folders(data); 
    115115                if(data) { 
    116                         build_quota(data);                       
     116                        update_quota('INBOX');                   
    117117                        var f_unseen = Element('dftree_'+get_current_folder()+'_unseen'); 
    118118                        if(f_unseen && f_unseen.innerHTML) 
     
    148148                        Element("tot_m").innerHTML = data.num_msgs; 
    149149                        update_menu(); 
     150                        update_quota(folder); 
    150151                        return true; 
    151152                } 
     
    156157 
    157158function open_folder(folder, folder_name){ 
    158         if (get_current_folder()!= folder) 
    159         { 
     159        if (get_current_folder() != folder) { 
    160160                current_folder = folder; 
    161                 var handler_draw_box = function(data) 
    162                 { 
    163                         if(!verify_session(data)) 
    164                                 return false; 
    165                         numBox++; 
    166                         create_border(folder_name,numBox.toString()); 
    167                         draw_box(data, current_folder, false); 
    168                         alternate_border(numBox); 
    169                         return true; 
    170                 } 
    171                 cExecute ("$this.imap_functions.get_range_msgs2&folder="+current_folder+"&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type="+sort_box_type+ "&search_box_type="+ search_box_type +"&sort_box_reverse="+sort_box_reverse+"", handler_draw_box); 
     161                var handler_draw_box = function(data){ 
     162                        if (!verify_session(data))  
     163                                return; 
     164                        Element("border_id_0").innerHTML = "&nbsp;" + lang_folder(folder_name) + '&nbsp;<font face="Verdana" size="1" color="#505050">[<span id="new_m">&nbsp;</span> / <span id="tot_m"></span>]</font>'; 
     165                        draw_box(data, current_folder); 
     166                        draw_paging(data.num_msgs); 
     167                        Element("tot_m").innerHTML = data.num_msgs; 
     168                        update_menu(); 
     169                        update_quota(folder); 
     170                        alternate_border(0); 
     171                } 
     172                cExecute("$this.imap_functions.get_range_msgs2&folder=" + current_folder + "&msg_range_begin=1&msg_range_end=" + preferences.max_email_per_page + "&sort_box_type=" + sort_box_type + "&search_box_type=" + search_box_type + "&sort_box_reverse=" + sort_box_reverse + "", handler_draw_box); 
    172173        } 
    173174        else 
    174                 alternate_border(numBox); 
    175         return true; 
     175                alternate_border(0); 
    176176} 
    177177 
     
    18451845        } 
    18461846        else{ 
     1847        div.innerHTML = null; 
    18471848        value = data['quota_percent']; 
    18481849        q_used = data['quota_used']; 
     
    19131914} 
    19141915 
    1915 function update_quota(){         
    1916         cExecute ("$this.imap_functions.get_quota",build_quota); 
     1916function update_quota(folder_id){        
     1917        cExecute ("$this.imap_functions.get_quota&folder_id="+folder_id,build_quota); 
    19171918} 
    19181919 
  • trunk/expressoMail1_2/js/filter.js

    r271 r325  
    220220        } 
    221221 
     222        /* 
     223         * Corrige bug 65, solução: desabilitar radio3 e field6 e desmarcar radio3 (ação de rejeição) 
     224         * quando a caixa de seleção para manter o e-mail na caixa de entrada do usuário for selecionada 
     225         */ 
     226        cfilter.prototype.disable_radio3 =  function(){ 
     227 
     228                radio3 = Element('radio3'); 
     229                field6 = Element('field6'); 
     230                cb2 = Element('checkBox2'); 
     231 
     232                if (cb2.checked){ 
     233                        radio3.disabled = true; 
     234                        field6.disabled = true; 
     235 
     236                        if (radio3.checked){ 
     237                                radio3.checked = false; 
     238                        } 
     239                } 
     240                else{ 
     241                        radio3.disabled = false; 
     242                        field6.disabled = false; 
     243                } 
     244 
     245        } 
     246 
    222247        cfilter.prototype.forms_ = function(){ 
    223248                        var form   = ""; 
    224249                        form       = "<div id='div_rule' style='display:none'><table id='table_rule' border='0' cellpading='0' cellspacing='0' width='100%'>"+ 
    225250                                                 "<tr><td colspan='2'><input type='checkBox' id='checkBox1' name='checkb'>"+get_lang('Also check message against next rule') + "</td></tr>"+ 
    226                                                  "<tr><td colspan='2'><input type='checkBox' id='checkBox2' name='checkb'>"+get_lang('Keep a copy of the message at your Inbox')+ "</td><tr>"+ 
     251                                                 "<tr><td colspan='2'><input type='checkBox' id='checkBox2' onclick='filter.disable_radio3();' name='checkb'>"+get_lang('Keep a copy of the message at your Inbox')+ "</td><tr>"+ 
    227252                                                 "<tr><td colspan='2'><hr size='1' width='100%'></td></tr><tr>"+ 
    228253                                                 "<td rowspan='4' width='20%'>"+get_lang('Coincident')+"<br><select id='select_rules' name='select_rules'>"+ 
  • trunk/expressoMail1_2/js/main.js

    r320 r325  
    316316                                return false; 
    317317                        } 
     318                //Este bloco verifica as permissoes ACL sobre pastas compartilhadas 
     319                if(data.status == false){ 
     320                        alert(get_lang("You don't have permission for this operation in this shared folder!")); 
     321                        return false; 
     322                } 
    318323 
    319324 
     
    506511                        var body = Element("body_" + new_border_ID); 
    507512                        body.contentWindow.document.open(); 
    508                         body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>"); 
     513                        // Insert the signature automaticaly at message body if use_signature preference is set 
     514                        if (preferences.use_signature){  
     515                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + preferences.signature.replace(/\n/g, "<br>") + "</body></html>"); 
     516                        } 
     517                        else{  
     518                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>"); 
     519                        } 
    509520                        body.contentWindow.document.close(); 
    510521                        body.contentWindow.document.designMode = "on"; 
     
    529540                        var body = Element("body_" + new_border_ID); 
    530541                        body.contentWindow.document.open(); 
    531                         body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>"+block_quoted_body+"</body></html>"); 
     542                        // Insert the signature automaticaly at message body if use_signature preference is set 
     543                        if (preferences.use_signature) { 
     544                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + preferences.signature.replace(/\n/g, "<br>") + "</body></html>" + block_quoted_body + "</body></html>"); 
     545                        } 
     546                        else { 
     547                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + block_quoted_body + "</body></html>"); 
     548                        } 
    532549                        body.contentWindow.document.close(); 
    533550                        body.contentWindow.document.designMode = "on"; 
     
    568585                        var body = Element("body_" + new_border_ID); 
    569586                        body.contentWindow.document.open(); 
    570                         body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>"); 
     587                        // Insert the signature automaticaly at message body if use_signature preference is set 
     588                        if (preferences.use_signature) { 
     589                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + preferences.signature.replace(/\n/g, "<br>") + "</body></html>"); 
     590                        } 
     591                        else { 
     592                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>"); 
     593                        } 
    571594                        body.contentWindow.document.close(); 
    572595                        body.contentWindow.document.designMode = "on"; 
     
    607630                        var body = document.getElementById("body_" + new_border_ID); 
    608631                        body.contentWindow.document.open(); 
    609                         body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>"+block_quoted_body+"</body></html>"); 
     632                        // Insert the signature automaticaly at message body if use_signature preference is set 
     633                        if (preferences.use_signature) { 
     634                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + preferences.signature.replace(/\n/g, "<br>") + "</body></html>" + block_quoted_body + "</body></html>"); 
     635                        } 
     636                        else { 
     637                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + block_quoted_body + "</body></html>"); 
     638                        } 
    610639                        body.contentWindow.document.close(); 
    611640                        body.contentWindow.document.designMode = "on"; 
     
    649678                        var body = Element("body_" + new_border_ID); 
    650679                        body.contentWindow.document.open(); 
    651                         body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>"+make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc)+"</body></html>"); 
     680                        // Insert the signature automaticaly at message body if use_signature preference is set 
     681                        if (preferences.use_signature) { 
     682                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + preferences.signature.replace(/\n/g, "<br>") + "</body></html>" + make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc) + "</body></html>"); 
     683                        } 
     684                        else { 
     685                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + make_forward_body(data.body, data.to, data.date, data.subject, data.to_all, data.cc) + "</body></html>"); 
     686                        } 
    652687                        body.contentWindow.document.close(); 
    653688                        body.contentWindow.document.designMode = "on"; 
     
    676711                        var body = document.getElementById("body_" + new_border_ID); 
    677712                        body.contentWindow.document.open(); 
    678                         body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>"); 
     713                        // Insert the signature automaticaly at message body if use_signature preference is set 
     714                        if (preferences.use_signature) { 
     715                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'>" + "<br>" + preferences.signature.replace(/\n/g, "<br>") + "</body></html>"); 
     716                        } 
     717                        else { 
     718                                body.contentWindow.document.write("<html><body bgcolor='#FFFFFF'></body></html>"); 
     719                        } 
    679720                        body.contentWindow.document.close(); 
    680721                        body.contentWindow.document.designMode = "on"; 
     
    9931034                watch_changes_in_msg(border_id); 
    9941035                 
    995                 write_msg(get_lang('Your message was save as draft in folder %1.', folder_name)); 
     1036                write_msg(get_lang('Your message was save as draft in folder %1.', lang_folder(folder_name))); 
    9961037        }                
    9971038} 
     
    12641305                tree_folders.getNodeById('INBOX'+cyrus_delimiter+trashfolder).alter({caption: get_lang("Trash")}); 
    12651306                tree_folders.getNodeById('INBOX'+cyrus_delimiter+trashfolder)._refresh(); 
    1266                 update_quota(); 
     1307                update_quota(get_current_folder()); 
    12671308                if (data) 
    12681309                        write_msg(get_lang('Your Trash folder was empty.')); 
  • trunk/expressoMail1_2/js/preferences.js

    r271 r325  
    7777                                "<tr><td> - " + get_lang("Use shortcuts?") + "</td>"+ 
    7878                                "<td><input type='checkBox' id='use_shortcuts' name='use_shortcuts'></td></tr>"+ 
     79                                "<tr><td nowrap> - " + get_lang('Insert signature automatically in new messages?') + "</td>"+ 
     80                                "<td><input type='checkBox' id='use_signature' name='use_signature'></td>"+ 
     81                                "</tr>"+ 
    7982                                "<tr><td colspan='2'> - " + get_lang('Signature') + "<br>"+ 
    8083                                "<textarea id='txt_signature' name='txt_signature' rows='3' cols='59'></textarea></td>"+ 
     
    129132                        for(var i=0; i < sel_size_font.options.length; i++){ 
    130133                                if(sel_size_font.options[i].value == preferences.font_size){sel_size_font.options[i].selected = true;} 
     134                        } 
     135                var use_signature = Element("use_signature"); 
     136                        if( preferences.use_signature == 1){ 
     137                                use_signature.checked = true; 
    131138                        } 
    132139                var txt_signature = Element("txt_signature"); 
     
    169176            preferences.line_height = Element("sel_height_line").value; 
    170177                preferences.font_size = Element("sel_size_font").value; 
     178                preferences.use_signature = Element("use_signature").checked ? 1 : 0; 
    171179                preferences.signature = Element("txt_signature").value; 
    172180                preferences.use_shortcuts = Element("use_shortcuts").checked ? 1 : 0; 
     
    217225                document.getElementById('check_menu').checked = false; 
    218226                document.getElementById("sel_name_box").options[0].selected = true; 
     227                document.getElementById("check_use_signature").checked = false;          
    219228                document.getElementById('txt_signature').value = ""; 
    220229        } 
     
    225234                if(! this.prefeW[div.id]) { 
    226235                        div.style.height = is_ie ? "385px" : "370px"; 
    227                         div.style.width = "510px"; 
     236                        div.style.width = "515px"; 
    228237                        div.style.visibility = "hidden"; 
    229238                        div.style.position = "absolute"; 
    230239                        div.style.paddingLeft = "10px";                  
    231240                        var title = get_lang("ExpressoMail 1.2 Configuration"); 
    232                         var wHeight = div.offsetHeight + "px"; 
    233                         var wWidth =  div.offsetWidth   + "px"; 
     241                        var wHeight = "420px"; 
     242                        var wWidth =  "530px"; 
    234243 
    235244                        win = new dJSWin({                       
  • trunk/expressoMail1_2/preferences.php

    r271 r325  
    5858                        $GLOBALS['phpgw']->template->set_var('checked_auto_save_draft',''); 
    5959 
     60                // Insert new expressoMail preference use_signature: defines if the signature will be automatically inserted 
     61                // at the e-mail body 
     62                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature']) 
     63                        $GLOBALS['phpgw']->template->set_var('checked_use_signature','checked'); 
     64                else 
     65                        $GLOBALS['phpgw']->template->set_var('checked_use_signature',''); 
     66 
    6067                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature']) 
    6168                        $GLOBALS['phpgw']->template->set_var('text_signature',$GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature']); 
     
    119126                else 
    120127                        $GLOBALS['phpgw']->preferences->add('expressoMail','auto_save_draft',$_POST['auto_save_draft']);         
     128 
     129                // Insert new expressoMail preference use_signature: defines if the signature will be automatically inserted 
     130                // at the e-mail body 
     131                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['use_signature']) 
     132                        $GLOBALS['phpgw']->preferences->change('expressoMail','use_signature',$_POST['use_signature']); 
     133                else 
     134                        $GLOBALS['phpgw']->preferences->add('expressoMail','use_signature',$_POST['use_signature']); 
    121135 
    122136                if ($GLOBALS['phpgw_info']['user']['preferences']['expressoMail']['signature']) 
     
    183197        $GLOBALS['phpgw']->template->set_var('normal',lang('Normal')); 
    184198        $GLOBALS['phpgw']->template->set_var('big',lang('Big')); 
     199        $GLOBALS['phpgw']->template->set_var('lang_use_signature',lang('Insert signature automatically in new messages?')); 
     200        $GLOBALS['phpgw']->template->set_var('lang_signature',lang('Signature')); 
    185201 
    186202        $boemailadmin   = CreateObject('emailadmin.bo'); 
     
    195211                $GLOBALS['phpgw']->template->set_var('checked_delete_and_show_previous_message','checked'); 
    196212                $GLOBALS['phpgw']->template->set_var('checked_alert_new_msg','checked'); 
     213                $GLOBALS['phpgw']->template->set_var('checked_use_signature','checked'); 
    197214                $GLOBALS['phpgw']->template->set_var('checked_mainscreen_showmail','checked'); 
    198                 $save_in_folder_selected = "INBOX".$_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter']."Enviados"; 
     215                $save_in_folder_selected = "INBOX".$_SESSION['phpgw_info']['expressomail']['email_server']['imapDelimiter']."Sent"; 
    199216        } 
    200217        $o_folders = "<option value='-1' ".(!$save_in_folder_selected ? 'selected' : '' ).">".lang("Select on send")."</option>"; 
    201         foreach($imap -> get_folders_list() as $id => $folder) 
     218        foreach($imap -> get_folders_list() as $id => $folder){ 
     219                $folder['folder_name'] = $folder['folder_name'] == ('Inbox') ? lang($folder['folder_name']) : $folder['folder_name']; 
     220                $folder['folder_name'] = $folder['folder_name'] == ('Trash') ? lang($folder['folder_name']) : $folder['folder_name']; 
     221                $folder['folder_name'] = $folder['folder_name'] == ('Drafts') ? lang($folder['folder_name']) : $folder['folder_name']; 
     222                $folder['folder_name'] = $folder['folder_name'] == ('Sent') ? lang($folder['folder_name']) : $folder['folder_name']; 
     223                $folder['folder_name'] = $folder['folder_name'] == ('Spam') ? lang($folder['folder_name']) : $folder['folder_name']; 
    202224                $o_folders.= "<option value='".$folder['folder_id']."' ".($save_in_folder_selected == $folder['folder_id'] ? 'selected' : '' ).">".$folder['folder_name']."</option>";           
    203225        $GLOBALS['phpgw']->template->set_var('value_save_in_folder',$o_folders);         
     226        } 
    204227 
    205228        $GLOBALS['phpgw']->template->set_var('lang_save',lang('Save')); 
  • trunk/expressoMail1_2/templates/default/preferences.tpl

    r320 r325  
    6060    <tr bgcolor="{tr_color1}"> 
    6161        <td>{lang_save_in_folder}</td> 
    62         <td align="center">              
     62        <td align="center"> 
    6363                <select name="save_in_folder">{value_save_in_folder}</select> 
    6464        </td> 
     
    6666    <tr bgcolor="{tr_color2}"> 
    6767        <td>{lang_hide_menu}</td> 
    68         <td align="center">              
     68        <td align="center"> 
    6969                        <input type="checkbox" name="check_menu" value=1 {checked_menu}> 
    7070        </td> 
     
    7373        <td>{lang_line_height}</td> 
    7474        <td align="center"> 
    75                         <select name="line_height">                              
     75                        <select name="line_height"> 
    7676                                <option {line_height_option_20_selected} value="20">{normal}</option> 
    7777                                <option {line_height_option_30_selected} value="30">{medium}</option> 
    78                                 <option {line_height_option_40_selected} value="40">{big}</option>                                                               
     78                                <option {line_height_option_40_selected} value="40">{big}</option> 
    7979                        </select> 
    8080        </td> 
     
    8686                                <option {font_size_option_10_selected} value="10">{small}</option> 
    8787                                <option {font_size_option_11_selected} value="11">{normal}</option> 
    88                                 <option {font_size_option_15_selected} value="15">{big}</option>                                                                 
     88                                <option {font_size_option_15_selected} value="15">{big}</option> 
    8989                        </select> 
    9090        </td> 
     
    9696                <td align="center"> 
    9797                        <input type="checkbox" name="use_shortcuts" value=1 {checked_shortcuts}> 
    98                 </td> 
    99     </tr> 
    100      
    101     <tr bgcolor="{tr_color1}"> 
    102         <td> 
    103                         {lang_auto_save_draft} 
    104                 </td> 
    105                 <td align="center"> 
    106                         <input type="checkbox" name="auto_save_draft" value=1 {checked_auto_save_draft}> 
    10798                </td> 
    10899    </tr> 
     
    117108    </tr> 
    118109 
     110     <tr bgcolor="{tr_color1}"> 
     111        <td> 
     112                        {lang_use_signature} 
     113                </td> 
     114                <td align="center"> 
     115                        <input type="checkbox" name="use_signature" value=1 {checked_use_signature}> 
     116                </td> 
     117    </tr> 
     118 
    119119    <tr bgcolor="{tr_color2}"> 
    120120        <td colspan='2'> 
     
    123123        </td> 
    124124    </tr> 
    125      
     125 
    126126    <tr bgcolor="{th_bg}"> 
    127127        <td colspan="2" > 
     
    133133                                <td align="right"> 
    134134                                        <input type="submit" name="submit" value="{lang_save}" onClick="try_saved.value='true';"> 
    135                                 </td>                            
     135                                </td> 
    136136                        </tr> 
    137         </td>         
     137        </td> 
    138138    </tr> 
    139139 
Note: See TracChangeset for help on using the changeset viewer.