Ignore:
Timestamp:
07/18/11 11:39:34 (13 years ago)
Author:
rafaelraymundo
Message:

Ticket #2066 - Menu de contexto não funciona corretamente em todos resultados de pesquisa

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/2.3/expressoMail1_2/js/main.js

    r4703 r4782  
    855855        var main_list = main.childNodes; 
    856856 
    857         var _tab_prefix = getTabPrefix(); 
     857        var _check_box; 
    858858        var selected_messages = ''; 
    859859        var selected_messages_by_shortcuts = ''; 
     
    861861        for (j; j<(main_list.length); j++) 
    862862        { 
    863  
    864         check_box = Element(_tab_prefix + "check_box_message_" + getMessageIdFromRowId(main_list[j].id)); 
    865          
    866         if ( (check_box) && (check_box.checked) ) 
    867                 selected_messages += main_list[j].id + ','; 
     863                _check_box = Element("check_box_message_" + main_list[j].id); 
     864 
     865                if ( (_check_box) && (_check_box.checked) ) 
     866                    selected_messages += main_list[j].id + ','; 
    868867 
    869868                if (preferences.use_shortcuts == '1') 
     
    894893        else 
    895894                return selected_messages; 
     895} 
     896 
     897function get_selected_messages_folder(){ 
     898        var _main; 
     899        var _main_list; 
     900        try{ 
     901                _main = document.getElementById("divScrollMain_"+numBox).firstChild.firstChild; 
     902        }catch(e){ 
     903        }; 
     904 
     905        if (! _main) 
     906                _main = Element("tbody_box_"+numBox); 
     907 
     908        if (! _main) 
     909                _main = Element("tbody_box"); 
     910 
     911        // Get all TR (messages) in tBody. 
     912        _main_list = _main.childNodes; 
     913 
     914        var _check_box; 
     915        var selected_messages_folder; 
     916//      var selected_messages_by_shortcuts = ''; 
     917        var j = 0; 
     918        for (j; j<(_main_list.length); j++) 
     919        { 
     920 
     921                _check_box = Element("check_box_message_" + _main_list[j].id); 
     922 
     923                if ( (_check_box) && (_check_box.checked) && (_main_list[j].name) ) { 
     924                        if (!selected_messages_folder) 
     925                                selected_messages_folder = _main_list[j].name; 
     926                        else { 
     927                                if (selected_messages_folder!=_main_list[j].name) 
     928                                        return false; 
     929                        } 
     930                } 
     931        } 
     932        return selected_messages_folder; 
    896933} 
    897934 
     
    20532090function set_messages_flag(flag, msgs_to_set){ 
    20542091        var handler_set_messages_flag = function (data){ 
     2092                var _tab_sufix = getTabSufix(); 
     2093                var _chk_box; 
     2094                var _fld_box; 
    20552095                if(!verify_session(data)) 
    20562096                        return; 
    2057                 var msgs_to_set = data.msgs_to_set.split(","); 
     2097                var msgs_to_set = data.msgs_to_set.split(","); // messages ids 
     2098                var rowids_to_set = data.rowids_to_set.split(","); // rows ids 
    20582099 
    20592100                if(!data.status) { 
     
    20612102                        Element('chk_box_select_all_messages').checked = false; 
    20622103                        for (var i = 0; i < msgs_to_set.length; i++) { 
    2063                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
    2064                                 remove_className(Element(msgs_to_set[i]), 'selected_msg'); 
     2104                                Element("check_box_message_" + rowids_to_set[i]).checked = false; 
     2105                                remove_className(Element(rowids_to_set[i]), 'selected_msg'); 
    20652106                        } 
    20662107                        if(!data.msgs_unflageds) 
     
    20922133                                } 
    20932134                                proxy_mensagens.get_msg(msgs_to_set[i],current_folder, false, setFlag); 
    2094  
    2095  
    2096                         } 
    2097                         if(Element("check_box_message_" + msgs_to_set[i])){ 
     2135                        } 
     2136 
     2137                        _chk_box = Element("check_box_message_" + rowids_to_set[i]); 
     2138                        _fld_box = (_tab_sufix ? Element("check_box_message_" + msgs_to_set[i]) : null); 
     2139                        if(_chk_box){ 
    20982140                                switch(data.flag){ 
    20992141                                        case "unseen": 
    2100                                                 set_msg_as_unread(msgs_to_set[i]); 
    2101                                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
     2142                                                set_msg_as_unread(rowids_to_set[i]); 
     2143                                                if (_fld_box) 
     2144                                                    set_msg_as_unread(msgs_to_set[i]); 
     2145                                                _chk_box.checked = false; 
    21022146                                                break; 
    21032147                                        case "seen": 
    2104                                                 set_msg_as_read(msgs_to_set[i], false); 
    2105                                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
     2148                                                set_msg_as_read(rowids_to_set[i], false); 
     2149                                                if (_fld_box) 
     2150                                                        set_msg_as_read(msgs_to_set[i]); 
     2151                                                _chk_box.checked = false; 
    21062152                                                break; 
    21072153                                        case "flagged": 
    2108                                                 set_msg_as_flagged(msgs_to_set[i]); 
    2109                                                 document.getElementById("check_box_message_" + msgs_to_set[i]).checked = false; 
     2154                                                set_msg_as_flagged(rowids_to_set[i]); 
     2155                                                if (_fld_box) 
     2156                                                    set_msg_as_flagged(msgs_to_set[i]); 
     2157                                                _chk_box.checked = false; 
    21102158                                                break; 
    21112159                                        case "unflagged": 
    2112                                                 set_msg_as_unflagged(msgs_to_set[i]); 
    2113                                                 Element("check_box_message_" + msgs_to_set[i]).checked = false; 
     2160                                                set_msg_as_unflagged(rowids_to_set[i]); 
     2161                                                if (_fld_box) 
     2162                                                    set_msg_as_unflagged(msgs_to_set[i]); 
     2163                                                _chk_box.checked = false; 
    21142164                                                break; 
    21152165                                } 
     
    21202170 
    21212171        var folder = get_current_folder(); 
    2122         if (msgs_to_set == 'get_selected_messages') 
     2172        if (msgs_to_set == 'get_selected_messages') { 
    21232173                var msgs_to_set = this.get_selected_messages(); 
     2174                if ( (msgs_to_set) && (msgs_to_set.match(/_s/)) ) { 
     2175                        folder = get_selected_messages_folder(); 
     2176                        if (!folder) { 
     2177                                alert(get_lang("You cant manipulate messages from multiple folders on search")); 
     2178                                return; 
     2179                        } 
     2180                } 
     2181        } 
    21242182        else 
    21252183                folder = Element("input_folder_"+msgs_to_set+"_r").value; 
    21262184 
    21272185        if (msgs_to_set) 
     2186                if (folder && proxy_mensagens.is_local_folder(folder)) 
     2187                        expresso_local_messages.set_messages_flag(msgs_to_set, flag); //expresso_local_messages.set_messages_flag(msgs_to_set.replace(/_s[^,]*/g,""), flag); 
     2188                else 
    21282189                cExecute ("$this.imap_functions.set_messages_flag&folder="+folder+"&msgs_to_set="+msgs_to_set+"&flag="+flag, handler_set_messages_flag); 
    21292190        else 
Note: See TracChangeset for help on using the changeset viewer.