Changeset 4665 for sandbox


Ignore:
Timestamp:
07/04/11 16:37:05 (13 years ago)
Author:
fernando-alberto
Message:

Ticket #1269 - Desenvolvimento da nova solucao de arquivamento local MailArchiver?, status do servico

File:
1 edited

Legend:

Unmodified
Added
Removed
  • sandbox/expressoMail1_2/MailArchiver/2.2/expressoMail1_2/js/main.js

    r4644 r4665  
    55var autosave_time = 20000; 
    66 
     7//MAILARCHIVE 
     8// Intervalo de tempo de verificacao de comunicacao com o MailArchiver (milisegundos) 
     9var check_services_interval = 2000; 
     10// Numero de tentativas de reconexao 
     11var check_services_tryouts = 1; 
     12// Limite de tentativas de reconexao 
     13var check_services_tryouts_limit = 5; 
     14 
    715function init(){ 
    816        if (!is_ie) 
     
    2432                if( (window.google && google.gears) && !google.gears.factory.getPermission()) 
    2533                    preferences.use_local_messages=0; 
    26  
    27                 if ((preferences.use_local_messages==1) && (!window.google || !google.gears)) { 
     34                 
     35                //MAILARCHIVER TODO_01 = only offline needs to be handled 
     36                /*if ((preferences.use_local_messages==1) && (!window.google || !google.gears)) { 
    2837                    temp = confirm(get_lang("To use local messages you have to install google gears. Would you like to be redirected to gears installation page?")); 
    2938                    if (temp) { 
     
    3544                    } 
    3645                } 
    37                 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... 
     46                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... 
    3847                        connector.loadScript('mail_sync'); 
    3948                        if (is_ie) 
     
    4251                         
    4352                } 
     53                */ 
     54                //MAILARCHIVER 
     55                //Try to get ArchiveServices object directly 
     56                //window.alert('em init com ArchiveServices = ' + ArchiveServices); 
     57                if(ArchiveServices) 
     58                    expresso_mail_archive.Startup(); 
     59                //ArchiveServices not runnnig: catch the user preferences to set up message at header 
     60                else{ 
     61                    if(preferences.use_local_messages=="1") 
     62                        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!')); 
     63                }          
     64                 
    4465                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); 
    4566                cExecute ("$this.imap_functions.get_folders_list&onload=true", update_menu); 
     
    5677                ConstructMenuTools(); 
    5778                 
    58                 if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) )  //Precisa ser feito após a renderização da caixa de emails 
    59                         check_mail_in_queue(); 
     79                //Disabled -> check futurelly to offline only 
     80                //if ( (preferences.use_local_messages==1) && (expresso_local_messages.is_offline_installed()) )  //Precisa ser feito apï¿œs a renderizaᅵᅵo da caixa de emails 
     81                //      check_mail_in_queue(); 
    6082                 
    6183                // Insere a applet de criptografia 
     
    6385                        loadApplet(); 
    6486                } 
    65                 // Fim da inserção da applet 
     87                // Fim da inserᅵᅵo da applet 
    6688 
    6789        } 
     
    7294        } 
    7395 
    74         // Versão 
     96        // Versï¿œo 
    7597        Element('divAppboxHeader').innerHTML = title_app; 
    7698 
     
    98120                '<td style="padding-left:17px" width=33% id="content_quota" align=left></td>' + 
    99121                '<td width=33% height=16px align=center nowrap><font face=Verdana, Arial, Helvetica, sans-serif color=#000066 size=2>' + 
    100                 '<b>ExpressoMail Offline</b><font size=1><b> - Versão 1.0</b></font></td>' + 
     122                '<b>ExpressoMail Offline</b><font size=1><b> - Versï¿œo 1.0</b></font></td>' + 
    101123                '<td width=33% id="div_menu_c3" align=right></td>' + 
    102124                '</tr></table>'; 
     
    119141/** 
    120142 * Carrega a applet java no objeto search_div 
    121  * @author Mário César Kolling <mario.kolling@serpro.gov.br> 
     143 * @author Mï¿œrio Cï¿œsar Kolling <mario.kolling@serpro.gov.br> 
    122144 */ 
    123145 
     
    187209} 
    188210/* 
    189         função que remove todos os anexos... 
     211        funᅵᅵo que remove todos os anexos... 
    190212*/ 
    191213function remove_all_attachments(folder,msg_num) { 
     
    279301                // Verifica se existe o objeto applet 
    280302                if (!Element('cert_applet')){ 
    281                         // se não existir, mostra mensagem de erro. 
     303                        // se nï¿œo existir, mostra mensagem de erro. 
    282304                        write_msg(get_lang('The preference "%1" isn\'t enabled.', get_lang('Enable digitally sign/cipher the message?'))); 
    283305                } else { 
    284306                        // se existir prepara os dados para serem enviados e chama a 
    285                         // operação na applet 
     307                        // operaᅵᅵo na applet 
    286308 
    287309                        connector.showProgressBar(); 
     
    856878} 
    857879 
    858 function archive_msgs(folder,folder_dest,id_msgs) { 
    859         if(proxy_mensagens.is_local_folder(folder)) { 
    860                 write_msg(get_lang("You cant archive local mails")); 
    861                 return; 
    862         } 
    863  
    864         if(currentTab.toString().indexOf("_r") != -1){ 
    865             id_msgs = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    866         } 
    867  
    868         if(!id_msgs) 
    869                 id_msgs = get_selected_messages(); 
    870  
    871         if(folder_dest=='local_root' || folder_dest==null) //Caso seja o primeiro arquivamento... 
    872                 folder_dest = 'local_Inbox'; 
    873  
    874         if (parseInt(id_msgs) > 0 || id_msgs.length > 0) 
    875                 expresso_mail_sync.archive_msgs(folder,folder_dest,id_msgs); 
    876                 //cExecute("$this.imap_functions.get_info_msgs&folder=" + folder + "&msgs_number=" + id_msgs , handler_arquivar_mensagens); 
    877         else 
    878                 write_msg(get_lang('No selected message.')); 
    879  
     880//MAILARCHIVE NEW FUNC 
     881function archive_msgs(folder,folder_dest,id_msgs){ 
     882    /*if(proxy_mensagens.is_local_folder(folder)) { 
     883        write_msg(get_lang("You cant archive local mails")); 
     884        return; 
     885    }*/ 
     886 
     887    if(currentTab.toString().indexOf("_r") != -1){ 
     888        id_msgs = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
     889    } 
     890 
     891    if(!id_msgs) 
     892        id_msgs = get_selected_messages(); 
     893 
     894    if(folder_dest=='local_root' || folder_dest==null) //Caso seja o primeiro arquivamento... 
     895        folder_dest = 'local_Inbox'; 
     896 
     897    if (parseInt(id_msgs) > 0 || id_msgs.length > 0){ 
     898        expresso_mail_archive.Archive(folder,folder_dest,id_msgs);                    
     899    } 
     900    else 
     901        write_msg(get_lang('No selected message.')); 
    880902} 
    881903 
     
    12651287                                                tmp = tmp.substring(0, tmp.length - 2);//corta a aspas e o parenteses 
    12661288                                                tmp = replaceAll(tmp,"%20"," "); 
    1267                                                 if (!tmp.match(/inc\/gotodownload.php/)) { //Anexos após ticket #1257 que usa gotodownload 
     1289                                                if (!tmp.match(/inc\/gotodownload.php/)) { //Anexos apï¿œs ticket #1257 que usa gotodownload 
    12681290                                                        var tempNomeArquivo = tmp.split("/"); 
    12691291                                                        var nomeArquivo = tempNomeArquivo[tempNomeArquivo.length - 1]; 
     
    12741296                                                } 
    12751297                                                 
    1276                                                 if(nomeArquivo.match(/\.[a-z]{1,3}\.php$/i)!=null) //Anexos no gears podem vir com .php depois de sua extensão. tenho que tirar o .php para ficar o nome real do arquivo. 
     1298                                                if(nomeArquivo.match(/\.[a-z]{1,3}\.php$/i)!=null) //Anexos no gears podem vir com .php depois de sua extensï¿œo. tenho que tirar o .php para ficar o nome real do arquivo. 
    12771299                                                        nomeArquivo = nomeArquivo.substring(0, nomeArquivo.length - 4); 
    12781300                                                campo_arquivo = addForwardedFile(new_border_ID, nomeArquivo, link_attachment.href); 
     
    13641386                        openTab.imapUid[new_border_ID] = parseInt(border_ID.substr(0,border_ID.indexOf("_"))); 
    13651387                        document.getElementById('font_border_id_'+new_border_ID).innerHTML = data.subject; 
    1366                         title = "Edição: "+data.subject; 
     1388                        title = "Ediᅵᅵo: "+data.subject; 
    13671389                         
    13681390                        data.to = Element("to_values_" + border_ID).value; 
     
    15761598                        } 
    15771599                        else { // crypt 
    1578                                 //TODO: Colocar mensagem de erro, e finalizar o método. 
     1600                                //TODO: Colocar mensagem de erro, e finalizar o mï¿œtodo. 
    15791601                                operation = 'nop'; 
    15801602                        } 
     
    16441666 
    16451667/** 
    1646  * Método chamado pela applet para retornar o resultado da assinatura/decifragem do e-mail. 
     1668 * Mï¿œtodo chamado pela applet para retornar o resultado da assinatura/decifragem do e-mail. 
    16471669 * para posterior envio ao servidor. 
    1648  * @author Mário César Kolling <mario.kolling@serpro.gov.br>, Bruno Vieira da Costa <bruno.vieira-costa@serpro.gov.br> 
     1670 * @author Mï¿œrio Cï¿œsar Kolling <mario.kolling@serpro.gov.br>, Bruno Vieira da Costa <bruno.vieira-costa@serpro.gov.br> 
    16491671 * @param smime O e-mail decifrado/assinado 
    1650  * @param ID O ID do e-mail, para saber em que aba esse e-mail será mostrado. 
    1651  * @param operation A operação que foi realizada pela applet (assinatura ou decifragem) 
     1672 * @param ID O ID do e-mail, para saber em que aba esse e-mail serï¿œ mostrado. 
     1673 * @param operation A operaᅵᅵo que foi realizada pela applet (assinatura ou decifragem) 
    16521674 */ 
    16531675function appletReturn(smime, ID, operation, folder){ 
     
    16801702        { 
    16811703                ID_tmp = ID; 
    1682                 // Lê a variável e chama a nova função cExecuteForm 
     1704                // Lï¿œ a variï¿œvel e chama a nova funᅵᅵo cExecuteForm 
    16831705                // Processa e envia para o servidor web 
    16841706                // Faz o request do connector novamente. Talvez implementar no connector 
    1685                 // para manter coerência. 
     1707                // para manter coerï¿œncia. 
    16861708 
    16871709                var handler_send_smime = function(data){ 
     
    16951717                textArea.value += smime; 
    16961718 
    1697                 // Lê a variável e chama a nova função cExecuteForm 
     1719                // Lï¿œ a variï¿œvel e chama a nova funᅵᅵo cExecuteForm 
    16981720                // Processa e envia para o servidor web 
    16991721                // Faz o request do connector novamente. Talvez implementar no connector 
    1700                 // para manter coerência. 
     1722                // para manter coerï¿œncia. 
    17011723                if (is_ie){ 
    17021724                        var i = 0; 
     
    17641786                form = document.forms["form_message_"+ID]; 
    17651787 
    1766                 // Evita que e-mails assinados sejam enviados quando o usuário tenta enviar um e-mail 
    1767                 // não assinado (desmarcou a opção) após tentar enviar um e-mail assinado que não passou 
    1768                 // no teste de validação. 
     1788                // Evita que e-mails assinados sejam enviados quando o usuï¿œrio tenta enviar um e-mail 
     1789                // nï¿œo assinado (desmarcou a opᅵᅵo) apï¿œs tentar enviar um e-mail assinado que nï¿œo passou 
     1790                // no teste de validaᅵᅵo. 
    17691791                var checkSign = document.getElementById('return_digital_'+ID); 
    17701792                if (checkSign && !checkSign.checked){ 
     
    18021824                        return; 
    18031825                }else if(invalidEmail[0] == true){ 
    1804                         write_msg("Os endereços de destinatário a seguir estão incorretos: "+invalidEmail[1]); 
     1826                        write_msg("Os endereï¿œos de destinatï¿œrio a seguir estï¿œo incorretos: "+invalidEmail[1]); 
    18051827                        return; 
    18061828                } 
     
    23522374                        if(to) { 
    23532375                                if(!printListTO) 
    2354                                         to = 'Os destinatários não estão sendo exibidos para esta impressão'; 
     2376                                        to = 'Os destinatï¿œrios nï¿œo estï¿œo sendo exibidos para esta impressï¿œo'; 
    23552377                                html += "<tr><td width=7%><font size='2'>" + get_lang('To') + ": </font></td><td><font size='2'>"+to+"</font></td></tr>"; 
    23562378                        } 
    23572379                        if (cc) { 
    23582380                                if(!printListCC) 
    2359                                         cc = 'Os destinatários não estão sendo exibidos para esta impressão'; 
     2381                                        cc = 'Os destinatï¿œrios nï¿œo estï¿œo sendo exibidos para esta impressï¿œo'; 
    23602382                                html += "<tr><td width=7%><font size='2'>" + get_lang('Cc') + ": </font></td><td><font size='2'>"+cc+"</font></td></tr>"; 
    23612383                        } 
    23622384                        if (cco) { 
    23632385                                if(!printListCCO) 
    2364                                         cco = 'Os destinatários não estão sendo exibidos para esta impressão'; 
     2386                                        cco = 'Os destinatï¿œrios nï¿œo estï¿œo sendo exibidos para esta impressï¿œo'; 
    23652387                                html += "<tr><td width=7%><font size='2'>" + get_lang('Cco') + ": </font></td><td><font size='2'>"+cco+"</font></td></tr>"; 
    23662388                        } 
     
    27092731        else { 
    27102732                expresso_local_messages.set_as_sent(rowid_message); 
    2711                 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. 
     2733                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. 
    27122734                        el =document.getElementById('_action'); 
    27132735                        father = el.parentNode; 
     
    27922814                return arrayInvalidEmails; 
    27932815} 
     2816 
     2817//MAILARCHIVER 
     2818function services_retry(){ 
     2819    //window.alert('services_retry invoked'); 
     2820    try{ 
     2821        /*if(ttintval) 
     2822            window.alert('services_retry:\nttintval= ' + ttintval + '\nttintval2= ' + ttintval2 + '\ntryouts= ' + check_services_tryouts); 
     2823        */ 
     2824        connector.purgeCache();  
     2825        //window.alert('expresso var dump:\nenabled = ' + expresso_mail_archive.enabled + '\ntimer = ' + expresso_mail_archive.timer +'\ncounter = ' + expresso_mail_archive.counter); 
     2826 
     2827        if ((expresso_mail_archive.enabled == null) && (expresso_mail_archive.timer == null) && (expresso_mail_archive.counter > 0)){ 
     2828            
     2829            //window.clearInterval(ttintval); 
     2830            //window.clearInterval(ttintval2); 
     2831            connector.hideProgressBar(); 
     2832            connector.resetProgressBarText(); 
     2833            write_msg(get_lang('Sorry, but you need to reload this web page. Click at reload page at web browsing top navigation.')); 
     2834            //location.reload(); 
     2835            return; 
     2836 
     2837        } 
     2838 
     2839        if (arguments.length == 0){ 
     2840           connector.setProgressBarText(get_lang('Trying to communicate with Mail Archiver...')); 
     2841        } 
     2842 
     2843        connector.showProgressBar(); 
     2844        //var head= document.getElementsByTagName('head')[0]; 
     2845        var head = document.getElementById('send_queue'); 
     2846        var script= document.createElement('script'); 
     2847        var script_tag_id = 'mail_archiver_retry'; 
     2848 
     2849        var script_utils= document.createElement('script'); 
     2850        var script_utils_tag_id = 'mail_archiver_retry_utils'; 
     2851 
     2852        var script_transport= document.createElement('script'); 
     2853        var script_transport_tag_id = 'mail_archiver_retry_transport'; 
     2854 
     2855        if(document.getElementById(script_tag_id)){ 
     2856            document.getElementById(script_tag_id).parentNode.removeChild(document.getElementById(script_tag_id)); 
     2857        } 
     2858 
     2859        if(document.getElementById(script_utils_tag_id)){ 
     2860            document.getElementById(script_utils_tag_id).parentNode.removeChild(document.getElementById(script_utils_tag_id)); 
     2861        } 
     2862 
     2863        if(document.getElementById(script_transport_tag_id)){ 
     2864            document.getElementById(script_transport_tag_id).parentNode.removeChild(document.getElementById(script_transport_tag_id)); 
     2865        } 
     2866 
     2867        //Transport 
     2868        script_transport.type= 'text/javascript'; 
     2869        script_transport.src=  mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port  + '/arcservutil/cxf-addon-transport.js'; 
     2870        script_transport.id= script_transport_tag_id; 
     2871        head.appendChild(script_transport); 
     2872 
     2873        //Utils Cors support 
     2874        script_utils.type= 'text/javascript'; 
     2875        script_utils.src= mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port  + '/arcservutil/cxf-utils-cors.js'; 
     2876        script_utils.id= script_utils_tag_id; 
     2877        head.appendChild(script_utils); 
     2878 
     2879        //Cxf core 
     2880        script.type= 'text/javascript'; 
     2881        script.src= mail_archive_protocol + '://' + mail_archive_host + ':' + mail_archive_port  + '/arcserv/ArchiveServices?js&nojsutils'; 
     2882        script.id= script_tag_id; 
     2883        head.appendChild(script); 
     2884 
     2885        //window.alert('Script tag added.  URL = ' + script.src); 
     2886        ttintval = window.setTimeout('check_services_restart()', 1000); 
     2887    } 
     2888    catch (e){ 
     2889        //window.alert('e:' + e); 
     2890        write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!')); 
     2891        connector.hideProgressBar(); 
     2892        connector.resetProgressBarText(); 
     2893        check_services_tryouts = 1; 
     2894    } 
     2895} 
     2896 
     2897//MAILARCHIVER 
     2898function check_services_restart(){ 
     2899    //window.alert('check_services_restart invoked: expresso_mail_archive.enabled = ' + expresso_mail_archive.enabled + '\nArchiveServices = ' + ArchiveServices + '\nTryouts = ' + check_services_tryouts); 
     2900    try{ 
     2901        connector.setProgressBarText(get_lang('Wait: attempt %1 from %2...', check_services_tryouts, check_services_tryouts_limit)); 
     2902        if(check_services_tryouts <= 5){ 
     2903            try{ 
     2904                ArchiveServices = new web_service_mailarchiver_serpro__ArchiveServices(); 
     2905                ArchiveServices.url = mail_archive_protocol + "://" + mail_archive_host + ":" + mail_archive_port + "/arcserv/ArchiveServices"; 
     2906                window.clearInterval(ttintval2); 
     2907                //window.alert('ttintval2 cleaned up. ArchServ = ' + ArchiveServices); 
     2908                expresso_mail_archive.Restart(expresso_mail_archive); 
     2909            } 
     2910            catch (e){ 
     2911                //window.alert('check_services_restart failure [attempt ' + check_services_tryouts +'] :' + e); 
     2912                check_services_tryouts++; 
     2913                //window.setTimeout('check_services_restart()', check_services_interval); 
     2914                window.clearInterval(ttintval); 
     2915                //window.alert('ttintval cleaned up.'); 
     2916                ttintval2 = window.setTimeout('services_retry(true)',1); 
     2917                //window.alert('ttintval2 setted.'); 
     2918                //throw('check_services_restart failure [attempt ' + check_services_tryouts +'] :' + e); 
     2919            } 
     2920        } 
     2921        else{ 
     2922           /* if (document.getElementById(script_tag_id)) 
     2923               var tem_tag = true; 
     2924            else 
     2925               var tem_tag = false; 
     2926           */ 
     2927            //window.alert('else2 de check_services_restart...' + check_services_tryouts + '\ntag script? ' + tem_tag); 
     2928            write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!')); 
     2929            connector.hideProgressBar(); 
     2930            connector.resetProgressBarText(); 
     2931            check_services_tryouts = 1; 
     2932            //throw('else2 de check_services_restart...' + check_services_tryouts + '\ntag script? ' + tem_tag); 
     2933        } 
     2934    } 
     2935    catch (e){ 
     2936        //window.alert('else3 de check_services_restart... :O' + e); 
     2937        //check_services_tryouts++; 
     2938        //window.setTimeout('check_services_restart()', check_services_interval); 
     2939        write_msg(get_lang('Sorry, but Mail Archiver still seems to be sleeping. Check out your system services!')); 
     2940        connector.hideProgressBar(); 
     2941        connector.resetProgressBarText(); 
     2942        check_services_tryouts = 1; 
     2943    } 
     2944} 
Note: See TracChangeset for help on using the changeset viewer.