Ignore:
Timestamp:
11/11/11 16:42:49 (12 years ago)
Author:
wmerlotto
Message:

Ticket #2305 - Enviando alteracoes, desenvolvidas internamente na Prognus. Ultimas sincronizacoes...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/main.js

    r5158 r5172  
    603603 
    604604 
    605 function move_search_msgs(border_id, new_folder, new_folder_name){ 
    606605   
    607         if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( msgs_number, folder ) ){ 
     606function move_search_msgs(border_id, new_folder, new_folder_name, action){ 
     607 
     608        var msg_to_delete = ""; 
     609        var msg_to_move = ""; 
     610        var selected_messages = ''; 
     611        var temp_msg; 
     612        var remove_currente_folder = ""; 
     613        var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     614         
     615        var delete_msg = false; 
     616         
     617        if(new_folder_name == special_folders['Trash']){ 
     618                delete_msg = true; 
     619                } 
     620        selected_messages = get_selected_messages_search(); 
     621         
     622        if( preferences.use_local_messages == 1 && expresso_local_messages.isArchiving( selected_messages, folder ) ){ 
    608623          alert( "Impossivel mover mensagens que estão ainda estão sendo arquivadas." ); 
    609624          return; 
    610625        } 
    611  
    612         var selected_messages = ''; 
    613         var temp_msg; 
    614         var main_list = Element("tbody_box_"+getNumBoxFromTabId(currentTab)).childNodes; 
    615         for (j = 0; j < main_list.length; j++)  { 
    616                 var check_box = main_list[j].firstChild.firstChild; 
    617                 if(check_box && check_box.checked) { 
    618                         if (proxy_mensagens.is_local_folder(main_list[j].getAttribute('name'))) { 
    619                                 alert(get_lang("You cant manipulate local messages on search")); 
    620                                 return; 
    621                         } 
    622                         selected_messages += main_list[j].id + ','; 
    623                 } 
    624         } 
    625         selected_messages = selected_messages.substring(0,(selected_messages.length-1)); 
    626626        var handler_move_search_msgs = function(data){ 
    627627                if(!data || !data.msgs_number) 
    628628                        return; 
    629629                else if(data.deleted) { 
    630                         if (data.msgs_number.length == 1) 
     630                        if(data.no_move && data.move) 
     631                                alert(get_lang("Unable to remove the message (s) of shared folders which you do not have permission.")); 
     632                        else if (data.msgs_number.length == 1) 
    631633                                write_msg(get_lang("The message was deleted.")); 
    632634                        else 
    633635                                write_msg(get_lang("The messages were deleted.")); 
    634                 } 
    635                 else{ 
     636                }else if(data.status == false && data.move ){ 
     637                                        alert(get_lang("Unable to remove the message (s) of shared folders which you do not have permission.")); 
     638                }else if(data.status == false){ 
     639                                        alert(get_lang("You don't have permission for this operation in this shared folder!")); 
     640                                        return false; 
     641                }else{ 
    636642                        if (data.msgs_number.length == 1) 
    637643                                write_msg(get_lang("The message was moved to folder ") + lang_folder(data.new_folder_name)); 
     
    640646                } 
    641647 
     648                if(data.no_move){ 
     649                        var no_remove = data.no_move.split(','); 
     650                        var continua = true; 
     651                         
    642652                selected_messages = selected_messages.split(","); 
    643653                for (i = 0; i < selected_messages.length; i++){ 
    644                         removeAll(selected_messages[i]); 
    645                 } 
     654                                for(j = 0; j < no_remove.length; j++) 
     655                                        if(selected_messages[i] == no_remove[j]) 
     656                                                continua = false; 
     657                                if(continua)     
     658                                        removeAll(selected_messages[i]+'_s'+id_border); 
     659                                continua = true; 
     660                } 
     661                }else{ 
     662                        selected_messages = selected_messages.split(","); 
     663                        for (i = 0; i < selected_messages.length; i++){ 
     664                                removeAll(selected_messages[i]+'_s'+id_border); 
     665                 
     666                        } 
     667                } 
     668                 
    646669                // Update Box BgColor 
    647670                var box = Element("tbody_box_"+getNumBoxFromTabId(currentTab)).childNodes; 
    648                 if(main_list.length > 1){ 
     671                if(box.length > 1){ 
    649672                        updateBoxBgColor(box); 
    650673                } 
    651674                connector.purgeCache(); 
    652675 
     676                 
     677                if(remove_currente_folder != ""){ 
     678                        var mail_msg = Element('tbody_box').childNodes; 
     679                        remove_currente_folder = remove_currente_folder.substring(0,(remove_currente_folder.length-1)); 
     680                        remove_currente_folder = remove_currente_folder.split(","); 
     681                        for(i = 0; i < remove_currente_folder.length; i++) 
     682                                removeAll(remove_currente_folder[i]); 
     683 
     684                        // Update Box BgColor 
     685                        var box = Element("tbody_box"); 
     686                        if(box.childNodes.length > 0){ 
     687                                updateBoxBgColor(box.childNodes); 
     688                        } 
     689                        if(folder == get_current_folder()){ 
     690                                Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - remove_currente_folder.length; 
     691                        } 
     692                } 
     693                 
     694                draw_tree_folders(); 
    653695                EsearchE.refresh(); 
    654696        } 
     
    660702                        selected_msg_array = selected_messages.split(","); 
    661703                        for (i = 0; i < selected_msg_array.length; i++){ 
    662                                 var tr = Element(selected_msg_array[i]); 
    663                                 if (tr.getAttribute('name') == new_folder) 
     704                                var tr = Element(selected_msg_array[i]+'_s'+id_border); 
     705                                if(tr.getAttribute('name') == current_folder) 
     706                                        remove_currente_folder += tr.id.replace(/_[a-zA-Z0-9]+/,"")+','; 
     707                                if ((action == 'delete' && tr.getAttribute('name') == 'INBOX'+cyrus_delimiter+special_folders['Trash']) || !(parseInt(preferences.save_deleted_msg))) 
    664708                                { 
     709                                        msg_to_delete +=   ','+special_folders['Trash']+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
     710                                } 
     711                                else if (!(tr.getAttribute('name') == new_folder && action != 'delete')) 
     712                                { 
     713                                        msg_to_move = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
     714                                        selected_param += ','+msg_to_move+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
     715                                }else{ 
    665716                                        write_msg(get_lang('At least one message have the same origin')); 
    666717                                        return false; 
    667718                                } 
    668                                 trfolder = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    669                                         selected_param += ','+trfolder+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    670719                        } 
    671720                } 
    672721                else 
    673722                { 
    674                         var tr=Element(selected_messages); 
    675                         if (tr.getAttribute('name') == new_folder) 
    676                         { 
     723                        var tr=Element(selected_messages+'_s'+id_border); 
     724                        if(tr.getAttribute('name') == current_folder) 
     725                                        remove_currente_folder += tr.id.replace(/_[a-zA-Z0-9]+/,"")+','; 
     726                        if((action == 'delete' && tr.getAttribute('name') == 'INBOX'+cyrus_delimiter+special_folders['Trash']) || !(parseInt(preferences.save_deleted_msg))){ 
     727                                msg_to_delete = special_folders['Trash']+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
     728                        }else if (!(tr.getAttribute('name') == new_folder && action != 'delete')){ 
     729                                trfolder = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
     730                                selected_param=trfolder+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
     731                        }else{ 
    677732                                write_msg(get_lang('The origin folder and the destination folder are the same.')); 
    678733                                return false; 
    679734                        } 
    680                         trfolder = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
    681                         selected_param=trfolder+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
    682735                } 
    683736                var params = ""; 
    684                 if (!new_folder && parseInt(preferences.save_deleted_msg)){ 
     737                if(msg_to_delete != "" && msg_to_move != ""){ 
     738                        params += "&selected_messages_move="+url_encode(selected_param); 
     739                        params += "&new_folder_move="+url_encode(new_folder); 
     740                        params += "&new_folder_name_move="+url_encode(new_folder_name); 
     741                 
    685742                        new_folder = 'INBOX'+cyrus_delimiter+trashfolder; 
    686743                        new_folder_name = trashfolder; 
    687                         params = "&delete=true"; 
    688                 } 
    689  
    690                 params += "&selected_messages="+url_encode(selected_param); 
    691                 if(new_folder && parseInt(preferences.save_deleted_msg)) { 
     744                        params += "&selected_messages_delete="+url_encode(msg_to_delete); 
     745                        params += "&new_folder_delete="+url_encode(new_folder); 
     746                        cExecute ("$this.imap_functions.move_delete_search_messages", handler_move_search_msgs, params); 
     747                }else if(msg_to_delete != ""){ 
     748                        new_folder = 'INBOX'+cyrus_delimiter+trashfolder; 
     749                        new_folder_name = trashfolder; 
     750                        params += "&delete=true"; 
     751                        params += "&selected_messages="+url_encode(msg_to_delete); 
     752                        params += "&new_folder="+url_encode(new_folder); 
     753                        cExecute ("$this.imap_functions.move_search_messages", handler_move_search_msgs, params); 
     754                }else{ 
     755                        params = "&selected_messages="+url_encode(selected_param); 
     756                        params += "&delete=false"; 
    692757                        params += "&new_folder="+url_encode(new_folder); 
    693758                        params += "&new_folder_name="+url_encode(new_folder_name); 
    694                 } 
    695759                cExecute ("$this.imap_functions.move_search_messages", handler_move_search_msgs, params); 
     760        } 
    696761        } 
    697762        else 
     
    902967} 
    903968 
     969function archive_search_msgs(folder_dest) { 
     970         
     971        var id_msgs = ""; 
     972        id_msgs = get_selected_messages_search(); 
     973        var msg_to_arquive = ""; 
     974        var messages = ""; 
     975        var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     976 
     977        if ( parseInt(id_msgs) <= 0 || id_msgs.length <= 0 ) 
     978            return write_msg(get_lang('No selected message.')); 
     979         
     980        if(folder_dest=='local_root' || folder_dest==null) //Caso seja o primeiro arquivamento... 
     981            folder_dest = 'local_Inbox'; 
     982 
     983        id_msgs = expresso_local_messages.checkArchived( id_msgs, folder_dest ); 
     984 
     985        if( !id_msgs ){ 
     986            write_msg( "Todas as mensagens já foram arquivadas anteriormente." ); 
     987            return; 
     988        } 
     989   
     990        document.getElementById("overlay").style.visibility = "visible"; 
     991 
     992        var handler_arquivar_mensagens = function(data) { 
     993           
     994            var msgs_info = []; 
     995           
     996            for( var i = 0; i < data.length; i++ ) 
     997                msgs_info[i] = connector.unserialize( data[i] ); 
     998 
     999            //vejo se já tinha mensagens locais 
     1000            var h = expresso_local_messages.has_local_mails(); 
     1001             
     1002            expresso_local_messages.insert_mails( msgs_info, folder_dest, function( s, f ){complete_archiving( s, f, h )} ); 
     1003 
     1004            document.getElementById("overlay").style.visibility = "hidden"; 
     1005        } 
     1006 
     1007        id_msgs =  id_msgs.split(','); 
     1008        for (i = 0; i < id_msgs.length; i++){ 
     1009                var tr = Element(id_msgs[i]+'_s'+id_border); 
     1010                msg_to_arquive = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
     1011                messages += ','+msg_to_arquive+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
     1012        } 
     1013         
     1014        cExecute( "$this.imap_functions.get_info_msgs&messages=" + messages+"&folder="+folder_dest , handler_arquivar_mensagens ); 
     1015} 
     1016 
     1017 
    9041018function archive_msgs(folder,folder_dest,id_msgs) { 
    9051019        if(proxy_mensagens.is_local_folder(folder)) { 
     
    9121026        } 
    9131027 
    914         if(!id_msgs) 
     1028        if(!id_msgs){ 
     1029                if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
     1030                        archive_search_msgs(folder_dest); 
     1031                        return; 
     1032                }else 
    9151033                id_msgs = get_selected_messages(); 
     1034        }        
    9161035 
    9171036        if ( parseInt(id_msgs) <= 0 || id_msgs.length <= 0 ) 
     
    10021121            update_menu(); 
    10031122} 
     1123 
     1124function action_msg_selected_from_search(aba, evento){ 
     1125        if(evento == "delete") 
     1126                move_search_msgs(aba,'INBOX/Trash', 'Trash', 'delete'); 
     1127} 
     1128 
     1129function get_all_messages_search(){ 
     1130        var aba = document.getElementById('content_id_'+currentTab); 
     1131        var messages = ""; 
     1132        jQuery(function() { 
     1133            jQuery("#"+aba.id+" tr").each(function(i, main_list) {  
     1134                                messages += main_list.id.replace(/_[a-zA-Z0-9]+/,"") + ',' ; 
     1135            });               
     1136              
     1137        }); 
     1138        if(messages.indexOf(',') == 0) 
     1139                messages = messages.substring(1,(messages.length)); 
     1140        return messages.substring(0,(messages.length-1)); 
     1141} 
     1142 
     1143function get_selected_messages_search(){ 
     1144        var aba = document.getElementById('content_id_'+currentTab); 
     1145        var selected_messages = ""; 
     1146        jQuery(function() { 
     1147            jQuery("#"+aba.id+" tr").each(function(i, main_list) {  
     1148                var check_box = main_list.firstChild.firstChild; 
     1149                        if(check_box && check_box.checked) { 
     1150                                selected_messages += main_list.id.replace(/_[a-zA-Z0-9]+/,"") + ',' ; 
     1151                        }; 
     1152            });               
     1153              
     1154        }); 
     1155        if (selected_messages != ""){ 
     1156                if(selected_messages.indexOf(',') == 0) 
     1157                        selected_messages = selected_messages.substring(1,(selected_messages.length)); 
     1158                selected_messages = selected_messages.substring(0,(selected_messages.length-1)); 
     1159                return selected_messages; 
     1160        }else{ 
     1161                return false; 
     1162        } 
     1163} 
     1164 
    10041165 
    10051166function get_selected_messages(){ 
     
    15171678                                } 
    15181679                        } 
    1519                         RichTextEditor.setInitData(new_border_ID,'<div><br type="_moz"></div>' + data.body); 
     1680                        RichTextEditor.setInitData(new_border_ID, data.body, 'edit'); 
     1681       
    15201682                        break; 
    15211683                default: 
     
    24042566} 
    24052567 
     2568function print_search_msg(){             
     2569        var folder = "<h2>&nbsp;Resultado da Pesquisa&nbsp;<font color=\"#505050\" face=\"Verdana\" size=\"1\"></h2>"; 
     2570        msgs_number = get_selected_messages_search(); 
     2571        var tbody = Element('divScrollMain_'+numBox).firstChild.firstChild.innerHTML; 
     2572        var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     2573         
     2574        if(msgs_number){ 
     2575                msgs_number = msgs_number.split(","); 
     2576                var tbody = ""; 
     2577                for(var i = 0; i < msgs_number.length; i++){ 
     2578                        tbody += "<tr id=\""+msgs_number[i]+"_s"+id_border+"\" class=\"tr_msg_unread tr_msg_read2\">"+ Element(msgs_number[i]+'_s'+id_border).innerHTML+"</tr>"; 
     2579                } 
     2580        }else{ 
     2581                msgs_number = get_all_messages_search(); 
     2582                msgs_number = msgs_number.split(","); 
     2583                var tbody = ""; 
     2584                for(var i = 0; i < msgs_number.length; i++){ 
     2585                        tbody += "<tr id=\""+msgs_number[i]+"_s"+id_border+"\" class=\"tr_msg_unread tr_msg_read2\">"+ Element(msgs_number[i]+'_s'+id_border).innerHTML+"</tr>"; 
     2586                } 
     2587        } 
     2588 
     2589         
     2590        var print_width = screen.width - 200;  
     2591        var x = ((screen.width - print_width) / 2);  
     2592        var y = ((screen.height - 400) / 2) - 35;  
     2593        var window_print = window.open('','ExpressoMail','width='+print_width+',height=400,resizable=yes,scrollbars=yes,left='+x+',top='+y);  
     2594        seekDot = (is_ie ? /width=24/gi : /width="24"/gi);  
     2595 
     2596        var thead = "<tr class=\"message_header\"><td id=\"message_header_FOLDER_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">Pasta</td><td id=\"message_header_SORTFROM_0\" class=\"th_resizable\" align=\"left\" width=\"20%\">De</td><td id=\"message_header_SORTSUBJECT_0\" class=\"th_resizable\" align=\"left\" width=\"*\">Assunto</td><td id=\"message_header_SORTARRIVAL_0\" class=\"th_resizable\" align=\"center\" width=\"11%\"><b>Data</b><img src=\"templates/default/images/arrow_descendant.gif\"></td><td id=\"message_header_SORTSIZE_0\" class=\"th_resizable\" align=\"left\" width=\"11%\">Tamanho</td></tr>"; 
     2597        tbody = tbody.replace(seekDot, "style='display:none'");  
     2598        seekDot = (is_ie ? /width=16/gi : /width="16"/gi);  
     2599 
     2600        tbody = tbody.replace(seekDot, "style='display:none'");  
     2601        seekDot = (is_ie ? /width=12/gi : /width="12"/gi);  
     2602 
     2603        tbody = tbody.replace(seekDot, "style='display:none'");  
     2604        while (1){  
     2605                try{  
     2606                        window_print.document.open();  
     2607                    var html = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"><html>'  
     2608                    + '<head><link rel="stylesheet" type="text/css" href="templates/'+template+'/print.css"></head>'  
     2609                    + cabecalho + '</h4><hr>'  
     2610                    + '<h2>'+folder+'</h2><hr/><blockquote><font size="2">'  
     2611                    + '<table width="100%" cellpadding="0" cellspacing="0">'  
     2612                    + '<thead>' + thead + '</thead><tbody>' + tbody + '</tbody>'  
     2613                    + '</table></font></blockquote></body></html>';  
     2614                    window_print.document.write(html);  
     2615                    window_print.document.close();  
     2616                    break;  
     2617                }  
     2618                catch(e){  
     2619                        //alert(e.message);  
     2620                }  
     2621        }  
     2622        window_print.document.close();  
     2623        window_print.print();  
     2624} 
     2625 
    24062626function print_all(){ 
    24072627        if (openTab.type[currentTab] == 2) 
    24082628                return print_msg(current_folder,currentTab.substr(0,currentTab.indexOf("_r")),currentTab); 
    24092629 
     2630        if (currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
     2631                return print_search_msg(); 
     2632        } 
     2633                 
    24102634        var folder= Element('border_id_0').innerHTML; 
    24112635        //var thead = Element('divScrollHead_'+numBox).firstChild.firstChild.innerHTML;  
     
    26312855                return; 
    26322856        } 
    2633         var msgs_to_export = this.get_selected_messages(); 
    2634  
     2857        var search = false; 
     2858        var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     2859 
     2860        if(currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
     2861                var msgs_to_export = this.get_selected_messages_search(); 
     2862                if (!msgs_to_export){ 
     2863                        write_msg(get_lang('No selected message.')); 
     2864                        return; 
     2865                } 
     2866                var selected_param = ""; 
     2867                msgs_to_export = msgs_to_export.split(","); 
     2868                search = true; 
     2869                for (i = 0; i < msgs_to_export.length; i++){ 
     2870                        var tr = Element(msgs_to_export[i]+'_s'+id_border); 
     2871                        msg_to_move = (tr.getAttribute('name') == null?get_current_folder():tr.getAttribute('name')); 
     2872                        selected_param += ','+msg_to_move+';'+tr.id.replace(/_[a-zA-Z0-9]+/,""); 
     2873                } 
     2874        }else{ 
     2875                var msgs_to_export = this.get_selected_messages(); 
     2876        } 
    26352877        var handler_export_all_selected_msgs = function(data){ 
    26362878 
     
    26472889        } 
    26482890 
    2649         if (msgs_to_export) { 
     2891        if(search){ 
     2892                cExecute ("$this.exporteml.makeAll", handler_export_all_selected_msgs, "folder=false&msgs_to_export="+selected_param); 
     2893        }else if (msgs_to_export) { 
    26502894                cExecute ("$this.exporteml.makeAll", handler_export_all_selected_msgs, "folder="+get_current_folder()+"&msgs_to_export="+msgs_to_export); 
    26512895                write_msg(get_lang('You must wait while the messages will be exported...')); 
     
    27703014        if(currentTab.toString().indexOf("_r") != -1) 
    27713015                msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r")); 
    2772         else if(msgs_number == 'selected') 
     3016        else if(currentTab != 0 && currentTab.indexOf("search_")  >= 0){ 
     3017                var content_search = document.getElementById('content_id_'+currentTab);  'INBOX/Trash', 'Trash', 
     3018                move_search_msgs('content_id_'+currentTab,  'INBOX'+cyrus_delimiter+special_folders['Spam'], special_folders['Spam']); 
     3019                refresh(); 
     3020                return; 
     3021        }else if(msgs_number == 'selected') 
    27733022                msgs_number = get_selected_messages(); 
    27743023 
Note: See TracChangeset for help on using the changeset viewer.