Ignore:
Timestamp:
10/08/13 16:20:46 (11 years ago)
Author:
douglas
Message:

Ticket #0000 - Copiadas as alterações do Trunk. Versão final 2.5.1.

Location:
branches/2.5/expressoMail1_2
Files:
25 edited

Legend:

Unmodified
Added
Removed
  • branches/2.5/expressoMail1_2/assetic.php

    r7919 r8232  
    4747        new FileAsset('../prototype/plugins/watermark/jquery.watermarkinput.js'), 
    4848        new FileAsset('../prototype/plugins/fileupload/jquery.iframe-transport.js'), 
    49         new FileAsset('../prototype/plugins/qtip/jquery.qtip-1.0.0-rc3.min.js'),  
     49        new FileAsset('../prototype/plugins/qtip/jquery.qtip-1.0.0-rc3.min.js'), 
    5050        new FileAsset('../prototype/plugins/treeview/jquery.treeview.js'), 
    5151        new FileAsset('../prototype/plugins/treeview/lib/jquery.cookie.js'),     
  • branches/2.5/expressoMail1_2/inc/class.db_functions.inc.php

    r7673 r8232  
    147147                return $stringDropDownContacts; 
    148148        } 
    149          
    150         function getContactsByGroupAlias($alias) 
    151         { 
     149function getContactsByGroupAlias($alias) 
     150        { 
     151                /* 
    152152                list($alias,$uid) = explode("::",$alias);                
     153                 
    153154                $cc_related_ids = $_SESSION['phpgw_info']['expressomail']['user']['cc_related_ids'];             
    154155                // Explode personal group, If exists related ids (the user has permission to send email). 
     156                 
    155157                if(is_array($cc_related_ids) && $uid){ 
    156                         $owner =  array_search($uid,$cc_related_ids);                    
    157                 } 
    158                  
     158                        $owner =  array_search($uid,$cc_related_ids);                                    
     159                }*/ 
     160                $groups = $this->get_cc_groups(); 
     161                if ($groups){ 
     162                        $groups = explode(",", $groups); 
     163                        for($ii=0; $ii < count($groups); ++$ii) { 
     164                                $tmp = preg_split("/;|\::/",$groups[$ii]); 
     165                                $relatedGroups[$ii] = array("name" => $tmp[0],"alias" => $tmp[1],"owner" => $tmp[2]); 
     166                        } 
     167                        foreach ($relatedGroups as $key => $value) { 
     168                                if ($value["alias"] == $alias) 
     169                                        $owner = $value["owner"]; 
     170                        } 
     171                        if ($owner){ 
     172                                        include_once("class.ldap_functions.inc.php"); 
     173                                        $ldap = new ldap_functions();                    
     174                                        $owner = $ldap->uid2uidnumber($owner); 
     175                        } 
     176                } 
     177 
    159178                $query = "select C.id_connection, A.names_ordered, C.connection_value from phpgw_cc_contact A, ". 
    160179                "phpgw_cc_contact_conns B, phpgw_cc_connections C,phpgw_cc_contact_grps D,phpgw_cc_groups E where ". 
  • branches/2.5/expressoMail1_2/inc/class.exporteml.inc.php

    r7673 r8232  
    150150        } 
    151151 
    152 function export_all_byLocalFolder($params){ 
    153         $error = false; 
    154  
    155         if(empty($params['messages'])){ 
    156             $file["empty_folder"] = true; 
    157         } else { 
    158             foreach($params['messages'] as $eachMsg){ 
    159                $header = ""; 
    160                $body = ""; 
    161                $tempDir = $this->tempDir; 
    162  
    163                $this->get_header_byLocalFolder($eachMsg, $header); 
    164                $this->get_body_byLocalFolder($eachMsg, $body); 
    165                $sEMLData    = $this->parseEml($header, $body); 
    166                $fileName   = $this->createFileEml_by_localFolder($sEMLData, $tempDir,$eachMsg['msg_number']); 
    167  
    168                if(!$fileName){ 
    169                    $error = true; 
    170                    break; 
    171                } else  
    172                    $fileNames .= "\"".$fileName."\" "; 
    173             } 
    174  
    175             $nameFileZip = 'False';          
    176             if($fileNames && !$error) {          
    177                 $nameFileZip = $this->createFileZip($fileNames, $tempDir); 
    178                 ($nameFileZip) ? ($file = $tempDir.'/'.$nameFileZip) : ($file = false); 
    179             } else  
    180                 $file = false; 
    181         } 
    182         
    183        return $file; 
    184  
    185 } 
    186  
    187 function get_header_byLocalFolder($eachMsg, &$header){ 
    188     $header = <<<header 
    189         MIME-Version: 1.0 
    190         Content-Type: text/html; charset=ISO-8859-1 
    191         Content-Transfer-Encoding: quoted-printable 
    192         From: "{$eachMsg['from']['name']}" <{$eachMsg['from']['email']}> 
    193         To: {$eachMsg['to']['email']} 
    194         Subject: {$eachMsg['subject']} 
    195         Message-Id: {$eachMsg['msg_number']} 
    196         Date: {$eachMsg['date']} 
    197 header; 
    198 } 
    199  
    200 function get_body_byLocalFolder($eachMsg, &$body){ 
    201     $body = $eachMsg['msg_sample']['body']; 
    202 } 
    203152 
    204153function export_all($params){ 
  • branches/2.5/expressoMail1_2/inc/class.imap_functions.inc.php

    r8114 r8232  
    4242        var $useCache = false; 
    4343        var $expirationCache = false; 
    44  
     44    var $msgIds = array();// Usado para guardar o messagesIds 
    4545         
    4646        function imap_functions (){ 
     
    233233                                    ++$i; 
    234234                            } 
    235                                                          
    236                                                         $filter = array('AND', array('=', 'folderName', $folder), array('IN','messageNumber', $sort_array_msg)); 
    237                                                         $followupflagged = Controller::find( 
    238                                                                 array('concept' => 'followupflagged'), 
    239                                                                 false,  
    240                                                                 array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    241                                                         ); 
    242                                                         $labeleds = Controller::find( 
    243                                                                 array('concept' => 'labeled'), 
    244                                                                 false,  
    245                                                                 array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    246                                                         ); 
    247                             $sort_array_msg_count = count($sort_array_msg); 
    248                                                         for($i=0; $i<$sort_array_msg_count; ++$i){ 
    249                                                                 if(!isset($return[$i]['msg_number'])) 
    250                                                                         continue; 
    251                                                                          
    252                                                                 $numFlags = count($followupflagged); 
    253                                                                 for($ii=0; $ii<$numFlags; ++$ii){ 
    254                                                                         if($return[$i]['msg_number'] == $followupflagged[$ii]['messageNumber']){ 
    255                                                                                 $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[$ii]['followupflagId'] )); 
    256                                                                                 $return[$i]['followupflagged'] = $followupflagged[$ii]; 
    257                                                                                 $return[$i]['followupflagged']['followupflag'] = $followupflag; 
    258                                                                                 break; 
    259                                                                         } 
    260                                                                 } 
    261                                                                 $numLabels = count($labeleds); 
    262                                                                 for($ii=0; $ii<$numLabels; ++$ii){ 
    263                                                                         if($return[$i]['msg_number'] == $labeleds[$ii]['messageNumber']){ 
    264                                                                                 $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $labeleds[$ii]['labelId']));  
    265                                                                                 $return[$i]['labels'][$labeleds[$ii]['labelId']] = $labels; 
    266                                                                         } 
    267                                                                 } 
    268                                                         } 
     235                            if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_followupflags_and_labels'] == "1") 
     236                            { 
     237                                $filter = array('AND', array('=', 'folderName', $folder), array('IN','messageNumber', $sort_array_msg)); 
     238                                $followupflagged = Controller::find( 
     239                                    array('concept' => 'followupflagged'), 
     240                                    false, 
     241                                    array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     242                                ); 
     243                                $labeleds = Controller::find( 
     244                                    array('concept' => 'labeled'), 
     245                                    false, 
     246                                    array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     247                                ); 
     248                                $sort_array_msg_count = count($sort_array_msg); 
     249                                for($i=0; $i<$sort_array_msg_count; ++$i){ 
     250                                    if(!isset($return[$i]['msg_number'])) 
     251                                        continue; 
     252 
     253                                    $numFlags = count($followupflagged); 
     254                                    for($ii=0; $ii<$numFlags; ++$ii){ 
     255                                        if($return[$i]['msg_number'] == $followupflagged[$ii]['messageNumber']){ 
     256                                            $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[$ii]['followupflagId'] )); 
     257                                            $return[$i]['followupflagged'] = $followupflagged[$ii]; 
     258                                            $return[$i]['followupflagged']['followupflag'] = $followupflag; 
     259                                            break; 
     260                                        } 
     261                                    } 
     262                                    $numLabels = count($labeleds); 
     263                                    for($ii=0; $ii<$numLabels; ++$ii){ 
     264                                        if($return[$i]['msg_number'] == $labeleds[$ii]['messageNumber']){ 
     265                                            $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $labeleds[$ii]['labelId'])); 
     266                                            $return[$i]['labels'][$labeleds[$ii]['labelId']] = $labels; 
     267                                        } 
     268                                    } 
     269                                } 
     270                            } 
    269271                    } 
    270272                    $return['num_msgs'] =  $num_msgs;    
    271                 } else { 
     273                } 
     274        else 
     275        { 
    272276                        $num_msgs = imap_num_msg($this->mbox); 
    273277                        $sort_array_msg = $this-> get_msgs($folder, $sort_box_type, $search_box_type, $sort_box_reverse,$msg_range_begin,$num_msgs); 
    274278 
    275  
    276279                        $return['tot_unseen'] = 0; 
    277280                        $i = 0; 
    278281 
    279                         if(is_array($sort_array_msg)){ 
    280  
    281                             foreach($sort_array_msg as $msg_number => $value) 
    282                             { 
    283                                 $temp = $this->get_info_head_msg($msg_number); 
    284                                 if(!$temp) 
    285                                     return false; 
    286  
    287                                 if($temp['Unseen'] == 'U' || $temp['Recent'] == 'N'){ 
    288                                                 $return['tot_unseen']++; 
    289                                         } 
    290  
    291                                 if($i <= ($msg_range_end-$msg_range_begin)) 
    292                                     $return[$i] = $temp; 
    293                                 ++$i; 
    294                             } 
    295                         } 
    296                         $return['num_msgs'] = count($sort_array_msg)+($msg_range_begin-1); 
     282            if(is_array($sort_array_msg)) 
     283            { 
     284                foreach($sort_array_msg as $msg_number => $value) 
     285                { 
     286                    $temp = $this->get_info_head_msg($msg_number); 
     287                    if(!$temp) 
     288                        return false; 
     289 
     290                    if($temp['Unseen'] == 'U' || $temp['Recent'] == 'N') 
     291                        $return['tot_unseen']++; 
     292 
     293                    if($i <= ($msg_range_end-$msg_range_begin)) 
     294                        $return[$i] = $temp; 
     295 
     296                    ++$i; 
    297297                } 
    298                                                  
    299                 return $return;  
     298            } 
     299 
     300            $return['num_msgs'] = count($sort_array_msg)+($msg_range_begin-1); 
     301        } 
     302 
     303        $return['messagesIds'] = $this->msgIds; 
     304        return $return; 
    300305    } 
    301306         
     
    458463            $return['attachment'] = ( preg_match('/((Content-Disposition:(.)*([\r\n\s]*filename))|(Content-Type:(.)*([\r\n\s]*name)))/i', $mimeBody) ) ? '1' : '0'; //Verifica se a anexos na mensagem 
    459464            $return['reply_toaddress'] = isset($header->reply_toaddress) ? self::decodeMimeString($header->reply_toaddress) : ''; 
    460             $return['flag'] = $header->Unseen.$header->Recent.$header->Flagged.$header->Draft.$header->Answered.$header->Deleted.( $return['attachment'] === '1' ? 'T': '' ); 
    461                          
    462                         if (!empty($header->to)){ 
     465            $return['flag'] = $header->Unseen. 
     466                $header->Recent. 
     467                ($header->Flagged == 'F' || !( preg_match('/importance *: *(.*)\r/i', $mimeHeader , $importance) === 0 )? 'F' : ''). 
     468                $header->Draft. 
     469                $header->Answered. 
     470                $header->Deleted. 
     471                ( $return['attachment'] === '1' ? 'T': '' ); 
     472 
     473        if (!empty($header->to)){ 
    463474                                foreach ($header->to as $i => $v){ 
    464475                                        $return['to'][$i] = self::formatMailObject( $v ); 
     
    592603                                        if (zip_entry_open($zip, $zip_entry, "r")) { 
    593604                                                $email = zip_entry_read($zip_entry, zip_entry_filesize($zip_entry)); 
    594   
    595                                                 /*Caso mensagens vierem com quebras de linha diferentes do esperado, como por exemplo,  
    596                                                 mensagens exportadas pelo MailArchiver, é preciso corrigir.*/  
    597                                                 $email = str_replace("\r\n", "\n", $email);  
    598                                                 $email = str_replace("\n", "\r\n", $email);  
    599   
     605 
     606                                                /*Caso mensagens vierem com quebras de linha diferentes do esperado, como por exemplo, 
     607                                                mensagens exportadas pelo MailArchiver, é preciso corrigir.*/ 
     608                                                $email = str_replace("\r\n", "\n", $email); 
     609                                                $email = str_replace("\n", "\r\n", $email); 
     610 
    600611                                                $status = @imap_append($this->mbox, 
    601612                                                                "{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"], 
     
    620631                }else if(substr($filename,strlen($filename)-4)==".eml") { 
    621632                        $email = implode("",file($params['FILES'][0]['tmp_name'])); 
    622   
    623                         /*Caso mensagens vierem com quebras de linha diferentes do esperado, como por exemplo,  
    624                         mensagens exportadas pelo MailArchiver, é preciso corrigir.*/  
    625                         $email = str_replace("\r\n", "\n", $email);  
    626                         $email = str_replace("\n", "\r\n", $email);  
    627   
     633 
     634                        /*Caso mensagens vierem com quebras de linha diferentes do esperado, como por exemplo, 
     635                        mensagens exportadas pelo MailArchiver, é preciso corrigir.*/ 
     636                        $email = str_replace("\r\n", "\n", $email); 
     637                        $email = str_replace("\n", "\r\n", $email); 
     638 
    628639                        $status = imap_append($this->mbox,"{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$params["folder"],$email); 
    629640                                 
     
    954965 
    955966                                   $content .= $this->decodeMailPart($part->body,$part->ctype_parameters['charset']); 
     967                                   $i = -1; 
    956968                                } 
    957969 
     
    962974 
    963975                                   $content .= '<pre>'. htmlentities($this->decodeMailPart($part->body,$part->ctype_parameters['charset'],false)).'</pre>'; 
     976                                   $i = -1; 
    964977                                } 
    965                                 if(strtolower($part->ctype_secondary) == 'calendar') 
    966                                     $content.= $this->builderMsgCalendar($this->decodeMailPart($part->body, $part->ctype_parameters['charset'])); 
    967  
     978                               // Comentado para tratamento de e-mail multipart alternative com html e ical. Parseava o ical e ignorava o html. 
     979                               //if(strtolower($part->ctype_secondary) == 'calendar') 
     980                               //     $content.= $this->builderMsgCalendar($this->decodeMailPart($part->body, $part->ctype_parameters['charset'])); 
    968981                           } 
    969982 
    970                             $i = -1; 
    971983                            break; 
    972984 
    973985                       case 'multipart': 
    974986 
    975                             if(strtolower($part->ctype_secondary) == 'alternative' ) //Unico formato multipart suportado, escapa os outros  
    976                             {  
    977                                 if($printHeader)  
    978                                     $content .= $this->builderMsgHeader($part);  
    979  
    980                                 $this->builderMsgBody($part,$content);  
    981  
    982                                 $i = -1;  
    983                             }  
    984   
    985                             break; 
     987                           if(strtolower($part->ctype_secondary) == 'alternative' ) //Unico formato multipart suportado, escapa os outros 
     988                           { 
     989                               if($printHeader) 
     990                                   $content .= $this->builderMsgHeader($part); 
     991 
     992                               $this->builderMsgBody($part,$content); 
     993 
     994                               $i = -1; 
     995                           } 
     996 
     997                           break; 
    986998 
    987999                       case 'message': 
     
    12111223 
    12121224                $return['msg_number'] = $msg_number.$plus_id; 
    1213                 $return['msg_folder'] = mb_convert_encoding( $msg_folder, "ISO-8859-1", "UTF-8" );  
    1214                 //isset($params['decoded']) ? mb_convert_encoding( $msg_folder, "ISO-8859-1", "UTF-8" ) : $msg_folder;  
     1225                $return['msg_folder'] = mb_convert_encoding( $msg_folder, "ISO-8859-1", "UTF-8" ); 
     1226                //isset($params['decoded']) ? mb_convert_encoding( $msg_folder, "ISO-8859-1", "UTF-8" ) : $msg_folder; 
    12151227 
    12161228                 
     
    14601472                }   
    14611473                $return['alarm'] = $alarm; 
    1462                  
     1474 
    14631475                return $return; 
    14641476        } 
     
    21862198        function delete_msgs($params) 
    21872199        { 
    2188  
    21892200                $folder = $params['folder']; 
    21902201                $folder =  mb_convert_encoding($folder, "UTF7-IMAP","ISO-8859-1"); 
    21912202                $msgs_number = explode(",",$params['msgs_number']); 
     2203 
    21922204                if(array_key_exists('border_ID' ,$params)) 
    21932205                $border_ID = $params['border_ID']; 
     
    22052217                $mbox_stream = @imap_open("{".$this->imap_server.":".$this->imap_port.$this->imap_options."}".$folder, $this->username, $this->password) or die(serialize(array('imap_error' => $this->parse_error(imap_last_error())))); 
    22062218 
    2207                 foreach ($msgs_number as $msg_number) 
     2219        foreach ($msgs_number as $msg_number) 
    22082220                { 
    22092221                        if (imap_delete($mbox_stream, $msg_number, FT_UID)); 
     
    26502662        function ren_mailbox($arr) 
    26512663        { 
    2652                 $namebox = $arr['current'];               
    2653                 $path_delimiter = strrpos($namebox,$this->imap_delimiter)+1;  
    2654                 $base_path = substr($namebox,0,$path_delimiter);  
    2655                 $rename = preg_split("/\/|\./",substr($arr['rename'], $path_delimiter));  
    2656                 $new_box = array_shift($rename);  
    2657                 $subfolders = $rename;  
     2664                $namebox = $arr['current'];              
     2665                $path_delimiter = strrpos($namebox,$this->imap_delimiter)+1; 
     2666                $base_path = substr($namebox,0,$path_delimiter); 
     2667                $rename = preg_split("/\/|\./",substr($arr['rename'], $path_delimiter)); 
     2668                $new_box = array_shift($rename); 
     2669                $subfolders = $rename; 
    26582670                $imap_server = $_SESSION['phpgw_info']['expressomail']['email_server']['imapServer']; 
    26592671                $mbox_stream = $this->open_mbox(); 
     
    26662678                        $result = imap_last_error(); 
    26672679                } 
    2668                 /*Cria as subpastas*/  
    2669                 if (is_array($subfolders)){  
    2670                         $child = $new_box.$this->imap_delimiter;  
    2671             $subfolders_count = count($subfolders);  
    2672                         for($i =0; $i < $subfolders_count; ++$i){  
    2673                                 $child .= ($subfolders[$i] ? $subfolders[$i] : $this->functions->getLang("New Folder"));  
    2674                                 $namebox =  mb_convert_encoding($child, "UTF7-IMAP", "UTF-8");  
    2675                                 $result = "Ok";  
    2676                                 if(!imap_createmailbox($mbox_stream,"{".$imap_server."}$namebox"))  
    2677                                 {  
    2678                                         $result = imap_last_error();                                              
    2679                                 }  
    2680                                 $child .=$this->imap_delimiter;  
    2681                         }                         
    2682                 }  
    2683   
     2680                /*Cria as subpastas*/ 
     2681                if (is_array($subfolders)){ 
     2682                        $child = $new_box.$this->imap_delimiter; 
     2683            $subfolders_count = count($subfolders); 
     2684                        for($i =0; $i < $subfolders_count; ++$i){ 
     2685                                $child .= ($subfolders[$i] ? $subfolders[$i] : $this->functions->getLang("New Folder")); 
     2686                                $namebox =  mb_convert_encoding($child, "UTF7-IMAP", "UTF-8"); 
     2687                                $result = "Ok"; 
     2688                                if(!imap_createmailbox($mbox_stream,"{".$imap_server."}$namebox")) 
     2689                                { 
     2690                                        $result = imap_last_error();                                             
     2691                                } 
     2692                                $child .=$this->imap_delimiter; 
     2693                        }                        
     2694                } 
     2695 
    26842696                if($mbox_stream) 
    26852697                        imap_close($mbox_stream); 
     
    27112723                return $return; 
    27122724        } 
    2713          
     2725 
     2726        /*Método utilizado para retornar dados da mensagem local (desarquivada na pasta lixeira) 
     2727        para poder ser anexada à mensagem.*/ 
     2728    function get_info_msg_archiver($params){ 
     2729        $folder = "INBOX".$this->imap_delimiter.$this->folders['trash']; 
     2730        $mbox_stream = $this->open_mbox($folder); 
     2731        $id = $params['idMsgs']; 
     2732 
     2733        $name = imap_headerinfo($mbox_stream, imap_msgno($mbox_stream, $id)); 
     2734        $return[] =  array( 
     2735            'uid' => $id, 
     2736            'folder' => "archiver", 
     2737            'type' => "imapMSG", 
     2738            'name' => base64_encode($name->subject.".eml") 
     2739        ); 
     2740 
     2741        return json_encode($return); 
     2742    } 
     2743 
    27142744        function send_mail($params) { 
    27152745            require_once dirname(__FILE__) . '/../../services/class.servicelocator.php'; 
     
    29342964                                        $arr_new_folder['base_path'] = $base_path; 
    29352965 
    2936                                         $this->create_mailbox($arr_new_folder);                                  
     2966                                        $this->create_mailbox($arr_new_folder);  
    29372967                                        $has_new_folder = true; 
    29382968                    $folder = $newfolder; 
     
    29542984 
    29552985                        $from = $fromaddress ?  ('"' . $fromaddress[0] . '" <' . $fromaddress[1] . '>') : ('"' . $_SESSION['phpgw_info']['expressomail']['user']['firstname'] . ' ' . $_SESSION['phpgw_info']['expressomail']['user']['lastname'] . '" <' . $_SESSION['phpgw_info']['expressomail']['user']['email'] . '>'); 
    2956                         $mailService->setFrom($from);                            
     2986                        $mailService->setFrom( mb_convert_encoding($from, "ISO-8859-1","UTF-8, ISO-8859-1")); 
    29572987         
    29582988                        $mailService->addHeaderField('Reply-To', !!$replytoaddress ? $replytoaddress : $from); 
     
    30043034            $isHTML = ( isset($params['type']) && $params['type'] == 'html' )?  true : false; 
    30053035 
    3006  
    3007     //  TODO - tratar mensagem criptografada e remover o AND false abaixo 
     3036                //      TODO - tratar mensagem criptografada e remover o AND false abaixo 
    30083037            if (($encrypt && $signed && $params['smime']) || ($encrypt && !$signed) AND false) { // a msg deve ser enviada cifrada... 
    30093038                $email = $this->add_recipients_cert($toaddress . ',' . $ccaddress . ',' . $ccoaddress); 
     
    31033132                { 
    31043133                    $value = json_decode($value, true); 
     3134                    if($value["folder"] == "archiver"){ 
     3135                        $value['folder'] = "INBOX/Trash"; 
     3136                    } 
    31053137 
    31063138                    switch ($value['type']) { 
     
    31103142                                if(strstr($body,'src="./inc/get_archive.php?msgFolder='.$value['folder'].'&msgNumber='.$value['uid'].'&indexPart='.$value['part'].'"') !== false)//Embeded IMG 
    31113143                                {     
    3112                                     $body = str_ireplace('src="./inc/get_archive.php?msgFolder='.$value['folder'].'&msgNumber='.$value['uid'].'&indexPart='.$value['part'].'"' , 'src="'.$att['name'].'"', $body); 
     3144                                    $body = str_ireplace('src="./inc/get_archive.php?msgFolder='.$value['folder'].  '&msgNumber='.$value['uid'].'&indexPart='.$value['part'].'"' , 'src="'.$att['name'].'"', $body); 
    31133145                                    $mailService->addStringImage($att['source'], $att['type'],mb_convert_encoding($att['name'], 'ISO-8859-1' , 'UTF-8,ISO-8859-1') ); 
    31143146                                } 
     
    31243156                                 
    31253157                                $mailService->addStringAttachment($rawmsg, mb_convert_encoding(base64_decode($value['name']), 'ISO-8859-1' , 'UTF-8,ISO-8859-1'), 'message/rfc822', '7bit', 'attachment' ); 
     3158                                /*envia o anexo para o email*/ 
    31263159                                $message_size_total += mb_strlen($rawmsg); //Adiciona o tamanho do anexo a variavel que controlao tamanho da msg. 
    31273160                                unset($rawmsg); 
     
    34193452                        $sort = array(); 
    34203453                } 
     3454 
     3455        $this->msgIds = $sort; 
     3456 
    34213457                if ($slice_array) 
    34223458                        $sort = array_slice($sort,$offsetBegin-1,$offsetEnd-($offsetBegin-1),true); 
     
    35563592        } 
    35573593 
     3594    function verifyShareFolder($params){ 
     3595        $folder = $params['folder']; 
     3596 
     3597         if (substr($folder,0,4) == 'user'){ 
     3598            $acl = $this->getacltouser($folder, isset($params['decoded'])); 
     3599 
     3600            $acl_share_delete = (stripos($acl,'t') !== false && stripos($acl,'e') !== false); 
     3601 
     3602            if (!$acl_share_delete) { 
     3603                $return['status'] = false; 
     3604                return $return; 
     3605            } 
     3606        } 
     3607    } 
    35583608        function move_messages($params) 
    35593609        { 
     
    36763726        } 
    36773727         
    3678         function set_messages_flag_from_search($params){                 
     3728        function set_messages_flag_from_search($params){ 
    36793729                $error = False; 
    36803730                $fileNames = ""; 
     
    44044454                                            $elem['uid'] = $new_search; 
    44054455                                            /* compare dates in ordering */ 
    4406                                             $elem['udatecomp'] = substr ($elem['udate'], -4) ."-". substr ($elem['udate'], 3, 2) ."-". substr ($elem['udate'], 0, 2);   
    4407  
    4408                                                                                         $filter = array('AND', array('=', 'folderName', $name_box), array('=','messageNumber', $new_search)); 
    4409                                                                                         $followupflagged = Controller::find( 
    4410                                                                                                 array('concept' => 'followupflagged'), 
    4411                                                                                                 false,  
    4412                                                                                                 array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    4413                                                                                         ); 
    4414  
    4415                                                                                         if(isset($followupflagged[0]['followupflagId'])) 
    4416                                                                                         { 
    4417                                                                                                 $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[0]['followupflagId'] ));      
    4418                                                                                                 $followupflagged[0]['followupflag'] = $followupflag; 
    4419                                                                                                 $elem['followupflagged'] = $followupflagged[0]; 
    4420  
    4421                                                                                         }        
    4422                                                                                         $labeleds = Controller::find( 
    4423                                                                                                 array('concept' => 'labeled'), 
    4424                                                                                                 false,  
    4425                                                                                                 array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    4426                                                                                         ); 
    4427                                                                                         foreach ($labeleds as $e){ 
    4428                                                                                                 $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $e['labelId']));      
    4429                                                                                                 $elem['labels'][$e['labelId']] = $labels; 
    4430 }                                                                                        
     4456                                            $elem['udatecomp'] = substr ($elem['udate'], -4) ."-". substr ($elem['udate'], 3, 2) ."-". substr ($elem['udate'], 0, 2); 
     4457                                            if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_followupflags_and_labels'] == "1") 
     4458                                            { 
     4459                                                $filter = array('AND', array('=', 'folderName', $name_box), array('=','messageNumber', $new_search)); 
     4460                                                $followupflagged = Controller::find( 
     4461                                                    array('concept' => 'followupflagged'), 
     4462                                                    false, 
     4463                                                    array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     4464                                                ); 
     4465 
     4466                                                if(isset($followupflagged[0]['followupflagId'])) 
     4467                                                { 
     4468                                                    $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[0]['followupflagId'] )); 
     4469                                                    $followupflagged[0]['followupflag'] = $followupflag; 
     4470                                                    $elem['followupflagged'] = $followupflagged[0]; 
     4471 
     4472                                                } 
     4473                                                $labeleds = Controller::find( 
     4474                                                    array('concept' => 'labeled'), 
     4475                                                    false, 
     4476                                                    array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     4477                                                ); 
     4478                                                foreach ($labeleds as $e){ 
     4479                                                    $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $e['labelId'])); 
     4480                                                    $elem['labels'][$e['labelId']] = $labels; 
     4481                                                } 
     4482                                            } 
    44314483                                            $retorno[] = $elem; 
    44324484                                        } 
     
    44604512            $arrayRetorno['data']               =  $pageret; 
    44614513            $arrayRetorno['currentTab'] =  $params['current_tab']; 
    4462             return ($pageret) ? $arrayRetorno : 'none'; 
     4514        return ($pageret) ? $arrayRetorno : 'none'; 
    44634515        } 
    44644516 
     
    45464598                    { 
    45474599                        $folder = str_replace($serverString, "", imap_utf7_decode($val->name)); 
    4548                         //$folder = str_replace("&-", "&", $folder);                      
    4549                         $trashFolder = explode($this->imap_delimiter,$folder);  
    4550                         $acls = ($trashFolder[count($trashFolder) - 1] == "Trash") ? $value['acls']."i" : $value['acls'];  
    4551                         $folder = imap_utf7_encode($folder);                      
    4552                         imap_setacl ($mbox_stream, $folder, "$user", $acls);  
     4600                        //$folder = str_replace("&-", "&", $folder);                     
     4601                        $trashFolder = explode($this->imap_delimiter,$folder); 
     4602                        $acls = ($trashFolder[count($trashFolder) - 1] == "Trash") ? $value['acls']."i" : $value['acls']; 
     4603                        $folder = imap_utf7_encode($folder);                     
     4604                        imap_setacl ($mbox_stream, $folder, "$user", $acls); 
    45534605                    } 
    45544606                } 
     
    49094961                                $insert = $this->insert_email($source,$dest_folder,$timestamps[$index],$flags[$index]); 
    49104962 
     4963                $return['idsMsg'] = $insert['msg_no']; 
    49114964                if($insert['error']) 
    49124965                { 
     
    50705123                                foreach ($subject as $tmp) 
    50715124                                        $return['msgs'][$i]['subject'] .= mb_convert_encoding($tmp->text, 'UTF-8', 'UTF-8 , ISO-8859-1'); 
    5072                                  
    5073                                 $filter = array('AND', array('=', 'folderName', $folder), array('=','messageNumber', $v)); 
    5074                                 $followupflagged = Controller::find( 
    5075                                         array('concept' => 'followupflagged' , 'folder' => $folder ), 
    5076                                         false,  
    5077                                         array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    5078                                 ); 
    5079  
    5080                                 if(isset($followupflagged[0]['followupflagId'])) 
    5081                                 { 
    5082                                         $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[0]['followupflagId'] ));      
    5083                                         $followupflagged[0]['followupflag'] = $followupflag; 
    5084                                         $return['msgs'][$i]['followupflagged'] = $followupflagged[0]; 
    5085  
    5086                                 }        
    5087                                 $labeleds = Controller::find( 
    5088                                         array('concept' => 'labeled'), 
    5089                                         false,  
    5090                                         array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
    5091                                 ); 
    5092                                 if(is_array($labeleds)) 
    5093                                 foreach ($labeleds as $e){ 
    5094                                         $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $e['labelId']));      
    5095                                         $return['msgs'][$i]['labels'][$e['labelId']] = $labels; 
    5096                                 }        
     5125 
     5126 
     5127                if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_followupflags_and_labels'] == "1") 
     5128                { 
     5129 
     5130                    $filter = array('AND', array('=', 'folderName', $folder), array('=','messageNumber', $v)); 
     5131                    $followupflagged = Controller::find( 
     5132                        array('concept' => 'followupflagged' , 'folder' => $folder ), 
     5133                        false, 
     5134                        array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     5135                    ); 
     5136 
     5137                    if(isset($followupflagged[0]['followupflagId'])) 
     5138                    { 
     5139                        $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[0]['followupflagId'] )); 
     5140                        $followupflagged[0]['followupflag'] = $followupflag; 
     5141                        $return['msgs'][$i]['followupflagged'] = $followupflagged[0]; 
     5142 
     5143                    } 
     5144                    $labeleds = Controller::find( 
     5145                        array('concept' => 'labeled'), 
     5146                        false, 
     5147                        array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     5148                    ); 
     5149                    if(is_array($labeleds)) 
     5150                    foreach ($labeleds as $e){ 
     5151                        $labels = Controller::read( array( 'concept' => 'label', 'id' =>  $e['labelId'])); 
     5152                        $return['msgs'][$i]['labels'][$e['labelId']] = $labels; 
     5153                    } 
     5154                } 
     5155 
    50975156                                $mimeBody = imap_body( $this->mbox, $v  , FT_UID|FT_PEEK  ); 
    50985157                                $return['msgs'][$i]['flag'] = ' '; 
    50995158                                $return['msgs'][$i]['flag'] .= $msg->Unseen ? $msg->Unseen : ''; 
    5100                                 $return['msgs'][$i]['flag'] .= $msg->Recent ? $msg->Recent : '';         
     5159                                $return['msgs'][$i]['flag'] .= $msg->Recent ? $msg->Recent : ''; 
    51015160                                $return['msgs'][$i]['flag'] .= $msg->Draft ? $msg->Draft : '';   
    51025161                                $return['msgs'][$i]['flag'] .= $msg->Answered ? $msg->Answered : '';     
     
    51595218                        $nMsgs[] = $v; 
    51605219                } 
    5161                 $return['msgs'] = $nMsgs;        
    5162                  
    5163                 $return = json_encode($return);          
     5220                $return['msgs'] = $nMsgs; 
     5221 
     5222                $return = json_encode($return); 
    51645223                $return = base64_encode($return); 
    5165          
     5224         
    51665225                return $return; 
    51675226        } 
     
    52275286        function searchSieveRule( $params ) 
    52285287        { 
    5229   
    5230                 $imap = $this->open_mbox( 'INBOX' ); 
     5288                $imap = $this->open_mbox( $params['folder']['criteria'] ? $params['folder']['criteria'] : 'INBOX' ); 
    52315289                $msgs = imap_sort( $imap , SORTDATE , 0 , SE_UID); 
    5232                  
     5290         
    52335291                $rr = array(); 
    5234   
     5292 
    52355293        if(isset($params['from']))  $rr['from'] = array(); 
    52365294        if(isset($params['to']))  $rr['to'] = array(); 
    52375295        if(isset($params['subject'])) $rr['subject'] = array(); 
    5238         if(isset($params['body'])) $rr['body'] = array();  
    5239         if(isset($params['size'])) $rr['size'] = array();  
    5240   
     5296        if(isset($params['body'])) $rr['body'] = array(); 
     5297        if(isset($params['size'])) $rr['size'] = array(); 
     5298 
     5299        //$params['search'] = mb_convert_encoding($params['search'], 'UTF-8',mb_detect_encoding($params['search'].'x', 'UTF-8, ISO-8859-1')); 
     5300 
    52415301                foreach ($msgs as $i => $v) 
    52425302                { 
     
    52645324                         
    52655325                        if(isset($params['to'])) 
    5266                         {  
     5326                        { 
    52675327                                $tos = $msg->to; 
    52685328                                $val = ''; 
     
    52845344                                         
    52855345                                } 
    5286                                  
     5346 
    52875347                                if($this->filterCheck( $val , $params['to']['criteria'] , $params['to']['filter'] )) 
    52885348                                        $rr['to'][] = $v; 
     
    52945354                                $subject = imap_mime_header_decode($msg->subject); 
    52955355                                foreach ($subject as $tmp) 
    5296                                         $ss .= $tmp->text; 
     5356                                        $ss .= ($tmp->charset == "default") ? $tmp->text : utf8_encode($tmp->text); 
    52975357                                 
    52985358                                if($this->filterCheck($ss , $params['subject']['criteria'] , $params['subject']['filter'] )) 
     
    53025362                        if(isset($params['body'])) 
    53035363                        {                        
    5304                                 $this->mbox = $this->open_mbox( 'INBOX' ); 
    5305                                 $b = $this->get_body_msg( $v , 'INBOX' ); 
    5306                                  
    5307                                 if( $this->filterCheck( $b['body'] , $params['body']['criteria'] , $params['body']['filter'] )) 
     5364                                $this->mbox = $this->open_mbox( $params['folder']['criteria'] ? $params['folder']['criteria'] : 'INBOX' ); 
     5365                                $b = $this->get_body_msg( $v , $params['folder']['criteria'] ? $params['folder']['criteria'] : 'INBOX' ); 
     5366 
     5367                                if( $this->filterCheck( mb_convert_encoding(html_entity_decode($b['body']), 'UTF-8',mb_detect_encoding(html_entity_decode($b['body']).'x', 'UTF-8, ISO-8859-1')) , $params['body']['criteria'] , $params['body']['filter'] )) 
    53085368                                        $rr['body'][] = $v; 
    5309                                  
     5369 
    53105370                                unset($b); 
    53115371                        } 
     
    53205380                $rrr = array(); 
    53215381                $init = true; 
    5322                  
    5323                  
    53245382                foreach ($rr as $i => $v) 
    5325                 {                        
     5383                { 
    53265384                        if(count($rrr) == 0 && $init === true) 
    53275385                                $rrr = $v; 
    53285386                        else if($params['isExact'] == 'yes') 
    5329                                 $rrr = array_intersect($rrr , $v); 
     5387                $rrr = array_intersect($rrr , $v); 
    53305388                        else 
    53315389                                $rrr =  array_unique(array_merge($rrr , $v)); 
    5332                          
    5333                 } 
    5334                  
     5390                } 
    53355391 
    53365392//              if($params['page'] && $params['rows']) 
     
    54035459                                                $ret[$msg][] = imap_mail_copy($imap,$msg,$proc['value'], CP_UID); 
    54045460                                        else 
     5461                                        { 
    54055462                                                /* Está sempre copiando a mensagem para a pasta destino */ 
    54065463                                            //$ret[$msg][] = imap_mail_move($imap,$msg,$proc['parameter'], CP_UID); 
    54075464                                                $ret[$msg][] = imap_mail_move($imap,$msg,$proc['parameter'], CP_UID);                                            
     5465                                                imap_expunge($imap); 
     5466                                        } 
    54085467                                        break; 
    54095468                                case 'redirect':                                                                                         
  • branches/2.5/expressoMail1_2/inc/class.ldap_functions.inc.php

    r8172 r8232  
    499499                         
    500500                        foreach($info_return as &$value){ 
    501                                 $value['type_contact'] = "G"; 
    502  
     501                                if (is_array($value)) 
     502                                        $value['type_contact'] = "G"; 
    503503                                //Converte a descrição dos filtros para ISO8859 corrigindo inconsitências com caractéres especiais 
    504504                                if(isset($value['vacationinfo']) && isset($value['vacationinfo'][0]) && $value['vacationinfo'][0] != '') 
  • branches/2.5/expressoMail1_2/inc/hook_settings.inc.php

    r8166 r8232  
    150150                                                                    signatures[default_signature].replace( /\\n/g, "<br>" ); 
    151151    } 
    152     if (document.getElementById( "signature" ).value != "")  
    153         document.getElementById( "signature" ).value = encode64(document.getElementById( "signature" ).value);  
     152    if (document.getElementById( "signature" ).value != "") 
     153        document.getElementById( "signature" ).value = encode64(document.getElementById( "signature" ).value); 
    154154    document.getElementById( "signatures" ).value = toJSON( signatures ); 
    155155    document.getElementById( "signature_types" ).value = toJSON( types ); 
     
    270270        return output.toString(); 
    271271} 
    272 function normalizerSignature(values){  
    273         var value = {};  
    274         for( key in values ){  
    275                 value[isEncoded64(key) ? decode64(key) : key] = values[key];  
    276         }  
    277         return value;  
    278 }  
    279 /*Verifica se a string input esta em Base 64*/  
    280 function isEncoded64(input){  
    281         var baseStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  
    282         var encoded = true;  
    283         if ( (input.length % 4) != 0)  
    284                 return false;  
    285         for(var i=0; i<input.length; i++){  
    286                 if ( baseStr.indexOf(input[i]) < 0 ){  
    287                         encoded = false;  
    288                         break;  
    289                 }  
    290         }  
    291         return encoded;  
     272function normalizerSignature(values){ 
     273 
     274    var value = {}; 
     275 
     276    for( key in values ){ 
     277 
     278        value[isEncoded64(key) ? decode64(key) : key] = values[key]; 
     279 
     280    } 
     281 
     282    return value; 
     283} 
     284/*Verifica se a string input esta em Base 64*/ 
     285function isEncoded64(input){ 
     286        var baseStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 
     287        var encoded = true; 
     288        if ( (input.length % 4) != 0) 
     289                return false; 
     290        for(var i=0; i<input.length; i++){ 
     291                if ( baseStr.indexOf(input[i]) < 0 ){ 
     292                        encoded = false; 
     293                        break; 
     294                } 
     295        } 
     296        return encoded; 
    292297} 
    293298function loadSignature() 
    294299{ 
    295300    var types = fromJSON( document.getElementById( "signature_types" ).value ); 
    296     var signatures;  
    297     if (document.getElementById( "signatures" ).value)  
    298     {  
    299         signatures = fromJSON(document.getElementById("signatures").value);  
    300     } else if (document.getElementById( "signature" ).value) // Caso a assinatura esteja no formato da versão 2.2.10:  
    301     {  
    302         // TODO: Internazionalizar a string  
    303         signatures = {};  
    304         signatures["Assinatura padrão"] = document.getElementById( "signature" ).value;  
    305         if (!document.getElementById("signature_default").value)  
    306         {  
    307             document.getElementById("signature_default").value = "Assinatura padrão";  
    308         }  
    309 }     
    310      
    311     var old_signature = document.getElementById( "signature" ).value;  
    312     var def = document.getElementById( "signature_default" ).value;  
    313         def = isEncoded64(def) ? decode64(def) : def;  
     301    var signatures; 
     302    if (document.getElementById( "signatures" ).value) 
     303    { 
     304        signatures = fromJSON(document.getElementById("signatures").value); 
     305    } else if (document.getElementById( "signature" ).value) // Caso a assinatura esteja no formato da versão 2.2.10: 
     306    { 
     307        // TODO: Internazionalizar a string 
     308        signatures = {}; 
     309        signatures["Assinatura padrão"] = document.getElementById( "signature" ).value; 
     310        if (!document.getElementById("signature_default").value) 
     311        { 
     312            document.getElementById("signature_default").value = "Assinatura padrão"; 
     313        } 
     314    } 
     315 
     316    signatures = normalizerSignature(signatures); 
     317    types = normalizerSignature(types); 
     318 
     319    var old_signature = document.getElementById( "signature" ).value; 
     320    var def = document.getElementById( "signature_default" ).value; 
     321        def = isEncoded64(def) ? decode64(def) : def; 
    314322 
    315323    var counter = 0, ids = [], def_signature = "", noSig = true; 
    316  
    317         signatures = normalizerSignature(signatures);  
    318         types = normalizerSignature(types); 
    319324 
    320325    for( key in signatures ) 
     
    336341 
    337342    if( def_signature !== "" ) 
    338                 document.getElementById( "default_signature" + def_signature ).checked = true; 
     343        document.getElementById( "default_signature" + def_signature ).checked = true; 
    339344    else if( noSig && old_signature ) 
    340345    { 
    341             var type_signature = document.getElementById("type_signature");  
    342         if (type_signature)  
    343         {  
    344             addSignature( type_signature.value !== "html" );  
    345             document.getElementById( "user_signature" + counter ).value = old_signature;  
    346         } 
    347         } 
     346        var type_signature = document.getElementById("type_signature"); 
     347        if (type_signature) 
     348        { 
     349            addSignature( type_signature.value !== "html" ); 
     350            document.getElementById( "user_signature" + counter ).value = old_signature; 
     351        } 
     352    } 
    348353} 
    349354'); 
     
    364369 
    365370create_check_box('View the user name in the header of the messages printed?', 'show_name_print_messages', 'Displays the user name in the header print email'); 
     371 
     372create_check_box('Habilitar funcionalidade de notificar ao receber mensagens filtradas por remetente ?', 'use_alert_filter_criteria', ''); 
     373create_check_box('Habilitar sinalizadores e marcadores em mensagens', 'use_followupflags_and_labels', ''); 
    366374 
    367375//$default = 0; 
  • branches/2.5/expressoMail1_2/index.php

    r7919 r8232  
    1616                'enable_nextmatchs_class' => True 
    1717        ); 
    18          
     18 
    1919        require_once('../header.inc.php'); 
    2020        include_once dirname(__FILE__) . '/../header.inc.php'; 
     
    2525        $AlternateEmailExpresso = $alternativeMailService->getMailAlternateByUidNumber($_SESSION['phpgw_info']['expressomail']['user']['account_id']); 
    2626        $template->set_var("user_email_alternative", implode(",", $AlternateEmailExpresso));     
     27         
     28        if (execmethod('emailadmin.ui.countProfiles') == 0){ 
     29        execmethod('emailadmin.ui.addDefaultProfile'); 
     30    } 
    2731 
    2832        $update_version = $GLOBALS['phpgw_info']['apps']['expressoMail1_2']['version']; 
    2933        $_SESSION['phpgw_info']['expressomail']['user'] = $GLOBALS['phpgw_info']['user']; 
    3034        echo "<script type='text/javascript'>var template = '".$_SESSION['phpgw_info']['expressoMail1_2']['user']['preferences']['common']['template_set']."';</script>"; 
     35 
    3136 
    3237        //jquery and Editor  
     
    7479                  <script type="text/javascript" src="js/DropDownContacts.js"></script> 
    7580                  '; 
    76          
     81 
     82// 
     83//    include_once(__DIR__.'/inc/class.imap_functions.inc.php'); 
     84// 
     85//    $param = array(); 
     86//    $param['folder'] = 'INBOX'; 
     87//    $param['msg_range_begin'] = '1'; 
     88//    $param['msg_range_end'] = '50'; 
     89//    $param['sort_box_type'] = 'SORTARRIVAL'; 
     90//    $param['search_box_type'] = 'ALL'; 
     91//    $param['sort_box_reverse'] = '1'; 
     92// 
     93//    $imapf = new imap_functions(); 
     94//    $initialMessages = $imapf->get_range_msgs2($param); 
     95// 
     96//    echo '<script type="text/javascript"> var initialMessages  = '.json_encode($initialMessages).'</script>'; 
     97 
    7798        /* 
    7899         * TODO: implementar o controle como preferência do usuário  
     
    251272    } 
    252273 
    253     echo '<script type="text/javascript"> var preferences  = '.json_encode($_SESSION['phpgw_info']['user']['preferences']['expressoMail']).'</script>';  
    254   
     274    echo '<script type="text/javascript"> var preferences  = '.json_encode($_SESSION['phpgw_info']['user']['preferences']['expressoMail']).'</script>'; 
     275 
    255276    echo ' 
    256277        <script> var special_folders = new Array(4); 
     
    334355        //echo $obj -> getFilesJs("js/common_functions.js",$update_version); 
    335356        include("inc/load_lang.php"); 
    336      
     357 
    337358    // INCLUDE these JS Files: 
    338359        if ($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages'])  
     
    349370        echo "<script> use_local_messages = ".$_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages']."</script>";          
    350371        if($_SESSION['phpgw_info']['user']['preferences']['expressoMail']['use_local_messages']) 
    351                 $scripts .= "js/local_messages.js";      
    352                  
     372                $scripts .= "js/local_messages.js"; 
     373 
    353374        echo ' 
    354375                <!--<script type="text/javascript" src="../prototype/modules/mail/js/followupflag.js"></script>--> 
     
    360381        '; 
    361382 
    362         echo  
     383//////////////////////////////////////////// Carregar Timezones para o javascript ///////////////////////////////////////// 
     384 
     385    $zones = timezone_identifiers_list(); 
     386    $Time = new DateTime('now', new DateTimeZone('UTC')); 
     387    $timezone = array(); 
     388 
     389    foreach ($zones as $zone) 
     390    { 
     391        $timezone['timezones'][$zone] = $Time->setTimezone(new DateTimeZone($zone))->format('O'); 
     392    } 
     393 
     394    $localtime = localtime(time(), true); 
     395    $timezone['isDaylightSaving'] =  !!$localtime['tm_isdst'] ? 1 : 0; 
     396 
     397    echo '<script type="text/javascript"> var Timezone  = '.json_encode($timezone).'</script>'; 
     398 
     399//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
     400 
     401        echo 
    363402            '<script src="../prototype/plugins/datejs/date-pt-BR.js" language="javascript" ></script> 
    364                 <script src="../prototype/modules/calendar/js/timezone.js" language="javascript" ></script> 
    365                 <script src="../prototype/plugins/dateFormat/dateFormat.js" language="javascript" ></script>  
    366                 <script src="../prototype/modules/calendar/js/calendar.date.js" language="javascript" ></script>  
     403                <script src="../prototype/plugins/dateFormat/dateFormat.js" language="javascript" ></script> 
     404                <script src="../prototype/modules/calendar/js/calendar.date.js" language="javascript" ></script> 
    367405                <script src="../prototype/modules/calendar/js/calendar.codecs.js" language="javascript" ></script> 
    368406                <script src="../prototype/modules/calendar/js/calendar.alarms.js" language="javascript" ></script> 
     
    371409        echo $obj -> getFilesJs($scripts, $update_version); 
    372410        echo '<script type="text/javascript">connector.updateVersion = "'.$update_version.'";</script>'; 
    373                  
    374411        echo '<script type="text/javascript" src="assetic.php"></script>'; 
    375          
     412 
     413/////////   Verifica se o usuario esta fora do escritorio imprime a variavel javascript "outOfficeFlag" ///////////////////////////// 
     414 
     415    include_once(__DIR__ .'/../library/Net/Sieve.php'); 
     416    $sieveConf  =  parse_ini_file( __DIR__."/../prototype/config/Sieve.srv", true ); 
     417    $sieveConf = $sieveConf['config']; 
     418    $sieve = new Net_Sieve(); 
     419    $inVacation = false; 
     420    @$sieve->connect( $sieveConf['host'] , $sieveConf['port'] , $sieveConf['options'] , $sieveConf['useTLS'] ); 
     421    @$sieve->login( $_SESSION['wallet']['Sieve']['user'], $_SESSION['wallet']['Sieve']['password'] , $sieveConf['loginType']); 
     422    $script = $sieve->getScript($sieve->getActive()); 
     423    $pos = strripos($script, "#PseudoScript#"); 
     424    $pseudo_script = substr( $script, $pos+17 ); 
     425    $sieveRules = json_decode( $pseudo_script, true ); 
     426    foreach( $sieveRules as $i => $v) 
     427        if($v['id'] == 'vacation' && $v['enabled'] == 'true') 
     428            $inVacation = true; 
     429 
     430    if($inVacation) 
     431        echo '<script language="javascript"> write_msg(get_lang("Attention, you are in out of office mode."), true);   </script>'; 
     432 
     433////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
     434 
     435 
     436 
     437 
    376438 
    377439        // Get Preferences or redirect to preferences page. 
  • branches/2.5/expressoMail1_2/js/InfoContact.js

    r8147 r8232  
    77        this.td; 
    88        this.createCard(); 
     9        this.folder = get_current_folder(); 
    910} 
    1011 
     
    6970 
    7071emInfoContact.prototype.show = function (data){ 
     72        if (this.folder != get_current_folder()){ 
     73                this.folder = get_current_folder(); 
     74                return false; 
     75        }        
    7176        var _this = this; 
    7277        var card = Element("card_cc"); 
    7378        card.style.left = (findPosX(this.td) + 20)+"px"; 
    74         var divScroll = Element("divScrollMain_"+numBox);  
    75         var y = findPosY(this.td) + 20 - (divScroll ? divScroll.scrollTop : 0);  
     79        var divScroll = Element("divScrollMain_"+numBox); 
     80        var y = findPosY(this.td) + 20 - (divScroll ? divScroll.scrollTop : 0); 
    7681        var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset; 
    7782        if(y + 160 > w_height) 
  • branches/2.5/expressoMail1_2/js/abas.js

    r8125 r8232  
    1010function setBorderAttributes(ID) 
    1111{ 
    12         this.border_id = "border_id_"+ID; 
    13         this.sequence = ID;  
     12    this.border_id = "border_id_"+ID; 
     13    this.sequence = ID;  
    1414} 
    1515 
     
    1717function alternate_border(ID) 
    1818{ 
    19         msg_selected = false;//Controle da seleção de mensagens 
    20         if(isNaN(ID)) 
    21                 if(preferences.use_shortcuts == "1") 
    22                         select_msg((ID.split("_"))[0]); 
    23         if( document.getElementById("div_menu_c3") != null ) 
    24         { 
    25                 //div que contém divs de paginação de todas abas de listagem possíveis (listagem de pasta e listagem de pesquisa) 
    26                 var node = document.getElementById("div_menu_c3").firstChild; 
    27                 //Se for diferente da aba de listagem, remove a paginação 
    28                 if(currentTab != 0){ 
    29                         //Enquanto node for true (retorna false se não houver mais elementos) 
    30                         while ( node ) { 
    31                                 node.style.display = "none"; 
    32                                 node = node.nextSibling; 
    33                         } 
    34                 } 
    35                  
    36                 if( document.getElementById("span_paging"+ID) != null ) 
    37                         document.getElementById("span_paging"+ID).style.display = "block"; 
    38         } 
    39          
    40         if ( typeof win == 'object' && win.close && win.close.constructor == Function ){ 
     19    
     20 
     21    msg_selected = false;//Controle da seleção de mensagens 
     22    if(isNaN(ID)) 
     23        if(preferences.use_shortcuts == "1") 
     24            select_msg((ID.split("_"))[0]); 
     25    if( document.getElementById("div_menu_c3") != null ) 
     26    { 
     27        //div que contém divs de paginação de todas abas de listagem possíveis (listagem de pasta e listagem de pesquisa) 
     28        var node = document.getElementById("div_menu_c3").firstChild; 
     29        //Se for diferente da aba de listagem, remove a paginação 
     30        if(currentTab != 0){ 
     31            //Enquanto node for true (retorna false se não houver mais elementos) 
     32            while ( node ) { 
     33                node.style.display = "none"; 
     34                node = node.nextSibling; 
     35            } 
     36        } 
     37         
     38        if( document.getElementById("span_paging"+ID) != null ) 
     39            document.getElementById("span_paging"+ID).style.display = "block"; 
     40    } 
     41     
     42    if ( typeof win == 'object' && win.close && win.close.constructor == Function ){ 
    4143            var search_win = document.getElementById( 'window_QuickCatalogSearch' ); 
    4244            if(search_win){ 
     
    4547            win.close( ); 
    4648        } 
    47                  
    48         if (! Element('border_id_'+ID)) 
    49                 return false; // Not possible to alternate 
    50         show_hide_span_paging(ID); 
    51         spanD = Element("span_D"); 
    52         if (spanD) 
    53                 spanD.style.display = (openTab.type[ID] == 0 ? '' : 'none'); 
    54  
    55         var footer_menu = Element("footer_menu");        
    56         var aba = Element('border_id_'+ID); 
    57         if (footer_menu != null) { 
    58                 footer_menu.style.display = (openTab.type[ID] != 4 ? '' : 'none'); 
    59                 var alternate_menu = document.getElementById('localOption'); 
    60                  
    61                 if(alternate_menu != null && alternate_menu != 'undefined'){ //Quando Carregado o expresso mail 
    62                         if(openTab.imapBox[ID]!= null && openTab.imapBox[ID]!= 'undefined' ){ //Quando abrir uma Nova Mensagem 
    63                                 if((openTab.imapBox[ID].indexOf("local_") >= 0)){                                                
    64                                                 alternate_menu.title = get_lang("Unarchive"); 
    65                                                 alternate_menu.removeAttribute("onclick"); 
    66                                                 if(!is_ie) 
    67                                                         alternate_menu.setAttribute("onclick",  'expresso_local_messages.unarchive_msgs(\''+openTab.imapBox[ID]+'\', null)'); 
    68                                                 else{ 
    69                                                         alternate_menu.onclick = function(){ 
    70                                                                 expresso_local_messages.unarchive_msgs(openTab.imapBox[ID], null); 
    71                                                         } 
    72                                                 } 
    73                                                 alternate_menu.innerHTML = get_lang("Unarchive"); 
    74                                                  
    75                                         }else{ 
    76                                                 alternate_menu.title = get_lang("Archive"); 
    77                                                 alternate_menu.removeAttribute("onclick"); 
    78                                                 if(!is_ie) 
    79                                                         alternate_menu.setAttribute("onclick", 'archive_msgs(\''+openTab.imapBox[ID]+'\', null)');               
    80                                                 else{ 
    81                                                         alternate_menu.onclick = function(){ 
    82                                                                 archive_msgs(openTab.imapBox[ID], null); 
    83                                                         }        
    84                                                 } 
    85                                                 alternate_menu.innerHTML = get_lang("Archive"); 
    86                                         } 
    87                                          
    88                         } 
    89                 } 
    90                  
    91                 if((aba.id.indexOf("_r") < 0) && (aba.id.indexOf("_0") < 0) && (aba.id.indexOf("id_search_") < 0) && (aba.id.indexOf("_s") < 0)){ 
    92                         spanD.style.display = 'none'; 
    93                         footer_menu.style.display = 'none';                      
    94                 } 
    95         } 
    96  
    97  
    98         var len = BordersArray.length; 
    99         for (var i=0; i < len; i++) 
    100         { 
    101                 m = document.getElementById(BordersArray[i].border_id); 
    102                 if ((m)&&(m.className == 'menu-sel')) 
    103                 { 
    104                         m.className = 'menu'; 
    105                         c = document.getElementById("content_id_"+BordersArray[i].sequence); 
    106                         c.style.display = 'none'; 
    107                         if(Element("font_border_id_"+BordersArray[i].sequence)) 
    108                                 Element("font_border_id_"+BordersArray[i].sequence).className = 'font-menu';     
    109  
    110                 } 
    111         } 
    112  
    113         m = Element("border_id_"+ID); 
    114         if (m) 
    115                 m.className = 'menu-sel'; 
    116         if(Element("font_border_id_" + ID)) 
    117                 Element("font_border_id_" + ID).className = 'font-menu-sel'; 
    118         var c = Element("content_id_"+ID) 
    119         if (c) 
    120                 c.style.display = ''; 
    121  
    122  
    123         // hide the DropDrowContact, if necessary 
    124         window_DropDownContacts = Element('tipDiv'); 
    125         if ((window_DropDownContacts)&&(window_DropDownContacts.style.visibility != 'hidden')){ 
    126                 window_DropDownContacts.style.visibility = 'hidden'; 
    127         } 
    128  
    129         numBox = getNumBoxFromTabId(ID); 
    130         if (typeof(ID)=='number') { 
     49         
     50    if (! Element('border_id_'+ID)) 
     51        return false; // Not possible to alternate 
     52    show_hide_span_paging(ID); 
     53    spanD = Element("span_D"); 
     54    if (spanD) 
     55        spanD.style.display = (openTab.type[ID] == 0 ? '' : 'none'); 
     56 
     57    var footer_menu = Element("footer_menu");    
     58    var aba = Element('border_id_'+ID); 
     59    if (footer_menu != null) { 
     60        footer_menu.style.display = (openTab.type[ID] != 4 ? '' : 'none'); 
     61        var alternate_menu = document.getElementById('localOption'); 
     62         
     63        if(alternate_menu != null && alternate_menu != 'undefined'){ //Quando Carregado o expresso mail 
     64            if(openTab.imapBox[ID]!= null && openTab.imapBox[ID]!= 'undefined' ){ //Quando abrir uma Nova Mensagem 
     65                if((openTab.imapBox[ID].indexOf("local_") >= 0)){                        
     66                        alternate_menu.title = get_lang("Unarchive"); 
     67                        alternate_menu.removeAttribute("onclick"); 
     68                        if(!is_ie) 
     69                            alternate_menu.setAttribute("onclick",  'expresso_local_messages.unarchive_msgs(\''+openTab.imapBox[ID]+'\', null)'); 
     70                        else{ 
     71                            alternate_menu.onclick = function(){ 
     72                                expresso_local_messages.unarchive_msgs(openTab.imapBox[ID], null); 
     73                            } 
     74                        } 
     75                        alternate_menu.innerHTML = get_lang("Unarchive"); 
     76                         
     77                    }else{ 
     78                        alternate_menu.title = get_lang("Archive"); 
     79                        alternate_menu.removeAttribute("onclick"); 
     80                        if(!is_ie) 
     81                            alternate_menu.setAttribute("onclick", 'archive_msgs(\''+openTab.imapBox[ID]+'\', null)');       
     82                        else{ 
     83                            alternate_menu.onclick = function(){ 
     84                                archive_msgs(openTab.imapBox[ID], null); 
     85                            }    
     86                        } 
     87                        alternate_menu.innerHTML = get_lang("Archive"); 
     88                    } 
     89                     
     90            } 
     91        } 
     92         
     93        if((aba.id.indexOf("_r") < 0) && (aba.id.indexOf("_0") < 0) && (aba.id.indexOf("id_search_") < 0) && (aba.id.indexOf("_s") < 0)){ 
     94            spanD.style.display = 'none'; 
     95            footer_menu.style.display = 'none';          
     96        } 
     97    } 
     98 
     99 
     100    var len = BordersArray.length; 
     101    for (var i=0; i < len; i++) 
     102    { 
     103        m = document.getElementById(BordersArray[i].border_id); 
     104        if ((m)&&(m.className == 'menu-sel')) 
     105        { 
     106            m.className = 'menu'; 
     107            c = document.getElementById("content_id_"+BordersArray[i].sequence); 
     108            c.style.display = 'none'; 
     109            if(Element("font_border_id_"+BordersArray[i].sequence)) 
     110                Element("font_border_id_"+BordersArray[i].sequence).className = 'font-menu';     
     111 
     112        } 
     113    } 
     114 
     115    m = Element("border_id_"+ID); 
     116    if (m) 
     117        m.className = 'menu-sel'; 
     118    if(Element("font_border_id_" + ID)) 
     119        Element("font_border_id_" + ID).className = 'font-menu-sel'; 
     120    var c = Element("content_id_"+ID) 
     121    if (c) 
     122        c.style.display = ''; 
     123 
     124 
     125    // hide the DropDrowContact, if necessary 
     126    window_DropDownContacts = Element('tipDiv'); 
     127    if ((window_DropDownContacts)&&(window_DropDownContacts.style.visibility != 'hidden')){ 
     128        window_DropDownContacts.style.visibility = 'hidden'; 
     129    } 
     130 
     131    numBox = getNumBoxFromTabId(ID); 
     132    if (typeof(ID)=='number') { 
    131133                 numBox = ID; 
    132134         } 
     
    145147             } 
    146148         } 
    147         currentTab=ID; 
    148         if( document.getElementById('to_'+ID) && document.getElementById('to_'+ID).type == "textarea"){  
    149             document.getElementById('to_'+ID).focus();  
    150         } 
    151         if (ID == 0){  
    152                 updateSelectedMsgs(); 
    153         } 
    154         RichTextEditor.setEditable(ID); 
    155         resizeWindow(); 
    156         return ID; 
     149    currentTab=ID; 
     150    if( document.getElementById('to_'+ID) && document.getElementById('to_'+ID).type == "textarea"){  
     151        document.getElementById('to_'+ID).focus();  
     152    } 
     153    if (ID == 0){  
     154        updateSelectedMsgs(); 
     155    } 
     156    RichTextEditor.setEditable(ID); 
     157    resizeWindow(); 
     158 
     159    return ID; 
    157160} 
    158161 
    159162function create_border(borderTitle, id_value, search) 
    160163{ 
    161         borderTitle = ( ( borderTitle && borderTitle.constructor == String && borderTitle.length > 0 ) ? borderTitle : ' ' ); 
     164    borderTitle = ( ( borderTitle && borderTitle.constructor == String && borderTitle.length > 0 ) ? borderTitle : ' ' ); 
    162165    borderTitle = html_entities(borderTitle);     
    163         var resize = false; 
     166    var resize = false; 
    164167        resize = resize_borders(); 
    165168        if (!resize){ 
    166169            var str_continue = ''; 
    167170            var bolContinue = true; 
    168                         str_continue = '\n' + get_lang('You must manually close one of your tabs before opening a new one'); 
     171            str_continue = '\n' + get_lang('You must manually close one of your tabs before opening a new one'); 
    169172            if (preferences.auto_close_first_tab == 1){ 
    170173                var children = Element('border_tr').childNodes; 
     
    180183                        } 
    181184                        if (bolDelete || bolContinue){ 
    182                                                         str_fechar = '\n' + get_lang('Reached maximum tab limit. Want to close this tab'); 
    183                                                         var confirmacao = confirm(str_fechar); 
     185                            str_fechar = '\n' + get_lang('Reached maximum tab limit. Want to close this tab'); 
     186                            var confirmacao = confirm(str_fechar); 
    184187                            if(confirmacao){ 
    185188                            bolContinue = false; 
    186189                            delete_border(num_child, 'false'); 
    187190                            break; 
    188                                                         }else{ 
    189                                                                 return 'maximo'; 
     191                            }else{ 
     192                                return 'maximo'; 
    190193                        } 
    191194                    } 
    192195                } 
    193196            } 
    194             }else{                       
     197            }else{           
    195198                alert(get_lang('Reached maximum tab limit') + str_continue ); 
    196199                return 'maximo'; 
    197200            } 
    198201        } 
    199          
    200         if (! id_value){ // Is new message? 
    201                 var ID = parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1; 
    202                         if(isNaN(ID)){ 
    203                                 var aux = BordersArray[(BordersArray.length-1)].sequence.split("_"); 
    204                                 ID = parseInt(aux[1]) + 1; 
    205                         } 
     202     
     203    if (! id_value){ // Is new message? 
     204        var ID = parseInt(BordersArray[(BordersArray.length-1)].sequence) + 1; 
     205            if(isNaN(ID)){ 
     206                var aux = BordersArray[(BordersArray.length-1)].sequence.split("_"); 
     207                ID = parseInt(aux[1]) + 1; 
     208            } 
    206209        }else 
    207         { 
    208                 if (Element("border_id_"+id_value)) // It's opened already! 
    209                         return alternate_border(id_value); 
    210                  
    211                 var ID = id_value; 
    212                 if(isNaN(ID) && ID.indexOf("search_local") >= 0){ 
    213                         if(current_folder.indexOf("local") >= 0) 
    214                                 openTab.imapBox[ID] = current_folder; 
    215                         else 
    216                                 openTab.imapBox[ID] = 'local_search'; 
    217                 }else if(isNaN(ID) && ID.indexOf("search_") >= 0){ 
    218                         if(current_folder.indexOf("local") < 0) 
    219                                 openTab.imapBox[ID] = current_folder; 
    220                         else 
    221                                 openTab.imapBox[ID] = 'search'; 
    222                 }else if( (currentTab != 0) && isNaN(currentTab) && (currentTab.indexOf("search") >= 0) && (ID.indexOf("msg") < 0) ) { 
    223                         var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
    224                         ID_TR = ID.toString().substr(0,ID.toString().indexOf("_r")); 
    225                         var tr = Element(ID_TR) ? Element(ID_TR) : Element(ID_TR+"_s"+id_border); 
    226                         openTab.imapBox[ID] = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    227                 }else 
    228                         openTab.imapBox[ID] = current_folder; 
    229         } 
    230         td = document.createElement("TD"); 
    231         td.id="border_id_" + ID; 
    232         if(resize)  
    233         { 
    234                 td.setAttribute("width", parseInt(resize)+"px"); 
    235                 td.style.width = parseInt(resize)+"px"; 
    236         } 
    237         else 
    238                 td.setAttribute("width", "200px"); 
    239  
    240         td.setAttribute("align", "right"); 
    241         td.onclick = function(){alternate_border(ID);resizeWindow()}; 
    242         td.setAttribute("noWrap","true"); 
    243         td.setAttribute("role",get_current_folder()); 
    244         td.title = borderTitle; 
    245         borderTitle = borderTitle ?  borderTitle : id_value ? get_lang("No Subject") : " "      ; 
    246         td.value = borderTitle; 
    247         if (borderTitle.length > 21) 
    248                 borderTitle = borderTitle.substring(0,21) + "..."; 
    249  
    250         if ( resize ) 
    251                 borderTitle = borderTitle.substring(0, resize*0.08); 
    252          
    253         var cc = search; 
    254         if(!cc){ 
    255                 if(isNaN(ID)){ 
    256                         var is_local = ID.match('.*_local_.*'); 
    257                         if(!is_local) 
    258                                 cc = document.getElementById("em_message_search").value; 
    259                         else{ 
    260                                 if (currentTab == 0) 
    261                                         cc = ""; 
    262                                 else 
    263                                         cc = document.getElementsByName(currentTab)[0].value; 
    264                         } 
    265                 }else{ 
    266                         cc =""; 
    267                 } 
    268         } 
    269         td.innerHTML = "<div><div id='font_border_id_" + ID+"' class='font-menu'>" + 
     210    { 
     211        if (Element("border_id_"+id_value)) // It's opened already! 
     212            return alternate_border(id_value); 
     213         
     214        var ID = id_value; 
     215        if(isNaN(ID) && ID.indexOf("search_local") >= 0){ 
     216            if(current_folder.indexOf("local") >= 0) 
     217                openTab.imapBox[ID] = current_folder; 
     218            else 
     219                openTab.imapBox[ID] = 'local_search'; 
     220        }else if(isNaN(ID) && ID.indexOf("search_") >= 0){ 
     221            if(current_folder.indexOf("local") < 0) 
     222                openTab.imapBox[ID] = current_folder; 
     223            else 
     224                openTab.imapBox[ID] = 'search'; 
     225        }else if( (currentTab != 0) && isNaN(currentTab) && (currentTab.indexOf("search") >= 0) && (ID.indexOf("msg") < 0) ) { 
     226            var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     227            ID_TR = ID.toString().substr(0,ID.toString().indexOf("_r")); 
     228            var tr = Element(ID_TR) ? Element(ID_TR) : Element(ID_TR+"_s"+id_border); 
     229            openTab.imapBox[ID] = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
     230        }else 
     231            openTab.imapBox[ID] = current_folder; 
     232    } 
     233    td = document.createElement("TD"); 
     234    td.id="border_id_" + ID; 
     235    if(resize)  
     236    { 
     237        td.setAttribute("width", parseInt(resize)+"px"); 
     238        td.style.width = parseInt(resize)+"px"; 
     239    } 
     240    else 
     241        td.setAttribute("width", "200px"); 
     242 
     243    td.setAttribute("align", "right"); 
     244    td.onclick = function(){alternate_border(ID);resizeWindow()}; 
     245    td.setAttribute("noWrap","true"); 
     246    td.setAttribute("role",get_current_folder()); 
     247    td.title = borderTitle; 
     248    borderTitle = borderTitle ?  borderTitle : id_value ? get_lang("No Subject") : " "  ; 
     249    td.value = borderTitle; 
     250    if (borderTitle.length > 21) 
     251        borderTitle = borderTitle.substring(0,21) + "..."; 
     252 
     253    if ( resize ) 
     254        borderTitle = borderTitle.substring(0, resize*0.08); 
     255     
     256    var cc = search; 
     257    if(!cc){ 
     258        if(isNaN(ID)){ 
     259            var is_local = ID.match('.*_local_.*'); 
     260            if(!is_local) 
     261                cc = document.getElementById("em_message_search").value; 
     262            else{ 
     263                if (currentTab == 0) 
     264                    cc = ""; 
     265                else 
     266                    cc = document.getElementsByName(currentTab)[0].value; 
     267            } 
     268        }else{ 
     269            cc =""; 
     270        } 
     271    } 
     272    td.innerHTML = "<div><div id='font_border_id_" + ID+"' class='font-menu'>" + 
    270273                                borderTitle + 
    271274                            "</div>\n\ 
     
    273276                                <img onmousedown='javascript:return false' style='cursor:pointer' onclick=delete_border('" + ID + "','false') src='templates/"+template+"/images/close_button.gif'/>\n\ " + 
    274277                            "</div>\n\ " +  
    275                                                         "<input type=\"hidden\" name=\""+ ID+"\" value=\""+cc+"\"></div>";               
    276         bb = document.getElementById("border_blank"); 
    277         parent_bb = bb.parentNode; //Pego o tbody 
    278         parent_bb.insertBefore(td, bb); 
    279  
    280         if((typeof(id_value) == 'string') && id_value.match(/_r/)){ 
    281                 $(td).draggable({ 
    282                         start : function(){ 
    283                                 $('.upper, .lower').show(); 
    284                         $(".lower").css("top", ($("#content_folders").height()-18) + $("#content_folders").offset().top); 
    285                                 if($(".shared-folders").length){ 
    286                                         $(".shared-folders").parent().find('.folder:not(".shared-folders")').droppable({ 
    287                                                 over : function(a, b){                                           
    288                                                         //SETA BORDA EM VOLTA DA PASTA 
    289                                                         over = $(this); 
    290                                                         $(this).addClass("folder-over"); 
    291                                                         if(($(this)[0] != $(this).parent().find(".head_folder")[0])) 
    292                                                                 if($(this).prev()[0]) 
    293                                                                         if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){ 
    294                                                                                 setTimeout(function(){ 
    295                                                                                         if(over.hasClass("folder-over")) 
    296                                                                                                 over.prev().trigger("click"); 
    297                                                                                 }, 500); 
    298                                                                                  
    299                                                                         } 
    300                                                         //$("#content_folders").stop().scrollTo($(this), {axis:'y', margin:true, offset:-50, duration:400}); 
    301                                                 }, 
    302                                                 out : function(){ 
    303                                                         //RETIRA BORDA EM VOLTA DA PASTA 
    304                                                         $(this).removeClass("folder-over"); 
    305                                                 }, 
    306                                                 //accept: ".draggin_mail", 
    307                                                 drop : function(event, ui){ 
    308                                                         $(this).css("border", "0"); 
    309                                                         if($(this).parent().attr('id') == undefined){ 
    310                                                                 var folder_to = 'INBOX'; 
    311                                                                 var to_folder_title = get_lang("Inbox"); 
    312                                                         }else{ 
    313                                                                 var folder_to = $(this).parent().attr('id'); 
    314                                                                 var to_folder_title = $(this).attr('title'); 
    315                                                         }                
    316                                                         var folder_to_move = ui.draggable.parent().attr('id'); 
    317                                                         var border_id = ui.draggable.find("input[type=hidden]").attr("name"); 
    318                                                         if(folder_to_move == "border_tr"){ 
    319                                                                 var id_msg = border_id.split("_")[0]; 
    320                                                                 folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder()); 
    321                                                                 move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true); 
    322                                                                 return refresh(); 
    323                                                         } 
    324                                                 } 
    325                                         }); 
    326                                 } 
    327                         }, 
    328                         stop :function(){ 
    329                                 $('.upper, .lower').hide(); 
    330                                 $(".shared-folders").parent().find(".folder").droppable("destroy"); 
    331                         }, 
    332                         helper: function(event){ 
    333                                 if(     borderTitle.length > 18 ) 
    334                                         return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle.substring(0,18) + "...", type: "messages"})+"</td>"); 
    335                                 else 
    336                                         return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle, type: "messages"})+"</td>"); 
    337                         }, 
    338                         delay: 150, 
    339                         cursorAt: {top: 5, left: 56}, 
    340                         refreshPositions: true , 
    341                         containment: "#divAppbox" 
    342                 }); 
    343         } 
    344                 //_dragArea.makeDragged(td, id_value,td.value); 
    345  
    346         BordersArray[BordersArray.length] = new setBorderAttributes(ID); 
    347  
    348         var div = document.createElement("DIV"); 
    349         div.id = "content_id_" + ID; 
    350         div.className = "conteudo"; 
    351         div.style.display=''; 
    352  
    353         div.style.overflow = "hidden"; 
    354  
    355         Element("exmail_main_body").insertBefore(div,Element("footer_menu"));        
    356         if (!is_ie) 
    357                 resizeWindow(); 
    358         alternate_border(ID); 
     278                            "<input type=\"hidden\" name=\""+ ID+"\" value=\""+cc+"\"></div>";       
     279    bb = document.getElementById("border_blank"); 
     280    parent_bb = bb.parentNode; //Pego o tbody 
     281    parent_bb.insertBefore(td, bb); 
     282 
     283    if((typeof(id_value) == 'string') && id_value.match(/_r/)){ 
     284        $(td).draggable({ 
     285            start : function(){ 
     286                $('.upper, .lower').show(); 
     287                $(".lower").css("top", ($("#content_folders").height()-18) + $("#content_folders").offset().top); 
     288                /* Habilitar anexar mensagem por drag-and-drop, se a aba atual for editável,   
     289                ou seja, nem de leitura (2), nem de lista de mensagens (0):*/  
     290                var current_tab_type = openTab.type[currentTab];  
     291                if (current_tab_type != 0 && current_tab_type != 2){  
     292                    var dropzone = $("#fileupload_msg" + currentTab + "_droopzone");  
     293                    dropzone.show();  
     294                    dropzone.prev().hide();  
     295                    dropzone.droppable({  
     296                        over: function (event, ui){  
     297                            dropzone.addClass('hover in');  
     298                            $(ui.helper).find(".draggin-folder,.draggin-mail").css("color", "green");  
     299                        },  
     300                        out: function (event, ui) {  
     301                            dropzone.removeClass('hover in');  
     302                            $(ui.helper).find(".draggin-folder,.draggin-mail").css("color", "");  
     303                        },  
     304                        drop: function (event, ui) {  
     305                            var border_id = ui.draggable.find("input[type=hidden]").attr("name");  
     306                            var id_msg = border_id.split("_")[0];  
     307                            var folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder());  
     308                            attach_message(folder, id_msg); /* Anexa a mensagem especificada (por folder e id_msg)  
     309                                                               na mensagem sendo criada.*/  
     310                        }  
     311                    });  
     312                }  
     313                if($(".shared-folders").length){ 
     314                    $(".shared-folders").parent().find('.folder:not(".shared-folders")').droppable({ 
     315                        over : function(a, b){                       
     316                            //SETA BORDA EM VOLTA DA PASTA 
     317                            $(b.helper).find(".draggin-folder,.draggin-mail").css("color", "green"); 
     318                            over = $(this); 
     319                            $(this).addClass("folder-over"); 
     320                            if(($(this)[0] != $(this).parent().find(".head_folder")[0])) 
     321                                if($(this).prev()[0]) 
     322                                    if($(this).parent().find(".expandable-hitarea")[0] == $(this).prev()[0]){ 
     323                                        setTimeout(function(){ 
     324                                            if(over.hasClass("folder-over")) 
     325                                                over.prev().trigger("click"); 
     326                                        }, 500); 
     327                                         
     328                                    } 
     329                            //$("#content_folders").stop().scrollTo($(this), {axis:'y', margin:true, offset:-50, duration:400}); 
     330                        }, 
     331                        out : function(a,b){ 
     332                            //RETIRA BORDA EM VOLTA DA PASTA 
     333                            $(b.helper).find(".draggin-folder,.draggin-mail").css("color", ""); 
     334                            $(this).removeClass("folder-over"); 
     335                        }, 
     336                        //accept: ".draggin_mail", 
     337                        drop : function(event, ui){ 
     338                            $(this).css("border", "0"); 
     339                            if($(this).parent().attr('id') == undefined){ 
     340                                var folder_to = 'INBOX'; 
     341                                var to_folder_title = get_lang("Inbox"); 
     342                            }else{ 
     343                                var folder_to = $(this).parent().attr('id'); 
     344                                var to_folder_title = $(this).attr('title'); 
     345                            }        
     346                            var folder_to_move = ui.draggable.parent().attr('id'); 
     347                            var border_id = ui.draggable.find("input[type=hidden]").attr("name"); 
     348                            if(folder_to_move == "border_tr"){ 
     349                                var id_msg = border_id.split("_")[0]; 
     350                                folder = $("#input_folder_"+border_id+"_r")[0] ? $("#input_folder_"+border_id+"_r").val() : (openTab.imapBox[border_id] ? openTab.imapBox[border_id]:get_current_folder()); 
     351                                move_msgs2(folder, id_msg, border_id, folder_to, to_folder_title,true); 
     352                                return refresh(); 
     353                            } 
     354                        } 
     355                    }); 
     356                } 
     357            }, 
     358            stop :function(){ 
     359                $('.upper, .lower').hide(); 
     360                $(".shared-folders").parent().find(".folder").droppable("destroy"); 
     361                /* Habilitar anexar mensagem por drag-and-drop, se a aba atual for editável,   
     362                ou seja, nem de leitura (2), nem de lista de mensagens (0):*/  
     363                var current_tab_type = openTab.type[currentTab];  
     364                if (current_tab_type != 0 && current_tab_type != 2){  
     365                    var dropzone = $("#fileupload_msg" + currentTab + "_droopzone");  
     366                    dropzone.hide();  
     367                    dropzone.prev().show();  
     368                }  
     369            }, 
     370            helper: function(event){ 
     371                if( borderTitle.length > 18 ) 
     372                    return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle.substring(0,18) + "...", type: "messages"})+"</td>"); 
     373                else 
     374                    return $("<td>"+DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : borderTitle, type: "messages"})+"</td>"); 
     375            }, 
     376            delay: 150, 
     377            cursorAt: {top: 5, left: 56}, 
     378            refreshPositions: true , 
     379            containment: "#divAppbox" 
     380        }); 
     381    } 
     382        //_dragArea.makeDragged(td, id_value,td.value); 
     383 
     384    BordersArray[BordersArray.length] = new setBorderAttributes(ID); 
     385 
     386    var div = document.createElement("DIV"); 
     387    div.id = "content_id_" + ID; 
     388    div.className = "conteudo"; 
     389    div.style.display=''; 
     390 
     391    div.style.overflow = "hidden"; 
     392 
     393    Element("exmail_main_body").insertBefore(div,Element("footer_menu"));        
     394    if (!is_ie) 
     395        resizeWindow(); 
     396    alternate_border(ID); 
    359397    uidsSave[ID] = []; 
    360398    saveBorderError[ID] = false; 
    361         return ID; 
     399    return ID; 
    362400} 
    363401 
    364402function resize_borders() 
    365403{ 
    366         var numBorders = count_borders(); 
    367  
    368         if (numBorders > 8) 
    369                 return false; 
    370  
    371         return redim_borders(numBorders+1); 
     404    var numBorders = count_borders(); 
     405 
     406    if (numBorders > 8) 
     407        return false; 
     408 
     409    return redim_borders(numBorders+1); 
    372410} 
    373411 
    374412function count_borders() 
    375413{ 
    376         var numBorders = 0; 
    377         var children = Element('border_tr').childNodes; 
    378         for (var i=0; i<children.length; i++) { 
    379             if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')) 
    380                 numBorders++; 
    381         } 
    382  
    383         return numBorders; 
     414    var numBorders = 0; 
     415    var children = Element('border_tr').childNodes; 
     416    for (var i=0; i<children.length; i++) { 
     417        if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')) 
     418        numBorders++; 
     419    } 
     420 
     421    return numBorders; 
    384422} 
    385423 
    386424function redim_borders(numBorders) 
    387425{ 
    388         var children = Element('border_tr').childNodes; 
    389         var clientWidth = (window.document.body.clientWidth - findPosX(Element("exmail_main_body"))) - Element("border_id_0").clientWidth - 30; 
    390         var newWidthTD = (clientWidth/numBorders)-6; 
    391         newWidthTD = newWidthTD > 200 ? 200 : (newWidthTD < 50 ? 50 : newWidthTD); 
    392         children = Element('border_tr').childNodes; 
    393         for (var i=0; i<children.length; i++) { 
    394                 if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')){ 
    395                         $(children[i]).css("width", newWidthTD); 
    396                         $(children[i]).find('div:first').css("width", newWidthTD); 
    397                         set_border_caption(children[i].id, children[i].title, newWidthTD); 
    398                 } 
    399         } 
    400         return newWidthTD; 
     426    var children = Element('border_tr').childNodes; 
     427    var clientWidth = (window.document.body.clientWidth - findPosX(Element("exmail_main_body"))) - Element("border_id_0").clientWidth - 30; 
     428    var newWidthTD = (clientWidth/numBorders)-6; 
     429    newWidthTD = newWidthTD > 200 ? 200 : (newWidthTD < 50 ? 50 : newWidthTD); 
     430    children = Element('border_tr').childNodes; 
     431    for (var i=0; i<children.length; i++) { 
     432        if ((children[i].nodeName === 'TD') && (children[i].id!=='border_id_0') && (children[i].id!=='border_blank')){ 
     433            $(children[i]).css("width", newWidthTD); 
     434            $(children[i]).find('div:first').css("width", newWidthTD); 
     435            set_border_caption(children[i].id, children[i].title, newWidthTD); 
     436        } 
     437    } 
     438    return newWidthTD; 
    401439} 
    402440 
     
    411449            border_width = border.clientWidth; 
    412450        } 
    413         var caption = ""; 
     451    var caption = ""; 
    414452    if (border != null){ 
    415                 Element("font_"+border.id).style.width = (border_width - 35)+'px'; 
    416                 Element("font_"+border.id).innerHTML = title; 
    417         } 
    418         return(title); 
     453        Element("font_"+border.id).style.width = (border_width - 35)+'px'; 
     454        Element("font_"+border.id).innerHTML = title; 
     455    } 
     456    return(title); 
    419457} 
    420458 
     
    442480                            'type':     'question', 
    443481                            'overlay_opacity': '0.5', 
    444                                                         'custom_class': 'custom-zebra-filter', 
     482                            'custom_class': 'custom-zebra-filter', 
    445483                            'buttons':  buttons, 
    446484                            'width' : width, 
    447485                            'onClose':  function(clicked) { 
    448                                                                         if(clicked == 'Cancelar'){ 
    449                                                                                 if (RichTextEditor.plain[id] != true)  
    450                                                                                         setTimeout("RichTextEditor.focus("+ID+")",100);                   
    451                                                                                 else   
    452                                                                                         $('#body_'+ID).focus();  
    453                                                                         } 
     486                                    if(clicked == 'Cancelar'){ 
     487                                        if (RichTextEditor.plain[id] != true)  
     488                                            setTimeout("RichTextEditor.focus("+ID+")",100);                   
     489                                        else   
     490                                            $('#body_'+ID).focus();  
     491                                    } 
    454492                                    if(clicked == 'Descartar alterações' || clicked == 'Descartar alterações e anexos' ) { 
    455493                                        if (openTab.imapBox[ID] && !openTab.toPreserve[ID]) 
     
    477515                                                                $("#cc_"+ID).focus(); 
    478516                                                        else if ($("#tr_cco_"+ID).css('display') != 'none' && $.trim($("#cco_"+ID).val()) == "") 
    479                                                                 $("#cco_"+ID).focus();           
     517                                                                $("#cco_"+ID).focus();       
    480518                                                        else if ($.trim($("#subject_"+ID).val()) == "") 
    481519                                                                $("#subject_"+ID).focus(); 
     
    494532                            }})}, 300);     
    495533        } 
    496          
     534     
    497535} 
    498536 
    499537function editTest(ID){ 
    500538    var body = document.getElementById('body_'+ ID); 
    501         var content = $('#content_id_'+ ID); 
     539    var content = $('#content_id_'+ ID); 
    502540    if (body) 
    503541    { 
     
    522560    } 
    523561 
    524     if($("#content_id_"+currentTab+" textarea[name=input_to]").length ){ 
    525         if($("#content_id_"+currentTab+" .save").is(':disabled') ) { 
     562    if($("#content_id_"+ID+" textarea[name=input_to]").length ){ 
     563        if($("#content_id_"+ID+" .save").is(':disabled') ) { 
    526564             close_delete(ID, msg_sent); 
    527         } else if( $("#content_id_"+currentTab+" .save").is(':enabled') ) { 
     565        } else if( $("#content_id_"+ID+" .save").is(':enabled') ) { 
    528566             return(draftTests(ID, msg_sent)); 
    529567        } 
     
    537575      
    538576    /*var bolExecuteClose = true; 
    539         var borderElem = Element("border_id_" + ID); 
    540         if (borderElem){ 
     577    var borderElem = Element("border_id_" + ID); 
     578    if (borderElem){ 
    541579            borderElem.onclick = null; // It's avoid a FF3 bug 
    542580        }else{ 
    543581            return false; 
    544582        } 
    545         if (msg_sent == 'false') 
    546         { 
     583    if (msg_sent == 'false') 
     584    { 
    547585            if (editTest(ID)){ 
    548586                bolExecuteClose = false; 
     
    550588                    return(draftTests(ID, msg_sent)); 
    551589            } 
    552         } 
     590    } 
    553591     
    554592         
     
    556594        { 
    557595            close_delete(ID, msg_sent); 
    558                 } 
    559                 delete(openTab.type[ID]); 
     596        } 
     597        delete(openTab.type[ID]); 
    560598        return true;*/ 
    561599          
     
    564602function close_delete(ID, msg_sent) 
    565603{ 
    566         openTab.toPreserve[ID] = false; 
     604    openTab.toPreserve[ID] = false; 
    567605        // Limpa o autosave 
    568606            if (preferences.auto_save_draft == 1 && autoSaveControl.timer[ID] !== null ) 
     
    573611        //////////////////////////////// 
    574612         
    575         hold_session = false; 
    576         if (exist_className(Element('border_id_'+ID),'menu-sel')) 
    577         { 
    578                 if (BordersArray[BordersArray.length-2].sequence == ID) 
    579                         this.alternate_border(0); 
    580                 else 
    581                         this.alternate_border(BordersArray[BordersArray.length-2].sequence); 
    582         } 
    583  
    584         // Remove TD, title 
    585         border = Element('border_id_' + ID); 
    586         border.parentNode.removeChild(border); 
    587         var j=0; 
    588         var new_BordersArray = new Array(); 
    589         for (i=0;i<BordersArray.length;i++) 
    590                 if (document.getElementById(BordersArray[i].border_id) != null){ 
    591                         new_BordersArray[j] = BordersArray[i]; 
    592                         j++; 
    593                 } 
    594         if(j == 1) 
    595                 Element("footer_menu").style.display = ''; 
    596         BordersArray = new_BordersArray; 
    597  
    598         // Remove Div Content 
    599         content = Element('content_id_' + ID); 
    600         content.parentNode.removeChild(content); 
    601         if(is_webkit) 
    602                 resizeWindow(); 
    603         RichTextEditor.destroy( 'body_'+ID ); 
     613    hold_session = false; 
     614    if (exist_className(Element('border_id_'+ID),'menu-sel')) 
     615    { 
     616        if (BordersArray[BordersArray.length-2].sequence == ID) 
     617            this.alternate_border(0); 
     618        else 
     619            this.alternate_border(BordersArray[BordersArray.length-2].sequence); 
     620    } 
     621 
     622    // Remove TD, title 
     623    border = Element('border_id_' + ID); 
     624    border.parentNode.removeChild(border); 
     625    var j=0; 
     626    var new_BordersArray = new Array(); 
     627    for (i=0;i<BordersArray.length;i++) 
     628        if (document.getElementById(BordersArray[i].border_id) != null){ 
     629            new_BordersArray[j] = BordersArray[i]; 
     630            j++; 
     631        } 
     632    if(j == 1) 
     633        Element("footer_menu").style.display = ''; 
     634    BordersArray = new_BordersArray; 
     635 
     636    // Remove Div Content 
     637    content = Element('content_id_' + ID); 
     638    content.parentNode.removeChild(content); 
     639    if(is_webkit) 
     640        resizeWindow(); 
     641    RichTextEditor.destroy( 'body_'+ID ); 
    604642        delete msgAttachments[ID]; 
    605643        //Caso for uma mensagem anexada tem que deletar ela da lixeira apos fechar a aba 
    606644            var isPartMsg = false; 
    607                         if(!parseInt(id2)) 
    608                                 return; 
     645            if(!parseInt(id2)) 
     646                return; 
    609647            var id2 = ID.replace('_r',''); 
    610648            for(var ii = 0; ii < partMsgs.length; ii++) 
     
    620658        /////////////////////////////////////////////////////////////////////////////////// 
    621659         
    622         return true; 
     660    return true; 
    623661} 
    624662 
    625663function getTabPrefix() { // define o prefixo para os checkboxes das mensagens 
    626         if (typeof(currentTab)!='number') 
    627                 return currentTab+"_"; 
    628         else 
    629                 return ""; 
     664    if (typeof(currentTab)!='number') 
     665        return currentTab+"_"; 
     666    else 
     667        return ""; 
    630668} 
    631669 
    632670function getMessageIdFromRowId(row_id) { // extrai o id da mensagem do id da linha 
    633         var p = row_id.search("_s"); 
    634         if (p>0) 
    635                 return row_id.substr(0,p); 
    636         else 
    637                 return row_id; 
     671    var p = row_id.search("_s"); 
     672    if (p>0) 
     673        return row_id.substr(0,p); 
     674    else 
     675        return row_id; 
    638676} 
    639677 
    640678function getNumBoxFromTabId(tab_id) { // extrai o numBox do id da tab 
    641         if (typeof(tab_id)=='number') { 
    642                 return tab_id; 
    643         } 
    644         else { 
    645                 var p = tab_id.search(/[0-9]/); 
    646                 return tab_id.substr(p); 
    647         } 
     679    if (typeof(tab_id)=='number') { 
     680        return tab_id; 
     681    } 
     682    else { 
     683        var p = tab_id.search(/[0-9]/); 
     684        return tab_id.substr(p); 
     685    } 
    648686} 
    649687 
     
    673711function listAttachment(ID) 
    674712{ 
    675    return (typeof(msgAttachments[ID]) == 'undefined') ? '' : JSON.stringify(msgAttachments[ID]);  
    676 } 
    677  
     713    return (typeof(msgAttachments[ID]) == 'undefined') ? '' : JSON.stringify(msgAttachments[ID]); 
     714} 
  • branches/2.5/expressoMail1_2/js/common_functions.js

    r8080 r8232  
    694694} 
    695695 
     696/*  
     697        Abre o diálogo de edição de filtro na tela de criação de filtro,   
     698        com os dados da mensagem (remetente e assunto) pré-carregados.  
     699*/  
     700 function filter_from_msg (msg) {  
     701        var html = DataLayer.render( BASE_PATH + 'modules/filters/init.ejs', {});  
     702        initialize_container(html);  
     703        list_container = create_filter_dialog();  
     704        render_new_rule(msg.from.email, html_entities(msg.subject));  
     705        $('.expresso-window-container').dialog('open');  
     706}  
    696707 
    697708function sharebox(){ 
     
    771782                        var number = id.replace(/_[a-zA-Z0-9]+/,""); 
    772783                } 
    773                 messages.push(onceOpenedHeadersMessages[folder_name][number]); 
     784                messages.push(onceOpenedHeadersMessages[folder_name][number] || number); 
    774785        } 
    775786 
     
    9971008    abas_unseen = abas_unseen.match(/(<font.*?>){0,1} *([0-9]+) *(<\/font>){0,1}/)[2]; 
    9981009 
    999         if (folder_unseen){  
    1000                 //folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) + 1);  
    1001                 /*Incrementa recursivamente o contador de mensagens*/ 
    1002                 $('.selected').parents().find('> span.folder').not('.inbox').each(function(index,ui){ 
    1003                    var unseen = $(ui).find('.folder_unseen:last'); 
    1004                    unseen.html(parseInt(unseen.html(),10) + 1); 
    1005                 });  
    1006         }  
     1010        if (folder_unseen){ 
     1011                //folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) + 1); 
     1012                /*Incrementa recursivamente o contador de mensagens*/ 
     1013                $('.selected').parents().find('> span.folder').not('.inbox').each(function(index,ui){ 
     1014                   var unseen = $(ui).find('.folder_unseen:last'); 
     1015                   unseen.html(parseInt(unseen.html(),10) + 1); 
     1016                }); 
     1017        } 
    10071018        else 
    10081019        { 
     
    10461057        if ((folder_unseen) && (parseInt(folder_unseen.innerHTML) > 1)) 
    10471058        { 
    1048                 //folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) - 1);  
    1049                 /*Decrementa recursivamente o contador de mensagens*/  
    1050                 $('.selected').parents().find('> span.folder').not('.inbox').each(function(index,ui){  
    1051                    var unseen = $(ui).find('.folder_unseen:last');  
    1052                    unseen.html(parseInt(unseen.html(),10) - 1);  
    1053                 });       
     1059                //folder_unseen.innerHTML = (parseInt(folder_unseen.innerHTML) - 1); 
     1060                /*Decrementa recursivamente o contador de mensagens*/ 
     1061                $('.selected').parents().find('> span.folder').not('.inbox').each(function(index,ui){ 
     1062                   var unseen = $(ui).find('.folder_unseen:last'); 
     1063                   unseen.html(parseInt(unseen.html(),10) - 1); 
     1064                });      
    10541065        } 
    10551066        else if (parseInt(folder_unseen.innerHTML) <= 1) 
  • branches/2.5/expressoMail1_2/js/connector.js

    r8103 r8232  
    171171        } 
    172172 
    173     cConnector.prototype.unserializeArchiver = function(str)  
    174     {     
    175         _thisObject = this;  
    176         var matchB = function (str, iniPos)  
    177         {  
    178             var nOpen, nClose = iniPos;  
    179             do  
    180             {  
    181                 nOpen = str.substr(nClose+1).search(/[0-9]\:\{/ );  
    182   
    183                 if (nOpen > 0)  
    184                     nOpen = nOpen + nClose+3;  
    185   
    186                 nClose = str.indexOf('}', nClose+1);  
    187   
    188                 if (nOpen < 0)  
    189                 {  
    190                     return nClose;  
    191                 }  
    192                 if (nOpen < nClose )  
    193                 {  
    194                     nClose = matchB(str, nOpen);  
    195                 }  
    196             } while (nOpen < nClose);  
    197   
    198             return nClose;  
    199         }  
    200           
    201         var f = function (str)  
    202         {  
    203             switch (str.charAt(0))  
    204             {  
    205                 case 'a':  
    206                       
    207                     var data = new Array();  
    208                     var n = parseInt( str.substring( str.indexOf(':')+1, str.indexOf(':',2) ) );  
    209                     var arrayContent = str.substring(str.indexOf('{')+1, str.lastIndexOf('}'));  
    210                   
    211                     for (var i = 0; i < n; i++)  
    212                     {  
    213                         var pos = 0;  
    214       
    215                         /* Process Index */  
    216                         var indexStr = arrayContent.substr(pos, arrayContent.indexOf(';')+1);  
    217                         var index = f(indexStr);  
    218                         pos = arrayContent.indexOf(';', pos)+1;  
    219                           
    220                         /* Process Content */  
    221                         var part = null;  
    222                         switch (arrayContent.charAt(pos))  
    223                         {  
    224                             case 'a':  
    225                                 var pos_ = matchB(arrayContent, arrayContent.indexOf('{', pos))+1;  
    226                                 part = arrayContent.substring(pos, pos_);  
    227                                 pos = pos_;  
    228                                 data[index] = f(part);  
    229                                 break;  
    230                           
    231                             case 's':  
    232                                 var pval = arrayContent.indexOf(':', pos+2);  
    233                                 var val  = parseInt(arrayContent.substring(pos+2, pval));  
    234                                 pos = pval + val + 4;  
    235                                 data[index] = arrayContent.substr(pval+2, val);  
    236                                 break;  
    237       
    238                             default:  
    239                                 part = arrayContent.substring(pos, arrayContent.indexOf(';', pos)+1);  
    240                                 pos = arrayContent.indexOf(';', pos)+1;  
    241                                 data[index] = f(part);  
    242                                 break;  
    243                         }  
    244                         arrayContent = arrayContent.substr(pos);  
    245                     }  
    246                     break;  
    247                       
    248                 case 's':  
    249                     var pos = str.indexOf(':', 2);  
    250                     var val = parseInt(str.substring(2,pos));  
    251                     var data = str.substr(pos+2, val);  
    252                     str = str.substr(pos + 4 + val);  
    253                     break;  
    254       
    255                 case 'i':  
    256                 case 'd':  
    257                     var pos = str.indexOf(';');  
    258                     var data = parseInt(str.substring(2,pos));  
    259                     str = str.substr(pos + 1);  
    260                     break;  
    261                   
    262                 case 'N':  
    263                     var data = null;  
    264                     str = str.substr(str.indexOf(';') + 1);  
    265                     break;  
    266       
    267                 case 'b':  
    268                     var data = str.charAt(2) == '1' ? true : false;  
    269                     break;  
    270             }  
    271             return data;  
    272         }  
    273       
    274         return f(str);  
    275     }  
    276   
     173    cConnector.prototype.unserializeArchiver = function(str) 
     174    {    
     175        _thisObject = this; 
     176        var matchB = function (str, iniPos) 
     177        { 
     178            var nOpen, nClose = iniPos; 
     179            do 
     180            { 
     181                nOpen = str.substr(nClose+1).search(/[0-9]\:\{/ ); 
     182 
     183                if (nOpen > 0) 
     184                    nOpen = nOpen + nClose+3; 
     185 
     186                nClose = str.indexOf('}', nClose+1); 
     187 
     188                if (nOpen < 0) 
     189                { 
     190                    return nClose; 
     191                } 
     192                if (nOpen < nClose ) 
     193                { 
     194                    nClose = matchB(str, nOpen); 
     195                } 
     196            } while (nOpen < nClose); 
     197 
     198            return nClose; 
     199        } 
     200         
     201        var f = function (str) 
     202        { 
     203            switch (str.charAt(0)) 
     204            { 
     205                case 'a': 
     206                     
     207                    var data = new Array(); 
     208                    var n = parseInt( str.substring( str.indexOf(':')+1, str.indexOf(':',2) ) ); 
     209                    var arrayContent = str.substring(str.indexOf('{')+1, str.lastIndexOf('}')); 
     210                 
     211                    for (var i = 0; i < n; i++) 
     212                    { 
     213                        var pos = 0; 
     214     
     215                        /* Process Index */ 
     216                        var indexStr = arrayContent.substr(pos, arrayContent.indexOf(';')+1); 
     217                        var index = f(indexStr); 
     218                        pos = arrayContent.indexOf(';', pos)+1; 
     219                         
     220                        /* Process Content */ 
     221                        var part = null; 
     222                        switch (arrayContent.charAt(pos)) 
     223                        { 
     224                            case 'a': 
     225                                var pos_ = matchB(arrayContent, arrayContent.indexOf('{', pos))+1; 
     226                                part = arrayContent.substring(pos, pos_); 
     227                                pos = pos_; 
     228                                data[index] = f(part); 
     229                                break; 
     230                         
     231                            case 's': 
     232                                var pval = arrayContent.indexOf(':', pos+2); 
     233                                var val  = parseInt(arrayContent.substring(pos+2, pval)); 
     234                                pos = pval + val + 4; 
     235                                data[index] = arrayContent.substr(pval+2, val); 
     236                                break; 
     237     
     238                            default: 
     239                                part = arrayContent.substring(pos, arrayContent.indexOf(';', pos)+1); 
     240                                pos = arrayContent.indexOf(';', pos)+1; 
     241                                data[index] = f(part); 
     242                                break; 
     243                        } 
     244                        arrayContent = arrayContent.substr(pos); 
     245                    } 
     246                    break; 
     247                     
     248                case 's': 
     249                    var pos = str.indexOf(':', 2); 
     250                    var val = parseInt(str.substring(2,pos)); 
     251                    var data = str.substr(pos+2, val); 
     252                    str = str.substr(pos + 4 + val); 
     253                    break; 
     254     
     255                case 'i': 
     256                case 'd': 
     257                    var pos = str.indexOf(';'); 
     258                    var data = parseInt(str.substring(2,pos)); 
     259                    str = str.substr(pos + 1); 
     260                    break; 
     261                 
     262                case 'N': 
     263                    var data = null; 
     264                    str = str.substr(str.indexOf(';') + 1); 
     265                    break; 
     266     
     267                case 'b': 
     268                    var data = str.charAt(2) == '1' ? true : false; 
     269                    break; 
     270            } 
     271            return data; 
     272        } 
     273     
     274        return f(str); 
     275    } 
     276 
    277277        //Unserialize Data Method 
    278278        cConnector.prototype.unserialize = function(str) 
     
    290290 
    291291                nClose = (str.substr(nClose+1) == '}' || str.substr(nClose+1,1) == '}') ? nClose +1 : str.substr(nClose+1).search(/[0-9\"]\;\}/ ) + nClose + 3; 
    292                   
     292                 
    293293                if (nOpen < 0) 
    294294                { 
     
    554554        { 
    555555                var div = document.getElementById('divProgressBar'); 
    556   
    557         if(div)  
    558         {  
    559             div.style.visibility = 'hidden';  
    560             this.isVisibleBar = false;  
    561         }  
     556 
     557        if(div) 
     558        { 
     559            div.style.visibility = 'hidden'; 
     560            this.isVisibleBar = false; 
     561        } 
    562562        } 
    563563         
    564564        cConnector.prototype.showProgressBar = function(){ 
    565   
     565 
    566566                var div = document.getElementById('divProgressBar'); 
    567                 if(div)  
    568         {  
    569             div.style.visibility = 'visible';  
    570             this.isVisibleBar = true;  
    571         }  
     567                if(div) 
     568        { 
     569            div.style.visibility = 'visible'; 
     570            this.isVisibleBar = true; 
     571        } 
    572572        } 
    573573 
  • branches/2.5/expressoMail1_2/js/doiMenuData.js

    r8127 r8232  
    142142    function loadMenu(){ 
    143143        var archive = ""; 
    144         if(use_local_messages != 0){ 
    145             archive = {"name": get_lang("Archive"), "icon": "archive", callback: function(key, opt){ proxy_mensagens.archive_message('inbox', 'get_selected_messages'); }} 
    146         }else{ 
    147             archive = ""; 
     144 
     145        if( preferences['use_followupflags_and_labels'] == "1" ) 
     146            var labelItems = getLabels(); 
     147 
     148        var revertSortBox = function(){ 
     149            if (search_box_type == "UNSEEN") sort_box_reverse = sort_box_reverse ? 0 : 1;  
    148150        } 
    149         var labelItems = getLabels(); 
    150151 
    151152        $.contextMenu({ 
     
    156157                    return true; 
    157158                } 
    158                 if( current.indexOf("local") == -1){  
    159                     archive = {"name": get_lang("Archive"), "icon": "archive", callback: function(key, opt){ proxy_mensagens.archive_message(get_current_folder(), 'get_selected_messages'); }}  
    160                      
    161                 } else {  
    162                     archive = {"name": get_lang("Unarchive"), "icon": "archive", callback: function(key, opt){ proxy_mensagens.unarchive_message(get_current_folder(), 'get_selected_messages'); }}  
    163                 } 
    164                 var itensNotLocal = { 
    165                     "label": { "name": get_lang("Labels"), "items": labelItems}, 
    166                     "follouwpflag":{"name": get_lang("Follow up"), callback: function(key, opt){ configureFollowupflag(); } }, 
    167                     "sep2": "---------" 
    168                 } 
     159                if(use_local_messages != 0){ 
     160                    if( current.indexOf("local") != -1){ 
     161                       archive = {"name": get_lang("Unarchive"), "icon": "archive", callback: function(key, opt){ proxy_mensagens.unarchive_message('inbox', 'get_selected_messages'); }} 
     162                    } else { 
     163                        archive = {"name": get_lang("Archive"), "icon": "archive", callback: function(key, opt){ proxy_mensagens.unarchive_message('inbox', 'get_selected_messages'); }} 
     164                    } 
     165                } 
     166 
     167                if( preferences['use_followupflags_and_labels'] == "1" ) 
     168                    var itensNotLocal = { 
     169                        "label": { "name": get_lang("Labels"), "items": labelItems}, 
     170                        "follouwpflag":{"name": get_lang("Follow up"), callback: function(key, opt){ configureFollowupflag(); } }, 
     171                        "sep2": "---------" 
     172                    } 
    169173 
    170174                var items= { 
    171                     "flagSeen":      {"name": get_lang("Mark as") + " " + get_lang('seen'), "icon": "seen", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('seen','get_selected_messages'); }}, 
    172                     "flagUnseen":    {"name": get_lang("Mark as") + " " + get_lang('unseen'), "icon": "unseen", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unseen','get_selected_messages'); }}, 
    173                     "flagFlagged":   {"name": get_lang("Mark as") + " " + get_lang('important'), "icon": "important", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('flagged','get_selected_messages'); }}, 
    174                     "flagUnflagged": {"name": get_lang("Mark as") + " " + get_lang('normal'), callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages'); }}, 
     175                    "flagSeen":      {"name": get_lang("Mark as") + " " + get_lang('seen'), "icon": "seen", callback: function(key, opt){ revertSortBox(); proxy_mensagens.proxy_set_messages_flag('seen','get_selected_messages'); }}, 
     176                    "flagUnseen":    {"name": get_lang("Mark as") + " " + get_lang('unseen'), "icon": "unseen", callback: function(key, opt){ revertSortBox(); proxy_mensagens.proxy_set_messages_flag('unseen','get_selected_messages'); }}, 
     177                    "flagFlagged":   {"name": get_lang("Mark as") + " " + get_lang('important'), "icon": "important", callback: function(key, opt){ revertSortBox(); proxy_mensagens.proxy_set_messages_flag('flagged','get_selected_messages'); }}, 
     178                    "flagUnflagged": {"name": get_lang("Mark as") + " " + get_lang('normal'), callback: function(key, opt){ revertSortBox(); proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages'); }}, 
    175179                    "sep1": "---------" 
    176180                } 
    177  
     181                                 
     182                                // Desabilita a opção de criar filtro a partir da mensagem, caso mais de uma mensagem esteja selecionada:  
     183                                var is_filterFromMsg_disabled = function () {  
     184                                        var base_selector = ".table_box tbody tr.selected_msg";  
     185                                        return ($(base_selector).length > 1) || ($(base_selector + " td span").text().indexOf(get_lang("Draft")) > -1);  
     186                                }  
     187                                 
    178188                var lastItens = { 
    179189                    "move": {"name": get_lang("Move to")+"...", "icon": "move", callback: function(key, opt){ wfolders.makeWindow('', 'move_to'); }}, 
    180190                    "remove": {"name": get_lang("Delete"),      "icon": "delete", callback: function(key, opt){ proxy_mensagens.delete_msgs('null','selected','null'); }}, 
    181191                    "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }}, 
     192                                        /*Abre o diálogo de criação de filtro a partir da mensagem:*/  
     193                                        "filterFromMsg": {  
     194                                                "name": get_lang("Create filter from message"),   
     195                                                "icon": "filter",   
     196                                                callback: function (key, opt) {  
     197                                                        var msg_number = get_selected_messages();  
     198                                                        var msg = onceOpenedHeadersMessages[current_folder][msg_number];  
     199                                                        if (msg !== undefined)  
     200                                                        {  
     201                                                                filter_from_msg(msg);  
     202                                                        }  
     203                                                },  
     204                                                disabled: is_filterFromMsg_disabled()  
     205                                        },  
    182206                    "archive": archive 
    183207                } 
     
    318342        } else { 
    319343            var labeleds =  (messageInfo.forceIcon ? messageInfo.labels : DataLayer.get('labeled', { 
    320                         criteria: {deepness: '2'}, 
    321                         filter: [ 
     344                        criteria: {deepness: 2}, 
     345                filter: [ 
    322346                                'AND', 
    323347                                ['=', 'folderName', msg_folder],  
     
    337361 
    338362                for (var i=0; i < labeleds.length; i++){ 
    339                     menuItems[ labeleds[i].id ? labeleds[i].id : labeleds[i].label.id] = labeleds[i].id ? labeleds[i] : labeleds[i].label; 
     363                    menuItems[ (labeleds[i].id ? labeleds[i].id : labeleds[i].label.id) ] = labeleds[i].label ? labeleds[i].label : labeleds[i]; 
    340364                } 
    341365                } else { 
     
    351375                menuItensLabel[index] = {type: "label", customName: menuItems[index].name, id: msg_folder+"/"+msg_number+"#"+index};             
    352376        } 
     377 
     378 
    353379        $.contextMenu.types.label = function(item, opt, root) { 
    354380            $('<span>'+item.customName+'</span><span class="removeLabeled" title="'+get_lang("Remove Label")+'">x</span>') 
  • branches/2.5/expressoMail1_2/js/draw_api.js

    r8188 r8232  
    106106                        } 
    107107                        cExecute ("$this.imap_functions.get_folders_list&folder="+current_folder, update_tree_folders); 
     108             
    108109                } 
    109110 
     
    239240                                        var nn = new dNode({id:folders[i].folder_id, caption:lang_folder(folders[i].folder_name) + '<font style=color:red>&nbsp(</font><span id="dftree_'+folders[i].folder_id+'_unseen" style=color:red>'+folders[i].folder_unseen+'</span><font style=color:red>)</font>', onClick:"change_folder('"+folders[i].folder_id+"','"+folders[i].folder_name+"')", plusSign:folders[i].folder_hasChildren}); 
    240241 
    241                                         if( folders[i].folder_name.toLowerCase() == 'inbox' ) 
    242                                                 Element('new_m').innerHTML = '<font style="color:red">' + folders[i].folder_unseen + '</font>'; 
     242 
     243                                        // if( folders[i].folder_name.toLowerCase() == 'inbox' ) 
     244                                        //      Element('new_m').innerHTML = '<font style="color:black">' + folders[i].folder_unseen + '</font>'; 
    243245                                } 
    244246                                else 
     
    471473                } 
    472474        } 
    473          
    474         outOfficeVerify(); 
    475475} 
    476476 
     
    646646                } 
    647647                draw_new_tree_folder(false, forceLoadFolders); 
    648                 draw_tree_labels(); 
     648 
     649        if( preferences['use_followupflags_and_labels'] == "1" ) 
     650            draw_tree_labels(); 
     651 
    649652                if(Element("table_quota")) 
    650653                        connector.loadScript("InfoQuota"); 
     
    655658 
    656659var handler_draw_box = function(data){ 
     660    populateSelectedMsgs(data.messagesIds); 
    657661        draw_box(data, 'INBOX', true); 
    658662        //alternate_border(0); 
     
    661665// Action on change folders. 
    662666function change_folder(folder, folder_name){ 
    663         if (openTab.imapBox[0] != folder) 
     667        if (parseInt(preferences.use_dynamic_contacts) && $(".to").length && $(".to").data( "autocomplete" ).menu.active){ 
     668        $(".to").data( "autocomplete" ).close(); 
     669    } 
     670    if (openTab.imapBox[0] != folder) 
    664671        { 
    665672                selectAllFolderMsgs(false); 
     
    667674                var handler_draw_box = function(data) 
    668675                { 
    669  
     676            populateSelectedMsgs(data.messagesIds); 
    670677                        if(!verify_session(data)) 
    671678                                return; 
     
    683690                        return true; 
    684691                } 
     692 
    685693                //MAILARCHIVE 
    686694        //se for pasta local 
    687695        if (/^local_messages/.test(current_folder)) { 
    688696            $(".folders-loading").removeClass("folders-loading"); //remove o icone de loading ao clicar nas pastas locais 
    689         } 
    690         else { //se não, processamento normal da pasta 
    691                 $.ajax({ 
    692                 async: false, 
    693                         url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessagesIds",  
    694                                 folder: folder, 
    695                                  msg_range_begin: "0", 
    696                                  msg_range_end: "0",                                     
    697                                 sort_box_type: "SORTARRIVAL",  
    698                                 search_box_type: search_box_type, 
    699                                 sort_box_reverse: "1" 
    700                                 }), 
    701                         success: function(data){ 
    702                                 data = connector.unserialize(data); 
    703                                 if(data){ 
    704                                         var _data = {}; 
    705                                         $.each(data,function(index,value){ 
    706                                                 if (data[index]){ 
    707                                                         _data[data[index]] = data[index]; 
    708                                                 } 
    709                                         }); 
    710                                         populateSelectedMsgs(_data); 
    711                                 } 
    712                         }, 
    713                         beforeSend: function( jqXHR, settings ){ 
    714                                 connector.showProgressBar(); 
    715                         }, 
    716                         complete: function( jqXHR, settings ){ 
    717                                 connector.hideProgressBar(); 
    718                         } 
    719                 }); 
    720697        } 
    721698                proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 
     
    917894        if (document.getElementById("table_message_header_box_"+numBox).emptyBody) 
    918895                return; 
    919     objCell.style.cursor = "col-resize";  
    920     $(objCell).next().css('cursor','col-resize');  
    921   
     896    objCell.style.cursor = "col-resize"; 
     897    $(objCell).next().css('cursor','col-resize'); 
     898 
    922899        if (objCell.style.cursor == "col-resize" && detectLeftButton(ev)) { 
    923900                var cellIndex = objCell.cellIndex; 
     
    942919 
    943920                document.getElementById("table_message_ruler").style.left = cellOffset+cellWidth; 
    944         syncColumns();  
     921        syncColumns(); 
    945922        } 
    946923        ev.returnValue = false; 
     
    16491626                    $(".lower").css("top", ($("#content_folders").height()-18) + $("#content_folders").offset().top); 
    16501627                                        if($(".shared-folders").length){ 
    1651                                                 $(".shared-folders").parent().find('.folder:not(".shared-folders")').droppable({ 
     1628                                                $(".shared-folders,.head_folder").parent().find('.folder:not(".shared-folders")').droppable({ 
    16521629                                                        over : function(a, b){                                           
    16531630                                                                //SETA BORDA EM VOLTA DA PASTA 
     1631                                $(b.helper).find(".draggin-folder,.draggin-mail").css("color", "green"); 
    16541632                                                                over = $(this); 
    16551633                                                                $(this).addClass("folder-over"); 
     
    16641642                                                                                } 
    16651643                                                        }, 
    1666                                                         out : function(){ 
     1644                                                        out : function(a,b){ 
    16671645                                                                //RETIRA BORDA EM VOLTA DA PASTA 
     1646                                $(b.helper).find(".draggin-folder,.draggin-mail").css("color", ""); 
    16681647                                                                $(this).removeClass("folder-over"); 
    16691648                                                        }, 
     
    17231702                         
    17241703                        $(this).addClass("selected_msg"); 
    1725                                         } 
    1726                                         updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 
    1727                                 } 
     1704                } 
     1705                updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 
     1706                } else if ( typeof $(event.target).attr("style") == "undefined" || $(event.target).attr("style").match(/background/g) == null ) { 
     1707                    if($(this).find("input:checkbox").attr("checked") != "checked"){ 
     1708 
     1709                        $(this).find("input:checkbox").trigger('click'); 
     1710             
     1711                        $(this).addClass("selected_msg"); 
     1712                    } 
     1713                    updateSelectedMsgs($(this).find("input:checkbox").is(':checked'),$(this).attr("id")); 
     1714                } 
     1715 
    17281716                        }); 
    17291717        } 
     
    17391727        draw_footer_box(headers_msgs.num_msgs); 
    17401728        Element('main_table').style.display = ''; 
    1741         if(is_ie6)        // Stupid Fixing on IE6. 
    1742                 setTimeout("resizeWindow()",1); 
    1743         else 
    1744                 resizeWindow(); 
     1729        resizeWindow(); 
    17451730        if(debug) { 
    17461731                var _eTime = new Date(); 
     
    17521737        var msg_number = Element('msg_number').value; 
    17531738        if(!msg_folder && msg_number) { 
    1754         if ((msg_number.toString().indexOf('@') != -1) || !msg_number.toString().match(/[0-9]/)){  
    1755             new_message_to(msg_number);  
    1756         }      
    1757         else  
    1758             new_message('new','null');  
     1739        if ((msg_number.toString().indexOf('@') != -1) || !msg_number.toString().match(/[0-9]/)){ 
     1740            new_message_to(msg_number); 
     1741        }     
     1742        else 
     1743            new_message('new','null'); 
    17591744        } 
    17601745        else if(msg_folder && msg_number){ 
     
    18711856                    //if (headers_msgs.msg_sample.body.length > 0) 
    18721857                                    tr_element.msg_sample = Base64.decode(headers_msgs.msg_sample.body).substr(0,180) + "..."; //trecho do body que sera exibido com o assunto; //blabla 
    1873                              } else { 
     1858                                tr_element.msg_sample = html_entities(tr_element.msg_sample);  
     1859                 } else { 
    18741860                                    //if (headers_msgs.msg_sample.body.length > 0) 
    18751861                                        tr_element.msg_sample = Base64.decode(headers_msgs.msg_sample.body).substr(0,120) + "..."; //trecho do body que sera exibido com o assunto; 
    1876                           } 
    1877  
    1878                 // preferencia dos tooltips 
    1879                 if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1" && headers_msgs.msg_sample.body !== "") { 
    1880                     tr_element.tip = Base64.decode(headers_msgs.msg_sample.body).substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip; 
    1881                 } 
     1862                            tr_element.msg_sample = html_entities(tr_element.msg_sample);   
     1863                  } 
    18821864            } 
    18831865        } 
    1884  
     1866        // preferencia dos tooltips 
     1867        if(headers_msgs.msg_sample && preferences.preview_msg_tip == "1" && headers_msgs.msg_sample.body !== "") { 
     1868            tr_element.tip = Base64.decode(headers_msgs.msg_sample.body).substr(3,300) + "..."; //trecho do body que sera exibido no tool-tip; 
     1869        } 
    18851870                 
    18861871                if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')){ 
     
    19251910 
    19261911                if ((headers_msgs.Forwarded == 'F')  || (headers_msgs.Draft == 'X' && headers_msgs.Answered == 'A')){ 
    1927                         td_element21.onclick=function(){search_emails(headers_msgs.subject.replace(/^(re: ?|fw: ?|enc: ?|res: ?|fwd: ?)*/gi,''),true);}; 
     1912                        $(td_element21).on('click',function(){search_emails(headers_msgs.subject.replace(/^(re: ?|fw: ?|enc: ?|res: ?|fwd: ?)*/gi,''),true);}); 
    19281913                        td_element21.innerHTML = "<img src ='templates/"+template+"/images/forwarded.png' title='"+get_lang('Forwarded')+"'>"; 
    19291914                        headers_msgs.Draft = '' 
     
    19341919                        td_element21.innerHTML = "<img src ='templates/"+template+"/images/draft.png' title='"+get_lang('Draft')+"'>"; 
    19351920                else if (headers_msgs.Answered == 'A'){ 
    1936                         td_element21.onclick=function(){search_emails(headers_msgs.subject.replace(/^(re: ?|fw: ?|enc: ?|res: ?|fwd: ?)*/gi,''),true);}; 
     1921                        $(td_element21).on('click',function(){search_emails(headers_msgs.subject.replace(/^(re: ?|fw: ?|enc: ?|res: ?|fwd: ?)*/gi,''),true);}); 
    19371922                        td_element21.innerHTML = "<img src ='templates/"+template+"/images/answered.png' title='"+get_lang('Answered')+"'>"; 
    19381923                    }else 
     
    20482033                                                this.title = title_to;  
    20492034                                        }; 
    2050                                         if (headers_msgs.to && headers_msgs.to[0]) { 
     2035                                        if (headers_msgs.to && headers_msgs.to[0] != null) { 
    20512036                                                if (headers_msgs.to[0].name != null){ 
    20522037                                                        spanSender.innerHTML += headers_msgs.to[0].name; 
    20532038                                                }else if(headers_msgs.to[0].email != null) { 
    20542039                                                        spanSender.innerHTML += headers_msgs.to[0].email; 
    2055                                                 } 
     2040                                                }else { 
     2041                            spanSender.innerHTML += get_lang("without destination"); 
     2042                        } 
    20562043                                        } 
    20572044                                }else if(headers_msgs.from !== undefined){ 
     
    21392126                $(td_element26).click(function() {       
    21402127                        var messageClickedId = $(this).attr('id').match(/td_message_followup_([\d]+)/)[1]; 
    2141                          
     2128 
     2129            var loading = $('#td_message_followup_' + messageClickedId + ', ' +  
     2130            'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
     2131            .find('img[alt=Carregando]'); 
     2132 
     2133 
     2134            //Verificar se está carregando a bandeira. 
     2135            //Caso esteja ele sai da função até que seja carregado.  
     2136            if( loading.length ) { 
     2137                return false; 
     2138            } 
     2139 
    21422140                        var followupColor = $('#td_message_followup_' + messageClickedId).find(".flag-edited").css('backgroundColor'); 
    21432141                         
     
    21922190                                         
    21932191                                        if(fail != 'success'){ 
    2194                                             $('#td_message_followup_' + messageClickedId + ', ' +  
    2195                                             'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "#CCCCCC") 
    2196                                                 .find('img').remove(); 
    2197                                             MsgsCallbackFollowupflag[fail](); 
     2192                                            var msgFlag =  $('#td_message_followup_' + messageClickedId + ', ' +  
     2193                        'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "#CCCCCC"); 
     2194 
     2195                        msgFlag.find('img').remove(); 
     2196                         
     2197                        //Insere a imagem da flag quando ocorre erro ao marcar a msg 
     2198                        msgFlag.append("<img src='../prototype/modules/mail/img/flagEditor.png'/>"); 
     2199 
     2200                        MsgsCallbackFollowupflag[fail](); 
    21982201                                        }else{ 
    21992202                                            $('#td_message_followup_' + messageClickedId + ', ' +  
    22002203                                            'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor) 
    2201                                                 .find('img').remove(); 
     2204                                                .append("<img src='../prototype/modules/mail/img/flagEditor.png'/>"); 
    22022205                                            updateCacheFollowupflag(messageClickedId, msg_folder, true); 
    22032206                                        }                                
     
    22152218                                        $('#td_message_followup_' + messageClickedId + ', ' +  
    22162219                                        'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    2217                                         .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}) 
    22182220                                        .find('img').remove(); 
    22192221                                         
     
    22222224                                 
    22232225                                        $('#td_message_followup_' + messageClickedId + ', ' +  
    2224                                                 'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    2225                         .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}); 
     2226                                                'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").html('<img src="../prototype/modules/mail/img/flagEditor.png">') 
     2227                        .css({"width":"8px","height":"6px"/*"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"*/}); 
    22262228                                });      
    22272229 
     
    22292231                                $('#td_message_followup_' + messageClickedId + ', ' +  
    22302232                                'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    2231                                 .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}).css("background", followupColor); 
     2233                                .css("backgroundColor", followupColor) 
     2234                .find('img').remove(); //remove imagem carregando da bandeira 
     2235 
     2236                $('#td_message_followup_' + messageClickedId).find('.flag-edited').append("<img src='../prototype/modules/mail/img/flagEditor.png'/>"); 
     2237 
    22322238                                 
    2233                                 $(tr_element).addClass('selected_msg').find(':checkbox').trigger('click'); 
     2239                           //Pega id do checkbox 
     2240               var id = $(tr_element).addClass('selected_msg').find(':checkbox').attr('id'); 
     2241                 
     2242                //Verifica se o checkbox está selecionado 
     2243                if($('#' + id).attr('checked') != 'checked') 
     2244                    $(tr_element).addClass('selected_msg').find(':checkbox').trigger('click'); 
    22342245                                 
    22352246                                /** 
     
    23202331        var message_header = Element("message_header_"+search); 
    23212332        var handler_draw_box = function(data){ 
    2322                 draw_box(data, current_folder,true); 
     2333 
     2334        if (typeof(clean_selected) == "undefined") 
     2335            populateSelectedMsgs(data.messagesIds); 
     2336 
     2337        draw_box(data, current_folder,true); 
    23232338                //Mostrar as msgs nao lidas de acordo com o filtro de relevancia 
    23242339        var msgs_unseen = 0; 
     
    23412356        sort_box_type = sort; 
    23422357        search_box_type = search; 
    2343  
    2344         if (typeof(clean_selected) == "undefined"){      
    2345         $.ajax({                         
    2346                         url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessagesIds",  
    2347                                 folder: get_current_folder(),                                    
    2348                                 sort_box_type: "SORTARRIVAL",  
    2349                                 search_box_type: search_box_type, 
    2350                                 sort_box_reverse: "1" 
    2351                                 }), 
    2352                         success: function(data){ 
    2353                                 data = connector.unserialize(data); 
    2354                                 if(data){ 
    2355                                         var _data = {}; 
    2356                                         $.each(data,function(index,value){ 
    2357                                                 if (value){ 
    2358                                                         _data[index] = value; 
    2359                                                 } 
    2360                                         }); 
    2361                                         populateSelectedMsgs(_data);                             
    2362                                 } 
    2363                         } 
    2364                 }); 
    2365         }        
    23662358 
    23672359        proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort,search,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 
     
    24322424function draw_message(info_msg, ID){ 
    24332425        // remove a flag $FilteredMessage da mensagem ao ser lida 
    2434         if(info_msg.Unseen == "U"){ 
     2426        if(info_msg.Unseen == "U" && preferences['use_alert_filter_criteria'] == "1"){ 
    24352427                $.each(fromRules, function(index, value) { 
    24362428                        if(value == info_msg.msg_folder){ 
     
    24792471                        { 
    24802472                if(info_msg.msg_number.match("s[0-9]+")){ 
    2481                     var new_info = info_msg.msg_number; 
    2482                     new_info = new_info.split("_")[1]; 
    2483                     info_msg.next_message = info_msg.next_message+"_"+new_info; 
    2484                     info_msg.nextMsgBox = info_msg.nextMsgBox+"_"+new_info; 
     2473                    var msg_next = $('#'+info_msg.msg_number).next(); 
     2474                    info_msg.next_message = msg_next.attr("id"); 
     2475                    info_msg.nextMsgBox = msg_next.attr("name"); 
     2476                    nextMsgBox = msg_next.attr("name"); 
    24852477                } 
    24862478                                currentTab = ID; 
     
    24892481                                //select_msg('null', 'down', true); 
    24902482                                if (!msg_selected){ 
    2491                                         select_msg('null', 'down', true); 
     2483                                        if(!!parseInt(preferences.use_shortcuts)) 
     2484                        select_msg('null', 'down', true); 
    24922485                                        msg_selected = true; 
    24932486                                } 
     
    24952488                } 
    24962489                /*Ultima mensagem de cada página, exceto a ultima*/ 
    2497         else if( (current_page < total_pages) ){ 
     2490        else if( (current_page < total_pages) && !info_msg.msg_number.match("s[0-9]+") ){ 
    24982491                    
    24992492                   img_next_msg.onclick = function() 
     
    25592552                        { 
    25602553                if(info_msg.msg_number.match("s[0-9]+")){ 
    2561                     var new_info = info_msg.msg_number; 
    2562                     new_info = new_info.split("_")[1]; 
    2563                     info_msg.prev_message = info_msg.prev_message+"_"+new_info; 
    2564                     info_msg.previousMsgBox = info_msg.previousMsgBox+"_"+new_info; 
     2554                    var msg_prev = $('#'+info_msg.msg_number).prev(); 
     2555                    info_msg.prev_message = msg_prev.attr("id"); 
     2556                    info_msg.previousMsgBox = msg_prev.attr("name"); 
     2557                    previousMsgBox = msg_prev.attr("name"); 
    25652558                } 
    25662559                                currentTab = ID; 
     
    25692562                                //select_msg('null', 'up', false); 
    25702563                                if (!msg_selected){ 
    2571                                         select_msg('null', 'up', true); 
     2564                    if(!!parseInt(preferences.use_shortcuts)) 
     2565                                            select_msg('null', 'up', true); 
    25722566                                        msg_selected = true; 
    25732567                                } 
     
    30103004                var option_export = '<span onclick="proxy_mensagens.export_all_messages()" onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options">'+get_lang("Export")+'</span> | '; 
    30113005                var report_error = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=reports_window("'+currentTab+'");>'+get_lang("Report error")+'</span> | ';  
    3012                 div_other_more_options.innerHTML += option_move + option_print + option_export + block_user +  report_error; 
     3006                // Opção do menu 'Mais Ações' para criar filtro a partir da mensagem aberta:   
     3007                var option_create_filter = '<span onmouseover="this.className=\'reply_options_active\'" onmouseout="this.className=\'reply_options\'" class="reply_options" onclick=filter_from_msg(onceOpenedHeadersMessages[\'' + html_entities(info_msg.msg_folder) + '\'][' + info_msg.msg_number + ']);>' + get_lang("Create filter from message") + '</span> | ';  
     3008                div_other_more_options.innerHTML += option_create_filter + option_move + option_print + option_export + block_user +  report_error; 
    30133009                 
    30143010                 
     
    35093505        subject.innerHTML = html_entities(info_msg.subject);  
    35103506        subject.className = "header_message_field"; 
    3511         if(defaultCalendar == "expressoCalendar" && $("#expressoCalendarid")[0]){ 
     3507        if($("#expressoCalendarid")[0]){ 
    35123508                var new_task_logo = document.createElement("IMG"); 
    35133509                new_task_logo.title = "Criar uma nova tarefa a partir deste email."; 
     
    46444640            delay : 300, 
    46454641            minLength: 0 
    4646         }).bind('catcompleteopen', function(event, ui) { 
     4642        }).bind('autocompleteopen', function(event, ui) { 
    46474643 
    46484644            $(this).data('is_open',true); 
    46494645 
    4650         }).bind('catcompleteclose', function(event, ui) { 
     4646        }).bind('autocompleteclose', function(event, ui) { 
    46514647 
    46524648            canMakeBox = true; 
    46534649            $(this).data('is_open',false); 
    4654  
     4650            $(this).blur().focus(); 
    46554651        }).data( "autocomplete" )._renderItem = function( ul, item ) { 
    46564652            var autocomplete = $(this)[0].element; 
    46574653 
    4658             //cálculo dinâmico da largura da lista 
    4659             var minwidth = 450; 
    4660             var width = (item.label ? item.label.length : (item.value ? item.value.length : (item.mail ? item.mail.length : 30 ))); 
    4661             width = (is_ie ? width*2 : (is_webkit && !is_mozilla ? width*4 : width*5)) + 30; 
    4662             if (width < minwidth) 
    4663                 width = minwidth; 
    4664  
    4665             ul.css({"min-width":width, "max-height" : "180px", "overflow-y" : "auto", "min-height": "30px"}); 
     4654            ul.css({"width":'50%',"min-width":'600px', "max-height" : "180px", "overflow-y" : "auto", "min-height": "30px"}); 
    46664655 
    46674656            item.raty = ((item.number_of_messages*10)/topContact) > 1 ? ((item.number_of_messages*10)/topContact) : 1; 
     
    47534742                        emQuickSearch(($(this).parents("tr:first").find("textarea").val() ? $(this).parents("tr:first").find("textarea").val() : input_search), "."+$(this).parents("tr:first").attr('class').split("-")[0], ID, undefined, true); 
    47544743        }); 
     4744} 
     4745 
     4746/*  
     4747        Anexa uma mensagem a mensagem sendo enviada.  
     4748        Parâmetros:  
     4749                folder_name: nome da pasta na qual a mensagem sendo anexada se encontra.  
     4750                message_number: id da mensagem sendo anexada.  
     4751*/  
     4752function attach_message (folder_name, message_number) {  
     4753    var ID = currentTab;  
     4754    var fileUploadMSG = $('#fileupload_msg'+ID);  
     4755    fileUploadMSG.find(' .attachments-list').show();  
     4756    var att = new Object();  
     4757 
     4758    
     4759 
     4760    var attach = {};  
     4761    attach.fileName = onceOpenedHeadersMessages[folder_name][message_number].subject + '.eml';  
     4762    attach.fullFileName = onceOpenedHeadersMessages[folder_name][message_number].subject + '.eml';  
     4763    if(attach.fileName.length > 20){  
     4764        attach.fileName = attach.fileName.substr(0, 17) + "... " + attach.fileName.substr(attach.fileName.length - 9, attach.fileName.length);  
     4765    }  
     4766    attach.error = false;  
     4767    attach.OK = true; 
     4768    if (folder_name.indexOf('local_messages_') == 0){ 
     4769        attach.fileSize = formatBytes(onceOpenedHeadersMessages[folder_name][message_number].size); 
     4770    } else { 
     4771        attach.fileSize = formatBytes(onceOpenedHeadersMessages[folder_name][message_number].Size);  
     4772    } 
     4773    var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {  
     4774        file: attach  
     4775    }));  
     4776    $("#content_id_" + currentTab + " .save").button("enable");  
     4777    upload.find('.att-box-loading').remove();  
     4778    upload.append('<input type="hidden" name="fileId[]" value=\'' + idATT + '\'/>');  
     4779  
     4780    upload.find('.att-box-delete').click(function()  
     4781    {  
     4782        $("#content_id_" + currentTab + " .save").button("enable");  
     4783        var idAttach = $(this).parent().find('input[name="fileId[]"]').val();  
     4784        fileUploadMSG.find(' .attachments-list').find('input[value="' + idAttach + '"]').remove();  
     4785        delAttachment(ID, idAttach);  
     4786        $(this).parent().qtip("destroy");  
     4787        $(this).parent().remove();  
     4788        if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length)  
     4789        {  
     4790            fileUploadMSG.find(' .attachments-list').hide();  
     4791        }  
     4792    });  
     4793  
     4794    var addtip = function(attach){ 
     4795        fileUploadMSG.find('.attachments-list .att-box:last').qtip(  
     4796        {  
     4797            content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {  
     4798                attach: attach  
     4799            }),  
     4800            position: {  
     4801                corner: {  
     4802                    tooltip: 'bottomMiddle',  
     4803                    target: 'topMiddle'  
     4804                },  
     4805                adjust: {  
     4806                    resize: true,  
     4807                    scroll: true  
     4808                }  
     4809            },  
     4810            show: {  
     4811                when: 'mouseover',  
     4812                // Don't specify a show event  
     4813                ready: false // Show the tooltip when ready  
     4814            },  
     4815            hide: 'mouseout',  
     4816            // Don't specify a hide event  
     4817            style: {  
     4818                border: {  
     4819                    width: 1,  
     4820                    radius: 5  
     4821                },  
     4822                width: {  
     4823                    min: 75,  
     4824                    max: 1000  
     4825                },  
     4826                padding: 5,  
     4827                textAlign: 'center',  
     4828                tip: true,  
     4829                // Give it a speech bubble tip with automatic corner detection  
     4830                name: 'blue' // Style it according to the preset 'cream' style  
     4831            }  
     4832        });  
     4833    }  
     4834 
     4835    if(folder_name.indexOf("local_messages_") != 0) 
     4836    { 
     4837        att.folder = folder_name;  
     4838        att.uid = message_number;  
     4839        att.type = 'imapMSG';  
     4840        att.name = Base64.encode(onceOpenedHeadersMessages[folder_name][message_number].subject + '.eml');  
     4841        var idATT = JSON.stringify(att);  
     4842        addAttachment(ID, idATT);  
     4843 
     4844        fileUploadMSG.find('.attachments-list').append(upload); 
     4845        addtip(attach); 
     4846    } 
     4847    else 
     4848    { 
     4849        var folder_trash = "INBOX"+cyrus_delimiter+special_folders["Trash"]; 
     4850        expresso_mail_archive.unarchieveToAttach(folder_name, folder_trash, message_number, function(data){ 
     4851            $.ajax({ 
     4852                url: "controller.php?action=$this.imap_functions.get_info_msg_archiver", 
     4853                data:  {"idMsgs":data.idsMsg}, 
     4854                type: 'POST', 
     4855                async: false, 
     4856                success: function(data){ 
     4857                    data = JSON.parse(connector.unserialize(data)); 
     4858                    data = data[0]; 
     4859                    att.folder = folder_trash; 
     4860                    att.uid = data.uid;  
     4861                    att.type = 'imapMSG';  
     4862                    att.name = Base64.encode(onceOpenedHeadersMessages[folder_name][message_number].subject + '.eml');  
     4863                    var idATT = JSON.stringify(att);  
     4864                    addAttachment(ID, idATT); 
     4865                    fileUploadMSG.find('.attachments-list').append(upload); 
     4866                    addtip(attach); 
     4867                }, 
     4868            }); 
     4869        });  
     4870    } 
     4871    upload.find('.att-box-loading').remove();      
    47554872} 
    47564873                 
     
    49335050        $(this).prev().show(); 
    49345051        }); 
    4935         fileUploadMSG.find(".fileUploadButton, .message-attach-link").button().filter(".fileUploadButton").click(function(){ 
    4936             fileUploadMSG.find("input:file").trigger("click"); 
    4937     }); 
    4938  
    4939     fileUploadMSG.find("input:file").fileupload({ 
     5052 
     5053 
     5054    fileUploadMSG.find(".button").button().filter(".fileinput-button").find(".ui-button-text").css("margin-top","2px").find("input:file").fileupload({ 
    49405055                //singleFileUploads : true,fileUploadMSG 
    49415056                sequentialUploads: true,  
     
    51135228            }); 
    51145229        }*/ 
    5115         });/*.css({ 
    5116                 "height" : "20px",  
    5117                 "width": (is_webkit ? "205px" : "100px"),  
    5118                 "border-width": "0 0 0px 0px",  
    5119         "-moz-transform" : "rotate(-180deg) translate(5px, -0.5px) scale(1.1)",   
    5120         "-webkit-transform" : "rotate(-180deg) translate(0px, 0px)" 
    5121         }).end().end().end().*/ 
     5230        }).css({ 
     5231        "height" : ($.browser.mozilla ? "15px" : "20px"),  
     5232        // "width": (is_webkit ? "205px" : "100px"), 
     5233        "width" : "205px", 
     5234        "margin-top" : ($.browser.mozilla ? "10px" : "0"), 
     5235        "margin-right" : (is_mozilla ? "30px" : "0"), 
     5236        "border-width": "0 0 0px 0px",  
     5237        "transform" : "rotate(-360deg) translate(5px, -0.5px) scale(1.1)",   
     5238        "-webkit-transform" : "rotate(-360deg) translate(0px, 0px)" 
     5239        });/*.end().end().end().*/ 
     5240 
    51225241    fileUploadMSG.find(".message-attach-link").click(function(){ 
    51235242                jQuery('#message-attach-dialog').html(DataLayer.render("../prototype/modules/attach_message/attach_message.ejs", {})); 
     
    51495268                                jQuery.each(selectedMessages[folder_name], function(message_number, message) {  
    51505269                                        if (message) { 
    5151                                                 fileUploadMSG.find(' .attachments-list').show();         
    5152                                                 var att = new Object(); 
    5153                                                 att.folder = folder_name; 
    5154                                                 att.uid = message_number; 
    5155                                                 att.type = 'imapMSG'; 
    5156                                                 att.name = Base64.encode(onceOpenedMessages[folder_name][message_number].subject + '.eml'); 
    5157                                                 var idATT = JSON.stringify(att); 
    5158                                                 addAttachment( ID , idATT);                         
    5159                                                 var attach = {}; 
    5160                                                 attach.fileName = onceOpenedMessages[folder_name][message_number].subject + '.eml'; 
    5161                                                 attach.fullFileName = onceOpenedMessages[folder_name][message_number].subject + '.eml'; 
    5162                                                 if(attach.fileName.length > 20) 
    5163                                                         attach.fileName = attach.fileName.substr(0, 17) + "... " + attach.fileName.substr(attach.fileName.length-9, attach.fileName.length); 
    5164  
    5165                                                 attach.error = false; 
    5166                         attach.OK = true; 
    5167                                                 attach.fileSize = formatBytes(onceOpenedMessages[folder_name][message_number].size); 
    5168                                                 var upload = $(DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist.ejs", {file : attach})); 
    5169                                                 $("#content_id_"+currentTab+" .save").button("enable"); 
    5170                         upload.find('.att-box-loading').remove(); 
    5171                                                 upload.append('<input type="hidden" name="fileId[]" value=\''+idATT+'\'/>'); 
    5172                                                  
    5173                                                 upload.find('.att-box-delete').click(function(){ 
    5174                             $("#content_id_"+currentTab+" .save").button("enable"); 
    5175                                                         var idAttach = $(this).parent().find('input[name="fileId[]"]').val(); 
    5176                                                         fileUploadMSG.find(' .attachments-list').find('input[value="'+idAttach+'"]').remove(); 
    5177                                                         delAttachment(ID,idAttach);  
    5178                                                         $(this).parent().qtip("destroy"); 
    5179                                                         $(this).parent().remove(); 
    5180                                                         if(!fileUploadMSG.find(' .attachments-list').find(".att-box").length){ 
    5181                                                                 fileUploadMSG.find(' .attachments-list').hide(); 
    5182                                                         } 
    5183                                                 });      
    5184                                                          
    5185                                                 fileUploadMSG.find('.attachments-list').append(upload); 
    5186  
    5187                                                 upload.find('.att-box-loading').remove(); 
    5188  
    5189                                                 fileUploadMSG.find('.attachments-list .att-box:last').qtip({ 
    5190                                         content: DataLayer.render("../prototype/modules/mail/templates/attachment_add_itemlist_tooltip.ejs", {attach : attach}), 
    5191                                                         position: { 
    5192                                                                 corner: { 
    5193                                                                         tooltip: 'bottomMiddle', 
    5194                                                                         target: 'topMiddle' 
    5195                                                                 }, 
    5196                                                                 adjust: { 
    5197                                                        resize: true, 
    5198                                                        scroll: true 
    5199                                                     } 
    5200                                                         }, 
    5201                                                         show: { 
    5202                                                                 when: 'mouseover', // Don't specify a show event 
    5203                                                                 ready: false // Show the tooltip when ready 
    5204                                                         }, 
    5205                                                         hide: 'mouseout', // Don't specify a hide event 
    5206                                                         style: { 
    5207                                                                 border: { 
    5208                                                                         width: 1, 
    5209                                                                         radius: 5 
    5210                                                                 }, 
    5211                                                                 width: { 
    5212                                                                          min: 75, 
    5213                                                                          max : 1000 
    5214                                                                 }, 
    5215                                                                 padding: 5,  
    5216                                                                 textAlign: 'center', 
    5217                                                                 tip: true, // Give it a speech bubble tip with automatic corner detection 
    5218                                                                 name: 'blue' // Style it according to the preset 'cream' style 
    5219                                                         } 
    5220                                 }); 
     5270                                                /* Anexa a mensagem especificada (por folder e id_msg)  
     5271                                                   na mensagem sendo criada.*/ 
     5272                                                attach_message(folder_name, message_number); 
    52215273                                        } 
    52225274                                }); 
     
    57815833} 
    57825834 
    5783 function verifyContext(type) {  
    5784     var folderN = $(".menu-sel").attr("role") ? $(".menu-sel").attr("role") : get_current_folder();  
    5785     if(type == "unarchive"){  
    5786         expresso_mail_archive.unarchieve(folderN, null, null);  
    5787     } else {  
    5788         archive_msgs(folderN,null,null)  
    5789     }  
    5790 }  
    5791   
     5835function verifyContext(type) { 
     5836    var folderN = $(".menu-sel").attr("role") ? $(".menu-sel").attr("role") : get_current_folder(); 
     5837    if(type == "unarchive"){ 
     5838        expresso_mail_archive.unarchieve(folderN, null, null); 
     5839    } else { 
     5840        archive_msgs(folderN,null,null) 
     5841    } 
     5842} 
     5843 
    57925844function draw_footer_box(num_msgs){ 
    57935845        folder = get_current_folder(); 
     
    58155867                ((expresso_offline)?" ":'<span class="message_options_import"><span ' + change_font_color + ' title="'+get_lang("Import")+'" class="message_options" onclick="import_window()">'+get_lang("Import")+'</span></span>'); 
    58165868 
    5817       
     5869     
    58185870    //Link arquivar e desarquivar com ação 
    58195871    //MAILARCHIVER 
  • branches/2.5/expressoMail1_2/js/mail_archiver.js

    r8126 r8232  
    427427            
    428428                var fcaption = ""; 
    429                  
    430                 if(destination_folder.substr(0,5) == 'local'){ 
    431                     expresso_mail_archive.folder_destination = destination_folder.replace("local_messages_",""); 
    432                 } 
    433                 else{ 
    434                     expresso_mail_archive.folder_destination = destination_folder; 
    435                 } 
     429 
     430                if(destination_folder.substr(0,5) == 'local'){  
     431                    expresso_mail_archive.folder_destination = destination_folder.replace("local_messages_","");  
     432                }  
     433                else{  
     434                    expresso_mail_archive.folder_destination = destination_folder;  
     435                }  
     436 
    436437                 
    437438                if(!expresso_mail_archive.archivefolder){ 
    438                     expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination); 
     439                    expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination);  
    439440                    if(typeof(expresso_mail_archive.folder) != "undefined"){ 
    440441                        //window.alert('folder.path -> ' + expresso_mail_archive.folder.path); 
     
    575576} 
    576577 
    577  
    578  
    579  
    580 /** 
    581  *Unarchieve Message 
    582  * 
    583  *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
    584  * 
    585  *@param folder Original Folder of the message 
    586  *@param new_folder The new folder of the message 
    587  *@param msgs_number id of the messages 
    588  */ 
    589 MailArchiver.prototype.unarchieve = function (folder, new_folder, msgs_number){ 
    590     try{  
    591         write_msg(get_lang("Starting to unarchive messages")); 
     578MailArchiver.prototype.unarchieveToAttach = function (folder, new_folder, msgs_number, callback){ 
     579    try{ 
     580 
     581        if(typeof callback !== 'function') callback = function(){}; 
     582 
     583        if(typeof(expresso_mail_archive.idMsgsToAttach) == "undefined"){ 
     584            expresso_mail_archive.idMsgsToAttach = new Array(); 
     585        } 
     586        //write_msg(get_lang("Starting to unarchive messages")); 
    592587        expresso_mail_archive.isArchiveOperation = true; 
    593588        if(currentTab.toString().indexOf("_r") != -1){ 
     
    599594                 
    600595        if (parseInt(msgs_number) > 0 || msgs_number.length > 0){        
    601             expresso_mail_archive.message_list = new Array(); 
    602             expresso_mail_archive.CreateMessageList(msgs_number); 
    603             if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 
     596            
     597            expresso_mail_archive.messageToAttach = msgs_number; 
     598            if(expresso_mail_archive.messageToAttach) { 
     599                 
    604600                expresso_mail_archive.unarchivecounter = 0; 
    605601                expresso_mail_archive.unarchive_error_counter=0; 
    606                 expresso_mail_archive.getFolderInfo(folder.replace("local_messages_","")); 
     602                expresso_mail_archive.getFolderInfo(folder.replace("local_messages_",""));  
    607603                expresso_mail_archive.unarchievefolder = expresso_mail_archive.folder.name; 
    608604                (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 
    609605                 
    610                 expresso_mail_archive.unarchieveHandler(); 
     606                expresso_mail_archive.unarchieveToAttachHandler(callback); 
    611607                 
    612608                if(currentTab.toString().indexOf("_r") != -1){ 
     
    628624} 
    629625 
    630 /** 
    631  * 
    632  *Unarchieve Message Handler 
    633  * 
    634  *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
    635  * 
    636  **/ 
    637 MailArchiver.prototype.unarchieveHandler = function(){ 
    638     try{ 
    639         var email = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/' + expresso_mail_archive.session.id +'/'+ expresso_mail_archive.folder.path + '/'+ expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter] + '.eml';     
     626MailArchiver.prototype.unarchieveToAttachHandler = function(uCallback){ 
     627    try{ 
     628         var email = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/' + expresso_mail_archive.session.id +'/'+ expresso_mail_archive.folder.path + '/'+ expresso_mail_archive.messageToAttach + '.eml';     
    640629     
    641630        //Creates a new object to unarchive messages. It's a CXF Add-on CORS component 
     
    647636            for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 
    648637                                 
    649                 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]){ 
     638                if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.messageToAttach){ 
    650639                    var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 
    651640                     
     
    702691                } 
    703692            } 
     693            var id = expresso_mail_archive.messageToAttach; 
     694            var source =  encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 
     695            var params =  
     696            "&folder="      + escape(expresso_mail_archive.unarchievenewfolder) + 
     697            "&source="      + source +  
     698            "&timestamp="   + timestamp +  
     699            "&madata=true"  +  
     700            "&flags="       + flags + 
     701            "&id="          + id; 
     702 
     703 
     704            var handler_unarchive = function(data){ 
     705                expresso_mail_archive.unarchieveToAttachController(data); 
     706            } 
     707            write_msg(get_lang("Please, Wait the messages from archieve be ready.")); 
     708             
     709             $.ajax({ 
     710                url: "controller.php?action=$this.imap_functions.unarchive_mail", 
     711                success: function(data){ 
     712                    data = connector.unserialize(data); 
     713                    expresso_mail_archive.idMsgsToAttach.push(data.idsMsg); 
     714                    handler_unarchive(data); 
     715                    uCallback(data); 
     716                }, 
     717                async: false, 
     718                data:  params, 
     719                type: 'POST', 
     720                 
     721            }); 
     722 
     723        } 
     724 
     725         
     726        UnarchiveReqHandler.handler.open("GET", email, true); 
     727        if(UnarchiveReqHandler.handler.overrideMimeType){ 
     728            UnarchiveReqHandler.handler.overrideMimeType("message/rfc822; charset=windows-1252");  
     729        } 
     730        UnarchiveReqHandler.handler.send(); 
     731    } 
     732    catch(e){ 
     733        write_msg(get_lang('Unarchive error: ' + e)); 
     734    } 
     735} 
     736 
     737MailArchiver.prototype.unarchieveToAttachController = function(data){ 
     738     
     739    if (data){ 
     740        if (data.error != "") { 
     741            expresso_mail_archive.unarchive_error_counter++; 
     742        } 
     743         
     744    } 
     745} 
     746 
     747 
     748/** 
     749 *Unarchieve Message 
     750 * 
     751 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
     752 * 
     753 *@param folder Original Folder of the message 
     754 *@param new_folder The new folder of the message 
     755 *@param msgs_number id of the messages 
     756 */ 
     757MailArchiver.prototype.unarchieve = function (folder, new_folder, msgs_number){ 
     758    try{  
     759 
     760        var aclShare = false; 
     761        $.ajax({ 
     762              url: 'controller.php?' + $.param( { action: '$this.imap_functions.verifyShareFolder', folder: new_folder } ), 
     763              success: function( data ){ 
     764                 data = connector.unserialize( data ); 
     765                 if(data != null){ 
     766                     if(!data.status){ 
     767                        aclShare = true; 
     768                     } 
     769                 } 
     770 
     771              }, 
     772              async: false 
     773        }); 
     774 
     775        if(aclShare){ 
     776            write_msg(get_lang("You don't have permission for this operation in this shared folder!")); 
     777            return false; 
     778        }  
     779 
     780        write_msg(get_lang("Starting to unarchive messages")); 
     781        expresso_mail_archive.isArchiveOperation = true; 
     782        if(currentTab.toString().indexOf("_r") != -1){ 
     783            msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
     784        } 
     785 
     786        if(!msgs_number) 
     787            msgs_number = get_selected_messages();         
     788                 
     789        if (parseInt(msgs_number) > 0 || msgs_number.length > 0){        
     790            expresso_mail_archive.message_list = new Array(); 
     791            expresso_mail_archive.CreateMessageList(msgs_number); 
     792            if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 
     793                expresso_mail_archive.unarchivecounter = 0; 
     794                expresso_mail_archive.unarchive_error_counter=0; 
     795                expresso_mail_archive.getFolderInfo(folder.replace("local_messages_",""));  
     796                expresso_mail_archive.unarchievefolder = expresso_mail_archive.folder.name; 
     797                (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 
     798                 
     799                expresso_mail_archive.unarchieveHandler(); 
     800                 
     801                if(currentTab.toString().indexOf("_r") != -1){ 
     802                    delete_border(currentTab,'false');   
     803                } 
     804            } 
     805            else{ 
     806                write_msg(get_lang('No selected message.')); 
     807            } 
     808        }                                
     809        else 
     810            write_msg(get_lang('No selected message.')); 
     811         
     812        clear_selected_messages(); 
     813    } 
     814    catch (e){ 
     815        write_msg(get_lang('Unarchive error: ' + e)); 
     816    } 
     817} 
     818 
     819/** 
     820 * 
     821 *Unarchieve Message Handler 
     822 * 
     823 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br] 
     824 * 
     825 **/ 
     826MailArchiver.prototype.unarchieveHandler = function(){ 
     827    try{ 
     828        var email = mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/mail/' + expresso_mail_archive.session.id +'/'+ expresso_mail_archive.folder.path + '/'+ expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter] + '.eml';     
     829     
     830        //Creates a new object to unarchive messages. It's a CXF Add-on CORS component 
     831        var UnarchiveReqHandler = new cxf_cors_request_object(); 
     832        UnarchiveReqHandler.init(); 
     833 
     834        //Both XDomainRequest and XMLHttpRequest L2 supports onload event 
     835        UnarchiveReqHandler.handler.onload = function(){             
     836            for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 
     837                                 
     838                if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]){ 
     839                    var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 
     840                     
     841                    //Get local tagged message data 
     842                    var flags = new String(""); 
     843                     
     844                    //Forwarded is special one: marks as "answered" and "draft" 
     845                    if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Forwarded"]){ 
     846                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Forwarded"] == 'F') 
     847                            flags += 'A:X'+':';                                   
     848                    } 
     849                    else{ 
     850                        //Answered tag 
     851                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Answered"]) 
     852                            if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Answered"] == 'A') 
     853                                flags += 'A'+':'; 
     854                            else 
     855                                flags += ':'; 
     856                        else 
     857                            flags += ':';                     
     858 
     859                        //Draft tag 
     860                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Draft"]) 
     861                            if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Draft"] == 'X') 
     862                                flags += 'D'+':';                     
     863                            else 
     864                                flags += ':'; 
     865                        else 
     866                            flags += ':'; 
     867                    } 
     868                     
     869                    //Flagged tag 
     870                    if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Flagged"]) 
     871                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Flagged"] == 'F') 
     872                            flags += 'F'+':';                                         
     873                        else 
     874                            flags += ':'; 
     875                    else 
     876                        flags += ':'; 
     877                     
     878                    //Unseen tag 
     879                    if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Unseen"]) 
     880                        if(expresso_mail_archive.allcompletemessagesbyfolder[w]["Unseen"] == 'U') 
     881                            flags += 'U';      
     882                        else 
     883                            flags += ''; 
     884                    else 
     885                        flags += ''; 
     886                     
     887                    //Imap tag hash id 
     888                    flags += "#@#@#@";                     
     889                     
     890                    break; 
     891                } 
     892            } 
    704893            var id = expresso_mail_archive.message_list[expresso_mail_archive.unarchivecounter]; 
    705894            var source =  encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 
     
    717906            write_msg(get_lang('Unarchiving message %1 of %2', (expresso_mail_archive.unarchivecounter + 1), expresso_mail_archive.message_list.length)); 
    718907             
    719             cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
     908            //cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params); 
     909 
     910            $.ajax({ 
     911                url: "controller.php?action=$this.imap_functions.unarchive_mail", 
     912                data:  params, 
     913                type: 'POST', 
     914                async: false, 
     915                success: function(data){ 
     916                    handler_unarchive(connector.unserialize(data)); 
     917                }, 
     918            }); 
     919 
     920 
     921 
    720922        } 
    721923         
     
    8461048    expresso_mail_archive.message_list = new Array(); 
    8471049 
    848     expresso_mail_archive.currentfolder = folder.replace("local_messages_",""); 
    849  
    850     expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder); 
     1050    expresso_mail_archive.currentfolder = folder.replace("local_messages_","");  
     1051 
     1052    expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder);  
    8511053 
    8521054    // This is necessary 'couse we can get a delete operation while an unarchive operation 
     
    9561158        expresso_mail_archive.message_list = new Array();   
    9571159 
    958         expresso_mail_archive.getFolderInfo(expresso_mail_archive.currentfolder); 
    959         expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination); 
    960         expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder);  
     1160        expresso_mail_archive.getFolderInfo(expresso_mail_archive.currentfolder);  
     1161        expresso_mail_archive.getFolderInfo(expresso_mail_archive.folder_destination);  
     1162        expresso_mail_archive.listMessages(expresso_mail_archive.currentfolder);   
    9611163               
    9621164        expresso_mail_archive.resetObject(); 
     
    12581460        if(folderId == 'local_root') 
    12591461            folderId = ""; 
    1260         var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$");  
    1261         if(exp_verifyId.test(folderId))  
    1262             folderId = folderId.replace("messages_", "");  
     1462        var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$"); 
     1463        if(exp_verifyId.test(folderId)) 
     1464            folderId = folderId.replace("messages_", ""); 
    12631465        ArchiveServices.getFolderInfo(expresso_mail_archive.getFolderInfoOperationOK, expresso_mail_archive.getFolderInfoOperationFailure, expresso_mail_archive.session.id, folderId); 
    12641466    } 
     
    12961498 
    12971499MailArchiver.prototype.deleteAllMessages = function(folderId){ 
    1298     try{ 
     1500    try{     
    12991501        var objfolder = new Object(); 
    1300         objfolder.folder = folderId; 
     1502        objfolder.folder = folderId;  
    13011503 
    13021504        var query_data = expresso_mail_archive.queryconfig.query(objfolder); 
     
    13371539        } 
    13381540        var objfolder = new Object(); 
    1339         var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$");  
    1340         if(exp_verifyId.test(folderid))  
    1341             folderid = folderid.replace("messages_", "");  
    1342         objfolder.folder = folderid;  
     1541        var exp_verifyId = RegExp("^messages\_[0-9|a-z]+\-[0-9|a-z|\-]+$"); 
     1542        if(exp_verifyId.test(folderid)) 
     1543            folderid = folderid.replace("messages_", ""); 
     1544        objfolder.folder = folderid; 
    13431545        //var testing_data_xml = '<?xml version="1.0" encoding="UTF-8"?><query lowerIndex="0" upperIndex="50"><folder id="'+folderid+'"/><order asc="date"/><order desc="subject"/></query>'; 
    13441546        //var testing_data_json_mapped = '{"query":{"@lowerIndex":"0", "@upperIndex":"50", "folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date", "@desc":"subject"}]}}'; 
    13451547        var query_data = expresso_mail_archive.queryconfig.query(objfolder); 
    1346         expresso_mail_archive.getFolderInfo(folderid); 
     1548 
     1549        expresso_mail_archive.getFolderInfo(folderid);  
    13471550        expresso_mail_archive.currentfolder = folderid; 
    13481551         
     
    14041607} 
    14051608 
     1609 
     1610MailArchiver.prototype.getMessagesByFolder = function(folderid, searchType){ 
     1611    try{ 
     1612        if(searchType == "ALL") 
     1613            var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "order":[{"@asc":"date"}]}}'; 
     1614        else 
     1615            var query_messages = '{"query":{"folder":[{"@id":"'+folderid+'"}], "tags":[{"@contains":"'+searchType+'"}], "order":[{"@asc":"date"}]}}'; 
     1616        ArchiveServices.listMessages(expresso_mail_archive.getMessagesByFolderOperationOK, expresso_mail_archive.getMessagesByFolderOperationFailure, expresso_mail_archive.session.id, query_messages); 
     1617    } 
     1618    catch (e){ 
     1619        expresso_mail_archive.getFaultInfo(); 
     1620    } 
     1621} 
     1622 
     1623MailArchiver.prototype.getMessagesByFolderOperationOK = function(returnService){ 
     1624    var msglist = new Array(); 
     1625    var msglistcomplete = new Array(); 
     1626    var msgAll = new Array(); 
     1627    for(var i=0; i< returnService.getReturn().length; i++){ 
     1628        //Array montado apenas com ids para tratamento de seleção de mensagens independente de paginação 
     1629        msglist.push(returnService.getReturn()[i]._id); 
     1630 
     1631        msgAll.push(returnService.getReturn()[i]); 
     1632 
     1633        //Incremento de contadores para atualização da aba de listagem 
     1634        if(returnService.getReturn()[i]._tags.indexOf("unseen") != -1){ 
     1635            expresso_mail_archive.tot_unseen_msgs_tab++; 
     1636        } 
     1637        expresso_mail_archive.tot_msgs_tab++; 
     1638        //Array montado para operação de desarquivamento 
     1639        var ExpSerialized = expresso_mail_archive.pattern.toExpressoHeader(returnService.getReturn()[i]); 
     1640        msglistcomplete.push(connector.unserialize(ExpSerialized)); 
     1641    } 
     1642    expresso_mail_archive.allmessagesbyfolder = msglist; 
     1643    expresso_mail_archive.allcompletemessagesbyfolder = msglistcomplete; 
     1644    expresso_mail_archive.msgAll = msgAll; 
     1645} 
     1646 
     1647MailArchiver.prototype.getMessagesByFolderOperationFailure = function(ServiceFault){ 
     1648    window.alert('listAllmessagesByFolder FALHOU!\n' + ServiceFault.getReturn()); 
     1649} 
     1650 
     1651 
    14061652//List all messages by folder given and set a array with all messages ids 
    14071653MailArchiver.prototype.listAllMessagesByFolder = function(folderid, searchType){ 
     
    15211767    if(msgfound){ 
    15221768        expresso_mail_archive.currentheaders = headerMsg; 
     1769        expresso_mail_archive.subjectPreview = headerMsg.subject; 
    15231770        return(headerMsg); 
    15241771    } 
     
    15431790            bodies.push(temp); 
    15441791        } 
     1792        expresso_mail_archive.bodyPreview = temp.getReturn(); 
    15451793        return bodies; 
    15461794    } 
     
    15481796        expresso_mail_archive.getFaultInfo(); 
    15491797    } 
     1798} 
     1799 
     1800 
     1801MailArchiver.prototype.getPreviewToAttach = function(id){ 
     1802    expresso_mail_archive.getMessageInfo(id); 
     1803    expresso_mail_archive.getMessageBodies([id]); 
    15501804} 
    15511805 
     
    16241878        return; 
    16251879    }     
     1880    expresso_mail_archive.te = returnService.getReturn(); 
    16261881    var msgBody = returnService.getReturn(); 
    16271882    //var msgHeaders = expresso_mail_archive.getMessageHeaders(expresso_mail_archive.currentmessage); 
     
    19182173            var filters = eval('(' + expresso_mail_archive.queryconfig.pharseSearchFields(fields) + ')'); 
    19192174 
     2175 
     2176 
    19202177            if(folderlist.indexOf("#") != -1) 
    19212178                filters.folder = folderlist.substr(0, folderlist.indexOf("#")); 
     
    19282185 
    19292186            expresso_mail_archive.querydata = expresso_mail_archive.search_queryconfig.query(filters); 
    1930              
     2187 
     2188 
     2189 
    19312190            //var query_data = '<?xml version="1.0" encoding="UTF-8"?><query subject="teste"><folder id="inbox"/><order asc="date"/></query>'; 
    19322191            ArchiveServices.listMessages(expresso_mail_archive.searchOperationOK, expresso_mail_archive.searchOperationFailure, expresso_mail_archive.session.id, expresso_mail_archive.querydata);         
     
    19622221             
    19632222        //expresso_mail_archive.queryresult = msglist;         
    1964         expresso_mail_archive.search_queryresult = msglist;     
     2223        expresso_mail_archive.search_queryresult = msglist;  
    19652224        //expresso_mail_archive.messageslisted = msglist2; 
    19662225        expresso_mail_archive.search_message_list = msglist2; 
     
    20962355        var ExpSerialized2 = expresso_mail_archive.pattern.toExpressoHeader(serviceReturn.getReturn()); 
    20972356        var msgitem2 = connector.unserialize(ExpSerialized2); 
     2357        if(!expresso_mail_archive.messageslisted){ 
     2358            expresso_mail_archive.messageslisted = []; 
     2359        } 
    20982360        expresso_mail_archive.messageslisted.push(msgitem2);     
    20992361        expresso_mail_archive.getMessageHeaders(serviceReturn.getReturn().getId()); 
     2362 
    21002363    } 
    21012364    else{ 
  • branches/2.5/expressoMail1_2/js/main.js

    r8188 r8232  
    1 // Tempo do auto refresh (em milisegundos) 
    21var time_refresh = 150000; 
    32 
     
    152151 
    153152                 
    154     if(preferences.show_name_print_messages == "1") {  
    155         var getUserName = document.getElementById("user_info");  
    156         var userName = getUserName.innerHTML;  
    157         var position = userName.indexOf("-");  
    158         var userName = userName.substring(3, position);  
    159         cabecalho = '<h4>' + userName;  
    160     }  
    161   
    162         current_folder="INBOX";  
    163   
    164     //MAILARCHIVER-02  
    165     //Try to get ArchiveServices object directly  
    166     if(ArchiveServices)  
    167         expresso_mail_archive.Startup();  
    168     //ArchiveServices not runnnig: catch the user preferences to set up message at header  
    169     else{  
    170         if(preferences.use_local_messages=="1")  
    171             write_msg(get_lang('Sorry, but Mail Archiver does not seems to be running or installed at this workstation. By now, we are turning off local messages!'));  
    172     }  
    173   
    174     //cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); //Save contacts needs preferences.  
    175     $.ajax({  
    176         async: false,  
    177         url: "controller.php?" + $.param( {action: "$this.imap_functions.getMessagesIds",  
    178             folder: get_current_folder(),  
    179              msg_range_begin: "0",  
    180              msg_range_end: "0",  
    181             sort_box_type: "SORTARRIVAL",  
    182             search_box_type: search_box_type,  
    183             sort_box_reverse: "1"  
    184             }),  
    185         success: function(data){  
    186             data = connector.unserialize(data);  
    187             if(data){  
    188                 var _data = {};  
    189                 $.each(data,function(index,value){  
    190                     if (data[index]){  
    191                         _data[data[index]] = data[index];  
    192                     }  
    193                 });  
    194                 populateSelectedMsgs(_data);  
    195             }  
    196         },  
    197         beforeSend: function( jqXHR, settings ){  
    198             connector.showProgressBar();  
    199         },  
    200         complete: function( jqXHR, settings ){  
    201             connector.hideProgressBar();  
     153    if(preferences.show_name_print_messages == "1") { 
     154        var getUserName = document.getElementById("user_info"); 
     155        var userName = getUserName.innerHTML; 
     156        var position = userName.indexOf("-"); 
     157        var userName = userName.substring(3, position); 
     158        cabecalho = '<h4>' + userName; 
     159    } 
     160 
     161        current_folder="INBOX"; 
     162 
     163    //MAILARCHIVER-02 
     164    //Try to get ArchiveServices object directly 
     165    if(ArchiveServices) 
     166        expresso_mail_archive.Startup(); 
     167    //ArchiveServices not runnnig: catch the user preferences to set up message at header 
     168    else{ 
     169        if(preferences.use_local_messages=="1") 
     170            write_msg(get_lang('Sorry, but Mail Archiver does not seems to be running or installed at this workstation. By now, we are turning off local messages!')); 
     171    } 
     172 
     173//  cExecute ("$this.db_functions.get_dropdown_contacts", save_contacts); //Save contacts needs preferences. 
     174 
     175    cExecute ("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", handler_draw_box); 
     176 
     177    if(preferences.hide_folders == "1") 
     178        Element('divAppboxHeader').innerHTML =  title_app_menu; 
     179 
     180    //Desbilitado limpeza de lixeira por request. Ticket #3253 
     181    //if (preferences.delete_trash_messages_after_n_days != 0) 
     182    /// cExecute ("$this.imap_functions.automatic_trash_cleanness&before_date="+preferences.delete_trash_messages_after_n_days+"&cyrus_delimiter="+cyrus_delimiter, handler_automatic_trash_cleanness); 
     183 
     184    //if(preferences.outoffice == "1") 
     185    // 
     186 
     187    //Troca da forma de construção de menu para o plugin jquery.contextMenu 
     188    //ConstructMenuTools(); 
     189    //MAILARCHIVER-00 
     190    //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) )  //Precisa ser feito após a renderização da caixa de emails 
     191        //check_mail_in_queue(); 
     192 
     193    // Insere a applet de criptografia 
     194    if (preferences.use_signature_digital_cripto == '1'){ 
     195        loadApplet(); 
     196    } 
     197    // Fim da inserção da applet 
     198    cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     199    //update_menu(Folder.getList(false)); 
     200 
     201    if($.cookie('collapse_folders') == "true"){ 
     202        if(!is_ie) 
     203            $("#folderscol").addClass( "hidden"); 
     204        else 
     205            $("#folderscol").hide(); 
     206        $(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-e").children().attr('title', "Expandir"); 
     207        refresh(); 
     208        resizeWindow(); 
     209    } 
     210    else{ 
     211        $(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-w").children().attr('title', "Ocultar"); 
     212        refresh(); 
     213        resizeWindow(); 
     214    } 
     215 
     216    $(".collapse_folders_td").attr('title', "Ocultar/Expandir").click(function(){ 
     217        if($("#folderscol").css("display") != "none"){ 
     218            if(!is_ie) 
     219                $("#folderscol").addClass( "hidden"); 
     220            else 
     221                $("#folderscol").hide(); 
     222 
     223            $(".collapse_folders").removeClass("ui-icon-triangle-1-w"); 
     224            $(".collapse_folders").addClass("ui-icon-triangle-1-e"); 
     225            $(".collapse_folders").parent().attr('title', "Expandir"); 
     226            $.cookie('collapse_folders', "true"); 
     227            refresh(); 
     228            resizeWindow(); 
     229        }else{ 
     230            if(!is_ie) 
     231                $("#folderscol").removeClass( "hidden"); 
     232            else 
     233                $("#folderscol").show(); 
     234            $(".collapse_folders").removeClass("ui-icon-triangle-1-e"); 
     235            $(".collapse_folders").addClass("ui-icon-triangle-1-w"); 
     236            $(".collapse_folders").parent().attr('title', "Ocultar"); 
     237            $.cookie('collapse_folders', "false"); 
     238            refresh(); 
     239            resizeWindow(); 
    202240        } 
    203     });  
    204      cExecute ("$this.imap_functions.get_range_msgs2&folder=INBOX&msg_range_begin=1&msg_range_end="+preferences.max_email_per_page+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", handler_draw_box);  
    205   
    206     if(preferences.hide_folders == "1")  
    207         Element('divAppboxHeader').innerHTML =  title_app_menu;  
    208   
    209     //Desbilitado limpeza de lixeira por request. Ticket #3253  
    210     //if (preferences.delete_trash_messages_after_n_days != 0)  
    211     /// cExecute ("$this.imap_functions.automatic_trash_cleanness&before_date="+preferences.delete_trash_messages_after_n_days+"&cyrus_delimiter="+cyrus_delimiter, handler_automatic_trash_cleanness);  
    212   
    213     //if(preferences.outoffice == "1")  
    214     //  
    215   
    216     //Troca da forma de construção de menu para o plugin jquery.contextMenu  
    217     //ConstructMenuTools();  
    218     //MAILARCHIVER-00  
    219     //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) )  //Precisa ser feito após a renderização da caixa de emails  
    220         //check_mail_in_queue();  
    221   
    222     // Insere a applet de criptografia  
    223     if (preferences.use_signature_digital_cripto == '1'){  
    224         loadApplet();  
    225     }  
    226     // Fim da inserção da applet  
    227     cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);  
    228   
    229     if($.cookie('collapse_folders') == "true"){  
    230         if(!is_ie)  
    231             $("#folderscol").addClass( "hidden");  
    232         else  
    233             $("#folderscol").hide();  
    234         $(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-e").children().attr('title', "Expandir");  
    235         refresh();  
    236         resizeWindow();  
    237     }  
    238     else{  
    239         $(".collapse_folders").addClass("ui-icon ui-icon-triangle-1-w").children().attr('title', "Ocultar");  
    240         refresh();  
    241         resizeWindow();  
    242     }  
    243   
    244     $(".collapse_folders_td").attr('title', "Ocultar/Expandir").click(function(){  
    245         if($("#folderscol").css("display") != "none"){  
    246             if(!is_ie)  
    247                 $("#folderscol").addClass( "hidden");  
    248             else  
    249                 $("#folderscol").hide();  
    250   
    251             $(".collapse_folders").removeClass("ui-icon-triangle-1-w");  
    252             $(".collapse_folders").addClass("ui-icon-triangle-1-e");  
    253             $(".collapse_folders").parent().attr('title', "Expandir");  
    254             $.cookie('collapse_folders', "true");  
    255             refresh();  
    256             resizeWindow();  
    257         }else{  
    258             if(!is_ie)  
    259                 $("#folderscol").removeClass( "hidden");  
    260             else  
    261                 $("#folderscol").show();  
    262             $(".collapse_folders").removeClass("ui-icon-triangle-1-e");  
    263             $(".collapse_folders").addClass("ui-icon-triangle-1-w");  
    264             $(".collapse_folders").parent().attr('title', "Ocultar");  
    265             $.cookie('collapse_folders', "false");  
    266             refresh();  
    267             resizeWindow();  
    268         }  
    269         resizeWindow();  
    270   
    271     }).hover(  
    272         function(){  
    273             $(this).addClass("collapse_folders_td_over");  
    274         },  
    275         function(){  
    276             $(this).removeClass("collapse_folders_td_over");  
    277         }  
    278     );  
    279   
    280     if(parseInt(preferences.use_dynamic_contacts)){  
    281         updateDynamicContact();  
    282     }  
    283   
    284   
    285     var handler_automatic_trash_cleanness = function(data)  
    286     {  
     241        resizeWindow(); 
     242 
     243    }).hover( 
     244        function(){ 
     245            $(this).addClass("collapse_folders_td_over"); 
     246        }, 
     247        function(){ 
     248            $(this).removeClass("collapse_folders_td_over"); 
     249        } 
     250    ); 
     251 
     252    if(parseInt(preferences.use_dynamic_contacts)){ 
     253        updateDynamicContact(); 
     254    } 
     255 
     256 
     257    var handler_automatic_trash_cleanness = function(data) 
     258    { 
    287259                if (data != false){ 
    288260                        write_msg(data.length +' '+ Element('txt_clear_trash').value); 
     
    295267        // Get cyrus delimiter 
    296268        cyrus_delimiter = Element('cyrus_delimiter').value; 
    297  
    298     cExecute ("phpgwapi.browser.isMobile", function( data ){ 
    299                 mobile_device = ( ( data.constructor == Boolean ) ? data : ( data === 'true' ) ); 
    300         }); 
    301269 
    302270        cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu);      
     
    595563                if(Element("border_id_" + id_msg_read)) { 
    596564                        alternate_border(id_msg_read); 
    597                         resizeWindow();  
     565                        resizeWindow(); 
    598566                } 
    599567                else { 
    600568                        var border_id = create_border(msg_info.subject, id_msg_read); 
    601                         if(border_id) 
     569                        if(border_id && border_id != "maximo") 
    602570                        { 
    603571                                openTab.type[border_id] = 2; 
     
    661629                                 
    662630                } 
    663                 if (msg_info.showImg)  
    664                 {  
    665                         $("#body_"+id_msg_read).html(msg_info.body);  
    666                         $('#show_img_link_'+id_msg_read).remove();  
    667                 }  
     631                if (msg_info.showImg) 
     632                { 
     633                        $("#body_"+id_msg_read).html(msg_info.body); 
     634                        $('#show_img_link_'+id_msg_read).remove(); 
     635                } 
    668636                //Change msg class to read. 
    669637                if (!msg_is_read(ID)) 
     
    705673                if(differenceOfNewCriteria > 0){ 
    706674                        for(var i=data.length - differenceOfNewCriteria; i < data.length; i++){ 
    707                 var msg_folder = data[i].msg_folder;  
    708                 var msg_number = data[i].msg_number;  
     675                var msg_folder = data[i].msg_folder; 
     676                var msg_number = data[i].msg_number; 
    709677                                desktopNotification.sentNotification("",get_lang("Filter criteria"),  truncate(new Date(data[i].udate).toString('dd/MM HH:mm') + ' - ' + data[i].from+' - '+data[i].subject, 75)); 
    710                                 desktopNotification.showNotification(function(){  
    711                     cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+msg_folder+"&msg_number="+msg_number, function(){});  
    712                 }, function(){  
     678                                desktopNotification.showNotification(function(){ 
     679                    cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+msg_folder+"&msg_number="+msg_number, function(){}); 
     680                }, function(){ 
    713681                                        window.focus(); 
    714682                                        this.cancel(); 
     
    721689function refresh(alert_new_msg, notifyPermission){ 
    722690 
     691    //Não deixa atualizar caso o usuario esteja em uma aba de nova mesnagem , reponder ou encaminhar; 
     692    //Evita o travamento da escrita no CKEDITOR. 
     693    if(typeof(currentTab) !== 'undefined' && currentTab.toString().indexOf("_r_") === -1 && currentTab !== 0 ) 
     694        return; 
     695 
    723696        getFromAlertRules(); 
    724697        var handler_refresh = function(data){ 
    725                 handlerMessageFilter = function (data) {                         
    726                         notificationFilter(data, notifyPermission); 
    727                         alarmFollowupflagged('filtersAlarms', data); 
    728                          
    729                 } 
    730                 /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
    731                 cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
     698 
     699        if(preferences['use_alert_filter_criteria'] == "1") 
     700        { 
     701            var handlerMessageFilter = function (data) { 
     702                notificationFilter(data, notifyPermission); 
     703                alarmFollowupflagged('filtersAlarms', data); 
     704 
     705            } 
     706            /* Busca  nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 
     707            cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 
     708        } 
    732709 
    733710                if(data['msg_range_end']) 
     
    801778                                                                        over : function(a, b){                                           
    802779                                                                                //SETA BORDA EM VOLTA DA PASTA 
     780                                                                                $(b.helper).find(".draggin-folder,.draggin-mail").css("color", "green"); 
    803781                                                                                over = $(this); 
    804782                                                                                $(this).addClass("folder-over"); 
     
    813791                                                                                                } 
    814792                                                                        }, 
    815                                                                         out : function(){ 
     793                                                                        out : function(a,b){ 
     794 
    816795                                                                                //RETIRA BORDA EM VOLTA DA PASTA 
     796                                                                                $(b.helper).find(".draggin-folder,.draggin-mail").css("color", ""); 
    817797                                                                                $(this).removeClass("folder-over"); 
    818798                                                                        }, 
     
    1005985                                 
    1006986                        var userTrashFolder = '';  
    1007                         
    1008                         if (arguments.length <= 6) show_success_msg = true;  
     987 
     988                        if (arguments.length <= 6 && typeof(show_success_msg) == "undefined") show_success_msg = true;  
    1009989                        if (folder == 'null') folder = current_folder;  
    1010990                  
     
    1013993                                        var arrayFolder = folder.split(cyrus_delimiter);  
    1014994                                        userTrashFolder = 'user'+cyrus_delimiter+arrayFolder[1]+cyrus_delimiter+special_folders['Trash']; 
    1015                                         var has_folder = false;//Folder.get( userTrashFolder, false );  
    1016                                         var folders = DataLayer.get("folder");  
    1017                                         $.each(folders,function(index,value){  
    1018                                                 if(value && value.id == userTrashFolder)  
    1019                                                         has_folder = true;  
    1020                                         });  
    1021   
     995                                        var has_folder = false;//Folder.get( userTrashFolder, false ); 
     996                                        var folders = DataLayer.get("folder"); 
     997                                        $.each(folders,function(index,value){ 
     998                                                if(value && value.id == userTrashFolder)  
     999                                                        has_folder = true; 
     1000                                        }); 
     1001 
    10221002                                        if(!has_folder){ 
    10231003                                                create_new_folder(special_folders['Trash'], 'user'+cyrus_delimiter+arrayFolder[1]); 
     
    10971077                                                                  data = connector.unserialize( data ); 
    10981078                                                                   
    1099                                                                   if( data ) 
    1100                                                                   show_msg( data ); 
     1079                                                                  if( data ){ 
     1080                                                                        data.openSameBorder = true; 
     1081                                                                        show_msg( data ); 
     1082                                                                  } 
    11011083                                                          }, 
    11021084                                                          beforeSend: function( jqXHR, settings ){ 
     
    11471129                params_to_delete += "&search_box_type="+search_box_type; 
    11481130                params_to_delete += "&sort_box_reverse="+sort_box_reverse; 
     1131 
    11491132                cExecute ("$this.imap_functions.delete_msgs", handler_delete_msgs, params_to_delete); 
    11501133        } 
     
    13591342                        return false; 
    13601343                } 
     1344 
    13611345                mail_msg = ( Element("divScrollMain_"+numBox) ) ? Element("divScrollMain_"+numBox).firstChild.firstChild : Element("divScrollMain_0").firstChild.firstChild; 
     1346 
     1347        var showMsg = function(){ 
     1348 
     1349            //Se pref. usar mensagens locais ativada e não for operação de arquivamento exibe mensagem de remoção. 
     1350            if(preferences.use_local_messages == 1){ 
     1351                if(!expresso_mail_archive.isArchiveOperation){ 
     1352                    if (data.msgs_number.length == 1 || typeof(data.msgs_number) == 'string' ) 
     1353                        write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
     1354                    else 
     1355                        write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
     1356                } 
     1357            } else { 
     1358                if (data.msgs_number.length == 1 || typeof(data.msgs_number) == 'string' ) 
     1359                    write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
     1360                else 
     1361                    write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
     1362            } 
     1363        } 
    13621364 
    13631365                if (openTab.type[currentTab] > 1) 
     
    13941396                                                        proxy_mensagens.get_msg(previous_msg,folder,null,show_msg); 
    13951397                                                } 
    1396                                         }        
     1398                                        } 
    13971399                                } 
    13981400                                //se houver pagina anterior a paginação deve ser refeita 
     
    14531455                                mail_msg.removeChild(msg_to_delete); 
    14541456                        } 
    1455  
     1457                        if (preferences.use_shortcuts == '1' && msg_to_delete && !msg_to_delete.previousSibling){ 
     1458                                if( $("#tbody_box .current_selected_shortcut_msg").length == 0 ){ 
     1459                                        select_msg('null','reload_msg','null'); 
     1460                                } 
     1461                        } 
    14561462                        // Update Box BgColor 
    14571463                        var box = Element("tbody_box"); 
     
    14641470                                Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - 1; 
    14651471                        } 
     1472 
     1473            showMsg(); 
    14661474                        return; 
    14671475                } 
     
    15081516                } 
    15091517 
    1510                 //Se pref. usar mensagens locais ativada e não for operação de arquivamento exibe mensagem de remoção. 
    1511                 if(preferences.use_local_messages == 1){ 
    1512                         if(!expresso_mail_archive.isArchiveOperation){ 
    1513                                 if (data.msgs_number.length == 1) 
    1514                                         write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
    1515                                 else 
    1516                                         write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
    1517                         } 
    1518                 } else { 
    1519                         if (data.msgs_number.length == 1) 
    1520                                 write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
    1521                         else 
    1522                                 write_msg(get_lang("The messages were moved to folder ") + lang_folder(data.new_folder_name)); 
    1523                 }        
     1518        showMsg(); 
    15241519 
    15251520                if (data.border_ID.indexOf('r') != -1){ 
     
    15501545 
    15511546        try{ 
    1552                 if (proxy_mensagens.is_local_folder(Element('input_folder_'+currentTab).getAttribute('value')) && !border_ID) { 
    1553                         alert(get_lang("You cant manipulate local messages on search")); 
    1554                         return; 
    1555                 } 
     1547        if(Element('input_folder_'+currentTab)) 
     1548            if (proxy_mensagens.is_local_folder(Element('input_folder_'+currentTab).getAttribute('value')) && !border_ID) { 
     1549                alert(get_lang("You cant manipulate local messages on search")); 
     1550                return; 
     1551            } 
    15561552        } catch (e) {}  
    15571553    //Validação para recuperar o id caso não seja aba de listagem 
     
    15991595                //expresso_mail_archive.moveMessages(new_folder.substr(6), msgs_number); 
    16001596                expresso_mail_archive.moveMessages(new_folder.replace('local_messages_', ''), msgs_number); 
    1601                 if(currentTab != 0)  
    1602                         delete_border(border_ID);  
     1597                if(currentTab != 0) 
     1598                        delete_border(border_ID); 
    16031599            } 
    16041600            else{ 
     
    16821678                                } 
    16831679                                var hasFolder = false; 
    1684                                 $.each(fromRules, function(index, value) { 
    1685                                         if(value == folder){ 
    1686                                                 hasFolder = true; 
    1687                                                 cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_number, handler_removeFlag);  
    1688                                                 return false; 
    1689                                         } 
    1690                                 }); 
     1680                if(preferences['use_alert_filter_criteria'] == "1") 
     1681                { 
     1682                    $.each(fromRules, function(index, value) { 
     1683                        if(value == folder){ 
     1684                            hasFolder = true; 
     1685                            cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_number, handler_removeFlag); 
     1686                            return false; 
     1687                        } 
     1688                    }); 
     1689                } 
    16911690                                if(!hasFolder){ 
    16921691                                        handler_removeFlag(); 
     
    21492148 
    21502149function new_message_to(email) { 
    2151         var new_border_ID = new_message('new','null');            
    2152         if (!new_border_ID){  
    2153                 var msgId;  
    2154                 setTimeout(function(){  
    2155                         msgId = $('#border_tr td.menu-sel').attr('id').toString();  
    2156                         content = $("#content_id_"+msgId.substr(msgId.lastIndexOf("_")+1,msgId.length));  
    2157                         /*Envio de email para um grupo*/  
    2158                         if (email.indexOf('@') == -1){  
    2159                                 var groups = REST.get('/groups');  
    2160                                         $.each(normalizeContacts(groups.collection.itens),function(index,group){  
    2161                                                 if (group.name.toLocaleLowerCase() == email.toLocaleLowerCase()){  
    2162                                                         email = group.id;  
    2163                                                 }  
    2164                                         });  
    2165                                 draw_email_box(email, content.find('.to').filter('textarea:first'),"G");          
    2166                         }  
    2167                         else  
    2168                                 draw_reply_boxes_by_field("to",email,content);  
    2169                 },500);  
    2170         }  
    2171         else{  
    2172                 var content = $("#content_id_"+new_border_ID);  
    2173                 if (email.indexOf('@') == -1){  
    2174                         var groups = REST.get('/groups');  
    2175                                 $.each(normalizeContacts(groups.collection.itens),function(index,group){  
    2176                                         if (group.name.toLocaleLowerCase() == email.toLocaleLowerCase()){  
    2177                                                 email = group.id;  
    2178                                         }  
    2179                                 });  
    2180                         draw_email_box(email, content.find('.to').filter('textarea:first'),"G");          
    2181                 }  
    2182                 else  
    2183                         draw_reply_boxes_by_field("to",email,content);  
    2184         }         
     2150        var new_border_ID = new_message('new','null');           
     2151        if (!new_border_ID){ 
     2152                var msgId; 
     2153                setTimeout(function(){ 
     2154                        msgId = $('#border_tr td.menu-sel').attr('id').toString(); 
     2155                        content = $("#content_id_"+msgId.substr(msgId.lastIndexOf("_")+1,msgId.length)); 
     2156                        /*Envio de email para um grupo*/ 
     2157                        if (email.indexOf('@') == -1){ 
     2158                                var groups = REST.get('/groups'); 
     2159                                        $.each(normalizeContacts(groups.collection.itens),function(index,group){ 
     2160                                                if (group.name.toLocaleLowerCase() == email.toLocaleLowerCase()){ 
     2161                                                        email = group.id; 
     2162                                                } 
     2163                                        }); 
     2164                                draw_email_box(email, content.find('.to').filter('textarea:first'),"G");         
     2165                        } 
     2166                        else 
     2167                                draw_reply_boxes_by_field("to",email,content); 
     2168                },500); 
     2169        } 
     2170        else{ 
     2171                var content = $("#content_id_"+new_border_ID);  
     2172                if (email.indexOf('@') == -1){ 
     2173                        var groups = REST.get('/groups'); 
     2174                                $.each(normalizeContacts(groups.collection.itens),function(index,group){ 
     2175                                        if (group.name.toLocaleLowerCase() == email.toLocaleLowerCase()){ 
     2176                                                email = group.id; 
     2177                                        } 
     2178                                }); 
     2179                        draw_email_box(email, content.find('.to').filter('textarea:first'),"G");         
     2180                } 
     2181                else 
     2182                        draw_reply_boxes_by_field("to",email,content); 
     2183        }        
    21852184} 
    21862185 
     
    33973396        /* Lista de palavras que vão ser procuradas no corpo do email, referente às variantes da palavra anexo em português, inglês e espanhol. */ 
    33983397        if(language == "pt-br") //Português brasileiro 
    3399                 var words = ['anexo', 'anexos', 'anexada', 'anexado', 'anexei', 'anexando', 'anexaste', 'anexastes', 'anexamos', 'anexaram']; 
    3400         else if(language == "es-es") //Espanhol 
     3398        var words = ['anexando', 'anexos', 'anexadas', 'anexados', 'anexei',  'anexaste', 'anexastes', 'anexamos', 'anexaram', 'anexas', 'anexado', 'anexada', 'anexo', 'anexa']; 
     3399    else if(language == "es-es") //Espanhol 
    34013400                var words = ['anexo','adjunto', 'adjuntos', 'adjuntado','adjuntamos']; 
    34023401        else //Inglês ('en') 
    3403                 var words = ['attach', 'attachment', 'attached', 'annex', 'appending']; 
     3402        var words = ['attach', 'attachment', 'attached', 'annex', 'appending', 'appendage', 'annexe', 'appendix']; 
    34043403 
    34053404        if($('#fileupload_msg'+ID).find('.att-box').length == 0 && preferences.alert_message_attachment == '1' ) { 
     
    34563455function send_valided_message(ID, folder, folder_name) 
    34573456{  
    3458         if (preferences.auto_save_draft == 1) 
    3459            autoSaveControl.status[ID] = true; 
    3460  
    3461         var content = $("#content_id_"+ID); 
    3462         var save_link = $("#content_id_"+ID).find(".save"); 
    3463         var onClick = save_link.onclick; 
    3464         save_link.onclick = ''; 
    3465         save_link.button({disabled: true}); 
     3457    if (preferences.auto_save_draft == 1) 
     3458       autoSaveControl.status[ID] = true; 
     3459 
     3460    var content = $("#content_id_"+ID); 
     3461    var save_link = $("#content_id_"+ID).find(".save"); 
     3462    var onClick = save_link.onclick; 
     3463    save_link.onclick = ''; 
     3464    save_link.button({disabled: true}); 
    34663465 
    34673466    var _subject = trim(content.find(".subject").val()); 
     
    34783477    $.each(array, function(index, value){ 
    34793478        stringReply += $(value).find("input").val() + ","; 
    3480     });  
     3479    });  
    34813480    var stringToEmail = ""; 
    34823481    draw_email_box(content.find(".to-tr").find("textarea:first").val() || content.find(".to-tr").find("input:visible").val(), content.find(".to-tr").find("textarea:first")); 
     
    35133512        }); 
    35143513    } 
    3515     stringEmail +=      stringCCEmail; 
     3514    stringEmail +=  stringCCEmail; 
    35163515 
    35173516    var mailData = new Object(); 
     
    35343533    mailData.msg_forward_from = $(content).find('[name="msg_forward_from"]').val(); 
    35353534    mailData.msg_reply_from = $(content).find('[name="msg_reply_from"]').val(); 
    3536          
    3537         if ($(content).find('select[name="input_from"]').val()) 
    3538                 mailData.input_from = $(content).find('select[name="input_from"]').val(); 
    3539  
    3540  
    3541         if(stringEmail != ""){ 
    3542                 $.ajax({ 
    3543                         url: "controller.php?action=$this.imap_functions.send_mail", 
    3544             data:  mailData, 
    3545             type: 'POST', 
    3546  
    3547             beforeSend: function(jqXHR, settings){ 
    3548  
    3549                 write_msg( get_lang( 'Sending the message...' ) ); 
    3550                 $(content).find('button.send').button('option', 'disabled', true); 
    3551  
    3552  
    3553             }, 
    3554             success: function(data){ 
    3555                 send_message_return(connector.unserialize(data),ID); 
    3556                         }, 
    3557                         error: function(){ 
    3558                                 write_msg(get_lang( 'Error trying to send the message. Retry in a few seconds...' ) ); 
    3559                 $(content).find('button.send').button('option', 'disabled', false); 
    3560                 var interval = setInterval(function(){ 
    3561                                                 send_valided_message(ID,folder,folder_name); 
    3562                                                 clearInterval(interval); 
    3563                                 },15000); 
    3564                                 return; 
    3565                         } 
    3566                 }); 
     3535     
     3536    if ($(content).find('select[name="input_from"]').val()) 
     3537        mailData.input_from = $(content).find('select[name="input_from"]').val(); 
     3538     
     3539    if(stringEmail != ""){ 
     3540    $.ajax({ 
     3541        url: "controller.php?action=$this.imap_functions.send_mail", 
     3542        data:  mailData, 
     3543        type: 'POST', 
     3544        async: false, 
     3545        beforeSend: function(jqXHR, settings){ 
     3546            write_msg( get_lang( 'Sending the message...' ) ); 
     3547            $(content).find('button.send').button('option', 'disabled', true); 
     3548        }, 
     3549        success: function(data){ 
     3550            send_message_return(connector.unserialize(data),ID); 
     3551        }, 
     3552        error: function(){ 
     3553            write_msg(get_lang( 'Error trying to send the message. Retry in a few seconds...' ) ); 
     3554            $(content).find('button.send').button('option', 'disabled', false); 
     3555            var interval = setInterval(function(){ 
     3556                send_valided_message(ID,folder,folder_name); 
     3557                clearInterval(interval); 
     3558            },15000); 
     3559            return; 
     3560        } 
     3561    }); 
    35673562        }else{ 
    3568                 write_msg(get_lang("message without receiver")); 
    3569                 return; 
    3570         } 
    3571  
    3572  
     3563                write_msg(get_lang("message without receiver"));  
     3564        } 
    35733565} 
    35743566 
     
    37653757                                                case "unseen": 
    37663758                                                        set_msg_as_unread(msgs[j]+'_s'+id_border, true); 
     3759                                                        set_msg_as_unread(msgs[j], true); // Atualiza msg na aba principal. 
    37673760                                                        Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
    37683761                                                        break; 
    37693762                                                case "seen": 
    37703763                                                        set_msg_as_read(msgs[j]+'_s'+id_border, true); 
     3764                                                        set_msg_as_read(msgs[j], true); //Atualiza msg na aba principal. 
    37713765                                                        Element("search_"+id_border+"_check_box_message_"+msgs[j]).checked = false; 
    37723766                                                        break; 
     
    37873781                } 
    37883782                 
    3789                 draw_tree_folders(); 
     3783                draw_tree_folders(folders); 
    37903784                Element('chk_box_select_all_messages_search').checked = false; 
    37913785                refresh(); 
     
    38783872                                                Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    38793873 
    3880                                                 // remove a flag $FilteredMessage da mensagem ao ser marcada como lida   
    3881                                                 $.each(fromRules, function(index, value) { 
    3882                                                         if(value == folder){ 
    3883                                                                 cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_to_set, function(){});  
    3884                                                                 return false; 
    3885                                                         } 
    3886                                                 });      
    3887                                                  
     3874                        if(preferences['use_alert_filter_criteria'] == "1") 
     3875                        { 
     3876                            // remove a flag $FilteredMessage da mensagem ao ser marcada como lida 
     3877                            $.each(fromRules, function(index, value) { 
     3878                                if(value == folder){ 
     3879                                    cExecute ("$this.imap_functions.removeFlagMessagesFilter&folder="+folder+"&msg_number="+msgs_to_set, function(){}); 
     3880                                    return false; 
     3881                                } 
     3882                            }); 
     3883                        } 
    38883884                                                break; 
    38893885                                        case "flagged": 
     
    44554451                update_quota(get_current_folder()); 
    44564452                draw_new_tree_folder(); 
    4457                 draw_tree_labels(); 
     4453        if( preferences['use_followupflags_and_labels'] == "1" ) 
     4454                    draw_tree_labels(); 
    44584455                if (data){ 
    44594456                        if(typeof(data) == "object"){ 
     
    45144511                //tree_folders.getNodeById(mount_url_folder(["INBOX",special_folders["Spam"]]))._refresh(); 
    45154512                draw_new_tree_folder(); 
    4516                 draw_tree_labels(); 
     4513        if( preferences['use_followupflags_and_labels'] == "1" ) 
     4514                    draw_tree_labels(); 
    45174515                update_quota(get_current_folder()); 
    45184516                if (data){ 
     
    45524550} 
    45534551 
    4554 function buildExportArchiver(msgsArchive, name_box){ 
    4555  
    4556     var hand_export = function(data){ 
    4557         if(!data){ 
    4558             write_msg(get_lang('Error compressing messages (ZIP). Contact the administrator.')) 
    4559         }else if(data["empty_folder"] || data == "empty_folder"){ 
    4560             write_msg(get_lang("The selected folder is empty.")); 
    4561         }else 
    4562           download_attachments(null, null, data, null,null, get_current_folder().split("_")[2] +'.zip'); 
    4563     } 
    4564  
    4565     var array = new Array(); 
    4566  
    4567     for(var i =0; i < msgsArchive.length; i++){ 
    4568         eachMsg = { 
    4569                 'ContentType' : msgsArchive[i].ContentType, 
    4570                 'from' : { 'email' : msgsArchive[i].from.email, 'full' : msgsArchive[i].from.full, 'name' : msgsArchive[i].from.name}, 
    4571                 'msg_sample' : msgsArchive[i].msg_sample, 
    4572                 'subject' : msgsArchive[i].subject, 
    4573                 'to' : { 'email' : msgsArchive[i].to.email, 'full' : msgsArchive[i].to.full, 'name' : msgsArchive[i].to.name}, 
    4574                 'toaddress2' : msgsArchive[i].toaddress2, 
    4575                 'msg_number' : msgsArchive[i].msg_number, 
    4576                 'date' : new Date(msgsArchive[i].timestamp).toString()   
    4577         }; 
    4578         array.push(eachMsg); 
    4579     } 
    4580  
    4581     $.ajax({ 
    4582         type: "POST", 
    4583         url: "controller.php?action=$this.exporteml.export_all_byLocalFolder", 
    4584         data: { folder: name_box, type: "msg_local", messages : array} 
    4585     }).done(function(msg) { 
    4586         hand_export(msg.split('"')[1]); 
    4587     }); 
    4588 } 
    4589  
    45904552function export_all_selected_msgs(){ 
    45914553        if(get_current_folder().split("_")[0] == "local"){ 
     
    45964558            expresso_mail_archive.getSomeMsgs([get_selected_messages()]); 
    45974559        } 
     4560 
     4561    } else { 
    45984562         
    4599         buildExportArchiver(expresso_mail_archive.getSomeMsg, get_current_folder().split("_")[2]); 
    4600  
    4601     } else { 
    4602  
    46034563    if (openTab.type[currentTab] > 1){       
    46044564                source_msg(currentTab,openTab.imapBox[currentTab]); 
     
    46354595                filename = data[1]+'.eml';  
    46364596                        }  
    4637   
    4638             if(typeof data == "object")  
    4639                              download_attachments(null, null, data[0], null,null,filename);  
    4640             else   
    4641                  download_attachments(null, null, data, null,null,filename);  
     4597 
     4598            if(typeof data == "object") 
     4599                             download_attachments(null, null, data[0], null,null,filename); 
     4600            else  
     4601                 download_attachments(null, null, data, null,null,filename); 
    46424602                } 
    46434603        } 
     
    48794839                                                                                        write_msg(get_lang('You must wait while the messages will be imported...')); 
    48804840                                                                                         
    4881                                                                                         var local_folder = input_hidden.attr("value"); //recupera a pasta selecionada  
    4882                                                                                         if(local_folder.indexOf("local_") == 0){ //verifica se a pasta selecionada é uma pasta local  
    4883   
    4884                                                                                                 var fdata = local_folder.substr(15, local_folder.length); //recupera somente a estrutura da pasta ou o id  
    4885                                                                                                 expresso_mail_archive.getFolderInfo(fdata); //recuperar a estrutura da pasta,   
    4886                                                                                                                                                                                         //para realizar a importação de mensagens  
    4887                                                                                                 fdata = expresso_mail_archive.folder.path;  
    4888   
    4889                                                                                                 //o mailarchiver não provê um serviço para a importação de mensagens nas pastas locais,  
    4890                                                                                                 //mas sim uma modal, da qual são extraídas as informações e as urls para submitar os dados  
    4891                                                                                                 //para o arquivamento de mensagens em pastas locais.  
    4892                                                                                                 var url_src = mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port + '/arcserv/import?prt=' + mail_archive_protocol + '&por=' + mail_archive_port+ '&fid='+ encodeURIComponent(fdata) + '&sid=' + expresso_mail_archive.session.id;  
    4893                                                                                                 var _html = DataLayer.render(url_src);  
    4894                                                                                                 var regex_url = RegExp('\<iframe(.)*src=\"([^\"]*)"(.)*\>');  
    4895                                                                                                 var obj_params = $.parseQuery( regex_url.exec(_html)[2].split('?')[1] || '' );  
    4896                                                                                                 $(formSend).append('<input id="ma_import_flat" type="checkbox" value="false" name="flat" style="display:none"> ' +  
    4897                                                                                                         '<input id="sessionId" type="hidden" value="'+obj_params['sessvalue']+'" name="sessionId">' +  
    4898                                                                                                         '<input id="base" type="hidden" value="'+obj_params['basevalue']+'" name="base">' +  
    4899                                                                                                         '<input id="lang" type="hidden" value="'+obj_params['langvalue']+'" name="lang">');  
    4900   
    4901                                                                                                 var importEmailsLocalDialog = $('#importEmailsLocal');  
    4902                                                                                                 importEmailsLocalDialog.css("overflow","hidden");  
    4903                                                                                                 importEmailsLocalDialog.dialog(  
    4904                                                                                                 {  
    4905                                                                                                         autoOpen    : false,  
    4906                                                                                                         height          : 200,  
    4907                                                                                                         width           : 350,  
    4908                                                                                                         resizable       : false,  
    4909                                                                                                         title           : get_lang('Local Archive'),  
    4910                                                                                                         modal           : true,  
    4911                                                                                                         buttons         : [  
    4912                                                                                                                                          {  
    4913                                                                                                                                                 text    : get_lang("Close"),   
    4914                                                                                                                                                 click   : function()  
    4915                                                                                                                                                 {  
    4916                                                                                                                                                         importEmailsLocalDialog.dialog("close").dialog("destroy");  
    4917                                                                                                                                                 }  
    4918                                                                                                                                          }  
    4919                                                                                                                                 ]  
    4920                                                                                                 });  
    4921   
    4922                                                                                                 importEmailsLocalDialog.html('<iframe frameborder="0" scrolling="no" id="frameResult" name="frameResult" ></iframe>')  
    4923                                                                                                 $(formSend).attr("action", mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port + '/arcserv/import');  
    4924                                                                                                 $(formSend).attr("target", "frameResult");  
    4925                                                                                                 $(formSend).submit();  
    4926                                                                                                 importEmailsLocalDialog.dialog( "open" ); 
    4927                                                                                                 if(typeof(shortcut) != 'undefined') 
     4841                                                                                        var local_folder = input_hidden.attr("value"); //recupera a pasta selecionada 
     4842                                                                                        if(local_folder.indexOf("local_") == 0){ //verifica se a pasta selecionada é uma pasta local 
     4843                                                                                                var fdata = local_folder.substr(15, local_folder.length); //recupera somente a estrutura da pasta ou o id 
     4844                                                                                                expresso_mail_archive.getFolderInfo(fdata); //recuperar a estrutura da pasta,  
     4845                                                                                                                                                                                        //para realizar a importação de mensagens 
     4846                                                                                                fdata = expresso_mail_archive.folder.path; 
     4847 
     4848                                                                                                //o mailarchiver não provê um serviço para a importação de mensagens nas pastas locais, 
     4849                                                                                                //mas sim uma modal, da qual são extraídas as informações e as urls para submitar os dados 
     4850                                                                                                //para o arquivamento de mensagens em pastas locais. 
     4851                                                                                                var url_src = mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port + '/arcserv/import?prt=' + mail_archive_protocol + '&por=' + mail_archive_port+ '&fid='+ encodeURIComponent(fdata) + '&sid=' + expresso_mail_archive.session.id; 
     4852                                                                                                var _html = DataLayer.render(url_src); 
     4853                                                                                                var regex_url = RegExp('\<iframe(.)*src=\"([^\"]*)"(.)*\>'); 
     4854                                                                                                var obj_params = $.parseQuery( regex_url.exec(_html)[2].split('?')[1] || '' ); 
     4855                                                                                                $(formSend).append('<input id="ma_import_flat" type="checkbox" value="false" name="flat" style="display:none"> ' + 
     4856                                                                                                        '<input id="sessionId" type="hidden" value="'+obj_params['sessvalue']+'" name="sessionId">' + 
     4857                                                                                                        '<input id="base" type="hidden" value="'+obj_params['basevalue']+'" name="base">' + 
     4858                                                                                                        '<input id="lang" type="hidden" value="'+obj_params['langvalue']+'" name="lang">'); 
     4859 
     4860                                                                                                var importEmailsLocalDialog = $('#importEmailsLocal'); 
     4861                                                                                                importEmailsLocalDialog.css("overflow","hidden"); 
     4862                                                                                                importEmailsLocalDialog.dialog( 
     4863                                                                                                { 
     4864                                                                                                        autoOpen    : false, 
     4865                                                                                                        height          : 200, 
     4866                                                                                                        width           : 350, 
     4867                                                                                                        resizable       : false, 
     4868                                                                                                        title           : get_lang('Local Archive'), 
     4869                                                                                                        modal           : true, 
     4870                                                                                                        buttons         : [ 
     4871                                                                                                                                         { 
     4872                                                                                                                                                text    : get_lang("Close"),  
     4873                                                                                                                                                click   : function() 
     4874                                                                                                                                                { 
     4875                                                                                                                                                        importEmailsLocalDialog.dialog("close").dialog("destroy"); 
     4876                                                                                                                                                } 
     4877                                                                                                                                         } 
     4878                                                                                                                                ] 
     4879                                                                                                }); 
     4880 
     4881                                                                                                importEmailsLocalDialog.html('<iframe frameborder="0" scrolling="no" id="frameResult" name="frameResult" ></iframe>') 
     4882                                                                                                $(formSend).attr("action", mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port + '/arcserv/import'); 
     4883                                                                                                $(formSend).attr("target", "frameResult"); 
     4884                                                                                                $(formSend).submit(); 
     4885                                                                                                importEmailsLocalDialog.dialog( "open" ); 
     4886                                                                                                if(typeof(shortcut) != 'undefined')  
    49284887                                                                                                        shortcut.disabled = false; 
    4929                                                                                         } else {  
    4930                                                                                                 cExecuteForm('$this.imap_functions.import_msgs', formSend , handler_return );  
    4931                                                                                         }  
    4932   
     4888                                                                                        } else { 
     4889                                                                                                cExecuteForm('$this.imap_functions.import_msgs', formSend , handler_return ); 
     4890                                                                                        } 
     4891 
    49334892                                                                                } 
    49344893                                                                        } 
     
    54395398            if(data.append == 1) 
    54405399            { 
    5441                 proxy_mensagens.get_msg(data.msg_number,data.msg_folder,false,show_msg,false); 
     5400                proxy_mensagens.get_msg(data.msg_number,data.msg_folder,false,function (data) { 
     5401                    if (onceOpenedHeadersMessages[data.msg_folder] == undefined)  
     5402                    { 
     5403                        onceOpenedHeadersMessages[data.msg_folder] = []; 
     5404                    }; 
     5405                    onceOpenedHeadersMessages[data.msg_folder][data.msg_number] = data; 
     5406                    show_msg(data); 
     5407                },false); 
    54425408                partMsgs.push(data.msg_number); 
    54435409        } 
  • branches/2.5/expressoMail1_2/js/messages_controller.js

    r8128 r8232  
    1212        if(this.is_local_folder(folder)) { 
    1313            //MAILARCHIVER-01 
    14             var baseFolder = folder.replace('local_messages_', ''); 
     14            var baseFolder = folder.replace('local_messages_', '');  
    1515            var tree_name; 
    1616            var drawinginfo = {}; 
  • branches/2.5/expressoMail1_2/js/rich_text_editor.js

    r8166 r8232  
    130130cRichTextEditor.prototype.getSignaturesOptions = function() { 
    131131         
    132         if(RichTextEditor.signatures !== false) 
    133             return RichTextEditor.signatures; 
     132    if(RichTextEditor.signatures !== false) 
     133        return RichTextEditor.signatures; 
    134134                 
    135135        var signatures = RichTextEditor.normalizerSignature(this.fromJSON( preferences.signatures )); 
     
    138138        for( key in signatures ) 
    139139            if( !signature_types[key] ) 
    140                 signatures[key] = signatures[key].replace( /\n/g, "<br>" ); 
    141                   
    142         RichTextEditor.signatures = signatures; 
    143         return signatures; 
    144  
    145 } 
    146 cRichTextEditor.prototype.normalizerSignature = function(values) {  
    147         var value = {};   
    148         for (key in values){  
    149                 value[RichTextEditor.isEncoded64(key) ? RichTextEditor.decode64(key) : key] = values[key];  
    150         }  
    151         return value; 
    152  
    153 }  
    154   
    155 /*Verifica se a string input esta em Base64*/  
    156 cRichTextEditor.prototype.isEncoded64 = function(input){  
    157 var baseStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";  
    158 var encoded = true;  
    159         if ( (input.length % 4) != 0)  
    160                 return false;  
    161         for(var i=0; i<input.length; i++){  
    162                 if ( baseStr.indexOf(input[i]) < 0 ){  
    163                         encoded = false;  
    164                         break;  
    165                 }  
    166         }  
    167         return encoded;  
     140                    signatures[key] = signatures[key].replace( /\n/g, "<br>" ); 
     141 
     142    RichTextEditor.signatures = signatures; 
     143    return signatures; 
     144 
     145} 
     146cRichTextEditor.prototype.normalizerSignature = function(values) { 
     147 
     148    var value = {}; 
     149 
     150    for (key in values){ 
     151 
     152        value[RichTextEditor.isEncoded64(key) ? RichTextEditor.decode64(key) : key] = values[key]; 
     153    } 
     154 
     155    return value; 
     156 
     157} 
     158 
     159/*Verifica se a string input esta em Base64*/ 
     160cRichTextEditor.prototype.isEncoded64 = function(input){ 
     161var baseStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="; 
     162var encoded = true; 
     163        if ( (input.length % 4) != 0) 
     164                return false; 
     165        for(var i=0; i<input.length; i++){ 
     166                if ( baseStr.indexOf(input[i]) < 0 ){ 
     167                        encoded = false; 
     168                        break; 
     169                } 
     170        } 
     171        return encoded; 
    168172} 
    169173 
    170174cRichTextEditor.prototype.getSignatureDefault = function() { 
    171           
    172         if(RichTextEditor.signatures === false){ 
    173             RichTextEditor.signatures = RichTextEditor.getSignaturesOptions(); 
    174             preferences.signature_default = preferences.signature; 
    175         }      
     175 
     176    if(RichTextEditor.signatures === false){ 
     177        RichTextEditor.signatures = RichTextEditor.getSignaturesOptions(); 
     178        preferences.signature_default = preferences.signature; 
     179    } 
    176180          
    177         if(!RichTextEditor.signatures || !preferences.signature_default)  
    178         { 
    179           preferences.use_signature = "0"; //Desabilita o uso da assinatura 
    180           return ''; 
    181         }  
    182         if (RichTextEditor.isEncoded64(preferences.signature_default))  
    183                 preferences.signature_default = RichTextEditor.decode64(preferences.signature_default);  
    184         return unescape(preferences.signature_default); 
    185  
    186 } 
    187  
     181    if(!RichTextEditor.signatures || !preferences.signature_default) 
     182    { 
     183      preferences.use_signature = "0"; //Desabilita o uso da assinatura 
     184      return ''; 
     185    } 
     186        if (RichTextEditor.isEncoded64(preferences.signature_default)) 
     187                preferences.signature_default = RichTextEditor.decode64(preferences.signature_default); 
     188    return unescape(preferences.signature_default); 
     189 
     190} 
    188191 
    189192 
     
    216219        { 
    217220            autoSaveControl.status[id] = true; 
    218             autoSaveControl.timer[id] = window.setInterval( "autoSave("+id+")" ,autosave_time);   
     221            autoSaveControl.timer[id] = window.setInterval( "autoSave(\""+id+"\")" ,autosave_time);   
    219222 
    220223            CKEDITOR.instances[inst].document.on('keydown', function(event){    
  • branches/2.5/expressoMail1_2/js/search.js

    r7760 r8232  
    568568                                        $(td).click(function(event, ui){         
    569569                                                var messageClickedId = $(this).attr('id').match(/td_message_followup_search_([\d]+)/)[1]; 
     570 
     571                                                var loading = $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
     572                                .find('img[alt=Carregando]'); 
     573 
     574                        //Verificar se está carregando a bandeira. 
     575                        //Caso esteja ele sai da função até que seja carregado.  
     576                                if( loading.length ) { 
     577                                        return false; 
     578                                } 
     579 
     580                                                var followupColor = $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css('backgroundColor'); 
     581 
    570582                                                 
    571583                                                var followupColor = $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css('backgroundColor'); 
     
    607619                                                                 
    608620                                                                $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    609                                                                 .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}); 
     621                                                                .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}) 
     622                                                                .find('img').remove();; 
    610623                                                                 
    611624                                                                if (fail) { 
     
    613626                                                                    var isCurrentFolder = current_folder == mailbox ? '#td_message_followup_' + messageClickedId + ', ' : '';    
    614627                                                                    $(isCurrentFolder + 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "#CCCCCC"); 
     628                                                                     
     629                                                                    $('#td_message_followup_search_' + messageClickedId).find(".flag-edited") 
     630                                                                    .append("<img src='../prototype/modules/mail/img/flagEditor.png'/>"); 
     631 
    615632                                                                    MsgsCallbackFollowupflag[fail](); 
    616633                                                                    return false; 
     
    619636                                                                if(current_folder == mailbox){ 
    620637                                                                        $('#td_message_followup_' + messageClickedId + ', ' +  
    621                                                                         'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor);         
     638                                                                        'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 
     639 
     640                                                                        $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor) 
     641                                                                        .append("<img src='../prototype/modules/mail/img/flagEditor.png'/>");    
    622642                                                                }else{                                                           
    623                                                                         $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor);               
     643                                                                        $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor) 
     644                                                                        .append("<img src='../prototype/modules/mail/img/flagEditor.png'/>");                    
    624645                                                                }                                                                
    625646                                                                updateCacheFollowupflag(messageClickedId, mailbox, true); 
     
    634655                                                        DataLayer.remove('followupflagged', flagged[0].id ); 
    635656                                                        DataLayer.commit(false, false, function(){ 
    636                                                                 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    637                                                                 .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}); 
     657                                                                $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").html('<img src="../prototype/modules/mail/img/flagEditor.png">') 
     658                                                                .css({"width":"8px","height":"6px"/*,"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"*/}); 
    638659                                                                if(current_folder == mailbox){ 
    639660                                                                        updateCacheFollowupflag(messageClickedId, mailbox, false); 
     
    651672                                                                         
    652673                                                                        $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    653                                                                                 .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}); 
     674                                                                                .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}) 
     675                                                                                .append("<img src='../prototype/modules/mail/img/flagEditor.png'/>"); 
    654676                                                                } 
    655677                                                        }); 
     
    657679                                                } else { 
    658680                                                        $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    659                                                         .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}); 
    660                                                         $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", followupColor); 
    661                                                         $(this).parents('[role="'+messageClickedId+'_'+mailbox+'"]').attr('class', 'selected_msg').find(':checkbox').trigger('click'); 
     681                                                        .css({"background-image":"url(../prototype/modules/mail/img/flagEditor.png)"}).find('img').remove(); 
     682                                                         
     683                                                        $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", followupColor) 
     684                                                        .append("<img src='../prototype/modules/mail/img/flagEditor.png'/>"); 
     685 
     686                                                        //Pega id do checkbox 
     687                                                        var id = $(this).parents('[role="'+messageClickedId+'_'+mailbox+'"]').attr('class', 'selected_msg').find(':checkbox').attr('id'); 
     688                                                         
     689                                                        //verifica se o checkbox já está selecionada 
     690                                                        if($('#' + id).attr('checked') != 'checked') 
     691                                                                $(this).parents('[role="'+messageClickedId+'_'+mailbox+'"]').attr('class', 'selected_msg').find(':checkbox').trigger('click'); 
     692                                                         
     693                                                        updateSelectedMsgs(true,messageClickedId); 
    662694                                                        configureFollowupflag(); 
    663695                                                } 
     
    676708                                        if (aux.labels) { 
    677709                                                //td1 = '<img src="../prototype/modules/mail/img/tag.png">'; 
    678                                                 $(td1).css({'background-image':'url(../prototype/modules/mail/img/mail-sprites.png)','background-position': '0 -1711px',"margin-left":"0",'margin-top':'3px','background-repeat':'no-repeat'}); 
     710                                                $(td).css({'background-image':'url(../prototype/modules/mail/img/mail-sprites.png)','margin-left': '0px', 'margin-top':'3px', 'background-position': '0px -1706px', 'background-repeat':'no-repeat no-repeat'}); 
    679711                                                updateLabelsColumn(aux)          
    680712                                        } else { 
     
    829861                                                over : function(a, b){                                           
    830862                                                        //SETA BORDA EM VOLTA DA PASTA 
     863                                                        $(b.helper).find(".draggin-folder,.draggin-mail").css("color", "green"); 
    831864                                                        over = $(this); 
    832865                                                        $(this).addClass("folder-over"); 
     
    841874                                                                        } 
    842875                                                }, 
    843                                                 out : function(){ 
     876                                                out : function(a,b){ 
    844877                                                        //RETIRA BORDA EM VOLTA DA PASTA 
     878                                                        $(b.helper).find(".draggin-folder,.draggin-mail").css("color", ""); 
    845879                                                        $(this).removeClass("folder-over"); 
    846880                                                }, 
     
    882916                                        return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : $(this).find(".td_msg_search_subject").text(), type: "messages"})); 
    883917                        }, 
    884                         cursorAt: {cursor: "crosshair", top: -5, left: -5}, 
     918                        cursorAt: {top: 5, left: 56}, 
    885919                        refreshPositions: true , 
    886920                        scroll: true,  
  • branches/2.5/expressoMail1_2/js/shortcut.js

    r8087 r8232  
    209209                                 
    210210                        } 
    211                         if (currentTab && currentTab == 0 && code == 13){  
    212                                 e.stopPropagation();  
    213                                 e.preventDefault();  
    214                         }  
     211                        if (currentTab && currentTab == 0 && code == 13){ 
     212                                e.stopPropagation(); 
     213                                e.preventDefault(); 
     214                        } 
     215                        if ((openTab.type[currentTab] == 2) && code == 13){ 
     216                                e.preventDefault(); 
     217                                e.stopPropagation(); 
     218                        }                
    215219                } 
    216220                this.all_shortcuts[shortcut_combination] = { 
     
    279283                proxy_mensagens.delete_msgs(current_folder, get_selected_messages(), 'null'); 
    280284        }else{ 
    281                 if (e.target.className.indexOf("box") == -1)  
    282                         proxy_mensagens.delete_msgs(openTab.imapBox[currentTab], currentTab.substring(0, selMessageShortcut.indexOf("_r")), 'null');  
     285                if (e.target.className.indexOf("box") == -1) 
     286                        proxy_mensagens.delete_msgs(openTab.imapBox[currentTab], currentTab.substring(0, selMessageShortcut.indexOf("_r")), 'null'); 
    283287        } 
    284288} 
  • branches/2.5/expressoMail1_2/js/wfolders.js

    r7426 r8232  
    4848                                                                                        click   : function() 
    4949                                                                                        { 
    50                                                                                                 winSaveFile.dialog("close"),dialog("destroy"); 
     50                                                                                                winSaveFile.dialog("close"); 
     51                                                winSaveFile.dialog("destroy"); 
    5152                                                                                        } 
    5253                                                                                 }, 
     
    134135        cWFolders.prototype.makeWindow = function(border_id, type) 
    135136        { 
    136         if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){   
    137             alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
    138             return true; 
     137        if(type == "move_to"){ 
     138            if( (currentTab == 0) || (currentTab.toString().indexOf("search") >= 0)){ 
     139                 
     140                //Verifica em qual aba o usuário está 
     141                var selected_msg = (currentTab == 0) ? get_selected_messages() : get_selected_messages_search(); 
     142 
     143                if ((parseInt(selected_msg) > 0 || selected_msg.length > 0)||(type != "move_to")){ 
     144                    this.load( border_id, type, false); 
     145                }else 
     146                    write_msg(get_lang('No selected message.')); 
     147            } else{ 
     148                if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){ 
     149                    alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
     150                    return true; 
     151                } 
     152                this.load( border_id, type, false); 
     153            } 
     154        }else { 
     155            if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){ 
     156                alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 
     157                return true; 
     158            } 
     159            this.load( border_id, type, false); 
    139160        } 
    140                 this.load( border_id, type, false); 
    141         } 
     161    } 
    142162         
    143163/* Build the Object */ 
  • branches/2.5/expressoMail1_2/setup/phpgw_pt-br.lang

    r8117 r8232  
    972972MailArchiver user logged out    expressoMail1_2 pt-br   Usuário desconectado do MailArchiver 
    973973Error trying to send the message. Retry in a few seconds...     expressoMail1_2 pt-br   Erro ao tentar enviar a mensagem. Nova tentativa em alguns segundos... 
     974Create filter from message      expressoMail1_2 pt-br   Criar filtro a partir da mensagem 
    974975Sending the message...  expressoMail1_2 pt-br   Enviando a mensagem... 
    975 Local Archive   expressoMail1_2 pt-br   Arquivamento Local 
     976Please, Wait the messages from archieve be ready.       expressoMail1_2 pt-br   Por favor, Aguarde as mensagens arquivadas ficarem prontas. 
     977take on this option to regard the message body in the search.   expressoMail1_2 pt-br   Considerar o corpo da mensagem como filtro na busca 
     978take off this option to disregard the message body in the search.       expressoMail1_2 pt-br   Desconsiderar o corpo da mensagem como filtro na busca 
     979Local Archive   expressoMail1_2 pt-br   Arquivamento Local  
  • branches/2.5/expressoMail1_2/setup/setup.inc.php

    r7516 r8232  
    1313$setup_info['expressoMail1_2']['name'] = 'expressoMail1_2'; 
    1414$setup_info['expressoMail1_2']['title'] = 'Expresso Mail'; 
    15 $setup_info['expressoMail1_2']['version'] = '2.5.0'; 
     15$setup_info['expressoMail1_2']['version'] = '2.5.1'; 
    1616$setup_info['expressoMail1_2']['app_order'] = 2; 
    1717$setup_info['expressoMail1_2']['tables'][] = 'phpgw_certificados'; 
     
    4646$setup_info['expressoMail1_2']['depends'][] = array( 
    4747    'appname' => 'phpgwapi', 
    48     'versions' => Array('2.5.0') 
     48    'versions' => Array('2.5.1.1') 
    4949); 
    5050 
  • branches/2.5/expressoMail1_2/setup/tables_update.inc.php

    r7516 r8232  
    330330 
    331331        $test[] = '2.4.8.2'; 
    332         function expressoMail1_2_upgrade2_4_8_2() { 
    333                 $GLOBALS['setup_info']['expressoMail1_2']['currentver'] = '2.5.0'; 
    334                 return $GLOBALS['setup_info']['expressoMail1_2']['currentver']; 
    335         } 
    336  
     332    function expressoMail1_2_upgrade2_4_8_2() { 
     333        $GLOBALS['setup_info']['expressoMail1_2']['currentver'] = '2.5.0'; 
     334        return $GLOBALS['setup_info']['expressoMail1_2']['currentver']; 
     335    } 
     336 
     337    $test[] = '2.5.0'; 
     338    function expressoMail1_2_upgrade2_5_0() { 
     339        $GLOBALS['setup_info']['expressoMail1_2']['currentver'] = '2.5.1'; 
     340        return $GLOBALS['setup_info']['expressoMail1_2']['currentver']; 
     341    } 
    337342?> 
  • branches/2.5/expressoMail1_2/templates/default/index.tpl

    r8113 r8232  
    209209<div class="expressomail-module-container" style="display: none;"></div> 
    210210<div id="importEmails" style="display:none;padding:5px;"></div> 
    211 <div id="importEmailsLocal" style="display:none;padding:5px;"></div>  
     211<div id="importEmailsLocal" style="display:none;padding:5px;"></div> 
    212212<div id="sendFileMessages" style="display:none;"></div> 
    213213<div id="quickAddContact" style="display:none;"></div> 
  • branches/2.5/expressoMail1_2/templates/default/main.css

    r7762 r8232  
    12451245        font-weight : bold; 
    12461246        padding-right : 5px; 
    1247         padding-left : 25px;     
     1247        padding-left : 5px;      
     1248        padding-top : 2px;       
    12481249        font-family : Lucida Grande, Lucida Sans, Arial, sans-serif; 
    12491250        font-size : 11px; 
     
    12551256        background-position: 0 -923px; 
    12561257        background-repeat:no-repeat; 
    1257         padding-left : 20px; 
     1258        padding-right : 5px; 
     1259        padding-left : 5px;      
     1260        padding-top : 2px;       
    12581261        color : red; 
    12591262        text-align: right; 
    12601263        font-weight : bold; 
    1261         padding-right : 5px; 
    12621264} 
    12631265 
     
    16411643        top: 585px; 
    16421644}                
     1645 
     1646@media screen and (max-width: 1100px){ 
     1647        #span_options, #span_D span 
     1648        { 
     1649                font-size: 0.8333em; /*10/12px*/ 
     1650        } 
     1651} 
Note: See TracChangeset for help on using the changeset viewer.