Ignore:
Timestamp:
07/12/12 00:22:01 (12 years ago)
Author:
angelo
Message:

Ticket #2954 - Selecionar todas as mensagens de uma pasta independente de paginacao

Location:
sandbox/2.4.2-expresso2/expressoMail1_2
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • sandbox/2.4.2-expresso2/expressoMail1_2/inc/class.imap_functions.inc.php

    r6720 r6762  
    36993699                        $this->mbox = $this->open_mbox($folder); 
    37003700 
     3701                if($offsetEnd == 0 && $offsetBegin == 0){ 
     3702                        $offsetEnd = imap_num_msg($this->mbox); 
     3703                        $offsetBegin = 1; 
     3704                } 
    37013705                return $this->messages_sort($sort_box_type,$sort_box_reverse, $search_box_type,$offsetBegin,$offsetEnd,$folder); 
    37023706        } 
  • sandbox/2.4.2-expresso2/expressoMail1_2/js/common_functions.js

    r6707 r6762  
    11231123        if (select) 
    11241124        { 
     1125                                 
    11251126                for (i=0; i<len_main_list; i++) 
    11261127                { 
     
    11351136                                $("#"+main_list[i].id).addClass("current_selected");             
    11361137                        } 
     1138                         
     1139                        selectedMessages[main_list[i].id] = true; 
     1140                } 
     1141                if (!allMsgsSelected){ 
     1142                        var folder = get_current_folder().split(cyrus_delimiter); 
     1143                        folder = folder.indexOf('INBOX') != -1 ? get_lang(folder[folder.length - 1]) : folder ; 
     1144                        var div = $('.select-all-messages'); 
     1145                        div.html(""); 
     1146                        var link = "<a class='select-link'>Selecionar todas as "+$('#tot_m').text()+" mensagens em "+folder+"?</a>"; 
     1147                        var info = "Todas as "+$('#table_box tr').length+" mensagens desta página foram selecionadas. "+link; 
     1148                        div.html("<span>"+info+"<span>"); 
     1149                        div.show(); 
     1150                        $('.select-link').bind('click',function(){selectAllFolderMsgs(true);$('.select-link').unbind('click');});                                        
    11371151                } 
    11381152        } 
     
    11451159                        $("#"+main_list[i].id).removeClass("selected_msg"); 
    11461160                        $("#"+main_list[i].id).removeClass("current_selected"); 
    1147                 } 
     1161                        selectedMessages[main_list[i].id] = false; 
     1162                } 
     1163                if (allMsgsSelected){ 
     1164                        allMsgsSelected = false; 
     1165                        updateSelectedMsgs(); 
     1166                } 
     1167                else $('.select-all-messages').hide(); 
     1168                 
    11481169        } 
    11491170         
  • sandbox/2.4.2-expresso2/expressoMail1_2/js/draw_api.js

    r6760 r6762  
    1212canMakeBox = true; 
    1313fastSearch = false; 
     14var selectedMessages = {}; 
     15var allMsgsSelected = false; 
     16 
     17 
    1418 
    1519onceOpenedHeadersMessages = {}; 
     
    532536                } 
    533537                proxy_mensagens.messages_list(current_folder,1,preferences.max_email_per_page,sort_box_type,search_box_type,sort_box_reverse,preferences.preview_msg_subject,preferences.preview_msg_tip,handler_draw_box); 
     538                var  handler_populateSelectedMsgs = function(data){ 
     539                        populateSelectedMsgs(data); 
     540                } 
     541                cExecute ("$this.imap_functions.get_msgs&folder="+current_folder+"&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1", handler_populateSelectedMsgs); 
     542         
    534543        } 
    535544        else{ 
     
    10281037} 
    10291038 
     1039 
     1040/*Cria a div que permite a seleção de todas as mensagens*/ 
     1041function drawSelectMsgsTable(){ 
     1042        var div = $('<div>');    
     1043        div.attr('class','select-all-messages');  
     1044        $('#content_id_'+currentTab).first().prepend(div); 
     1045        div.css('display','none');               
     1046} 
     1047 
     1048/*Atualiza o array de mensagens selecionadas*/ 
     1049function updateSelectedMsgs(selected,msg_number){        
     1050        var folder = get_current_folder().split(cyrus_delimiter); 
     1051        folder = folder.indexOf('INBOX') != -1 ? get_lang(folder[folder.length - 1]) : folder ; 
     1052        var div = $('.select-all-messages'); 
     1053        var totalSelected = function(){ 
     1054                var total = 0; 
     1055                for(var obj in selectedMessages) 
     1056                        if (selectedMessages[obj] == true) 
     1057                                total++; 
     1058                return total; 
     1059        }; 
     1060        /*Seleciona as mensagens ao navegar pelas páginas*/ 
     1061        if (allMsgsSelected && msg_number == undefined){ 
     1062                $('.checkbox').each(function(){ 
     1063                        $(this).attr('checked', true); 
     1064                        $(this).parent().parent().addClass('selected_msg'); 
     1065                }); 
     1066        } 
     1067        else if (msg_number == undefined){       
     1068                for(var obj in selectedMessages){ 
     1069                        if (selectedMessages[obj] == true){ 
     1070                                $('#check_box_message_'+obj).attr('checked', true); 
     1071                                $('#check_box_message_'+obj).parent().parent().addClass('selected_msg'); 
     1072                        } 
     1073                } 
     1074        } 
     1075        if (selected && msg_number != undefined){ 
     1076                selectedMessages[msg_number] = true; 
     1077                $(this).parent().parent().addClass('selected_msg');              
     1078        } 
     1079        else if(!selected && msg_number != undefined){ 
     1080                selectedMessages[msg_number] = false; 
     1081                $(this).parent().parent().removeClass('selected_msg'); 
     1082                allMsgsSelected = false; 
     1083        } 
     1084 
     1085        /*Mensagens selecionadas uma a uma via checkbox 
     1086        if (selected){ 
     1087                        selectedMessages[msg_number] = true;                     
     1088        }                
     1089        else{ 
     1090                        selectedMessages[msg_number] = false; 
     1091                        $('#check_box_message_'+msg_number).attr('checked', false); 
     1092                        $('#check_box_message_'+msg_number).parent().parent().removeClass('selected_msg'); 
     1093                        $('#check_box_message_'+msg_number).parent().parent().removeClass('selected_shortcut_msg'); 
     1094                        allMsgsSelected = false; 
     1095                         
     1096        }       */ 
     1097        /*Se foram selecionadas algumas mensagens*/ 
     1098        if (totalSelected() > 0 && !allMsgsSelected){ 
     1099                div.html(""); 
     1100                var link = "<a class='select-link'>Limpar seleção?</a>"; 
     1101                var info = "Foram selecionadas "+totalSelected()+" mensagens em "+folder+". "+link; 
     1102                div.html("<span>"+info+"<span>"); 
     1103                div.show(); 
     1104                $('.select-link').bind('click',function(){selectAllFolderMsgs();$('.select-link').unbind('click');});            
     1105        } 
     1106        else if (allMsgsSelected){ 
     1107                div.html(""); 
     1108                var link = "<a class='select-link'>Limpar seleção?</a>"; 
     1109                var info = "Todas as "+$('#tot_m').text()+" mensagens em "+folder+" foram selecionadas. "+link; 
     1110                div.html("<span>"+info+"<span>"); 
     1111                div.show(); 
     1112                $('.select-link').bind('click',function(){selectAllFolderMsgs();$('.select-link').unbind('click');}); 
     1113        }  
     1114} 
     1115 
     1116/*Seleciona ou desseleciona todas as mensagens da pasta*/ 
     1117function selectAllFolderMsgs(select){ 
     1118        var folder = get_current_folder().split(cyrus_delimiter); 
     1119        folder = folder.indexOf('INBOX') != -1 ? get_lang(folder[folder.length - 1]) : folder ; 
     1120        var div = $('.select-all-messages'); 
     1121        if (select){ 
     1122                allMsgsSelected = true; 
     1123                div.html(""); 
     1124                var link = "<a class='select-link'>Limpar seleção?</a>"; 
     1125                var info = "Todas as "+$('#tot_m').text()+" mensagens em "+folder+" foram selecionadas. "+link; 
     1126                div.html("<span>"+info+"<span>"); 
     1127                div.show(); 
     1128                $('.select-link').bind('click',function(){selectAllFolderMsgs();$('.select-link').unbind('click');});            
     1129                for(var obj in selectedMessages){ 
     1130                        selectedMessages[obj] = true; 
     1131                } 
     1132         
     1133        }else{ 
     1134                allMsgsSelected = false; 
     1135                for(var obj in selectedMessages){ 
     1136                        selectedMessages[obj] = false; 
     1137                } 
     1138                div.hide(); 
     1139        } 
     1140} 
     1141/*Carrega o array de mensagens da pasta*/ 
     1142function populateSelectedMsgs(data){ 
     1143        for(obj in selectedMessages){ 
     1144                delete selectedMessages[obj]; 
     1145        } 
     1146        $.each(data, function(index, value){ 
     1147                if(value != undefined){ 
     1148                        selectedMessages[value] = false; 
     1149                } 
     1150        }); 
     1151        delete selectedMessages[undefined]; 
     1152} 
     1153 
     1154 
    10301155// Draw the inbox and another folders 
    10311156function draw_box(headers_msgs, msg_folder, alternate){ 
     
    11091234                chk_box_element.className = "checkbox"; 
    11101235                chk_box_element.onclick = function(){select_all_messages(this.checked);}; 
    1111                 chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages from this page.')}; 
     1236                chk_box_element.onmouseover = function () {this.title=get_lang('Select all messages from this page.'); }; 
    11121237                chk_box_element.onkeydown = function (e){ 
    11131238                        if (is_ie) 
     
    12641389        _divScroll.appendChild(table_element); 
    12651390        openTab.content_id[numBox].appendChild(_divScroll); 
    1266  
     1391         
    12671392        var f_unseen = 0; 
    12681393 
    12691394        document.getElementById("table_message_header_box_"+numBox).emptyBody = false; 
    1270  
     1395         
    12711396        if (headers_msgs.num_msgs == 0) 
    12721397                showEmptyBoxMsg(tbody_element); 
     
    13581483                select_msg(headers_msgs[0].msg_number, 'null', true); 
    13591484                 
    1360  
     1485         
    13611486        var tdFolders  =  Element("folderscol"); 
    13621487        tdFolders.style.display = preferences.hide_folders == '1'  ? "none" : ""; 
     
    14191544                document.getElementById("exmail_main_body").appendChild(ruler_element); 
    14201545    } 
    1421                                  
     1546                drawSelectMsgsTable(); 
     1547                updateSelectedMsgs(); 
    14221548} 
    14231549 
     
    14951621                 
    14961622                $(chk_box_element).click(function(e){ 
     1623                                updateSelectedMsgs($(this).is(':checked'),headers_msgs.msg_number); 
    14971624                                changeBgColor(e,headers_msgs.msg_number); 
    14981625                }); 
  • sandbox/2.4.2-expresso2/expressoMail1_2/js/main.js

    r6721 r6762  
    2020        }  
    2121} 
    22          
    23  
    2422         
    2523function mount_url_folder(folders){ 
     
    107105                         
    108106                } 
     107                /*Carrega a lista de mensagens*/ 
     108                var  handler_populateSelectedMsgs = function(data){ 
     109                        populateSelectedMsgs(data); 
     110                } 
     111                cExecute ("$this.imap_functions.get_msgs&folder=INBOX&sort_box_type=SORTARRIVAL&search_box_type=ALL&sort_box_reverse=1&msg_range_begin=1", handler_populateSelectedMsgs); 
    109112                //Substituido por padrão Jquery 
    110113                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); 
  • sandbox/2.4.2-expresso2/expressoMail1_2/templates/default/main.css

    r6752 r6762  
    14411441    background: #ADD9ED; 
    14421442} 
     1443 
     1444.select-all-messages{ 
     1445        min-height: 20px; 
     1446        font-size: 12px; 
     1447        white-space: nowrap; 
     1448        text-align: center; 
     1449} 
Note: See TracChangeset for help on using the changeset viewer.