Ignore:
Timestamp:
02/10/12 14:25:51 (12 years ago)
Author:
adriano
Message:

Ticket #2486 - alteracao dos menus de contexto e de ferramentas para a funcionalidade

File:
1 edited

Legend:

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

    r5134 r5497  
    1 _icon_dir="templates/"+template+"/images/menu/"; 
    2  
    3 function ConstructMenuTools(){ 
    4         // Layout padrão de menu = option1 
    5         var _divMenu = Element('menu_tools'); 
    6         if(_divMenu) 
    7                 return; 
    8         var _option1 = preferences.hide_folders == "1" ? false : true; 
    9                                                                  
    10         if (!expresso_offline) { 
    11                 var itens = new Array("preferences_mail()|" + get_lang("Preferences") + "|preferences.png", 
    12                                 "search_emails(\"\")|" + get_lang("Search") + "|search.png", 
    13                                 "filterbox()|" + get_lang("Edit filters") + "|filters.png", 
    14                                 "folderbox()|" + get_lang("Edit folders") + "|editfolders.png", 
    15                                 "sharebox()|" + get_lang("Share mailbox") + "|usersfolders.png", 
    16 //                              "editrss()|" + get_lang("Edit my news") + "|rss.png", 
    17                                 "empty_trash_imap()|" + get_lang("Empty trash") + "|trash.png"); 
    18                 if(preferences.use_local_messages==1) { 
    19                         if(expresso_local_messages.is_offline_installed()) { 
    20                                 itens.push("force_check_queue()|" + get_lang("Send from queue") + "|queue.png"); 
    21                         } 
    22                 } 
    23         } 
    24         else { 
    25                 var itens = new Array("search_emails(\"\")|" + get_lang("Search") + "|search.png", 
    26                                 "folderbox()|" + get_lang("Edit folders") + "|editfolders.png");         
    27         } 
    28  
    29         var _link = Element('link_tools'); 
    30         _divMenu = document.createElement("DIV"); 
    31         _divMenu.id = "menu_tools"; 
    32         _divMenu.style.position = "absolute"; 
    33         _divMenu.style.top =  findPosY(_link) + (_option1 ? 19 : 14); 
    34         _divMenu.style.left = findPosX(_link) + (_option1 ? 22 : 22); 
    35         _divMenu.style.width = "auto"; 
    36         _divMenu.style.height = "auto"; 
    37         _divMenu.style.padding = "1px"; 
    38         _divMenu.style.paddingTop = "0px"; 
    39         _divMenu.style.zIndex = "10000"; 
    40         _divMenu.style.backgroundColor = "WHITE"; 
    41         _divMenu.style.border = "1px solid #999999"; 
    42         _divMenu.style.borderTop = "0px solid #FFFFFF"; 
    43         _divMenu.style.visibility = "hidden"; 
    44         var _timeout = false; 
    45         _hideMenuTools = function () {           
    46                 Element('menu_tools').style.visibility = "hidden";       
    47         }; 
    48         _viewMenuTools = function () { 
    49                 Element('menu_tools').style.visibility = "visible"; 
    50         }; 
    51  
    52         var _mouseover = _link.onmouseover; 
    53          
    54         _link.onmouseover = function () {        
    55                 var _option1 = preferences.hide_folders == "1" ? false : true; 
    56                 var _link = Element('link_tools'); 
    57                 Element('menu_tools').style.top =  findPosY(_link) + (_option1 ? 19 : 14); 
    58                 if(_timeout) { 
    59                         clearTimeout(_timeout); 
    60                         _timeout=false; 
    61                 }        
    62                 if(_mouseover)  
    63                         _mouseover();  
    64          
    65                 _timeout = setTimeout("_viewMenuTools();",500); 
    66         }; 
    67          
    68         _link.onmouseout  = function () { 
    69                 if(_timeout) { 
    70                         clearTimeout(_timeout); 
    71                         _timeout=false; 
    72                 } 
    73                 if(_option1) 
    74                         unset_menu_bg(Element("link_tools"));    
    75                 _timeout = setTimeout("_hideMenuTools();",500); 
    76         } 
    77  
    78         var _t = document.createElement("TABLE"); 
    79         _t.cellPadding="0"; 
    80         _t.cellSpacing="0"; 
    81         _t.onmouseover = function () {   
    82                 if(_timeout) { 
    83                         clearTimeout(_timeout); 
    84                         _timeout=false; 
    85                 }        
    86                 if(_mouseover)  
    87                         _mouseover();  
    88          
    89                 Element('menu_tools').style.visibility = "visible"; 
    90         }; 
    91         var _tbody = document.createElement("TBODY"); 
    92          
    93         var buildTr = function(value) { 
    94                 var item = value.split('|'); 
    95                 var _tr = document.createElement("TR"); 
    96                 var _td = document.createElement("TD"); 
    97                 _td.innerHTML = "<img height=\"16px\" src=\"templates/"+template+"/images/menu/"+item[2]+"\">&nbsp;"+item[1]+"&nbsp;"; 
    98                 _td.style.color = "DARKBLUE"; 
    99                 _td.style.cursor = "pointer"; 
    100                 if(_option1) 
    101                         _td.style.border = '1px solid #f7f7f7';                  
    102                 _td.onclick     = function() { Element('menu_tools').style.visibility='hidden';eval(item[0]);}; 
    103                 _td.onmouseover = function () { 
    104                         if(_timeout) { 
    105                                 clearTimeout(_timeout); 
    106                                 timeout=false; 
    107                         } 
    108                          
    109                         if(_option1) 
    110                                 set_menu_bg(this); 
    111                         else { 
    112                                 this.style.textDecoration="underline";                           
    113                                 this.style.color = 'DARKORANGE'; 
    114                         } 
    115                 };                                               
    116                 _td.onmouseout   = function () { 
    117                         _timeout = setTimeout("_hideMenuTools();",500); 
    118                         if(_option1){ 
    119                                 unset_menu_bg(this); 
    120                                 unset_menu_bg(Element("link_tools")); 
    121                         }else {          
    122                                 this.style.backgroundColor = 'WHITE'; 
    123                                 this.style.textDecoration="none"; 
    124                                 this.style.color = 'DARKBLUE'; 
    125                         } 
    126                 };               
    127                 _tr.appendChild(_td); 
    128                 return _tr; 
    129         } 
    130          
    131         for(i = 0; i < itens.length; i++) 
    132                 _tbody.appendChild(buildTr(itens[i])); 
    133                          
    134         _t.appendChild(_tbody); 
    135         _divMenu.appendChild(_t); 
    136         document.body.appendChild(_divMenu); 
    137 } 
    138  
    1391function openListUsers(border_id) { 
    1402        connector.loadScript("QuickCatalogSearch"); 
     
    1468} 
    1479 
    148 function ConstructRightMenu(_event){ 
     10$.contextMenu({ 
     11        selector: ".table_box tbody tr", 
     12        callback: function(key, options) { 
     13                //TODO - default actions 
     14                //TODO - aply labels actions 
    14915 
    150         var div = Element("div_rightbutton"); 
    151         if(!div){ 
    152                 div = document.createElement("DIV"); 
    153                 div.style.position = 'absolute'; 
    154                 div.style.zIndex = '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}); 
    15530 
    156                 div.style.border = '1px outset BLACK'; 
    157                 div.style.background = "#EEEEE6"; 
    158                 div.id = 'div_rightbutton'; 
    159                 div.style.padding = "1px"; 
    160                 div.style.fontSize = is_ie || is_gecko1_5 || is_win ? "9pt" : "11pt"; 
    161                 div.style.width = "190px"; 
    162                 div.style.height = is_win && !is_ie ? "129px" : "139px"; 
    163                 div.style.display ='none';               
    164                 document.body.appendChild(div); 
    165                 var _tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
    166                 var _sep = "<hr>"; 
    167                 var optionsMenu = new Array(  
    168                         _tab + get_lang("Mark as")+"&nbsp;"+get_lang('seen')+'|'+"proxy_mensagens.proxy_set_messages_flag('seen','get_selected_messages')", 
    169                         _tab + get_lang("Mark as")+"&nbsp;"+get_lang('unseen')+'|'+"proxy_mensagens.proxy_set_messages_flag('unseen','get_selected_messages')", 
    170                         _tab + get_lang("Mark as")+"&nbsp;"+get_lang('important')+'|'+"proxy_mensagens.proxy_set_messages_flag('flagged','get_selected_messages')", 
    171                         _tab + get_lang("Mark as")+"&nbsp;"+get_lang('normal')+'|'+"proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages')", 
    172                         _sep, 
    173                         _tab + get_lang("Move to")+" ... |wfolders.makeWindow('', 'move_to')", 
    174                         _tab + get_lang("Delete")+"|"+"proxy_mensagens.delete_msgs('null','selected','null')", 
    175                         _tab + get_lang("Export")+"|"+"proxy_mensagens.export_all_messages()" 
    176                 ); 
    17731 
    178                 for(i = 0; i < optionsMenu.length; i++){ 
    179                         optionsMenu_l = optionsMenu[i].split('|'); 
    180                         var div_l = document.createElement("DIV"); 
    181                         div_l.style.padding = "1px"; 
    182                         div_l.style.width = "188px"; 
    183                         div_l.style.cursor = 'pointer';                  
    184                         div_l.innerHTML = optionsMenu_l[0]; 
    185                         div_l.style.valign = 'top'; 
    186                         if(optionsMenu_l[0] != _sep) { 
    187                                 var attr = document.createAttribute('javascript'); 
    188                                 attr.value = optionsMenu_l[1]+";Element('div_rightbutton').style.display = 'none';"; 
    189                                 div_l.setAttributeNode(attr); 
    190                                 div_l.oncontextmenu = function(e) {     return false;}; 
    191                                 div_l.onclick = function () {this.onmouseout();eval(this.getAttribute('javascript'));}; 
    192                                 div_l.onmouseover = function () {this.style.color = 'WHITE';this.style.background = "#4a79cd";}; 
    193                                 div_l.onmouseout = function ()  {this.style.color = 'BLACK';this.style.background = "#EEEEE6";}; 
    194                         } 
    195                         else 
    196                                 div_l.style.height = "11px"; 
    197                                  
    198                         div_l.id="link_rightbutton_"+i; 
    199                         div.appendChild(div_l); 
     32/** 
     33 * Cria a lista de itens para o menu ferramentas 
     34 */ 
     35if (!expresso_offline) { 
     36        var menuToolsItems = { 
     37                "i01": {"name": get_lang("Preferences"), "icon": "preferences-mail", callback: preferences_mail }, 
     38                "i02": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }}, 
     39                "103": {"name": get_lang("Edit filters"), "icon": "filter", callback: filterbox }, 
     40                "i04": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox }, 
     41                "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() } } 
     44        }; 
     45                 
     46        if(preferences.use_local_messages==1) { 
     47                if(expresso_local_messages.is_offline_installed()) { 
     48                        menuToolsItems["i09"] = {"name": get_lang("Send from queue"), "icon": "queue", callback: force_check_queue }; 
    20049                } 
    201          
    20250        } 
     51} else { 
     52        var menuToolsItems = { 
     53                "i01": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }}, 
     54                "i02": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox } 
     55        } 
     56} 
    20357 
    204         var x = _event.clientX + document.body.scrollLeft +  2; 
    205         var y =  _event.clientY + document.body.scrollTop +  2; 
     58/** 
     59 * Aplica o menu ferramentas 
     60 */ 
     61$.contextMenu({ 
     62        selector: "#link_tools", 
     63        trigger: 'left', 
     64        position: function($menu, x, y){ 
     65                $menu.$menu.position({ my: "center top", at: "center bottom", of: this, offset:"0 0"}); 
     66        }, 
     67        determinePosition: function($menu, x, y){ 
     68                $menu.css('display', 'block').position({ my: "center top", at: "center bottom", of: this}).css('display', 'none'); 
     69        }, 
     70        events: { 
     71                show: function(opt) { 
     72                        /** 
     73                         * Modifica cor do elemento de trigger para o menu 
     74                         */ 
     75                        var $trigger = $(opt.selector).css({'background-color': '#EEEEEE', 'border': '1px solid #CCCCCC'}); 
     76                        $('.context-menu-list.context-menu-root').css({'width': $trigger.css('width') }); 
     77                        return true; 
     78                }, 
     79                hide: function(opt) { 
     80                        /** 
     81                         * Modifica cor do elemento de trigger para o menu 
     82                         */ 
     83                        $(opt.selector).css({'background-color': '', 'border': 'none'}); 
     84                        return true; 
     85                } 
     86        }, 
     87        callback: function(key, options) { 
     88                //TODO - default actions                 
     89        }, 
     90        items: menuToolsItems 
     91}); 
    20692 
    207         var w_width  = is_ie ? document.body.clientWidth : window.innerWidth; 
    208         var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset; 
    209  
    210         if(x + 218 > w_width) 
    211                 div.style.left = w_width - (is_ie ? 198 : 218);  
    212         else 
    213                 div.style.left = x; 
    214          
    215         if(y + 131 > w_height) 
    216                 div.style.top =  w_height - (is_ie ? 125 : 131);         
    217         else 
    218                 div.style.top = y;       
    219  
    220         div.style.display =''; 
    221 }  
    222  
    223 function ConstructBoxMenu(_event,boxName,boxFolder){ 
    224  
    225         var div = Element("div_rightbutton_folder"); 
    226                 if (div) 
    227                         div.parentNode.removeChild(div); 
    228          
    229                 div = document.createElement("DIV"); 
    230                 div.style.position = 'absolute'; 
    231                 div.style.zIndex = '15'; 
    232  
    233                 div.style.border = '1px outset BLACK'; 
    234                 div.style.background = "#EEEEE6"; 
    235                 div.id = 'div_rightbutton_folder'; 
    236                 div.style.padding = "1px"; 
    237                 div.style.fontSize = is_ie || is_gecko1_5 || is_win ? "9pt" : "11pt"; 
    238                 div.style.width = "190px"; 
    239                 div.style.height = is_win && !is_ie ? "35px" : "33px"; 
    240                 div.style.display ='none';               
    241                 document.body.appendChild(div); 
    242                 var _tab = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
    243                 var _sep = "<hr>"; 
    244                 var optionsMenu = new Array(  
    245                         _tab + get_lang("Open in new tab")+'|'+"open_folder('"+boxFolder+"', '"+boxName+"')", 
    246                         _tab + get_lang("Edit folders")+'|'+"folderbox()" 
    247                 ); 
    248  
    249                 for(i = 0; i < optionsMenu.length; i++){ 
    250                         optionsMenu_l = optionsMenu[i].split('|'); 
    251                         var div_l = document.createElement("DIV"); 
    252                         div_l.style.padding = "1px"; 
    253                         div_l.style.width = "188px"; 
    254                         div_l.style.cursor = 'pointer';                  
    255                         div_l.innerHTML = optionsMenu_l[0]; 
    256                         div_l.style.valign = 'top'; 
    257                         if(optionsMenu_l[0] != _sep) { 
    258                                 var attr = document.createAttribute('javascript'); 
    259                                 attr.value = optionsMenu_l[1]+";Element('div_rightbutton_folder').style.display = 'none';"; 
    260                                 div_l.setAttributeNode(attr); 
    261                                 div_l.oncontextmenu = function(e) {     return false;}; 
    262                                 div_l.onclick = function () {this.onmouseout();eval(this.getAttribute('javascript'));}; 
    263                                 div_l.onmouseover = function () {this.style.color = 'WHITE';this.style.background = "#4a79cd";}; 
    264                                 div_l.onmouseout = function ()  {this.style.color = 'BLACK';this.style.background = "#EEEEE6";}; 
    265                         } 
    266                         else 
    267                                 div_l.style.height = "11px"; 
    268                                  
    269                         div_l.id="link_rightbutton_folder"+i; 
    270                         div.appendChild(div_l); 
    271                 } 
    272  
    273         var x = _event.clientX + document.body.scrollLeft +  2; 
    274         var y =  _event.clientY + document.body.scrollTop +  2; 
    275  
    276         var w_width  = is_ie ? document.body.clientWidth : window.innerWidth; 
    277         var w_height = is_ie ? document.body.clientHeight + document.body.scrollTop : window.innerHeight + window.pageYOffset; 
    278  
    279         if(x + 218 > w_width) 
    280                 div.style.left = w_width - (is_ie ? 198 : 218);  
    281         else 
    282                 div.style.left = x; 
    283          
    284         if(y + 131 > w_height) 
    285                 div.style.top =  w_height - (is_ie ? 125 : 131);         
    286         else 
    287                 div.style.top = y;       
    288  
    289         div.style.display =''; 
    290 }  
Note: See TracChangeset for help on using the changeset viewer.