Changeset 5533 for trunk/expressoMail1_2


Ignore:
Timestamp:
02/22/12 18:04:20 (12 years ago)
Author:
douglasz
Message:

Ticket #1875 - Commit inicial do codigo das funcionalidades de marcadores e sinalizadores

Location:
trunk/expressoMail1_2
Files:
1 added
10 edited

Legend:

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

    r5520 r5533  
    157157 
    158158        function get_range_msgs2($params) 
    159         {  
     159        {        
    160160            // Free others requests 
    161161            session_write_close(); 
     
    193193                                    $sample = true; 
    194194                                             
    195                                     $return[$i] = $this->get_info_head_msg( $msg_number , $sample ) ; 
     195                                    $return[$i] = $this->get_info_head_msg( $msg_number , $sample ); 
    196196                                    $i++; 
    197197                            } 
     
    228228                return $return; 
    229229    } 
    230      
     230         
     231         
     232        function getMessages($params) { 
     233                $result = array(); 
     234 
     235                $exporteml = new ExportEml(); 
     236                $unseen_msgs = array(); 
     237                 
     238                foreach($params['messages'] as $folder => $messages) { 
     239                        foreach($messages as $msg_number) { 
     240 
     241                                $this->mbox = $this->open_mbox($folder); 
     242                         
     243                                if (isset($params['details']) && $params['details'] == 'all') { 
     244                                        $message = $this->get_info_msg(array('msg_number' => $msg_number, 'msg_folder' =>urlencode($folder))); 
     245                                } else { 
     246                                        $message['headers'] = $this->get_info_head_msg($msg_number, true); 
     247                                        //$message['attachments'] = $exporteml->get_attachments_in_array(array("num_msg" => $msg_number)); 
     248                                } 
     249 
     250                                imap_close($this->mbox); 
     251                                $this->mbox = false; 
     252 
     253                                if($msg_info['Unseen'] == "U" || $msg_info['Recent'] == "N") { 
     254                                        array_push($unseen_msgs,$msg_number); 
     255                                } 
     256                                 
     257                                $result[$folder][] = $message; 
     258                        } 
     259                        if($unseen_msgs){ 
     260                                $msgs_list = implode(",",$unseen_msgs); 
     261                                $array_msgs = array('folder' => $folder, "msgs_to_set" => $msgs_list, "flag" => "unseen"); 
     262                                $this->set_messages_flag($array_msgs); 
     263                        } 
     264                } 
     265                 
     266                return $result; 
     267        }        
     268 
    231269        /** 
    232270        *  Decodifica uma string no formato mime RFC2047 
     
    731769                        $array_msgs = array('folder' => $new_params["msg_folder"], "msgs_to_set" => $msgs_list, "flag" => "unseen"); 
    732770                        $this->set_messages_flag($array_msgs); 
    733                 } 
     771                }                                        
     772                                         
    734773                return $return; 
    735774        } 
    736         } 
     775} 
    737776 
    738777        /** 
     
    50845123        } 
    50855124         
    5086         function parseCriteriaSearchMail($search) 
    5087         { 
    5088             $criteria = ''; 
    5089             $searchArray = explode(' ', $search); 
    5090  
    5091             foreach ($searchArray as $v) 
    5092                 if(trim($v) !== '' ) 
    5093                     $criteria .= 'TEXT "'.$v.'" ' ; 
    5094             
    5095             return $criteria; 
    5096         } 
     5125        function parseCriteriaSearchMail($search) 
     5126        { 
     5127                $criteria = ''; 
     5128                $searchArray = explode(' ', $search); 
     5129 
     5130                foreach ($searchArray as $v) 
     5131                        if(trim($v) !== '' ) 
     5132                                $criteria .= 'TEXT "'.$v.'" ' ; 
     5133            
     5134                return $criteria; 
     5135        } 
    50975136         
    50985137        function quickSearchMail( $params ) 
    50995138        { 
     5139                include '../prototype/api/controller.php'; 
    51005140                $return = array(); 
    51015141                $return['folder'] = $params['folder']; 
     
    51145154                $count = 0; 
    51155155                 
    5116                 $search = $this->parseCriteriaSearchMail($params['search']); 
    5117                                  
     5156                if (!preg_match('/KEYWORD/i', $params['search'])){ 
     5157                        $search = $this->parseCriteriaSearchMail($params['search']); 
     5158                } else { 
     5159                        $search = $params['search']; 
     5160                } 
     5161         
    51185162                foreach ($params['folder'] as $folder)  
    51195163                { 
     
    51395183                                        $return['msgs'][$i]['subject'] .= mb_convert_encoding($tmp->text, 'UTF-8', 'UTF-8 , ISO-8859-1'); 
    51405184                                 
    5141                                  
     5185                                $filter = array('AND', array('=', 'folderName', $folder), array('=','messageNumber', $v)); 
     5186                                $followupflagged = Controller::find( 
     5187                                        array('concept' => 'followupflagged'), 
     5188                                        false,  
     5189                                        array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     5190                                ); 
     5191                                foreach ($followupflagged as $i => $v) 
     5192                                        { 
     5193                                                if(isset($v['followupflagId'])) 
     5194                                                { 
     5195                                                        $followupflag = Controller::find( array( 'concept' => 'followupflag' ) , false, array( 'filter' => array('=', 'id'  ,  $v['followupflagId']) ));      
     5196                                                        $followupflagged[$i]['followupflag'] = $followupflag[0]; 
     5197                                                } 
     5198 
     5199                                        } 
     5200                                         
     5201                                $labeleds = Controller::find( 
     5202                                        array('concept' => 'labeled'), 
     5203                                        false,  
     5204                                        array('filter' => $filter, 'criteria' => array('deepness' => '2')) 
     5205                                ); 
     5206                                                 
    51425207                                $return['msgs'][$i]['flag'] = ' '; 
    51435208                                $return['msgs'][$i]['flag'] .= $msg->Unseen ? $msg->Unseen : ''; 
     
    51545219                                $return['msgs'][$i]['boxname'] = $folder; 
    51555220                                $return['msgs'][$i]['uid'] = $v; 
     5221                                $return['msgs'][$i]['followupflagged'] = $followupflagged[0]; 
     5222                                $return['msgs'][$i]['labels'] = $labeleds; 
    51565223                                $i++; 
    51575224                        }        
  • trunk/expressoMail1_2/index.php

    r5530 r5533  
    4444                                        <script src="../prototype/plugins/ejs/ejs.js" language="javascript"></script> 
    4545                                        <script src="../prototype/plugins/store/jquery.store.js" language="javascript"></script> 
     46                                        <script src="../prototype/plugins/farbtastic/farbtastic.js" language="javascript"></script> 
    4647                                        <script src="../prototype/api/datalayer.js" language="javascript"></script>                                      
    4748                                        <script type="text/javascript" src="../prototype/plugins/scrollto/jquery.scrollTo.js"></script> 
     
    5758                                        <link rel="stylesheet" type="text/css" href="../prototype/plugins/zebradialog/css/zebra_dialog.css"></link> 
    5859                                        <link rel="stylesheet" type="text/css" href="../prototype/plugins/fileupload/jquery.fileupload-ui.css"></link> 
     60                                        <link rel="stylesheet" href="../prototype/plugins/farbtastic/farbtastic.css" type="text/css" > 
    5961                                        <script type="text/javascript" src="../prototype/plugins/zebradialog/javascript/zebra_dialog.js"></script> 
    6062                                        <script type="text/javascript" src="../prototype/plugins/datejs/date-pt-BR.js"></script> 
     
    115117        <script src="../prototype/plugins/countdown/jquery.countdown.min.js" type="text/javascript"></script> 
    116118        <script src="../prototype/plugins/countdown/jquery.countdown-pt-BR.js" type="text/javascript"></script>          
     119         
     120                 
    117121        '; 
    118122         
     123        echo '<script src="../prototype/modules/mail/js/label.js" type="text/javascript"></script>';     
     124        echo '<script src="../prototype/modules/mail/js/followupflag.js" type="text/javascript"></script>'; 
     125         
     126                 
     127        //followupflags 
     128        echo'<link rel="stylesheet" href="../prototype/modules/mail/css/followupflag.css" type="text/css" />'; 
     129         
    119130        /* 
    120          * TODO: implementar o controle como preferência do usuário  
     131         * TODO: implementar o controle como preferência do usuário  
    121132         * 
    122133         */ 
     
    348359        echo ' 
    349360        <link rel="stylesheet" href="../prototype/modules/attach_message/attach_message.css" type="text/css" /> 
     361         
     362                                        <script type="text/javascript" src="../prototype/plugins/jquery/i18n/jquery.ui.datepicker-pt-BR.js"></script> 
     363                                        <script type="text/javascript" src="../prototype/plugins/timepicker/jquery-ui-timepicker-addon.js"></script> 
     364                                        <script type="text/javascript" src="../prototype/plugins/timepicker/localization/jquery-ui-timepicker-pt-BR.js"></script> 
    350365        <script type="text/javascript"> 
    351366                init(); 
     
    373388<body scroll="no" style="overflow:hidden"> 
    374389<link rel="stylesheet" href="../prototype/modules/attach_message/attach_message.css" type="text/css" /> 
     390<link rel="stylesheet" href="../prototype/modules/mail/css/label.css" type="text/css" />         
    375391<link rel='stylesheet' type='text/css' href='../prototype/modules/calendar/css/layout.css' /> 
    376392<link rel='stylesheet' type='text/css' href='../prototype/modules/calendar/css/style.css' /> 
  • trunk/expressoMail1_2/js/common_functions.js

    r5497 r5533  
    657657        } 
    658658        cExecute ("$this.imap_functions.getacl", handler_imap_getacl); 
     659} 
     660 
     661function configureLabels(data){ 
     662 
     663        dialogElement = $('.label-configure-win').html(DataLayer.render("../prototype/modules/mail/templates/label_configure.ejs", {})) 
     664         
     665        dialogElement.dialog({ 
     666                width:821, 
     667                height:410, 
     668                title:' Configuração do Marcador', 
     669                resizable:false, 
     670                modal: true, 
     671                closeOnEscape:true, 
     672                close:function(event, ui) {event.stopPropagation();}, 
     673                autoOpen:false, 
     674                dialogClass: 'dialog-configure-label' 
     675        }); 
     676        init_label({window:dialogElement, selectedItem:data.selectedItem});      
     677        dialogElement.dialog("open"); 
     678} 
     679 
     680function configureFollowupflag(){ 
     681 
     682        var messages = new Array(); 
     683        var selectedMessageIds = new Array(); 
     684        var folder_name; 
     685        if (currentTab == 0) { 
     686                selectedMessageIds = get_selected_messages().split(","); 
     687        } else { 
     688                selectedMessageIds = get_selected_messages_search().split(","); 
     689                var id_border = currentTab.replace(/[a-zA-Z_]+/, ""); 
     690        } 
     691         
     692         
     693        for (var i=0; i<selectedMessageIds.length; i++) { 
     694                if (currentTab == 0) { 
     695                        folder_name = current_folder; 
     696                }else{ 
     697                        var tr = Element(selectedMessageIds[i]+'_s'+id_border); 
     698                        folder_name = tr.getAttribute('name'); 
     699                } 
     700                messages.push(onceOpenedHeadersMessages[folder_name][selectedMessageIds[i]]); 
     701        } 
     702 
     703        if(!User.followupflags) 
     704                User.followupflags = DataLayer.get('followupflag',true); 
     705        var data = { 
     706                followupflags: User.followupflags, 
     707                messages: messages 
     708        }; 
     709        dialogElement = $('.followupflag-configure-win').html(DataLayer.render("../prototype/modules/mail/templates/followupflag_configure.ejs", data)) 
     710 
     711        dialogElement.dialog({ 
     712                width:542, 
     713                height:420, 
     714                title:get_lang('Acompanhamento'), 
     715                resizable:false, 
     716                modal: true, 
     717                closeOnEscape:true, 
     718                close:function(event, ui) { 
     719                        $('.followupflag-configure-win').addClass('hidden'); 
     720                        event.stopPropagation(); 
     721                }, 
     722                autoOpen:false 
     723        });      
     724        init_followup({window:dialogElement, selectedMessages:selectedMessageIds}); 
     725        $('.followupflag-configure-win').removeClass('hidden'); 
     726        dialogElement.dialog("open"); 
    659727} 
    660728 
  • trunk/expressoMail1_2/js/doiMenuData.js

    r5497 r5533  
    88} 
    99 
    10 $.contextMenu({ 
    11         selector: ".table_box tbody tr", 
    12         callback: function(key, options) { 
    13                 //TODO - default actions 
    14                 //TODO - aply labels actions 
    15  
    16         }, 
    17         items: { 
    18                 "flagSeen":      {"name": get_lang("Mark as") + " " + get_lang('seen'), "icon": "seen", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('seen','get_selected_messages'); }}, 
    19                 "flagUnseen":    {"name": get_lang("Mark as") + " " + get_lang('unseen'), "icon": "unseen", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unseen','get_selected_messages'); }}, 
    20                 "flagFlagged":   {"name": get_lang("Mark as") + " " + get_lang('important'), "icon": "important", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('flagged','get_selected_messages'); }}, 
    21                 "flagUnflagged": {"name": get_lang("Mark as") + " " + get_lang('normal'), callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages'); }}, 
    22                  
    23                  
    24                 "sep2": "---------", 
    25                 "move": {"name": get_lang("Move to")+"...", "icon": "move", callback: function(key, opt){ wfolders.makeWindow('', 'move_to'); }}, 
    26                 "remove": {"name": get_lang("Delete"),      "icon": "delete", callback: function(key, opt){ proxy_mensagens.delete_msgs('null','selected','null'); }}, 
    27                 "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }} 
    28         } 
    29 }); 
    30  
    3110 
    3211/** 
    33  * Cria a lista de itens para o menu ferramentas 
     12 * Cria a lista de marcadores para o submenu "Marcadores" 
    3413 */ 
     14function 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 */ 
     28function 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                         * Aply labels to selected messages 
     37                         */ 
     38                        var isLabel = key.match(/label(.*)/); 
     39                        if (isLabel && isLabel.length > 1) { 
     40                                var label = { 
     41                                        id: isLabel[1] 
     42                                }        
     43                                var lableleds = new Array(); 
     44                                 
     45                                if(currentTab == 0){ 
     46                                        var messages = get_selected_messages().split(','); 
     47                                }else{ 
     48                                        var messages = get_selected_messages_search().split(','); 
     49                                } 
     50 
     51                                for (var i=0; i < messages.length; i++) { 
     52                                        var hasLabel = DataLayer.get('labeled', [ 
     53                                                        'AND', 
     54                                                        ['=', 'labelId', label.id],  
     55                                                        ['=', 'folderName', current_folder],  
     56                                                        ['=', 'messageNumber', messages[i]] 
     57                                        ]); 
     58                                        if (!hasLabel) { 
     59                                                lableleds.push( 
     60                                                        DataLayer.put('labeled', { 
     61                                                                labelId:label.id,  
     62                                                                folderName:current_folder,  
     63                                                                messageNumber:messages[i] 
     64                                                        }) 
     65                                                ); 
     66                                                 
     67                                        } 
     68                                } 
     69                                DataLayer.commit(); 
     70                                for (var i=0; i < messages.length; i++) { 
     71                                        updateLabelsColumn({msg_number:messages[i], labels:false}); 
     72                                } 
     73                        } 
     74                }, 
     75                items: { 
     76                        "flagSeen":      {"name": get_lang("Mark as") + " " + get_lang('seen'), "icon": "seen", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('seen','get_selected_messages'); }}, 
     77                        "flagUnseen":    {"name": get_lang("Mark as") + " " + get_lang('unseen'), "icon": "unseen", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unseen','get_selected_messages'); }}, 
     78                        "flagFlagged":   {"name": get_lang("Mark as") + " " + get_lang('important'), "icon": "important", callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('flagged','get_selected_messages'); }}, 
     79                        "flagUnflagged": {"name": get_lang("Mark as") + " " + get_lang('normal'), callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages'); }}, 
     80                         
     81                        "sep1": "---------", 
     82                        "label": { "name": get_lang("Labels"), "items": labelItems}, 
     83                        "follouwpflag":{"name": get_lang("Follow up"), callback: function(key, opt){ configureFollowupflag(); } }, 
     84                         
     85                        "sep2": "---------", 
     86                        "move": {"name": get_lang("Move to")+"...", "icon": "move", callback: function(key, opt){ wfolders.makeWindow('', 'move_to'); }}, 
     87                        "remove": {"name": get_lang("Delete"),      "icon": "delete", callback: function(key, opt){ proxy_mensagens.delete_msgs('null','selected','null'); }}, 
     88                        "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }} 
     89                } 
     90        }); 
     91} 
     92/*FIM*/ 
     93loadMenu(); 
     94 
    3595if (!expresso_offline) { 
    3696        var menuToolsItems = { 
     
    40100                "i04": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox }, 
    41101                "i05": {"name": get_lang("Share mailbox"), "icon": "share-mailbox", callback: sharebox }, 
    42  
    43                 "i08": {"name": get_lang("Empty trash"), "icon": "empty-trash", callback: function(key, opt){ empty_trash_imap() } } 
     102                "i06": {"name": get_lang("Labels"), "icon": "tag", callback: configureLabels },  
     103                "i08": {"name": get_lang("Empty trash"), "icon": "empty-trash", callback: function(key, opt){ empty_trash_imap }} 
    44104        }; 
    45105                 
     
    56116} 
    57117 
    58 /** 
    59  * Aplica o menu ferramentas 
    60  */ 
    61118$.contextMenu({ 
    62119        selector: "#link_tools", 
     
    70127        events: { 
    71128                show: function(opt) { 
    72                         /** 
    73                          * Modifica cor do elemento de trigger para o menu 
    74                          */ 
    75129                        var $trigger = $(opt.selector).css({'background-color': '#EEEEEE', 'border': '1px solid #CCCCCC'}); 
    76130                        $('.context-menu-list.context-menu-root').css({'width': $trigger.css('width') }); 
     
    78132                }, 
    79133                hide: function(opt) { 
    80                         /** 
    81                          * Modifica cor do elemento de trigger para o menu 
    82                          */ 
    83134                        $(opt.selector).css({'background-color': '', 'border': 'none'}); 
    84135                        return true; 
     
    86137        }, 
    87138        callback: function(key, options) { 
    88                 //TODO - default actions                 
     139                 
    89140        }, 
    90141        items: menuToolsItems 
    91142}); 
    92143 
     144 
     145function updateLabelsColumn(messageInfo) { 
     146        $('#td_message_labels_' + messageInfo.msg_number +', #td_message_labels_search_' + messageInfo.msg_number) 
     147        .html('<img src="../prototype/modules/mail/img/tag.png">'); 
     148 
     149        var menuItems = {}; 
     150        if (messageInfo.labels) { 
     151                menuItems = messageInfo.labels; 
     152        } else { 
     153                var labeleds = DataLayer.get('labeled', { 
     154                        filter: [ 
     155                                'AND', 
     156                                ['=', 'folderName', current_folder],  
     157                                ['=', 'messageNumber', messageInfo.msg_number] 
     158                        ], 
     159                        criteria: {deepness: 2} 
     160                }); 
     161                if (labeleds) { 
     162                        for (var i=0; i < labeleds.length; i++) 
     163                                menuItems[labeleds[i].label.id] = labeleds[i].label; 
     164                } else { 
     165                        //não tem labels 
     166                        return false; 
     167                } 
     168        } 
     169 
     170        $.contextMenu( 'destroy', '#td_message_labels_' + messageInfo.msg_number +', #td_message_labels_search_' + messageInfo.msg_number); 
     171 
     172        $.contextMenu({ 
     173                selector: '#td_message_labels_' + messageInfo.msg_number +', #td_message_labels_search_' + messageInfo.msg_number, 
     174                trigger: 'hover', 
     175                delay:100, 
     176                autoHide:true, 
     177                callback: function(key, options) { 
     178                        //alert($(this).attr('id')); 
     179                }, 
     180                items: menuItems 
     181        }); 
     182} 
     183 
     184/** 
     185 * TODO 
     186 * * ao clicar com o botao direito em cima da mensagem, selecionar a mensagem 
     187 * * clarear a cor do menu ferramentas 
     188 * * pintar o botao ferramentas, quando clicado, da cor do menu 
     189 *  
     190 */ 
  • trunk/expressoMail1_2/js/drag_area.js

    r5368 r5533  
    2727         
    2828} 
    29  
     29/* 
    3030DragArea.prototype.makeMenuBox = function(element){ 
    3131 
     
    5252         
    5353} 
     54*/ 
    5455 
    5556DragArea.prototype.makeDragged = function(element, msg_number, subject, from_list, folder){ 
     
    7273                                        changeBgColor(is_ie ? window.event : e, msg_number); 
    7374                                } 
    74                                 ConstructRightMenu(is_ie ? window.event : e); 
     75                                //ConstructRightMenu(is_ie ? window.event : e); 
    7576                        }                        
    7677                        return false; 
  • trunk/expressoMail1_2/js/draw_api.js

    r5527 r5533  
    1  var openTab = { 
     1/** 
     2 * Estrutura que guarda em cache as mensagens abertas, a exemplo da estrutura utilizada 
     3 * na funcionalidade de anexar mensagens. 
     4 * Isto reduz a necessidade de acessar estruturas da tela para obter informações sobre  
     5 * as mensagens, como tem sido para encaminhar, responder, etc. 
     6 * Manter os dados 'limpos' em uma estrutura 'somente-leitura' permite maior flexibilidade 
     7 * para mudar a tela e menos processamento de limpeza de dados (por exemplo retirar tags de  
     8 * formatação, etc.)  
     9 */ 
     10onceOpenedHeadersMessages = {}; 
     11 
     12var openTab = { 
    213        'type' : [], // 8 types of tabs, further info. see expressolivre.org/dev/wiki/mail/Documentacao 
    314        'content_id' : [], 
     
    153164                        var noden=document.getElementById('lnews_roottree_folders'); 
    154165                        noden.style.backgroundImage="url(templates/"+template+"/images/menu/rss.png)"; 
     166                         
     167                         
     168                         
    155169                } 
    156170//              cExecute('$this.rss.getChannels',handlerChannel); 
     
    206220                        } 
    207221 
    208                 /*tree_folders.draw(Element('content_folders')); 
     222                tree_folders.draw(Element('content_folders')); 
    209223                if (!expresso_offline) { 
    210224                        n_root.changeState(); 
     
    214228                        root_local.changeState(); 
    215229                        tree_folders.getNodeById('local_Inbox')._select(); 
    216                 }*/ 
    217  
     230                } 
     231                 
    218232                var trash_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Trash"]])  + 'tree_folders');  
    219                 var draft_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Drafts"]]) + 'tree_folders');  
    220                 var sent_span  = document.getElementById(mount_url_folder(["lINBOX",special_folders["Sent"]]) + 'tree_folders');  
    221                 var spam_span  = document.getElementById(mount_url_folder(["lINBOX",special_folders["Spam"]]) + 'tree_folders'); 
     233                var draft_span = document.getElementById(mount_url_folder(["lINBOX",special_folders["Drafts"]]) + 'tree_folders');  
     234                var sent_span  = document.getElementById(mount_url_folder(["lINBOX",special_folders["Sent"]]) + 'tree_folders');  
     235                var spam_span  = document.getElementById(mount_url_folder(["lINBOX",special_folders["Spam"]]) + 'tree_folders'); 
    222236                //local folders 
    223237                var sent_local_conf = this.preferences.save_in_folder.replace(mount_url_folder(["INBOX",""]),"local_"); 
     
    321335                } 
    322336        } 
    323  
     337} 
     338 
     339function draw_tree_labels(){ 
     340        labels = DataLayer.get('label',{criteria:{order: 'name'}}); 
     341 
     342        $('#content_folders').append("<div id='MyMarckersList' class='acc-list list-label' ></div>").find("#MyMarckersList") 
     343        .append("<div class='my-labels'>" + 
     344                                "<img src='../prototype/modules/mail/img/tag.png'/>" + 
     345                                "<a class='title-my-labels' tabindex='0' role='button' aria-expanded='false' title='Meus marcadores'>Meus marcadores</a>" + 
     346                                 
     347                                "<span class='status-list-labels ui-icon ui-icon-triangle-1-s'></span>" + 
     348                        "</div>" 
     349        ) 
     350        .append(DataLayer.render("../prototype/modules/mail/templates/label_list.ejs", {labels: labels} )) 
     351        .find("li.label-item").css({"background-color":"#ffffff", "border-color":"#CCCCCC", "color":"#444444"}).click(function(){ 
     352                var labelId = $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]; 
     353                search_emails("UNDELETED KEYWORD \"$Label"+labelId+"\""); 
     354        }) 
     355        .find(".square-color").css("display","").click(function(){ 
     356                $(this).parent(".label-item").each(function(){ 
     357                        configureLabels({selectedItem: $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]}); 
     358                        var id_label_item = $(this).attr('class').match(/label-item-([\d]+[()a-zA-Z]*)/)[1]; 
     359                        $(".label-list-container .label-list").find(".label-item-"+id_label_item).trigger("click"); 
     360                }); 
     361        }); 
     362         
     363        $("#MyMarckersList a.title-my-labels").click(function() { 
     364                $("#MyMarckersList ul.label-list").toggleClass("hidden") 
     365                $('#MyMarckersList .status-list-labels').toggleClass("ui-icon-triangle-1-s"); 
     366                $('#MyMarckersList .status-list-labels').toggleClass("ui-icon-triangle-1-n"); 
     367         }); 
     368          
     369        if (!labels){ 
     370                $(".my-labels").addClass("hidden"); 
     371        } 
    324372} 
    325373 
     
    436484                } 
    437485                draw_new_tree_folder();  
     486                draw_tree_labels(); 
    438487} 
    439488 
     
    601650// stores the percentages of the cells 
    602651//var colSizes = [ ["24","24","12","12","12","16","16","20%","58%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; 
    603 var colSizes = [ ["2%","2%","1%","1%","1%","1%","2%","20%","48%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; 
     652//var colSizes = [ ["2%","2%","1%","1%","1%","1%","2%","2%","20%","46%","11%","11%"], ["16","16","12","12","12","20%","20%","*","10%","10%"] ]; 
     653var colSizes = [ ["2%","2%","1%","1%","1%","1%","2%","2%","2%","20%","46%","11%","11%"], ["2%","1%","1%","1%","1%","1%","1%","20%","20%","*","10%","9%"] ]; 
    604654// stores the alignments of the cells 
    605655var colAligns = [ ['','','','','','','','left','left','center','center'], ['','','','','','left','left','left','center','center'] ]; 
     
    942992// Draw the inbox and another folders 
    943993function draw_box(headers_msgs, msg_folder, alternate){ 
    944         /* 
     994        /* 
    945995         * When the paging response is not in the correct folder you need to change folder 
    946996         * This occurs when the Ajax response is not fast enough and the user click in outher 
     
    9681018        } 
    9691019        /* --- */ 
     1020          
     1021        /** 
     1022         * Get the labels aplyed to the messages and saves the information  
     1023         * into message array  
     1024         */ 
     1025        var messageNumbers = new Array(); 
     1026        for (var i=0; i<headers_msgs.length; i++) { 
     1027                messageNumbers.push(headers_msgs[i].msg_number); 
     1028        } 
     1029        var labeleds = DataLayer.get('labeled', { 
     1030                        filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 
     1031                        criteria: {deepness: 2} 
     1032                }); 
     1033 
     1034        if(labeleds) { 
     1035                for (var i=0; i<headers_msgs.length; i++) { 
     1036                        for (var j=0; j<labeleds.length; j++) { 
     1037                                if (labeleds[j].messageNumber == headers_msgs[i].msg_number) { 
     1038                                        if (!headers_msgs[i].labels) 
     1039                                                headers_msgs[i].labels = {}; 
     1040                                        headers_msgs[i].labels[labeleds[j].label.id] = labeleds[j].label; 
     1041                                } 
     1042                        } 
     1043                } 
     1044        } 
     1045         
     1046        /** 
     1047         * Get the followupflags aplyed to the messages and saves the information  
     1048         * into message array  
     1049         */ 
     1050        var followupflaggeds = DataLayer.get('followupflagged', { 
     1051                        filter: ['AND', ['IN', 'messageNumber', messageNumbers], ['=', 'folderName', msg_folder]], 
     1052                        criteria: {deepness: 1} 
     1053                }); 
     1054 
     1055        if(followupflaggeds) { 
     1056                for (var i=0; i<headers_msgs.length; i++) { 
     1057                        for (var j=0; j<followupflaggeds.length; j++) { 
     1058                                if (followupflaggeds[j].messageNumber == headers_msgs[i].msg_number) { 
     1059                                        if (!headers_msgs[i].followupflagged) 
     1060                                                headers_msgs[i].followupflagged = {}; 
     1061                                        headers_msgs[i].followupflagged = followupflaggeds[j]; 
     1062                                } 
     1063                        } 
     1064                } 
     1065        } 
     1066         
     1067        /** 
     1068         * Preenche a estrutura de cache de mensagens para posterior consulta de  
     1069         * informações sobre as mensagens no escopo global. 
     1070         */ 
     1071        for (var i=0; i<headers_msgs.length; i++) {  
     1072                if (!onceOpenedHeadersMessages[current_folder]) 
     1073                        onceOpenedHeadersMessages[current_folder] = {}; 
     1074                onceOpenedHeadersMessages[current_folder][headers_msgs[i].msg_number] = headers_msgs[i]; 
     1075        } 
    9701076 
    9711077        if (alternate) 
     
    10301136 
    10311137                td_element2 = createTDElement(0,1); 
    1032                 td_element3 = createTDElement(0,7,"th_resizable","left","message_header_SORTFROM_"+numBox); 
     1138                td_element3 = createTDElement(0,8,"th_resizable","left","message_header_SORTFROM_"+numBox); 
    10331139                td_element3.onclick = function () {sort_box(search_box_type,'SORTFROM');}; 
    10341140                td_element3.innerHTML = get_lang("From"); 
    10351141 
    1036                 td_element4 = createTDElement(0,8,"th_resizable","left","message_header_SORTSUBJECT_"+numBox); 
     1142                td_element4 = createTDElement(0,9,"th_resizable","left","message_header_SORTSUBJECT_"+numBox); 
    10371143                td_element4.onclick = function () {sort_box(search_box_type,'SORTSUBJECT');}; 
    10381144                td_element4.innerHTML = get_lang("Subject"); 
    10391145 
    1040                 td_element5 = createTDElement(0,9,"th_resizable","center","message_header_SORTARRIVAL_"+numBox); 
     1146                td_element5 = createTDElement(0,10,"th_resizable","center","message_header_SORTARRIVAL_"+numBox); 
    10411147                td_element5.onclick = function () {sort_box(search_box_type,'SORTARRIVAL');}; 
    10421148                td_element5.innerHTML = get_lang("Date"); 
    10431149 
    1044                 td_element6 = createTDElement(0,10,"th_resizable","left","message_header_SORTSIZE_"+numBox); 
     1150                td_element6 = createTDElement(0,11,"th_resizable","left","message_header_SORTSIZE_"+numBox); 
    10451151                td_element6.onclick = function () {sort_box(search_box_type,'SORTSIZE');} 
    10461152                td_element6.innerHTML = get_lang("Size"); 
     
    10601166                var td_element24 = createTDElement(0,5); 
    10611167                td_element24.innerHTML = "&nbsp;"; 
    1062  
    1063                 var td_element25 = createTDElement(0,6); 
     1168                         
     1169                 
     1170                var td_element25 = createTDElement(0,7); 
    10641171                td_element25.innerHTML = "&nbsp;"; 
     1172                 
     1173                var td_element27 = createTDElement(0,8); 
     1174                td_element25.innerHTML = "&nbsp;"; 
     1175                 
     1176                var td_element26 = createTDElement(0,6); 
     1177                td_element26.innerHTML = "&nbsp;"; 
     1178                 
    10651179 
    10661180                tr_element.appendChild(td_element21); 
     
    10681182                tr_element.appendChild(td_element23); 
    10691183                tr_element.appendChild(td_element24); 
     1184                tr_element.appendChild(td_element26); 
     1185                tr_element.appendChild(td_element27); 
    10701186                tr_element.appendChild(td_element25); 
     1187                 
    10711188                tr_element.appendChild(td_element3); 
    10721189                tr_element.appendChild(td_element4); 
     
    12111328                                }, 
    12121329                                helper: function(event){ 
    1213                                         if($(this).find("input:checkbox").attr("checked") != "checked"){ 
    1214                                                 $(this).find("input:checkbox").trigger('click'); 
    1215                                                 $(this).addClass("selected_msg"); 
    1216                                         } 
     1330                                        $(this).find("input:checkbox").attr("checked", true); 
    12171331                                        if($("#table_box").find("tr input:checked").length > 1) 
    12181332                                                return $(DataLayer.render('../prototype/modules/mail/templates/draggin_box.ejs', {texto : (($("#table_box").find("tr input:checked")).length+" mensagens selecionadas"), type: "messages"})); 
     
    12281342                                scrollSpeed: 100, 
    12291343                                containment: "#divAppbox" 
    1230                         }).bind("contextmenu", function(){ 
    1231                                 if($(this).find("input:checkbox").attr("checked") != "checked"){ 
    1232                                         $(this).find("input:checkbox").trigger('click'); 
    1233                                         $(this).addClass("selected_msg"); 
     1344                        }).bind("mouseup", function(event){ 
     1345                                if(event.button == 2) 
     1346                                        if($(this).find("input:checkbox").attr("checked") != "checked"){ 
     1347                                                $(this).find("input:checkbox").trigger('click'); 
     1348                                                $(this).addClass("selected_msg"); 
    12341349                                } 
    12351350                        }); 
     
    12551370                alert("Carregou em "+(_eTime - _bTime)+" ms"); 
    12561371        } 
     1372         
    12571373        var msg_folder = Element('msg_folder').value; 
    12581374        var msg_number = Element('msg_number').value; 
     
    12711387        if(Element("table_quota")) 
    12721388                connector.loadScript("InfoQuota"); 
    1273  
     1389         
    12741390        // creates the dotted ruler which helps user to visualize resizing of columns 
    12751391        var ruler_element = document.getElementById("table_message_ruler"); 
     
    12811397                document.getElementById("exmail_main_body").appendChild(ruler_element); 
    12821398    } 
    1283  
     1399                                 
    12841400} 
    12851401 
     
    13031419// Passar o parâmetro offset para esta função 
    13041420function make_tr_message(headers_msgs, msg_folder, offsetToGMT){ 
    1305                 if (typeof offsetToGMT == 'undefined') 
    1306                 { 
    1307                     // In older local messages headers_msgs.offsetToGMT is undefined. 
    1308                     offsetToGMT = typeof headers_msgs.offsetToGMT != 'undefined'?headers_msgs.offsetToGMT:0; 
    1309                 } 
     1421 
     1422                if (typeof offsetToGMT == 'undefined') 
     1423                { 
     1424                        // In older local messages headers_msgs.offsetToGMT is undefined. 
     1425                        offsetToGMT = typeof headers_msgs.offsetToGMT != 'undefined'?headers_msgs.offsetToGMT:0; 
     1426                } 
    13101427                var tr_element = document.createElement('tr'); 
    13111428                if(typeof(preferences.line_height) != 'undefined') 
     
    13501467                chk_box_element.className = "checkbox"; 
    13511468                chk_box_element.setAttribute("id", "check_box_message_"+headers_msgs.msg_number); 
    1352                 chk_box_element.onclick = function(e){ 
    1353                         if (is_ie) 
    1354                                 changeBgColor(window.event,headers_msgs.msg_number); 
    1355                         else 
     1469                chk_box_element.onchange = function(e){ 
     1470                        //if (is_ie) 
    13561471                                changeBgColor(e,headers_msgs.msg_number); 
    13571472                }; 
     
    14151530 
    14161531 
    1417                 td_element25 = createTDElement(0,6,"td_msg",null,"td_message_unseen_"+headers_msgs.msg_number); 
     1532                td_element25 = createTDElement(0,7,"td_msg",null,"td_message_unseen_"+headers_msgs.msg_number); 
    14181533                if ((headers_msgs.Unseen == 'U') || (headers_msgs.Recent == 'N')) 
    14191534                        td_element25.innerHTML = "<img src ='templates/"+template+"/images/unseen.gif' title='"+get_lang('Unseen')+"'>"; 
     
    14221537 
    14231538 
    1424                 td_element3 = createTDElement(0,7,"td_msg td_resizable","left","td_from_"+ headers_msgs.msg_number); 
     1539                td_element3 = createTDElement(0,8,"td_msg td_resizable","left","td_from_"+ headers_msgs.msg_number); 
    14251540                var _onclick = function(){InfoContact.hide();proxy_mensagens.get_msg(headers_msgs.msg_number, msg_folder,true, show_msg);}; 
    14261541                td_element3.onclick = _onclick; 
     
    14831598                } 
    14841599 
    1485                 td_element4 = createTDElement(0,8,"td_msg td_resizable","left"); 
     1600                td_element4 = createTDElement(0,9,"td_msg td_resizable","left"); 
    14861601                td_element4.className += " td_msg_subject"; 
    14871602                td_element4.onclick = _onclick; 
     
    15111626                        td_element4.innerHTML += "</a>"; 
    15121627                } 
    1513  
    1514  
    1515                 td_element5 = createTDElement(0,9,"td_msg td_resizable","center"); 
     1628                 
     1629                td_element5 = createTDElement(0,10,"td_msg td_resizable","center"); 
    15161630                td_element5.onclick = _onclick; 
    1517  
     1631                 
     1632                td_element27 = createTDElement(0,7,"td_msg",null,"td_message_labels_"+headers_msgs.msg_number); 
     1633                $(td_element27).addClass("td-label"); 
     1634 
     1635                if (headers_msgs.labels) { 
     1636                        td_element27.innerHTML = '<img src="../prototype/modules/mail/img/tag.png">'; 
     1637                        updateLabelsColumn(headers_msgs)                 
     1638                } 
     1639                 
     1640                td_element26 = createTDElement(0,6,"td_msg",null,"td_message_followup_"+headers_msgs.msg_number); 
     1641                $(td_element26).addClass("td-followup-flag"); 
     1642                td_element26.innerHTML = '<div class="flag-edited" style="width:9px;height:6px;"><img src="../prototype/modules/mail/img/flagEditor.png"></div>'; 
     1643         
     1644                if (headers_msgs.followupflagged) { 
     1645                        $(td_element26).attr('title', headers_msgs.followupflagged.followupflag.name) 
     1646                        .find(".flag-edited").css("background",headers_msgs.followupflagged.backgroundColor); 
     1647                        if(headers_msgs.followupflagged.isDone == "1"){ 
     1648                                $(td_element26).find(".flag-edited").find("img") 
     1649                                .attr("src", "../prototype/modules/mail/img/flagChecked.png") 
     1650                                .css("margin-left","-3px"); 
     1651                        } 
     1652                } else { 
     1653                        $(td_element26).find(".flag-edited").css("background","#cccccc"); 
     1654                } 
     1655                 
     1656                /** 
     1657                 * Clique para aplicar sinalizador 
     1658                 */ 
     1659                $(td_element26).click(function() {       
     1660                         
     1661                        var messageClickedId = $(this).attr('id').match(/td_message_followup_([\d]+)/)[1]; 
     1662                         /** 
     1663                                * Hack: 
     1664                                * headers_msgs.followupflagged.id não vai funcionar porque já foi feito DataLayer.commit() 
     1665                                * por isso o id deve ser obtido do banco 
     1666                                * também para verificar se há ou não sinalizador nesta mensagem 
     1667                        */ 
     1668                        var flagged = DataLayer.get('followupflagged', {filter: [ 
     1669                                'AND',  
     1670                                ['=', 'messageNumber', messageClickedId],  
     1671                                ['=', 'folderName', msg_folder] 
     1672                        ]}); 
     1673                        if (flagged == '' || flagged == [] || flagged == 'undefined') { 
     1674                                /** 
     1675                                 * Aplica followupflag de Acompanhamento 
     1676                                 */ 
     1677 
     1678                                headers_msgs.followupflagged = { 
     1679                                        uid : User.me.id, 
     1680                                        folderName : msg_folder,  
     1681                                        messageNumber : messageClickedId,  
     1682                                        alarmTime : false,  
     1683                                        backgroundColor : '#FF2016', 
     1684                                        followupflagId: '1', 
     1685                                        followupflag: DataLayer.get('followupflag', '1') 
     1686                                }; 
     1687                                $(this).find(".flag-edited").css("background", headers_msgs.followupflagged.backgroundColor); 
     1688                                headers_msgs.followupflagged.id = DataLayer.put('followupflagged', headers_msgs.followupflagged); 
     1689                                 
     1690                        } else if (headers_msgs.followupflagged.followupflag.name == 'Follow up') { 
     1691                                /** 
     1692                                 * Remover followupflag de Acompanhamento (DFD0078:RI25) 
     1693                                 */ 
     1694                                 $(this).find(".flag-edited").css("background", "#cccccc"); 
     1695 
     1696 
     1697                                DataLayer.remove('followupflagged', flagged[0].id); 
     1698                                $('#td_message_followup_' + messageClickedId + ', ' +  
     1699                                '#td_message_followup_search_' + messageClickedId).find(".flag-edited") 
     1700                                .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 
     1701                        } else { 
     1702                                $(tr_element).addClass('selected_msg').find(':checkbox').trigger('click'); 
     1703                                configureFollowupflag(); 
     1704                        } 
     1705                         
     1706                });      
     1707                 
    15181708                var norm = function (arg) {return (arg < 10 ? '0'+arg : arg);}; 
    15191709                var weekDays = ['Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday']; 
     
    15571747                td_element5.alt = td_element5.title; 
    15581748 
    1559                 td_element6 = createTDElement(0,10,"td_msg td_resizable","center"); 
     1749                td_element6 = createTDElement(0,11,"td_msg td_resizable","center"); 
    15601750                td_element6.onclick = _onclick; 
    15611751                td_element6.setAttribute("noWrap","true"); 
     
    15671757                tr_element.appendChild(td_element22); 
    15681758                tr_element.appendChild(td_element23); 
    1569                         tr_element.appendChild(td_element24); 
     1759                tr_element.appendChild(td_element24); 
     1760                tr_element.appendChild(td_element26); 
     1761                tr_element.appendChild(td_element27); 
    15701762                tr_element.appendChild(td_element25); 
     1763 
    15711764                tr_element.appendChild(td_element3); 
    15721765                tr_element.appendChild(td_element4); 
     
    33863579            if ((e.keyCode) == 120) //F9 
    33873580                        { 
    3388                 emQuickSearch(input_replyto.value, 'replyto', ID, undefined,true); 
     3581                emQuickSearch(input_replyto.value, 'replyto', ID); 
    33893582                        } 
    33903583                        else 
     
    34123605                        if ((window.event.keyCode) == 120) //F9 
    34133606                        { 
    3414                                         emQuickSearch(input_replyto.value, 'replyto', ID, undefined,true); 
     3607                                        emQuickSearch(input_replyto.value, 'replyto', ID); 
    34153608                        } 
    34163609                        else 
     
    34533646                        if ((e.keyCode) == 120) //F9 
    34543647                        { 
    3455                                 emQuickSearch(input_to.value, 'to', ID, undefined,true); 
     3648                                emQuickSearch(input_to.value, 'to', ID); 
    34563649                        } 
    34573650                        else 
     
    34793672                        if ((window.event.keyCode) == 120) //F9 
    34803673                        { 
    3481                                 emQuickSearch(input_to.value, 'to', ID, undefined,true); 
     3674                                emQuickSearch(input_to.value, 'to', ID); 
    34823675                        } 
    34833676                        else 
     
    35363729                        if ((e.keyCode) == 120) //F9 
    35373730                        { 
    3538                                 emQuickSearch(input_cc.value, 'cc', ID, undefined,true); 
     3731                                emQuickSearch(input_cc.value, 'cc', ID); 
    35393732                        } 
    35403733                        else 
     
    35623755                        if ((window.event.keyCode) == 120) //F9 
    35633756                        { 
    3564                                 emQuickSearch(input_cc.value, 'cc', ID, undefined,true); 
     3757                                emQuickSearch(input_cc.value, 'cc', ID); 
    35653758                        } 
    35663759                        else 
     
    36083801                                if ((e.keyCode) == 120) //F9 
    36093802                                { 
    3610                                         emQuickSearch(input_cco.value, 'cco', ID, undefined,true); 
     3803                                        emQuickSearch(input_cco.value, 'cco', ID); 
    36113804                                } 
    36123805                                else 
     
    36333826                                if ((window.event.keyCode) == 120) //F9 
    36343827                                { 
    3635                                         emQuickSearch(input_cco.value, 'cco', ID, undefined,true); 
     3828                                        emQuickSearch(input_cco.value, 'cco', ID); 
    36363829                                } 
    36373830                                else 
     
    36563849        var cc_load = ""; 
    36573850        a_cc_link.onclick = function () { 
    3658                 var rm = false; 
    36593851                var remove = function(){ 
    36603852                        document.getElementById('tr_cc_'+ID).style.display = 'none'; 
     
    36623854                        $("#cc_"+ID).val(""); 
    36633855                        $("#a_cc_link_"+ID).toggleClass("expressomail-button-icon-ative"); 
    3664                         rm = true; 
    36653856                } 
    36663857                if(!($("#cc_"+ID).parent().find("div")[0])){ 
     
    36823873                        } 
    36833874                } 
    3684                 if (rm) 
    3685                         input_to.focus(); 
    3686                 else     
    3687                         input_cc.focus();                
     3875                input_cc.focus(); 
     3876                 
    36883877                return false; 
    36893878        }; 
     
    40144203                $("#"+$(this).attr("name")).attr("checked", (!check ? true : false)); 
    40154204                //$(this).button({ disabled: false }); 
    4016                 if (RichTextEditor.plain[id] != true) 
    4017                         setTimeout("RichTextEditor.focus("+ID+")",100);                  
    4018                 else  
    4019                         $('#body_'+ID).focus(); 
    40204205        }); 
    40214206         
  • trunk/expressoMail1_2/js/main.js

    r5524 r5533  
    322322 
    323323function show_msg_img(msg_number,folder){ 
     324alert(msg_number+folder); 
    324325        var call_back = function(data){ 
    325326           data.showImg = true; 
  • trunk/expressoMail1_2/js/search.js

    r5506 r5533  
    1616                this.elementChecked = false; 
    1717        } 
    18  
     18         
    1919        //Monta os forms dentro da janela; 
    2020        searchE.prototype.showForms = function(value) 
     
    442442         
    443443        searchE.prototype.make_tr_message = function(aux,border_id,i) { 
     444        console.log(aux); 
     445        /** 
     446         * Preenche a estrutura de cache de mensagens para posterior consulta de  
     447         * informações sobre as mensagens no escopo global. 
     448         */ 
     449                if (!onceOpenedHeadersMessages[aux.boxname]) 
     450                        onceOpenedHeadersMessages[aux.boxname] = {}; 
     451                onceOpenedHeadersMessages[aux.boxname][aux.uid] = aux;   
     452         
    444453                var tr = document.createElement("TR"); 
    445454                if(typeof(preferences.line_height) != 'undefined') 
    446455                        tr.style.height = preferences.line_height; 
    447  
     456                         
     457                var msg_folder = get_current_folder();  
     458                                 
    448459                var mailbox = aux.boxname; 
    449460                var uid_msg = aux.uid; 
     
    455466                tr.setAttribute('name',mailbox); 
    456467                tr.name = mailbox; 
    457  
     468                 
    458469                if ( aux.flag.match("U") ) 
    459470                        add_className(tr,'tr_msg_unread'); 
     
    466477                }; 
    467478 
    468                 for(var j=0 ; j <= 10 ; j++) 
     479                for(var j=0 ; j <= 11 ; j++) 
    469480                { 
    470481                        var td = document.createElement("TD"); 
     
    519530                        { 
    520531                                td.setAttribute("width", colSizes[1][4]); 
     532                                td.id = "td_message_followup_search_"+uid_msg; 
     533                                td.setAttribute("class","search-result-item"); 
     534                                //td1 = "<img src ='../prototype/modules/mail/img/flagDefault.png' title='"+get_lang('Followup')+"'>"; 
     535                                td1 = '<div class="flag-edited" style="width:9px;height:6px;"><img src="../prototype/modules/mail/img/flagEditor.png"></div>'; 
     536                                                 
     537                                $(td).click(function(event, ui){         
     538                                        var messageClickedId = $(this).attr('id').match(/td_message_followup_search_([\d]+)/)[1]; 
     539                                        var flagged = DataLayer.get('followupflagged', {filter: [ 
     540                                                'AND',  
     541                                                ['=', 'messageNumber', messageClickedId],  
     542                                                ['=', 'folderName', mailbox] 
     543                                        ]}); 
     544                                        if(flagged == '' || flagged == [] || flagged == 'undefined'){ 
     545                                                /** 
     546                                                * Aplica followupflag de Acompanhamento 
     547                                                */ 
     548                                                aux.followupflagged = { 
     549                                                        uid : User.me.id, 
     550                                                        folderName : mailbox,  
     551                                                        messageNumber : messageClickedId,  
     552                                                        alarmTime : false,  
     553                                                        backgroundColor : '#FF2016', 
     554                                                        followupflagId: '1', 
     555                                                        followupflag: DataLayer.get('followupflag', '1') 
     556                                                }; 
     557                                                $(this).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 
     558                                                aux.followupflagged.id = DataLayer.put('followupflagged', aux.followupflagged); 
     559                                                 
     560                                        }else if(aux.followupflagged.id){ 
     561                                                /** 
     562                                                * Remover followupflag de Acompanhamento (DFD0078:RI25) 
     563                                                */ 
     564                                                $(this).find(".flag-edited").css("background", "#cccccc"); 
     565 
     566 
     567                                                DataLayer.remove('followupflagged', flagged[0].id); 
     568                                                $('#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"); 
     571                                        } else { 
     572                                                //TODO - open dialog 
     573                                        } 
     574                                        if(!DataLayer.commit()){} 
     575 
     576                                });                              
     577                        } 
     578                        if (j == 5) 
     579                        { 
     580                                td.setAttribute("width", colSizes[1][5]); 
     581                                td.id = "td_message_labels_search_"+uid_msg; 
     582                                td.setAttribute("class","td-label-search");                              
     583                                 
     584                                if (aux.labels) { 
     585                                        td1 = '<img src="../prototype/modules/mail/img/tag.png">'; 
     586                                        updateLabelsColumn(aux)          
     587                                } else { 
     588                                        td1 = ''; 
     589                                } 
     590                        } 
     591                        if (j == 6) 
     592                        { 
     593                                td.setAttribute("width", colSizes[1][6]); 
    521594                                td.id = "td_message_sent_"+uid_msg; 
    522595                                td1 = ''; 
    523596                        } 
    524597 
    525                         if ( j == 5 ) 
    526                         { 
    527                                 td.setAttribute("width", colSizes[1][5]); 
     598                        if ( j == 7 ) 
     599                        { 
     600                                td.setAttribute("width", colSizes[1][7]); 
    528601                                td.className = "td_resizable"; 
    529602                                td.onclick = _onclick; 
     
    536609 
    537610                                var td1  = get_lang(td1).substr(get_lang(td1).length-1) == "*"?td1:get_lang(td1); 
    538  
    539                                                                         td1 = translateFolder(td1); 
    540  
    541  
    542                                 if( proxy_mensagens.is_local_folder(td1)) 
    543                                 { 
     611                                td1 = translateFolder(td1); 
     612 
     613                                if (proxy_mensagens.is_local_folder(td1)) { 
    544614                                        var td1 = this.aux_local_folder_display(td1); 
    545615                                } 
    546616                        } 
    547617 
    548                         if( j == 6 ) 
     618                        if( j == 8 ) 
    549619                        { 
    550620                                var name; 
     
    557627                                        name = name.substr(0,29) + "..."; 
    558628 
    559                                 td.setAttribute("width", colSizes[1][6]); 
     629                                td.setAttribute("width", colSizes[1][8]); 
    560630                                td.className = "td_resizable"; 
    561631                                td.onclick = _onclick; 
     
    566636                        } 
    567637 
    568                         if( j == 7 ) 
     638                        if( j == 9 ) 
    569639                        { 
    570640                                var subject_encode = url_encode(subject); 
     
    575645                                        aux.subject = aux.subject.substr(0,70) + "..."; 
    576646 
    577                                 td.setAttribute("width", colSizes[1][7]); 
     647                                td.setAttribute("width", colSizes[1][9]); 
    578648                                td.className = "td_resizable td_msg_search_subject"; 
    579649                                td.onclick = _onclick; 
     
    584654                        } 
    585655 
    586                         if( j == 8 ) 
    587                         { 
    588                                 td.setAttribute("width", colSizes[1][8]); 
     656                        if( j == 10 ) 
     657                        { 
     658                                td.setAttribute("width", colSizes[1][10]); 
    589659                                td.className = "td_resizable"; 
    590660                                td.align                = "center"; 
     
    609679                        } 
    610680 
    611                         if( j == 9 ) 
     681                        if( j == 11 ) 
    612682                        { 
    613683                                td.setAttribute("width", "9.4%");//alinhamento dos campos data e tamanho 
     
    623693                        } 
    624694 
    625                         if( j == 10 ) 
     695                        if( j == 12 ) 
    626696                        { 
    627697                                if (aux.flag.match("U")) 
     
    631701                                var td1 = ''; 
    632702                        } 
    633                         if (j<10) { 
     703                        if (j<12) { 
    634704                                td.innerHTML = td1; 
     705                                 
     706                                //Carregar os followupflag nos resultados. 
     707                                if (aux.followupflagged) { 
     708                                        $(td).attr('title', aux.followupflagged.followupflag.name) 
     709                                        .find(".flag-edited").css("background",aux.followupflagged.backgroundColor); 
     710                                        if(aux.followupflagged.isDone == "1"){ 
     711                                                $(td).find(".flag-edited").find("img") 
     712                                                .attr("src", "../prototype/modules/mail/img/flagChecked.png") 
     713                                                .css("margin-left","-3px"); 
     714                                        } 
     715                                } else { 
     716                                        $(td).find(".flag-edited").css("background","#cccccc"); 
     717                                } 
     718                                 
    635719                                tr.appendChild(td); 
    636720                        } 
     
    692776                        scrollSpeed: 100, 
    693777                        containment: "#divAppbox" 
    694                 }).bind("contextmenu", function(){ 
    695                         if($(this).find("input:checkbox").attr("checked") != "checked"){ 
    696                                 $(this).find("input:checkbox").trigger('click'); 
    697                                 $(this).addClass("selected_msg"); 
     778                }).bind("mouseup", function(event){ 
     779                        if(event.button == 2) 
     780                                if($(this).find("input:checkbox").attr("checked") != "checked"){ 
     781                                        $(this).find("input:checkbox").trigger('click'); 
     782                                        $(this).addClass("selected_msg"); 
    698783                        } 
    699784                }); 
     
    705790        { 
    706791                var data = ( Data['data'] ) ? Data['data'] : Data['data_gears']; 
    707                  
    708792                if ( data == undefined ) 
    709793                        return; 
    710                  
     794         
    711795                var cont = parseInt(0); 
    712796 
     
    859943                td_element03 = createTDElement(1,3); 
    860944                td_element04 = createTDElement(1,4); 
    861                 td_element1 = createTDElement(1,5,"th_resizable","left"); 
     945                td_element05 = createTDElement(1,5); 
     946                td_element06 = createTDElement(1,6); 
     947                td_element1 = createTDElement(1,7,"th_resizable","left"); 
    862948                 
    863949                var arrow_ascendant = function(Text) 
     
    865951                        return "<b>" + Text + "</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
    866952                } 
    867                  
     953 
    868954                // Ordernar Pasta 
    869955                if ( sort_type == 'SORTBOX' /*|| sort_type == 'SORTBOX_REVERSE'*/ ) 
     
    894980                 
    895981                // Ordernar Quem 
    896                 td_element2 = createTDElement(1,6,"th_resizable","left"); 
     982                td_element2 = createTDElement(1,8,"th_resizable","left"); 
    897983 
    898984                if (sort_type == 'SORTFROM' || sort_type == 'SORTWHO' /*|| sort_type == 'SORTWHO_REVERSE' || sort_type == 'SORTFROM_REVERSE'*/ ) 
     
    9231009                 
    9241010                // Ordernar Subject 
    925                 td_element3 = createTDElement(1,7,"th_resizable","left"); 
     1011                td_element3 = createTDElement(1,9,"th_resizable","left"); 
    9261012                 
    9271013                if (sort_type == 'SORTSUBJECT' /*|| sort_type == 'SORTSUBJECT_REVERSE'*/) 
     
    9521038                 
    9531039                // Ordernar Data 
    954                 td_element4 = createTDElement(1,8,"th_resizable","center"); 
     1040                td_element4 = createTDElement(1,10,"th_resizable","center"); 
    9551041                 
    9561042                if ( sort_type == 'SORTDATE' /*|| sort_type == 'SORTDATE_REVERSE'*/ ) 
     
    9811067 
    9821068                // Ordernar Tamanho 
    983                 td_element5 = createTDElement(1,9,"th_resizable","center"); 
     1069                td_element5 = createTDElement(1,11,"th_resizable","center"); 
    9841070                 
    9851071                if ( sort_type == 'SORTSIZE' /*|| sort_type == 'SORTSIZE_REVERSE'*/ ) 
     
    10081094                        td_element5.innerHTML   = ( sort_type == 'SORTSIZE_REVERSE' ) ? arrow_ascendant(get_lang("size")) : get_lang("size"); 
    10091095                } 
     1096                 
     1097                //Abrir a Tela de de Configuracao de Acompanhamento 
     1098                 
    10101099                 
    10111100                tr_element.appendChild(td_element0); 
     
    10141103                tr_element.appendChild(td_element03); 
    10151104                tr_element.appendChild(td_element04); 
     1105                tr_element.appendChild(td_element05); 
     1106                tr_element.appendChild(td_element06); 
    10161107                tr_element.appendChild(td_element1); 
    10171108                tr_element.appendChild(td_element2); 
     
    10221113                table_element.appendChild(tbody_element); 
    10231114 
     1115                 
    10241116                var colgr_element = buildColGroup(1); 
    10251117                colgr_element.setAttribute("id","colgroup_head_"+numBox); 
     
    16241716// Cria o objeto 
    16251717var EsearchE = new searchE(); 
     1718var EsearchE = new searchE(); 
  • trunk/expressoMail1_2/templates/default/expressomail.css

    r5523 r5533  
    119119} 
    120120 
    121  
    122  
    123  
    124121.context-menu-item.icon-important { background-image: url(images/important.gif); background-position: 6px 5px !important} 
    125122.context-menu-item.icon-export { background-image: url(images/export.png); } 
     
    131128 
    132129 
    133  
    134130.context-menu-item.icon-search-mail { background-image: url(images/menu/search.png); } 
    135131.context-menu-item.icon-filter { background-image: url(images/menu/filters.png); } 
     
    137133.context-menu-item.icon-share-mailbox { background-image: url(images/menu/usersfolders.png); } 
    138134.context-menu-item.icon-label { background-image: url(images/menu/usersfolders.png); } 
     135.context-menu-item.icon-tag { background-image: url(images/menu/tag.png); margin: 3px; } 
    139136.context-menu-item.icon-empty-trash { background-image: url(images/menu/trash.png); } 
    140137.context-menu-item.icon-queue { background-image: url(images/menu/queue.png); } 
    141  
  • trunk/expressoMail1_2/templates/default/index.tpl

    r5525 r5533  
    207207<div id="sandbox" class="expresso-calendar-container hidden"> 
    208208</div> 
     209<div id="windowLabels" class="label-configure-win"></div> 
     210<div id="followupFlag" class="followupflag-configure-win hidden"></div> 
    209211<!-- END list --> 
Note: See TracChangeset for help on using the changeset viewer.