- Timestamp:
- 02/18/13 13:48:17 (11 years ago)
- Location:
- sandbox/2.5.1-expresso1/expressoMail1_2
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
sandbox/2.5.1-expresso1/expressoMail1_2/inc/class.imap_functions.inc.php
r7885 r7888 2680 2680 return $return; 2681 2681 } 2682 2683 function delete_msg_archive_by_flag($params){ 2684 $folder = "INBOX/Trash"; 2685 2686 $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())))); 2687 2688 $messages = imap_search($mbox_stream, 'KEYWORD "$archiverMsg"', SE_UID); 2689 2690 foreach($messages as $i => $id){ 2691 if(imap_delete($mbox_stream, $id, FT_UID)){ 2692 2693 } 2694 } 2695 2696 $return = array( 2697 "result" => "ok" 2698 ); 2699 2700 return json_encode($return); 2701 } 2702 2703 function get_last_msg_by_id($params){ 2682 2683 function get_info_msg_archiver($params){ 2704 2684 $folder = "INBOX/Trash"; 2705 2685 $mbox_stream = $this->open_mbox($folder); 2706 2686 2707 $messages = imap_search($mbox_stream, 'KEYWORD "$archiverMsg"', SE_UID); 2708 2709 foreach($messages as $i => $id){ 2687 foreach($params['idMsgs'] as $i => $id){ 2710 2688 $name = imap_headerinfo($mbox_stream, imap_msgno($mbox_stream ,$id)); 2711 2712 2689 $return[] = array( 2713 2690 'uid' => $id, … … 2717 2694 ); 2718 2695 } 2719 //volta aqui2720 2696 2721 2697 return json_encode($return); … … 2996 2972 2997 2973 $header = $this->get_header($msg_numb); 2974 2998 2975 $header_ = imap_fetchheader($this->mbox, $msg_numb, FT_UID); 2999 2976 $pattern = '/^[ \t]*Disposition-Notification-To:.*/mi'; … … 4918 4895 $error = array(); 4919 4896 4897 4898 4920 4899 foreach($sources as $index=>$src) 4921 4900 { 4922 4901 if($src!="") 4923 4902 { 4903 4904 4905 4924 4906 //If it is a MailArchiver incomming data 4925 4907 if($params['madata']) … … 4934 4916 4935 4917 //volta aqui 4936 4937 $this->mbox = $this->open_mbox($dest_folder); 4938 imap_setflag_full($this->mbox, $insert['msg_no'], '$archiverMsg' , ST_UID); 4918 $return['idsMsg'] = $insert['msg_no']; 4939 4919 4940 4920 if($insert['error']) -
sandbox/2.5.1-expresso1/expressoMail1_2/js/abas.js
r7885 r7888 684 684 $.each(msgAttachments[ID], function(i, each){ 685 685 686 if(typeof($.parseJSON(each).folder) == "undefined") return false;686 if(typeof(each) == "undefined") return true; 687 687 688 688 if($.parseJSON(each).folder.indexOf("local_messages_") != -1){ -
sandbox/2.5.1-expresso1/expressoMail1_2/js/mail_archiver.js
r7885 r7888 575 575 } 576 576 577 578 579 580 581 582 583 584 585 586 587 588 577 MailArchiver.prototype.unarchieveToAttach = function (folder, new_folder, msgs_number){ 589 try{ 578 try{ 579 580 if(typeof(expresso_mail_archive.idMsgsToAttach) == "undefined"){ 581 expresso_mail_archive.idMsgsToAttach = new Array(); 582 } 590 583 //write_msg(get_lang("Starting to unarchive messages")); 591 584 expresso_mail_archive.isArchiveOperation = true; … … 599 592 if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ 600 593 601 expresso_mail_archive.message_list = new Array(); 602 expresso_mail_archive.message_list.push(msgs_number); 603 if((expresso_mail_archive.message_list.length > 0) && (expresso_mail_archive.message_list[0] != '')) { 594 expresso_mail_archive.messageToAttach = msgs_number; 595 if(expresso_mail_archive.messageToAttach) { 604 596 605 expresso_mail_archive.unarchieveToAttachHandler();606 607 597 expresso_mail_archive.unarchivecounter = 0; 608 598 expresso_mail_archive.unarchive_error_counter=0; … … 611 601 (new_folder != null)?expresso_mail_archive.unarchievenewfolder = new_folder:expresso_mail_archive.unarchievenewfolder='INBOX'; 612 602 613 603 expresso_mail_archive.unarchieveToAttachHandler(); 614 604 615 605 if(currentTab.toString().indexOf("_r") != -1){ … … 631 621 } 632 622 633 /**634 *635 *Unarchieve Message Handler636 *637 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br]638 *639 **/640 623 MailArchiver.prototype.unarchieveToAttachHandler = function(){ 641 642 try{ 643 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[0] + '.eml'; 624 try{ 625 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'; 644 626 645 627 //Creates a new object to unarchive messages. It's a CXF Add-on CORS component … … 651 633 for (var w=0; w < expresso_mail_archive.allcompletemessagesbyfolder.length; w++){ 652 634 653 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.message _list[expresso_mail_archive.unarchivecounter]){635 if(expresso_mail_archive.allcompletemessagesbyfolder[w]["msg_number"] == expresso_mail_archive.messageToAttach){ 654 636 var timestamp = expresso_mail_archive.allcompletemessagesbyfolder[w]["timestamp"]; 655 637 … … 706 688 } 707 689 } 708 var id = expresso_mail_archive.message _list[expresso_mail_archive.unarchivecounter];690 var id = expresso_mail_archive.messageToAttach; 709 691 var source = encodeURIComponent(UnarchiveReqHandler.handler.responseText) + "#@#@#@"; 710 692 var params = … … 716 698 "&id=" + id; 717 699 700 718 701 var handler_unarchive = function(data){ 719 702 expresso_mail_archive.unarchieveToAttachController(data); 720 721 722 } 723 write_msg(get_lang('Unarchiving message %1 of %2', (expresso_mail_archive.unarchivecounter + 1), expresso_mail_archive.message_list.length)); 703 } 704 write_msg(get_lang("Please, Wait the messages from archieve be ready.")); 724 705 725 //cExecute ("$this.imap_functions.unarchive_mail&", handler_unarchive, params);726 727 706 $.ajax({ 728 707 url: "controller.php?action=$this.imap_functions.unarchive_mail", 708 success: function(data){ 709 data = connector.unserialize(data); 710 expresso_mail_archive.idMsgsToAttach.push(data.idsMsg); 711 handler_unarchive(data); 712 }, 713 async: false, 729 714 data: params, 730 715 type: 'POST', 731 async: false, 732 success: function(data){ 733 handler_unarchive(connector.unserialize(data)); 734 }, 735 }); 736 737 } 716 717 }); 718 719 } 720 738 721 739 722 UnarchiveReqHandler.handler.open("GET", email, true); … … 748 731 } 749 732 750 /**751 *752 *Unarchieve Message Controller753 *754 *@author Cassiano Dal Pizzol [cassiano.dalpizzol@serpro.gov.br]755 *756 **/757 733 MailArchiver.prototype.unarchieveToAttachController = function(data){ 758 expresso_mail_archive.unarchivecounter++;759 734 760 735 if (data){ … … 763 738 } 764 739 765 if (data.archived && preferences.keep_archived_messages == "0") { 766 expresso_mail_archive.deleteMessages(data.archived[0]); 767 } 768 769 } 770 771 if (expresso_mail_archive.unarchivecounter < expresso_mail_archive.message_list.length){ 772 expresso_mail_archive.unarchieveHandler(); 773 } else { 774 expresso_mail_archive.message_list = new Array(); 775 expresso_mail_archive.isArchiveOperation = false; 776 } 777 } 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 740 } 741 } 803 742 804 743 -
sandbox/2.5.1-expresso1/expressoMail1_2/js/main.js
r7885 r7888 27 27 var topContact = 0; 28 28 29 //Os IE's < 9 n ão possuem suporte a trim() introduzida no JavaScript 1.8.129 //Os IE's < 9 não possuem suporte a trim() introduzida no JavaScript 1.8.1 30 30 if(!String.prototype.trim){ 31 31 String.prototype.trim = function(){ … … 181 181 } 182 182 } 183 if (preferences.use_local_messages==1) { //O I.E 7 estava se atrapalhando caso esses loads fossem feitos ap ós as chamadas ajax. Antes não apresentou problemas...183 if (preferences.use_local_messages==1) { //O I.E 7 estava se atrapalhando caso esses loads fossem feitos após as chamadas ajax. Antes não apresentou problemas... 184 184 connector.loadScript('mail_sync'); 185 185 setTimeout('auto_archiving()', 30000); … … 240 240 // 241 241 242 //Troca da forma de constru ção de menu para o plugin jquery.contextMenu242 //Troca da forma de construção de menu para o plugin jquery.contextMenu 243 243 //ConstructMenuTools(); 244 244 //MAILARCHIVER-00 245 //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) ) //Precisa ser feito ap ós a renderização da caixa de emails245 //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) ) //Precisa ser feito após a renderização da caixa de emails 246 246 //check_mail_in_queue(); 247 247 … … 250 250 loadApplet(); 251 251 } 252 // Fim da inser ção da applet252 // Fim da inserção da applet 253 253 cExecute("$this.imap_functions.get_folders_list&onload=true", update_menu); 254 254 … … 315 315 } 316 316 317 // Vers ão317 // Versão 318 318 Element('divAppboxHeader').innerHTML = title_app; 319 319 … … 344 344 '<td style="padding-left:17px" width=33% id="content_quota" align=left></td>' + 345 345 '<td width=33% height=16px align=center nowrap><font face=Verdana, Arial, Helvetica, sans-serif color=#000066 size=2>' + 346 '<b>ExpressoMail Offline</b><font size=1><b> - Vers ão 1.0</b></font></td>' +346 '<b>ExpressoMail Offline</b><font size=1><b> - Versão 1.0</b></font></td>' + 347 347 '<td width=33% id="div_menu_c3" align=right></td>' + 348 348 '</tr></table>'; 349 349 350 //Troca da forma de constru ção de menu para o plugin jquery.contextMenu350 //Troca da forma de construção de menu para o plugin jquery.contextMenu 351 351 //ConstructMenuTools(); 352 352 … … 366 366 /** 367 367 * Carrega a applet java no objeto search_div 368 * @author M ário César Kolling <mario.kolling@serpro.gov.br>368 * @author Mário César Kolling <mario.kolling@serpro.gov.br> 369 369 */ 370 370 … … 434 434 } 435 435 /* 436 func ão que remove todos os anexos...436 funcão que remove todos os anexos... 437 437 */ 438 438 function remove_all_attachments(folder,msg_num) { … … 560 560 // Verifica se existe o objeto applet 561 561 if (!Element('cert_applet')){ 562 // se n ão existir, mostra mensagem de erro.562 // se não existir, mostra mensagem de erro. 563 563 write_msg(get_lang('The preference "%1" isn\'t enabled.', get_lang('Enable digitally sign/cipher the message?'))); 564 564 } else { 565 565 // se existir prepara os dados para serem enviados e chama a 566 // opera ção na applet566 // operação na applet 567 567 568 568 // if ((msg_info.DispositionNotificationTo) && ((msg_info.Unseen == 'U') || (msg_info.Recent == 'N'))){ … … 599 599 var id_msg_read = ID+"_r_"+folderName; 600 600 601 //Evita a tentativa de cria ção de uma aba cujo ID jáexiste601 //Evita a tentativa de criação de uma aba cujo ID já existe 602 602 if (Element("border_id_"+id_msg_read) && currentTab > 0) 603 603 id_msg_read += "n"; … … 666 666 667 667 if (confNotification) { 668 /* Adequa ção a nova funcionalidade. Agora, a confirmação de leitura é uma preferência do usuário. */668 /* Adequação a nova funcionalidade. Agora, a confirmação de leitura é uma preferência do usuário. */ 669 669 if(preferences.confirm_read_message) { 670 670 $.Zebra_Dialog(get_lang("Would you like to send the read receipt?"), { … … 747 747 748 748 } 749 /* Busca nas pastas indexadas para ver se h ánovas mensagens com a flag $FilteredMessage */749 /* Busca nas pastas indexadas para ver se há novas mensagens com a flag $FilteredMessage */ 750 750 cExecute ("$this.imap_functions.getFlaggedAlertMessages&folders="+fromRules, handlerMessageFilter); 751 751 … … 799 799 if (data[0] && data[0].msg_folder != current_folder) // Bad request 800 800 return false; 801 /* removido incremento da vari ável pois estava incrementando mais do que o necessário802 * devido ao incremento realizado em seguida, quando novas s ão recebidas */801 /* removido incremento da variável pois estava incrementando mais do que o necessário 802 * devido ao incremento realizado em seguida, quando novas são recebidas */ 803 803 //totalFolderMsgs += data.new_msgs; 804 804 … … 1010 1010 1011 1011 var msgs = $("#tbody_box tr"); 1012 //Se a classe abaixo (somente ela) n ão existir a barra de seleção azul deve voltar ao topo.1012 //Se a classe abaixo (somente ela) não existir a barra de seleção azul deve voltar ao topo. 1013 1013 if(!msgs.hasClass("current_selected_shortcut_msg")) 1014 1014 { … … 1022 1022 function delete_msgs(folder, msgs_number, border_ID, show_success_msg,archive, prev_message){ 1023 1023 if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 1024 alert( "Impossivel deletar mensagens que ainda est ão sendo arquivadas." );1024 alert( "Impossivel deletar mensagens que ainda estão sendo arquivadas." ); 1025 1025 return; 1026 1026 } … … 1080 1080 } 1081 1081 1082 //Se pref. usar mensagens locais ativaada e n ão for operação de arquivamento exibe mensagem de remoção.1082 //Se pref. usar mensagens locais ativaada e não for operação de arquivamento exibe mensagem de remoção. 1083 1083 if(preferences.use_local_messages == 1){ 1084 1084 if(!expresso_mail_archive.isArchiveOperation){ … … 1143 1143 delete selectedPagingMsgs[data.msgs_number[i]]; 1144 1144 } 1145 // removido decremento da vari ável pois estava decrementando em outros lugares1145 // removido decremento da variável pois estava decrementando em outros lugares 1146 1146 // totalFolderMsgs = totalFolderMsgs - data.msgs_number.length; 1147 1147 } … … 1182 1182 var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 1183 1183 1184 //Valida ção para não poder manipular mensagens locais na busca1184 //Validação para não poder manipular mensagens locais na busca 1185 1185 if (currentTab.indexOf('search_local') != -1 || proxy_mensagens.is_local_folder(new_folder)) 1186 1186 { … … 1197 1197 1198 1198 if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( selected_messages, folder ) ){ 1199 alert( "Impossivel mover mensagens que ainda est ão sendo arquivadas." );1199 alert( "Impossivel mover mensagens que ainda estão sendo arquivadas." ); 1200 1200 return; 1201 1201 } … … 1346 1346 var folder_error = new_folder_name; 1347 1347 if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 1348 alert( "Impossivel mover mensagens que ainda est ão sendo arquivadas." );1348 alert( "Impossivel mover mensagens que ainda estão sendo arquivadas." ); 1349 1349 return; 1350 1350 } … … 1366 1366 }else{ 1367 1367 write_msg(get_lang('Error moving message.')+" "+get_lang('Permission denied to folder "%1".', new_folder_name)); 1368 /*Verifica se a pasta destino é a "Trash" e se a pasta origem e destino são do mesma estrutura compartilhada*/1368 /*Verifica se a pasta destino é a "Trash" e se a pasta origem e destino são do mesma estrutura compartilhada*/ 1369 1369 if(new_folder_name == "Trash" && folder.split("/")[1] == new_folder.split("/")[1]){ 1370 1370 alert(get_lang("You can not remove the message with the preference 'Send to Trash' enabled. There is no permission to move messages to the trash folder.")); … … 1414 1414 } 1415 1415 } 1416 //se houver pagina anterior a pagina ção deve ser refeita1416 //se houver pagina anterior a paginação deve ser refeita 1417 1417 else 1418 1418 { … … 1505 1505 if ( preferences.use_shortcuts == '1') { 1506 1506 var all_messages = Element('tbody_box').childNodes; 1507 // verificar se a msg selecionada com o checkbox éa mesma selecionada com o shortcut1507 // verificar se a msg selecionada com o checkbox é a mesma selecionada com o shortcut 1508 1508 var msg_list_shortcut = get_selected_messages_shortcut().split(','); 1509 1509 if(data.msgs_number.length > 0 && msg_list_shortcut.length > 0 && data.msgs_number.toString() == msg_list_shortcut.toString()){ … … 1526 1526 } 1527 1527 1528 //Se pref. usar mensagens locais ativada e n ão for operação de arquivamento exibe mensagem de remoção.1528 //Se pref. usar mensagens locais ativada e não for operação de arquivamento exibe mensagem de remoção. 1529 1529 if(preferences.use_local_messages == 1){ 1530 1530 if(!expresso_mail_archive.isArchiveOperation){ … … 1556 1556 draw_paging(n_total_msg); 1557 1557 Element('tot_m').innerHTML = n_total_msg; 1558 // removido decremento da vari ável pois estava decrementando em outros lugares1558 // removido decremento da variável pois estava decrementando em outros lugares 1559 1559 //totalFolderMsgs -= data.msgs_number.length; 1560 1560 } … … 1573 1573 } 1574 1574 } catch (e) {} 1575 //Valida ção para recuperar o id caso não seja aba de listagem1575 //Validação para recuperar o id caso não seja aba de listagem 1576 1576 if (currentTab == 0 && msgs_number == "selected") 1577 1577 msgs_number = get_selected_messages(); … … 1583 1583 } 1584 1584 1585 // se a aba estiver aberta e selecionada, apenas a msg da aba émovida1585 // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 1586 1586 if(currentTab.toString().indexOf("_r") != -1 && currentTab == border_ID) 1587 1587 { … … 1602 1602 1603 1603 expresso_mail_archive.update_counters = true; 1604 //Folder de onde sai a mensagem élocal (armazenamento local)1604 //Folder de onde sai a mensagem é local (armazenamento local) 1605 1605 1606 1606 if(msgs_number=='selected'){ … … 1639 1639 else{ 1640 1640 if (proxy_mensagens.is_local_folder(new_folder)){ 1641 //esta tirando de um folder n ão local para um folder local (arquivamento)1641 //esta tirando de um folder não local para um folder local (arquivamento) 1642 1642 if(msgs_number=='selected'){ 1643 1643 archive_msgs(folder, new_folder); … … 1648 1648 } 1649 1649 else{ 1650 //esta tirando de um folder n ão local para outro folder não local (move)1650 //esta tirando de um folder não local para outro folder não local (move) 1651 1651 //move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name); 1652 1652 if (parseInt(msgs_number) > 0 || msgs_number.length > 0){ … … 1715 1715 } 1716 1716 1717 //C ódigo adicionado para o correto funcionamento da seleção independente de paginação.1717 //Código adicionado para o correto funcionamento da seleção independente de paginação. 1718 1718 $.each(msgs_number.split(","), function(index, value){ 1719 1719 delete selectedPagingMsgs[value]; 1720 1720 }); 1721 // removido decremento da vari ável pois estava decrementando em outros lugares1721 // removido decremento da variável pois estava decrementando em outros lugares 1722 1722 //totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length; 1723 1723 selectAllFolderMsgs(false); … … 1735 1735 1736 1736 1737 // se a aba estiver aberta e selecionada, apenas a msg da aba émovida1737 // se a aba estiver aberta e selecionada, apenas a msg da aba é movida 1738 1738 if(currentTab.toString().indexOf("_r") != -1) 1739 1739 { … … 1771 1771 1772 1772 if( !id_msgs ){ 1773 write_msg( "Todas as mensagens j áforam arquivadas anteriormente." );1773 write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 1774 1774 return; 1775 1775 } … … 1784 1784 msgs_info[i] = connector.unserialize( data[i] ); 1785 1785 1786 //vejo se j átinha mensagens locais1786 //vejo se já tinha mensagens locais 1787 1787 var h = expresso_local_messages.has_local_mails(); 1788 1788 … … 1824 1824 1825 1825 if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){ 1826 alert("Imposs ével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");1826 alert("Impossével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 1827 1827 return true; 1828 1828 } … … 1877 1877 1878 1878 if( !id_msgs ){ 1879 write_msg( "Todas as mensagens j áforam arquivadas anteriormente." );1879 write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 1880 1880 return; 1881 1881 } … … 1890 1890 //msgs_info[i] = connector.unserialize( data[i] ); 1891 1891 1892 //vejo se j átinha mensagens locais1892 //vejo se já tinha mensagens locais 1893 1893 //var h = expresso_local_messages.has_local_mails(); 1894 1894 … … 2112 2112 2113 2113 2114 /* Verifica se est ána tela de pesquisa. */ /*2114 /* Verifica se está na tela de pesquisa. */ /* 2115 2115 if(selected_messages.indexOf("_") != -1) 2116 2116 { 2117 2117 results_search_messages = selected_messages; 2118 /* Retira a informa ção da aba */ /*2118 /* Retira a informação da aba */ /* 2119 2119 selected_messages = selected_messages.substring(0,selected_messages.indexOf("_")); 2120 2120 } … … 2648 2648 openTab.imapBox[new_border_ID] = folder_message.value; 2649 2649 document.getElementById('font_border_id_' + new_border_ID).innerHTML = data.subject; 2650 title = "Edi ção: " + html_entities(data.subject);2650 title = "Edição: " + html_entities(data.subject); 2651 2651 2652 2652 data.to = Element("to_values_" + border_ID).value; … … 2737 2737 } 2738 2738 2739 //DESENHA OS RETANGULOS PARA OS E-MAIL NA OP ÃÃO REPLY2739 //DESENHA OS RETANGULOS PARA OS E-MAIL NA OPÇÃO REPLY 2740 2740 function draw_reply_boxes_by_field(field, value, context){ 2741 2741 array = break_comma(value); … … 2783 2783 var attachments = $("#attachments_" + old_id_border).find("a"); 2784 2784 if(openTab.imapBox[new_border_ID].split("local").length > 1 && attachments.length > 0){ 2785 alert("N ão épossivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos");2785 alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 2786 2786 return false; 2787 2787 } … … 2988 2988 2989 2989 if(openTab.imapBox[new_border_ID].split("local").length > 1 && attachments.length > 0){ 2990 alert("N ão épossivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos");2990 alert("Não é possivel utilizar os anexos das mensagens locais, favor desarquivar para ter acesso aos anexos"); 2991 2991 return false; 2992 2992 } … … 3117 3117 } 3118 3118 else { // crypt 3119 //TODO: Colocar mensagem de erro, e finalizar o m étodo.3119 //TODO: Colocar mensagem de erro, e finalizar o método. 3120 3120 operation = 'nop'; 3121 3121 } … … 3229 3229 } 3230 3230 3231 /*Fun ção que grava o destinatário nos contatos dinâmicos*/3231 /*Função que grava o destinatário nos contatos dinâmicos*/ 3232 3232 function save_dynamic_contacts(array){ 3233 3233 … … 3265 3265 3266 3266 /** 3267 * M étodo chamado pela applet para retornar o resultado da assinatura/decifragem do e-mail.3267 * Método chamado pela applet para retornar o resultado da assinatura/decifragem do e-mail. 3268 3268 * para posterior envio ao servidor. 3269 * @author M ário César Kolling <mario.kolling@serpro.gov.br>, Bruno Vieira da Costa <bruno.vieira-costa@serpro.gov.br>3269 * @author Mário César Kolling <mario.kolling@serpro.gov.br>, Bruno Vieira da Costa <bruno.vieira-costa@serpro.gov.br> 3270 3270 * @param smime O e-mail decifrado/assinado 3271 * @param ID O ID do e-mail, para saber em que aba esse e-mail ser ámostrado.3272 * @param operation A opera ção que foi realizada pela applet (assinatura ou decifragem)3271 * @param ID O ID do e-mail, para saber em que aba esse e-mail será mostrado. 3272 * @param operation A operação que foi realizada pela applet (assinatura ou decifragem) 3273 3273 */ 3274 3274 function appletReturn(smime, ID, operation, folder){ … … 3301 3301 { 3302 3302 ID_tmp = ID; 3303 // L á a variável e chama a nova função cExecuteForm3303 // Lá a variável e chama a nova função cExecuteForm 3304 3304 // Processa e envia para o servidor web 3305 3305 // Faz o request do connector novamente. Talvez implementar no connector 3306 // para manter coer ência.3306 // para manter coerência. 3307 3307 3308 3308 var handler_send_smime = function(data){ … … 3316 3316 textArea.value += smime; 3317 3317 3318 // L á a variável e chama a nova função cExecuteForm3318 // Lá a variável e chama a nova função cExecuteForm 3319 3319 // Processa e envia para o servidor web 3320 3320 // Faz o request do connector novamente. Talvez implementar no connector 3321 // para manter coer ência.3321 // para manter coerência. 3322 3322 if (is_ie){ 3323 3323 var i = 0; … … 3335 3335 3336 3336 /* 3337 * M étodo que verifica se existe algum item de 'words' em 'body'.3338 * Se houver, retorna a primeira ocorr ência encontrada de words, caso contrário retorna false.3337 * Método que verifica se existe algum item de 'words' em 'body'. 3338 * Se houver, retorna a primeira ocorrência encontrada de words, caso contrário retorna false. 3339 3339 */ 3340 3340 function verifyBodyWords(body, words) … … 3377 3377 var content_body = RichTextEditor.getData('body_'+ID); 3378 3378 /* 3379 Funcionalidade que verifica se o usu ário escreveu a palavra anexo no corpo da mensagem e não anexou nenhum arquivo.3380 Esta funcionalidade é ativada nas preferências do módulo ExpressoMail.3379 Funcionalidade que verifica se o usuário escreveu a palavra anexo no corpo da mensagem e não anexou nenhum arquivo. 3380 Esta funcionalidade é ativada nas preferências do módulo ExpressoMail. 3381 3381 */ 3382 /* 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. */3383 if(language == "pt-br") //Portugu ês brasileiro3382 /* 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. */ 3383 if(language == "pt-br") //Português brasileiro 3384 3384 var words = ['anexo', 'anexos', 'anexada', 'anexado', 'anexei', 'anexando', 'anexaste', 'anexastes', 'anexamos', 'anexaram']; 3385 3385 else if(language == "es-es") //Espanhol 3386 3386 var words = ['anexo','adjunto', 'adjuntos', 'adjuntado','adjuntamos']; 3387 else //Ingl ês ('en')3387 else //Inglês ('en') 3388 3388 var words = ['attach', 'attachment', 'attached', 'annex', 'appending']; 3389 3389 … … 3414 3414 zebraDiscardEventDialog = true; 3415 3415 window.setTimeout(function() { 3416 $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos ser ão perdidos.', {3416 $.Zebra_Dialog('Existem anexos sendo enviados para o servidor. Caso envie sua mensagem agora estes arquivos serão perdidos.', { 3417 3417 'type': 'question', 3418 3418 'overlay_opacity': '0.5', … … 3523 3523 mailData.input_from = $(content).find('select[name="input_from"]').val(); 3524 3524 3525 3526 //volta aqui 3527 3525 // VERIFY IF EXISTS MESSAGE TO ATTACH 3528 3526 if(typeof mailData.attachments == "object"){ 3529 3527 3528 // VERIFY IF EXISTS MESSAGE OF ARCHIVE 3530 3529 if(mailData.attachments.archiver.length){ 3531 3530 3531 // CREATE ONE VARIABLE TO STORE ALL THE MESSAGES INFORMATION 3532 3532 var archiver = new Array(); 3533 var msgsId = new Array(); 3534 $.each(mailData.attachments.archiver, function(i, each){ 3535 expresso_mail_archive.unarchieveToAttach(each.folder,"INBOX/Trash",each.uid); //folder, new_folder, msgs_number 3536 3537 }); 3538 $.ajax({ 3539 url: "controller.php?action=$this.imap_functions.get_last_msg_by_id", 3540 data: archiver, 3541 type: 'POST', 3542 async: false, 3543 success: function(data){ 3544 data = connector.unserialize(data); 3545 archiver.push(data); 3546 }, 3547 }); 3548 3549 mailData.attachments = mailData.attachments.imap; 3550 3551 //TypeError: archiver is null 3552 archiver = $.parseJSON(archiver[0]); 3553 if(archiver.length){ 3554 $.each(archiver, function(i, each){ 3555 msgsId.push(archiver[i].uid); 3556 mailData.attachments.push(JSON.stringify(archiver[i])); 3557 }); 3558 } 3559 3560 mailData.attachments = JSON.stringify(mailData.attachments); 3561 3533 3534 // UNARCHIEVE ALL THE MESSAGES TO IMAP TRASH 3535 $.each(mailData.attachments.archiver, function(i, each){ 3536 expresso_mail_archive.unarchieveToAttach(each.folder,"INBOX/Trash",each.uid); 3537 }); 3538 3539 // FIX THE PROBLEM WITH ASYNC 3540 // noReady is calling always that the variable is not complete with all the messages ids 3541 notReady = function(){ 3542 setTimeout(function(){ 3543 if(mailData.attachments.archiver.length == expresso_mail_archive.idMsgsToAttach.length){ 3544 // THIS FUNCTION IS FOR TO GET THE INFORMATION OF THE MESSAGE NEWLY UNARCHIVED 3545 readyToFetch(); 3546 // THIS FUNCTION IS FOR TO SEND THE MESSAGE WITH ATTACHMENT 3547 readyToSend(); 3548 } else { 3549 // IF THE ARRAY DON'T HAVE ALL THE MESSAGES IDS, OKAY, NO PROBLEM... CALL THIS FUNCTION AGAIN! 3550 noReady(); 3551 } 3552 },30); 3553 }; 3554 notReady(); 3555 3556 // THIS FUNCTION IS FOR TO GET THE INFORMATION OF THE MESSAGE NEWLY UNARCHIVED 3557 readyToFetch = function(){ 3558 $.ajax({ 3559 url: "controller.php?action=$this.imap_functions.get_info_msg_archiver", 3560 data: {"idMsgs":expresso_mail_archive.idMsgsToAttach}, 3561 type: 'POST', 3562 async: false, 3563 success: function(data){ 3564 data = connector.unserialize(data); 3565 archiver.push(data); 3566 }, 3567 }); 3568 3569 // HERE, THE MESSAGES IMAP ARE READY FOR TO SEND... 3570 mailData.attachments = mailData.attachments.imap; 3571 3572 // BUT, I NEED TO PREPARE THE MESSAGE ARCHIVE FOR TO SEND. 3573 archiver = $.parseJSON(archiver[0]); 3574 if(archiver.length){ 3575 $.each(archiver, function(i, each){ 3576 mailData.attachments.push(JSON.stringify(archiver[i])); 3577 }); 3578 } 3579 3580 // GOOD, NOW THE ATTACHMENTS ARE READY TO SEND! 3581 mailData.attachments = JSON.stringify(mailData.attachments); 3582 }; 3562 3583 } else { 3584 // IF THIS MESSAGE JUST HAVE IMAP MESSAGES 3563 3585 mailData.attachments = JSON.stringify(mailData.attachments.imap); 3586 setTimeout(function(){ readyToSend() }, 30); 3564 3587 } 3565 3588 } else { 3589 // IF THIS MESSAGE DON'T HAVE ATTACHMENT, CALL READYTOSEND. 3590 setTimeout(function(){ readyToSend() }, 30); 3566 3591 mailData.attachments = []; 3567 3592 } 3568 3593 3569 delete_msg_archive_by_flag = function(){ 3570 $.ajax({ 3571 url: "controller.php?action=$this.imap_functions.delete_msg_archive_by_flag", 3572 data: [], 3573 type: 'POST', 3574 async: false, 3575 success: function(data){ 3576 data = connector.unserialize(data); 3577 data = $.parseJSON(data).result; 3578 write_msg(data); 3579 }, 3580 }); 3581 } 3594 // THIS FUNCTION IS FOR TO SEND THE MESSAGE WITH ATTACHMENT OR NOT. 3595 readyToSend = function(){ 3582 3596 3583 if(stringEmail != ""){ 3584 $.ajax({ 3585 url: "controller.php?action=$this.imap_functions.send_mail", 3586 data: mailData, 3587 type: 'POST', 3588 async: false, 3589 beforeSend: function(jqXHR, settings){ 3590 write_msg( get_lang( 'Sending the message...' ) ); 3591 $(content).find('button.send').button('option', 'disabled', true); 3592 }, 3593 success: function(data){ 3594 send_message_return(connector.unserialize(data),ID); 3595 delete_msgs("INBOX/Trash",msgsId, false, false); 3596 }, 3597 error: function(){ 3598 write_msg(get_lang( 'Error trying to send the message. Retry in a few seconds...' ) ); 3599 $(content).find('button.send').button('option', 'disabled', false); 3600 var interval = setInterval(function(){ 3601 send_valided_message(ID,folder,folder_name); 3602 clearInterval(interval); 3603 },15000); 3604 return; 3605 } 3606 }); 3607 }else{ 3608 write_msg(get_lang("message without receiver")); 3609 return; 3610 } 3611 3597 if(stringEmail != ""){ 3598 $.ajax({ 3599 url: "controller.php?action=$this.imap_functions.send_mail", 3600 data: mailData, 3601 type: 'POST', 3602 async: false, 3603 beforeSend: function(jqXHR, settings){ 3604 write_msg( get_lang( 'Sending the message...' ) ); 3605 $(content).find('button.send').button('option', 'disabled', true); 3606 }, 3607 success: function(data){ 3608 send_message_return(connector.unserialize(data),ID); 3609 // HERE, I NEED TO DELETE THE MESSAGES THAT WERE UNARCHIVE FROM ARCHIVE. 3610 delete_msgs("INBOX/Trash",expresso_mail_archive.idMsgsToAttach, false, false); 3611 }, 3612 error: function(){ 3613 write_msg(get_lang( 'Error trying to send the message. Retry in a few seconds...' ) ); 3614 $(content).find('button.send').button('option', 'disabled', false); 3615 var interval = setInterval(function(){ 3616 send_valided_message(ID,folder,folder_name); 3617 clearInterval(interval); 3618 },15000); 3619 return; 3620 } 3621 }); 3622 }else{ 3623 write_msg(get_lang("message without receiver")); 3624 return; 3625 } 3626 delete(expresso_mail_archive.idMsgsToAttach); 3627 }; 3612 3628 3613 3629 } … … 3619 3635 if((campo.replace(/^\s+|\s+$/g,"")) != ""){ 3620 3636 if(invalidEmail[0] == true){ 3621 write_msg("Erro de SMTP: Os endere ços de destinatário a seguir falharam: "+ invalidEmail[1]);3637 write_msg("Erro de SMTP: Os endereços de destinatário a seguir falharam: "+ invalidEmail[1]); 3622 3638 return false; 3623 3639 }else{ 3624 3640 if(semicolon.length > 1){ 3625 var stringError = "Erro de SMTP: Os endere ços devem ser separados apenas por vÃrgula: ";3641 var stringError = "Erro de SMTP: Os endereços devem ser separados apenas por vírgula: "; 3626 3642 for(var i= 0; i < semicolon.length; i++){ 3627 3643 stringError = stringError + semicolon[i]; … … 4104 4120 4105 4121 4106 /*PERMITE A IMPRESSà O DE UMA LISTA DE MENSAGENS E SEU CONTEÃDO*/4122 /*PERMITE A IMPRESSÃO DE UMA LISTA DE MENSAGENS E SEU CONTEÚDO*/ 4107 4123 function print_messages_bodies(){ 4108 4124 var messages = {}; … … 4126 4142 return "<tr><td width=7%><font size='2'><b>"+label+" </b></font></td><td><font size='2'>"+data+"</font></td></tr>"; 4127 4143 } 4128 /*INSERE AS MENSAGENS NO DOCUMENTO DE IMPRESSà O*/4144 /*INSERE AS MENSAGENS NO DOCUMENTO DE IMPRESSÃO*/ 4129 4145 $.each(data,function(index,message){ 4130 4146 var html = "<table><tbody>"; … … 4331 4347 function print_all(){ 4332 4348 if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){ 4333 alert("Imposs ével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");4349 alert("Impossével manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 4334 4350 return true; 4335 4351 } … … 4344 4360 return print_messages_list(); 4345 4361 } 4346 var msg = 'Algumas mensagens foram selecionadas para impress ão. Deseja imprimir o conteúdo de cada uma delas? Caso contrário, apenas uma lista das mensagens selecionadas seráimpressa.';4362 var msg = 'Algumas mensagens foram selecionadas para impressão. Deseja imprimir o conteúdo de cada uma delas? Caso contrário, apenas uma lista das mensagens selecionadas será impressa.'; 4347 4363 $.Zebra_Dialog(msg, { 4348 4364 'type': 'question', 4349 'buttons': ['Sim','N ão'],4365 'buttons': ['Sim','Não'], 4350 4366 'overlay_opacity': '0.5', 4351 4367 'custom_class': 'custom-zebra-filter', … … 4437 4453 if(to) { 4438 4454 if(!printListTO) 4439 to = 'Os destinat ários não estão sendo exibidos para esta impressão';4455 to = 'Os destinatários não estão sendo exibidos para esta impressão'; 4440 4456 html += "<tr><td width=7%><font size='2'>" + get_lang('To') + ": </font></td><td><font size='2'>"+to+"</font></td></tr>"; 4441 4457 } 4442 4458 if (cc) { 4443 4459 if(!printListCC) 4444 cc = 'Os destinat ários não estão sendo exibidos para esta impressão';4460 cc = 'Os destinatários não estão sendo exibidos para esta impressão'; 4445 4461 html += "<tr><td width=7%><font size='2'>" + get_lang('Cc') + ": </font></td><td><font size='2'>"+cc+"</font></td></tr>"; 4446 4462 } 4447 4463 if (cco) { 4448 4464 if(!printListCCO) 4449 cco = 'Os destinat ários não estão sendo exibidos para esta impressão';4465 cco = 'Os destinatários não estão sendo exibidos para esta impressão'; 4450 4466 html += "<tr><td width=7%><font size='2'>" + get_lang('Cco') + ": </font></td><td><font size='2'>"+cco+"</font></td></tr>"; 4451 4467 } … … 4781 4797 msgs_number = get_selected_messages(); 4782 4798 4783 //TODO: REFATORAR O C ÃDIGO PARA EVITAR recodificação4799 //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 4784 4800 if(currentTab == 0) 4785 4801 msgs_number = get_selected_messages(); … … 4835 4851 msgs_number = get_selected_messages(); 4836 4852 4837 //TODO: REFATORAR O C ÃDIGO PARA EVITAR recodificação4853 //TODO: REFATORAR O CÓDIGO PARA EVITAR recodificação 4838 4854 if(currentTab == 0) 4839 4855 msgs_number = get_selected_messages(); … … 4848 4864 { 4849 4865 if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){ 4850 alert("Imposs Ãvel manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");4866 alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais."); 4851 4867 return true; 4852 4868 } … … 5029 5045 if ( er.test(folder.id) ) 5030 5046 { 5031 alert( "Mensagens n ão podem ser importadas em pastas locais" );5047 alert( "Mensagens não podem ser importadas em pastas locais" ); 5032 5048 //archive_msgs('INBOX/Lixeira/tmpMoveToLocal',wfolders_tree._selected.id,data); 5033 5049 //cExecute('$this.imap_functions.delete_mailbox',function(){},'del_past=INBOX/Lixeira/tmpMoveToLocal'); … … 5048 5064 } 5049 5065 5050 //Normaliza ção dos dados evita ter que reemplementar toda as funcionalidades do calendar5066 //Normalização dos dados evita ter que reemplementar toda as funcionalidades do calendar 5051 5067 function decodeCreateSchedulable(type, ID){ 5052 5068 var startEvent = new Date(); … … 5164 5180 if(typeof(Encoder) == "undefined"){ 5165 5181 /* 5166 * Deve-se centralizar as informa ções do usuário logado afim de não incluir5182 * Deve-se centralizar as informações do usuário logado afim de não incluir 5167 5183 * arquivos de modulos distintos para este fim. 5168 5184 */ … … 5217 5233 wfolders.makeWindow('null','import'); 5218 5234 } 5219 //Verifica o contexto de importa ção5235 //Verifica o contexto de importação 5220 5236 function decodeOwner(){ 5221 5237 owner = User.me.id; … … 5339 5355 break; 5340 5356 case 6: 5341 var acceptedSuggestion = confirm("Deseja atualizar o evento/tarefa de acordo com a sugest ão ?");5357 var acceptedSuggestion = confirm("Deseja atualizar o evento/tarefa de acordo com a sugestão ?"); 5342 5358 $.ajax({ 5343 5359 url: "controller.php?action="+import_url+'&from_ajax=true&id_user='+User.me.id+'&selected=true&cirus_delimiter='+cyrus_delimiter+'&acceptedSuggestion='+acceptedSuggestion+"&from="+document.getElementById('from_values_'+currentTab).value+'&uidAccount='+decodeOwner(), … … 5351 5367 case 4: 5352 5368 case 9: 5353 alert('Seu evento/tarefa n ão possui alterações!');5369 alert('Seu evento/tarefa não possui alterações!'); 5354 5370 return; 5355 5371 break; 5356 5372 case 11: 5357 alert('Este evento/tarefa j á fora importando por algum dos particpantes e já se encontra disponÃvel em sua agenda compartilhada!');5373 alert('Este evento/tarefa já fora importando por algum dos particpantes e já se encontra disponível em sua agenda compartilhada!'); 5358 5374 return; 5359 5375 break; … … 5440 5456 else { 5441 5457 expresso_local_messages.set_as_sent(rowid_message); 5442 if(document.getElementById('_action')) { //N ão posso manter esse elemento, pois o connector irá criar outro com o mesmo id para a próxima mensagem.5458 if(document.getElementById('_action')) { //Não posso manter esse elemento, pois o connector irá criar outro com o mesmo id para a próxima mensagem. 5443 5459 el =document.getElementById('_action'); 5444 5460 father = el.parentNode; … … 5568 5584 } 5569 5585 5570 /* Fun çãoo que chama a tela para o usuário reportar um erro no email. */5586 /* Funçãoo que chama a tela para o usuário reportar um erro no email. */ 5571 5587 function reports_window(currentTab){ 5572 5588 ID_msg = currentTab.substr(0,currentTab.indexOf("_"));
Note: See TracChangeset
for help on using the changeset viewer.