source: trunk/expressoMail1_2/js/doiMenuData.js @ 5568

Revision 5568, 7.2 KB checked in by airton, 12 years ago (diff)

Ticket #2088 - Melhorias no editor de regras de filtro de mensagens do Expresso - Modificando a chamada incorreta

  • Property svn:eol-style set to native
  • Property svn:executable set to *
Line 
1function openListUsers(border_id) {
2        connector.loadScript("QuickCatalogSearch");
3        if (typeof(QuickCatalogSearch) == 'undefined'){
4                                        setTimeout('openListUsers('+border_id+')',500);
5                                        return false;
6                                }
7        QuickCatalogSearch.showCatalogList(border_id);
8}
9
10
11/**
12 * Cria a lista de marcadores para o submenu "Marcadores"
13 */
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                                var msg_folder = current_folder;
45                                var messages = [];
46                                if(currentTab == 0){
47                                        var id = get_selected_messages().split(',');
48                                        for (i = 0; i < id.length; i++){
49                                                messages.push({
50                                                        "msg_number": id[i],
51                                                        "msg_folder": msg_folder,
52                                                });
53                                        }
54                                }else{
55                                        var id = get_selected_messages_search().split(',');
56                                        var id_border = currentTab.replace(/[a-zA-Z_]+/, "");
57                                        for (i = 0; i < id.length; i++){
58                                                var tr = Element(id[i]+'_s'+id_border);
59                                                msg_folder = tr.getAttribute('name');
60                                                messages.push({
61                                                        "msg_number": id[i],
62                                                        "msg_folder": msg_folder,
63                                                });
64                                        }       
65                                }
66
67                                for (var i=0; i < messages.length; i++) {
68                                        var hasLabel = DataLayer.get('labeled', [
69                                                        'AND',
70                                                        ['=', 'labelId', label.id],
71                                                        ['=', 'folderName', messages[i].msg_folder],
72                                                        ['=', 'messageNumber', messages[i].msg_number]
73                                        ]);
74                                        if (!hasLabel) {
75                                                lableleds.push(
76                                                        DataLayer.put('labeled', {
77                                                                labelId:label.id,
78                                                                folderName:messages[i].msg_folder,
79                                                                messageNumber:messages[i].msg_number
80                                                        })
81                                                );
82                                               
83                                        }
84                                }
85                                DataLayer.commit();
86                                        for (var i=0; i < messages.length; i++) {
87                                                updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false});
88                                        }
89                        }
90                },
91                items: {
92                        "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'); }},
93                        "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'); }},
94                        "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'); }},
95                        "flagUnflagged": {"name": get_lang("Mark as") + " " + get_lang('normal'), callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages'); }},
96                       
97                        "sep1": "---------",
98                        "label": { "name": get_lang("Labels"), "items": labelItems},
99                        "follouwpflag":{"name": get_lang("Follow up"), callback: function(key, opt){ configureFollowupflag(); } },
100                       
101                        "sep2": "---------",
102                        "move": {"name": get_lang("Move to")+"...", "icon": "move", callback: function(key, opt){ wfolders.makeWindow('', 'move_to'); }},
103                        "remove": {"name": get_lang("Delete"),      "icon": "delete", callback: function(key, opt){ proxy_mensagens.delete_msgs('null','selected','null'); }},
104                        "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }}
105                }
106        });
107}
108/*FIM*/
109loadMenu();
110
111if (!expresso_offline) {
112        var menuToolsItems = {
113                "i01": {"name": get_lang("Preferences"), "icon": "preferences-mail", callback: preferences_mail },
114                "i02": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }},
115                "103": {"name": get_lang("Edit filters"), "icon": "filter", callback: filterbox2 },
116                "i04": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox },
117                "i05": {"name": get_lang("Share mailbox"), "icon": "share-mailbox", callback: sharebox },
118                "i06": {"name": get_lang("Labels"), "icon": "tag", callback: configureLabels },
119                "i08": {"name": get_lang("Empty trash"), "icon": "empty-trash", callback: function(key, opt){ empty_trash_imap }}
120        };
121               
122        if(preferences.use_local_messages==1) {
123                if(expresso_local_messages.is_offline_installed()) {
124                        menuToolsItems["i09"] = {"name": get_lang("Send from queue"), "icon": "queue", callback: force_check_queue };
125                }
126        }
127} else {
128        var menuToolsItems = {
129                "i01": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }},
130                "i02": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox }
131        }
132}
133
134$.contextMenu({
135        selector: "#link_tools",
136        trigger: 'left',
137        position: function($menu, x, y){
138                $menu.$menu.position({ my: "center top", at: "center bottom", of: this, offset:"0 0"});
139        },
140        determinePosition: function($menu, x, y){
141                $menu.css('display', 'block').position({ my: "center top", at: "center bottom", of: this}).css('display', 'none');
142        },
143        events: {
144                show: function(opt) {
145                        var $trigger = $(opt.selector).css({'background-color': '#EEEEEE', 'border': '1px solid #CCCCCC'});
146                        $('.context-menu-list.context-menu-root').css({'width': $trigger.css('width') });
147                        return true;
148                },
149                hide: function(opt) {
150                        $(opt.selector).css({'background-color': '', 'border': 'none'});
151                        return true;
152                }
153        },
154        callback: function(key, options) {
155               
156        },
157        items: menuToolsItems
158});
159
160
161function updateLabelsColumn(messageInfo) {
162        var msg_number = messageInfo.msg_number;
163        if(messageInfo.uid != '' && messageInfo.uid != 'undefined' && messageInfo.uid != null){
164                msg_number = messageInfo.uid;
165        }
166        $('#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number)
167        .html('<img src="../prototype/modules/mail/img/tag.png">');
168       
169        var msg_folder = current_folder;
170        if(messageInfo.boxname != '' && messageInfo.boxname != 'undefined' && messageInfo.boxname != null){
171                msg_folder = messageInfo.boxname;
172        }
173        var menuItems = {};
174        if (messageInfo.labels) {
175                menuItems = messageInfo.labels;
176        } else {
177                var labeleds = DataLayer.get('labeled', {
178                        criteria: {deepness: '2',
179                        filter: [
180                                'AND',
181                                ['=', 'folderName', msg_folder],
182                                ['=', 'messageNumber', msg_number]
183                        ]}
184                       
185                });
186                if (labeleds) {
187                        for (var i=0; i < labeleds.length; i++)
188                                menuItems[labeleds[i].label.id] = labeleds[i].label;
189                } else {
190                        //não tem labels
191                        return false;
192                }
193        }
194
195        $.contextMenu( 'destroy', '#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number);
196
197        $.contextMenu({
198                selector: '#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number,
199                trigger: 'hover',
200                delay:100,
201                autoHide:true,
202                callback: function(key, options) {
203                        //alert($(this).attr('id'));
204                },
205                items: menuItems
206        });
207}
208
209/**
210 * TODO
211 * * ao clicar com o botao direito em cima da mensagem, selecionar a mensagem
212 * * clarear a cor do menu ferramentas
213 * * pintar o botao ferramentas, quando clicado, da cor do menu
214 *
215 */
Note: See TracBrowser for help on using the repository browser.