Changeset 5625


Ignore:
Timestamp:
03/05/12 11:38:00 (12 years ago)
Author:
marcieli
Message:

Ticket #2486 - Implementada opção de criar novo marcador ao clicar na msg e marca-la.

Location:
trunk
Files:
6 edited

Legend:

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

    r5605 r5625  
    1 function openListUsers(border_id) { 
    2         connector.loadScript("QuickCatalogSearch"); 
    3         if (typeof(QuickCatalogSearch) == 'undefined'){ 
    4                                         setTimeout('openListUsers('+border_id+')',500); 
    5                                         return false; 
    6                                 } 
    7         QuickCatalogSearch.showCatalogList(border_id); 
    8 } 
    9  
    10  
    11 /** 
    12  * Cria a lista de marcadores para o submenu "Marcadores" 
    13  */ 
    14 function getLabels(){ 
    15         var labels = DataLayer.get('label',{criteria:{order: 'name'}}); 
    16         var menuLabelItems = {}; 
    17         for(var i=0; i<labels.length; i++) { 
    18                 menuLabelItems["label"+labels[i].id] = { 
    19                         "name" : labels[i].name, 
    20                 } 
    21         } 
    22         return menuLabelItems; 
    23 } 
    24  
    25 /** 
    26  *      Carrega o menu de opção de uma mensagem 
    27  */ 
    28 function loadMenu(){ 
    29         var labelItems = getLabels(); 
    30         $.contextMenu({ 
    31                 selector: ".table_box tbody tr", 
    32                 callback: function(key, options) { 
    33                         //TODO - default actions 
    34                          
    35                         /**  
    36                          * Apply labels to selected messages 
    37                          */ 
    38                         var isLabel = key.match(/label(.*)/); 
    39                         if (isLabel && isLabel.length > 1) { 
     1function labeledMessages(isLabel){ 
     2                        if (isLabel) { 
    403                                var label = { 
    41                                         id: isLabel[1] 
     4                                        id: isLabel 
    425                                }        
    436                                var lableleds = new Array(); 
     
    7740 
    7841                                for (var i=0; i < messages.length; i++) { 
    79                                         var hasLabel = DataLayer.get('labeled', [ 
     42                                        var hasLabel = DataLayer.get('labeled', { 
     43                                                filter: [ 
    8044                                                        'AND', 
    8145                                                        ['=', 'labelId', label.id],  
    8246                                                        ['=', 'folderName', messages[i].msg_folder],  
    8347                                                        ['=', 'messageNumber', messages[i].msg_number] 
    84                                         ]); 
     48                                        ]}); 
    8549                                        if (!hasLabel || hasLabel == "") { 
    8650                                                lableleds.push( 
     
    9458                                        } 
    9559                                } 
    96                                 DataLayer.commit(); 
    97                                 for (var i=0; i < messages.length; i++) { 
    98                                         updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false}); 
     60                                DataLayer.commit(false, false, function(data){ 
     61                                        for (var i=0; i < messages.length; i++) { 
     62                                                updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false}); 
     63                                        }                
     64                                }); 
     65                                 
     66 
     67                        } 
     68} 
     69 
     70function openListUsers(border_id) { 
     71        connector.loadScript("QuickCatalogSearch"); 
     72        if (typeof(QuickCatalogSearch) == 'undefined'){ 
     73                                        setTimeout('openListUsers('+border_id+')',500); 
     74                                        return false; 
    9975                                } 
    100  
     76        QuickCatalogSearch.showCatalogList(border_id); 
     77} 
     78 
     79 
     80/** 
     81 * Cria a lista de marcadores para o submenu "Marcadores" 
     82 */ 
     83function getLabels(){ 
     84        var labels = DataLayer.get('label',{criteria:{order: 'name'}}); 
     85        var menuLabelItems = {}; 
     86                menuLabelItems["new"] = { 
     87                        "name" : 'Novo Marcador', 
     88                        callback:function() {configureLabels({applyToSelectedMessages:true});} 
     89                }; 
     90        for(var i=0; i<labels.length; i++) { 
     91                menuLabelItems["label"+labels[i].id] = { 
     92                        "name" : labels[i].name, 
     93                } 
     94        } 
     95        return menuLabelItems; 
     96} 
     97 
     98/** 
     99 *      Carrega o menu de opção de uma mensagem 
     100 */ 
     101function loadMenu(){ 
     102        var labelItems = getLabels(); 
     103        $.contextMenu({ 
     104                selector: ".table_box tbody tr", 
     105                callback: function(key, options) { 
     106                        //TODO - default actions 
     107                         
     108                        /**  
     109                         * Apply labels to selected messages 
     110                         */ 
     111                        var isLabel = key.match(/label(.*)/); 
     112                        if (isLabel && isLabel.length > 1) { 
     113                                labeledMessages(isLabel[1]); 
    101114                        } 
     115 
    102116                }, 
    103117                items: { 
  • trunk/expressoMail1_2/js/draw_api.js

    r5624 r5625  
    10331033                        filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 
    10341034                        criteria: {deepness: 2} 
    1035                 }); 
     1035                }, true); 
    10361036 
    10371037        if(labeleds) { 
     
    10561056                                deepness: 1 
    10571057                        } 
    1058                 }); 
     1058                }, true); 
    10591059 
    10601060        if(followupflaggeds) { 
     
    16961696                                //$(this).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor); 
    16971697                                headers_msgs.followupflagged.id = DataLayer.put('followupflagged', headers_msgs.followupflagged); 
     1698                                DataLayer.commit(false, false, function(){ 
     1699                                        updateCacheFollowupflag(messageClickedId, msg_folder, true); 
     1700                                }); 
    16981701                                 
    1699                         } else if (headers_msgs.followupflagged.followupflag.name == 'Follow up') { 
     1702                                 
     1703                        } else if (onceOpenedHeadersMessages[msg_folder][messageClickedId]['followupflagged'].followupflag.name == 'Follow up') { 
    17001704                                /** 
    17011705                                 * Remove followupflag de Acompanhamento 
     
    17091713                                        'tr[role="'+messageClickedId+'_'+msg_folder+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    17101714                                        .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
     1715                                DataLayer.commit();      
     1716                                updateCacheFollowupflag(messageClickedId, msg_folder, false); 
    17111717                        } else { 
    17121718                                $(tr_element).addClass('selected_msg').find(':checkbox').trigger('click'); 
     
    17141720                        } 
    17151721                         
    1716                         DataLayer.commit(); 
    17171722                         
    17181723                });      
  • trunk/expressoMail1_2/js/search.js

    r5605 r5625  
    568568                                                }                                        
    569569                                                aux.followupflagged.id = DataLayer.put('followupflagged', aux.followupflagged); 
     570                                                DataLayer.commit(); 
     571                                                var extend = DataLayer.get('followupflagged', { 
     572                                                        filter: ['AND', ['IN', 'messageNumber', messageClickedId], ['IN', 'folderName', mailbox]], 
     573                                                        criteria: {deepness: 1} 
     574                                                }, true); 
    570575                                                 
    571                                         }else if(aux.followupflagged.id){ 
     576                                                updateCacheFollowupflag(messageClickedId, mailbox, true); 
     577                                                 
     578                                        }else if(onceOpenedHeadersMessages[mailbox][messageClickedId]['followupflagged'].id){ 
    572579                                                /** 
    573580                                                * Remover followupflag de Acompanhamento (DFD0078:RI25) 
     
    583590                                                                'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 
    584591                                                                .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
     592                                                        DataLayer.commit();      
     593                                                        updateCacheFollowupflag(messageClickedId, mailbox, false); 
    585594                                                }else{ 
    586595                                                        $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", '#CCC'); 
     
    591600                                                //TODO - open dialog 
    592601                                        } 
    593                                         if(!DataLayer.commit()){} 
     602                                        //if(!){} 
    594603 
    595604                                });                              
  • trunk/prototype/modules/mail/interceptors/Helpers.php

    r5611 r5625  
    164164                $imap_uri = $uri; 
    165165                $imap_uri['service'] = 'Imap'; 
    166                 $imap_result = Controller::find($imap_uri, $params, $criteria); 
     166                $imap_result = Controller::find($imap_uri, $result, $criteria); 
    167167                 
    168168                /** 
  • trunk/prototype/modules/mail/js/followupflag.js

    r5610 r5625  
     1function updateCacheFollowupflag(msgNumber, msgFolder, op){ 
     2        if(op){ 
     3                if(typeof msgNumber == 'object'){ 
     4                        var extend = DataLayer.get('followupflagged', { 
     5                                filter: ['AND', ['IN', 'messageNumber', msgNumber], ['IN', 'folderName', msgFolder]], 
     6                                criteria: {deepness: 1} 
     7                        }, true); 
     8                } else{ 
     9                        var extend = DataLayer.get('followupflagged', { 
     10                                filter: ['AND', ['=', 'messageNumber', msgNumber], ['=', 'folderName', msgFolder]], 
     11                                criteria: {deepness: 1} 
     12                        }, true); 
     13                } 
     14 
     15                 
     16                if(extend != "" || extend != 'undefined' || extend != []){ 
     17                        for(var i = 0; i < extend.length; i++){ 
     18                                if(onceOpenedHeadersMessages[extend[i].folderName]){ 
     19                                        if(onceOpenedHeadersMessages[extend[i].folderName][extend[i].messageNumber]){ 
     20                                                onceOpenedHeadersMessages[extend[i].folderName][extend[i].messageNumber]['followupflagged'] = {}; 
     21                                                DataLayer.merge(onceOpenedHeadersMessages[extend[i].folderName][extend[i].messageNumber]['followupflagged'], extend[i]); 
     22                                        } 
     23                                } 
     24 
     25                        } 
     26                } 
     27        }else{ 
     28                onceOpenedHeadersMessages[msgFolder][msgNumber]['followupflagged'] = undefined;  
     29        } 
     30} 
     31 
     32 
     33 
    134function init_followup(data){ 
    235 
     
    219252                        winElement.find('.menu-configure-followupflag .save').button("option", "disabled", true); 
    220253                        winElement.find('.menu-configure-followupflag .delete').button("option", "disabled", false); 
     254                        updateCacheFollowupflag(selectedMessageIds, folders, true); 
    221255                }); 
    222                  
    223                 var extend = DataLayer.get('followupflagged', { 
    224                         filter: ['AND', ['IN', 'messageNumber', selectedMessageIds], ['IN', 'folderName', folders]], 
    225                         criteria: {deepness: 1} 
    226                 }); 
    227                  
    228                 if(extend != "" || extend != 'undefined' || extend != []){ 
    229                         for(var i = 0; i < extend.length; i++){ 
    230                                 if(onceOpenedHeadersMessages[extend[i].folderName]){ 
    231                                         if(onceOpenedHeadersMessages[extend[i].folderName][extend[i].messageNumber]){ 
    232                                                 onceOpenedHeadersMessages[extend[i].folderName][extend[i].messageNumber]['followupflagged'] = {}; 
    233                                                 DataLayer.merge(onceOpenedHeadersMessages[extend[i].folderName][extend[i].messageNumber]['followupflagged'], extend[i]); 
    234                                         } 
    235                                 } 
    236  
    237                         } 
    238                 } else { 
    239                         alert('erro ao salvar'); 
    240                 } 
    241256        }).end() 
    242257         
    243258        .filter('.menu-configure-followupflag .delete').click(function(){ 
    244259                if (selectedMessageIds.length == 0) $(this).button("option", "disabled", true); 
    245                  
     260                        /** TODO Mudar quando melhorias forem implementadas na API de atualização do cache */ 
     261                        DataLayer.remove('followupflagged', false); 
     262                        DataLayer.get('followupflagged'); 
    246263                        var roles = get_selected_messages_search_role().split(','); 
    247264                        for (var i=0; i < selectedMessageIds.length; i++ ){ 
     
    270287                                                        .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
    271288                                        } 
    272  
    273                                         onceOpenedHeadersMessages[folder_name][messageNumber]['followupflagged'] = undefined; 
     289                                        updateCacheFollowupflag(messageNumber, folder_name, false); 
    274290                                } 
    275291                        } 
  • trunk/prototype/modules/mail/js/label.js

    r5607 r5625  
    3232                        $(span).html($(".label-list").find(".edit-value-list").val()) 
    3333                        .parent().find('.edit').removeClass("hidden").parents("li").click(configureLabel).trigger("click"); 
    34                         save_editLabel(nameLabel); 
     34                        save_editLabel(nameLabel, applyToSelectedMessages); 
    3535                         
    3636                }else if( event.keyCode == 27){ 
     
    8989}                
    9090         
    91 function save_editLabel(nameLabel){      
     91function save_editLabel(nameLabel, apply){       
    9292         
    9393        var lengthSpace = $.trim(nameLabel); 
     
    152152                } else { 
    153153                        var nameLabel = winElement.find(".input-nome").val(); 
    154                         new_label(nameLabel, false);                             
     154                        new_label(nameLabel, false, apply);                              
    155155                        winElement.find(".insert-label").val(""); 
    156156                        $.Watermark.ShowAll();                           
     
    208208} 
    209209 
    210 function new_label(nameLabel, isNew){ 
     210function new_label(nameLabel, isNew, apply){ 
    211211        var labelCreated = { 
    212212                uid: User.me.id, 
     
    232232                        borderColor : !!isNew ? '#000000' : winElement.find("input[name='borderColor']").val() 
    233233                }; 
    234  
     234                 
     235                /** Marca as mensagens selecionadas com o marcador criado*/ 
     236                if(apply){ 
     237                        labeledMessages(newLabel.id) 
     238                } 
     239                 
    235240                $(".label-list-container ul").find(".empty-item").css("display","none"); 
    236241                $(".label-list-container ul") 
     
    382387                 
    383388                if(lengthSpace.length >= 4){ 
    384                         new_label(nameLabel, true); 
     389                        new_label(nameLabel, true, data.applyToSelectedMessages); 
    385390                        $.Watermark.ShowAll(); 
    386391                        winElement.find(".insert-label").val(""); 
     
    413418        winElement.find(".buttons .save-label").click(function(){ 
    414419                var nameLabel = winElement.find(".input-nome").val(); 
    415                 save_editLabel(nameLabel); 
     420                save_editLabel(nameLabel, data.applyToSelectedMessages); 
    416421        });      
    417422        //desfazer marcador 
Note: See TracChangeset for help on using the changeset viewer.