Changeset 5548


Ignore:
Timestamp:
02/24/12 15:37:35 (12 years ago)
Author:
marcieli
Message:

Ticket #2486 - Resolvida logica para sinalizar/marcar e exibir sinalizadores e marcadores na busca de mensagens.

Location:
trunk
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/inc/class.imap_functions.inc.php

    r5541 r5548  
    51935193                                { 
    51945194                                        $followupflag = Controller::read( array( 'concept' => 'followupflag', 'id' => $followupflagged[0]['followupflagId'] ));      
    5195                                         //$followupflagged[0]['followupflag'] = []; 
    51965195                                        $followupflagged[0]['followupflag'] = $followupflag; 
    51975196                                        $return['msgs'][$i]['followupflagged'] = $followupflagged[0]; 
  • trunk/expressoMail1_2/js/doiMenuData.js

    r5539 r5548  
    4242                                }        
    4343                                var lableleds = new Array(); 
    44                                  
     44                                var msg_folder = current_folder; 
     45                                var messages = []; 
    4546                                if(currentTab == 0){ 
    46                                         var messages = get_selected_messages().split(','); 
     47                                        var id = get_selected_messages().split(','); 
     48                                        for (i = 0; i < id.length; i++){ 
     49                                                messages.push({ 
     50                                                        "msg_number": id[i], 
     51                                                        "msg_folder": msg_folder, 
     52                                                }); 
     53                                        } 
    4754                                }else{ 
    48                                         var messages = get_selected_messages_search().split(','); 
     55                                        var id = get_selected_messages_search().split(','); 
     56                                        var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     57                                        for (i = 0; i < id.length; i++){ 
     58                                                var tr = Element(id[i]+'_s'+id_border); 
     59                                                msg_folder = tr.getAttribute('name');  
     60                                                messages.push({ 
     61                                                        "msg_number": id[i], 
     62                                                        "msg_folder": msg_folder, 
     63                                                }); 
     64                                        }        
    4965                                } 
    5066 
     
    5369                                                        'AND', 
    5470                                                        ['=', 'labelId', label.id],  
    55                                                         ['=', 'folderName', current_folder],  
    56                                                         ['=', 'messageNumber', messages[i]] 
     71                                                        ['=', 'folderName', messages[i].msg_folder],  
     72                                                        ['=', 'messageNumber', messages[i].msg_number] 
    5773                                        ]); 
    5874                                        if (!hasLabel) { 
     
    6076                                                        DataLayer.put('labeled', { 
    6177                                                                labelId:label.id,  
    62                                                                 folderName:current_folder,  
    63                                                                 messageNumber:messages[i] 
     78                                                                folderName:messages[i].msg_folder,  
     79                                                                messageNumber:messages[i].msg_number 
    6480                                                        }) 
    6581                                                ); 
     
    6884                                } 
    6985                                DataLayer.commit(); 
    70                                 for (var i=0; i < messages.length; i++) { 
    71                                         updateLabelsColumn({msg_number:messages[i], labels:false}); 
    72                                 } 
     86                                        for (var i=0; i < messages.length; i++) { 
     87                                                updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false}); 
     88                                        } 
    7389                        } 
    7490                }, 
     
    97113                "i01": {"name": get_lang("Preferences"), "icon": "preferences-mail", callback: preferences_mail }, 
    98114                "i02": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }}, 
    99                 "103": {"name": get_lang("Edit filters"), "icon": "filter", callback: filterbox2 }, 
     115                "103": {"name": get_lang("Edit filters"), "icon": "filter", callback: filterbox }, 
    100116                "i04": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox }, 
    101117                "i05": {"name": get_lang("Share mailbox"), "icon": "share-mailbox", callback: sharebox }, 
     
    144160 
    145161function updateLabelsColumn(messageInfo) { 
    146         $('#td_message_labels_' + messageInfo.msg_number +', #td_message_labels_search_' + messageInfo.msg_number) 
     162        var msg_number = messageInfo.msg_number; 
     163        if(messageInfo.uid != '' && messageInfo.uid != 'undefined' && messageInfo.uid != null){ 
     164                msg_number = messageInfo.uid; 
     165        } 
     166        $('#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number) 
    147167        .html('<img src="../prototype/modules/mail/img/tag.png">'); 
    148  
     168         
     169        var msg_folder = current_folder; 
     170        if(messageInfo.boxname != '' && messageInfo.boxname != 'undefined' && messageInfo.boxname != null){ 
     171                msg_folder = messageInfo.boxname; 
     172        } 
    149173        var menuItems = {}; 
    150174        if (messageInfo.labels) { 
     
    152176        } else { 
    153177                var labeleds = DataLayer.get('labeled', { 
     178                        criteria: {deepness: '2', 
    154179                        filter: [ 
    155180                                'AND', 
    156                                 ['=', 'folderName', current_folder],  
    157                                 ['=', 'messageNumber', messageInfo.msg_number] 
    158                         ], 
    159                         criteria: {deepness: 2} 
     181                                ['=', 'folderName', msg_folder],  
     182                                ['=', 'messageNumber', msg_number] 
     183                        ]} 
     184                         
    160185                }); 
    161186                if (labeleds) { 
     
    168193        } 
    169194 
    170         $.contextMenu( 'destroy', '#td_message_labels_' + messageInfo.msg_number +', #td_message_labels_search_' + messageInfo.msg_number); 
     195        $.contextMenu( 'destroy', '#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number); 
    171196 
    172197        $.contextMenu({ 
    173                 selector: '#td_message_labels_' + messageInfo.msg_number +', #td_message_labels_search_' + messageInfo.msg_number, 
     198                selector: '#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number, 
    174199                trigger: 'hover', 
    175200                delay:100, 
  • trunk/expressoMail1_2/js/draw_api.js

    r5544 r5548  
    16871687                                        followupflag: DataLayer.get('followupflag', '1') 
    16881688                                }; 
    1689                                 $(this).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor); 
     1689                                $('#td_message_followup_' + messageClickedId + ', ' +  
     1690                                '#td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor); 
     1691                                //$(this).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor); 
    16901692                                headers_msgs.followupflagged.id = DataLayer.put('followupflagged', headers_msgs.followupflagged); 
    16911693                                 
     
    16961698                                 $(this).find(".flag-edited").css("background", "#cccccc"); 
    16971699 
    1698  
    16991700                                DataLayer.remove('followupflagged', flagged[0].id); 
    17001701                                $('#td_message_followup_' + messageClickedId + ', ' +  
    1701                                 '#td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    1702                                 .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
     1702                                  '#td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", '#CCC'); 
     1703                                $('#td_message_followup_' + messageClickedId + ', ' +  
     1704                                        '#td_message_followup_search_' + messageClickedId).find(".flag-edited") 
     1705                                        .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
    17031706                        } else { 
    17041707                                $(tr_element).addClass('selected_msg').find(':checkbox').trigger('click'); 
  • trunk/expressoMail1_2/js/search.js

    r5533 r5548  
    442442         
    443443        searchE.prototype.make_tr_message = function(aux,border_id,i) { 
    444         console.log(aux); 
    445444        /** 
    446445         * Preenche a estrutura de cache de mensagens para posterior consulta de  
     
    460459                var uid_msg = aux.uid; 
    461460                var subject = aux.subject; 
     461                var labels = aux.labels; 
     462                var followupflagged = aux.followupflagged; 
    462463 
    463464                tr.id = uid_msg+"_s"+numBox; 
     
    555556                                                        followupflag: DataLayer.get('followupflag', '1') 
    556557                                                }; 
    557                                                 $(this).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 
     558                                                $('#td_message_followup_' + messageClickedId + ', ' +  
     559                                                '#td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", aux.followupflagged.backgroundColor);                                          
     560                                                //$(this).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 
    558561                                                aux.followupflagged.id = DataLayer.put('followupflagged', aux.followupflagged); 
    559562                                                 
     
    567570                                                DataLayer.remove('followupflagged', flagged[0].id); 
    568571                                                $('#td_message_followup_' + messageClickedId + ', ' +  
    569                                                 '#td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    570                                                 .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
     572                                                  '#td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", '#CCC'); 
     573                                                $('#td_message_followup_' + messageClickedId + ', ' +  
     574                                                        '#td_message_followup_search_' + messageClickedId).find(".flag-edited") 
     575                                                        .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
    571576                                        } else { 
    572577                                                //TODO - open dialog 
     
    717722                                } 
    718723                                 
     724 
    719725                                tr.appendChild(td); 
    720726                        } 
     
    792798                if ( data == undefined ) 
    793799                        return; 
     800 
     801                ////////////////////////////////////////////////////////////////////// 
     802                /** 
     803                 * Get the labels aplyed to the messages and saves the information  
     804                 * into message array  
     805                 */ 
     806 
     807                var msg_folder = get_current_folder();  
     808                var messageNumbers = new Array(); 
     809                var messageFolders = new Array(); 
     810                for (var i=0; i<data.length; i++) { 
     811                        messageNumbers.push(data[i].uid); 
     812                        messageFolders.push(data[i].boxname); 
     813                } 
     814                 
     815 
     816                // var labeleds = DataLayer.get('labeled', { 
     817                                // filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', messageFolders]], 
     818                                // criteria: {deepness: 2} 
     819                // }); 
     820 
     821                // if(labeleds) { 
     822                        // for (var i=0; i<data.length; i++) { 
     823                                // for (var j=0; j<labeleds.length; j++) { 
     824                                        // if (labeleds[j].messageNumber == data[i].uid) { 
     825                                                // if (!data[i].labels) 
     826                                                        // data[i].labels = {}; 
     827                                                // data[i].labels[labeleds[j].label.id] = labeleds[j].label; 
     828                                        // } 
     829                                // } 
     830                        // } 
     831                // } 
     832 
     833                /** 
     834                 * Get the followupflags aplyed to the messages and saves the information  
     835                 * into message array  
     836                 */ 
     837                  
     838                // var followupflaggeds = DataLayer.get('followupflagged', { 
     839                                // filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', messageFolders]], 
     840                                // criteria: {deepness: 2} 
     841                        // }); 
     842 
     843                // if(followupflaggeds) { 
     844                        // for (var i=0; i<data.length; i++) { 
     845                                // for (var j=0; j<followupflaggeds.length; j++) { 
     846                                        // if (followupflaggeds[j].messageNumber == data[i].uid) { 
     847                                                // if (!data[i].followupflagged) 
     848                                                        // data[i].followupflagged = {}; 
     849                                                // data[i].followupflagged = followupflaggeds[j]; 
     850                                        // } 
     851                                // } 
     852                        // } 
     853                // } 
     854                ///////////////////////////////////////////////////////////////////////// 
    794855         
    795856                var cont = parseInt(0); 
  • trunk/prototype/modules/mail/js/followupflag.js

    r5547 r5548  
    275275                var alarmDate = false; 
    276276                var doneDate  = false; 
    277                  
     277                var folder_name; 
     278                var folders = []; 
     279                var messages = []; 
    278280                for (var i=0; i < selectedMessageIds.length; i++ ){ 
     281                        if (currentTab == 0) { 
     282                                folder_name = current_folder; 
     283                        }else{ 
     284                                var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     285                                var tr = Element(selectedMessageIds[i]+'_s'+id_border); 
     286                                folder_name = tr.getAttribute('name'); 
     287                        } 
    279288                        var messageNumber   = selectedMessageIds[i]; 
     289                        folders.push(folder_name); 
     290                         
    280291                        //var followupflag = DataLayer.get('followupflag', followupflagId.toString()), 
    281292                        var idFollowupflagged = winElement.find('.id-followup').val(); 
     
    283294                                uid : User.me.id, 
    284295                                followupflagId : followupflagId,  
    285                                 folderName : current_folder,  
     296                                folderName : folder_name,  
    286297                                messageNumber : messageNumber,  
    287298                                //alarmDeadline : winElement.find('[name="alarmDate"]').datepicker("getDate"),  
     
    313324                         
    314325                        $('#td_message_followup_' + messageNumber + ', ' +  
    315                           '#td_message_followup_search_' + messageNumber).find(".flag-edited").css("background", backgroundColor); 
    316                            
     326                          '#td_message_followup_search_' + messageNumber).find(".flag-edited").css("background", backgroundColor);  
    317327                        DataLayer.put('followupflagged', followupflagged); 
    318328                } 
     
    322332                        winElement.find('.id-followup').val(id); 
    323333                });              
    324                  
    325                 //onceOpenedHeadersMessages[current_folder][followupflagged.messageNumber]['followupflagged']['followupflag'] = {}; 
    326334                var extend = DataLayer.get('followupflagged', { 
    327                 filter: ['AND', ['IN', 'messageNumber', selectedMessageIds], ['=', 'folderName', current_folder]],criteria: {deepness: 1}}); 
     335                filter: ['AND', ['IN', 'messageNumber', selectedMessageIds], ['IN', 'folderName', folders]],criteria: {deepness: 1}}); 
    328336                if(extend != "" || extend != 'undefined' || extend != []){ 
    329337                        for(var ex = 0; ex < extend.length; ex++){ 
    330                                 onceOpenedHeadersMessages[current_folder][extend[ex].messageNumber]['followupflagged'] = {}; 
    331                                 DataLayer.merge(onceOpenedHeadersMessages[current_folder][extend[ex].messageNumber]['followupflagged'], extend[ex]); 
     338                                if(onceOpenedHeadersMessages[extend[ex].folderName]){ 
     339                                        if(onceOpenedHeadersMessages[extend[ex].folderName][extend[ex].messageNumber]){ 
     340                                                onceOpenedHeadersMessages[extend[ex].folderName][extend[ex].messageNumber]['followupflagged'] = {}; 
     341                                                DataLayer.merge(onceOpenedHeadersMessages[extend[ex].folderName][extend[ex].messageNumber]['followupflagged'], extend[ex]); 
     342                                        } 
     343                                } 
     344 
    332345                        } 
    333346                } else { 
     
    338351        .filter('.menu-configure-followupflag .delete').click(function(){ 
    339352                for(i = 0; i < selectedMessageIds.length; i++){ 
     353                        var folder_name; 
     354                        if (currentTab == 0) { 
     355                                folder_name = current_folder; 
     356                        }else{ 
     357                                var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     358                                var tr = Element(selectedMessageIds[i]+'_s'+id_border); 
     359                                folder_name = tr.getAttribute('name'); 
     360                        } 
    340361                        var messageNumber   = selectedMessageIds[i]; 
    341                         var flag_id = onceOpenedHeadersMessages[current_folder][messageNumber]['followupflagged'].id; 
    342                         var flagged = $('#td_message_followup_' + messageNumber + ', ' + '#td_message_followup_search_' + messageNumber).find(".flag-edited"); 
    343                         DataLayer.remove('followupflagged', flag_id); 
    344                         flagged.css("background", '#cccccc'); 
    345                         flagged.find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
     362                        if(onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged']){ 
     363                                var flag_id = onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged'].id; 
     364                                DataLayer.remove('followupflagged', flag_id); 
     365                                $('#td_message_followup_' + messageNumber + ', ' +  
     366                                  '#td_message_followup_search_' + messageNumber).find(".flag-edited").css("background", '#CCC'); 
     367                                $('#td_message_followup_' + messageNumber + ', ' +  
     368                                        '#td_message_followup_search_' + messageNumber).find(".flag-edited") 
     369                                        .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
     370                        } 
    346371                } 
    347372                DataLayer.commit(); 
Note: See TracChangeset for help on using the changeset viewer.