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

Revision 5603, 8.7 KB checked in by douglasz, 12 years ago (diff)

Ticket #2486 - Valição para quantidades de caractes e correção no setup

  • 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                         * Apply 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                                        var roles = get_selected_messages_search_role().split(',');
67                                        for (i = 0; i < roles.length; i++){
68                                                var tr = $('[role="'+roles[i]+'"]');
69                                                msg_folder = $(tr).attr('name');
70                                                var id = $(tr).attr('id');
71                                                messages.push({
72                                                        "msg_number": id.replace(/_[a-zA-Z0-9]+/,""),
73                                                        "msg_folder": msg_folder,
74                                                });
75                                        }
76                                }
77
78                                for (var i=0; i < messages.length; i++) {
79                                        var hasLabel = DataLayer.get('labeled', [
80                                                        'AND',
81                                                        ['=', 'labelId', label.id],
82                                                        ['=', 'folderName', messages[i].msg_folder],
83                                                        ['=', 'messageNumber', messages[i].msg_number]
84                                        ]);
85                                        if (!hasLabel) {
86                                                lableleds.push(
87                                                        DataLayer.put('labeled', {
88                                                                labelId:label.id,
89                                                                folderName:messages[i].msg_folder,
90                                                                messageNumber:messages[i].msg_number
91                                                        })
92                                                );
93                                               
94                                        }
95                                }
96                                DataLayer.commit();
97                                for (var i=0; i < messages.length; i++) {
98                                        updateLabelsColumn({msg_number:messages[i].msg_number, boxname:messages[i].msg_folder, labels:false});
99                                }
100
101                        }
102                },
103                items: {
104                        "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'); }},
105                        "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'); }},
106                        "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'); }},
107                        "flagUnflagged": {"name": get_lang("Mark as") + " " + get_lang('normal'), callback: function(key, opt){ proxy_mensagens.proxy_set_messages_flag('unflagged','get_selected_messages'); }},
108                       
109                        "sep1": "---------",
110                        "label": { "name": get_lang("Labels"), "items": labelItems},
111                        "follouwpflag":{"name": get_lang("Follow up"), callback: function(key, opt){ configureFollowupflag(); } },
112                       
113                        "sep2": "---------",
114                        "move": {"name": get_lang("Move to")+"...", "icon": "move", callback: function(key, opt){ wfolders.makeWindow('', 'move_to'); }},
115                        "remove": {"name": get_lang("Delete"),      "icon": "delete", callback: function(key, opt){ proxy_mensagens.delete_msgs('null','selected','null'); }},
116                        "export": {"name": get_lang("Export"),      "icon": "export", callback: function(key, opt){ proxy_mensagens.export_all_messages(); }}
117                }
118        });
119}
120/*FIM*/
121loadMenu();
122
123if (!expresso_offline) {
124        var menuToolsItems = {
125                "i01": {"name": get_lang("Preferences"), "icon": "preferences-mail", callback: preferences_mail },
126                "i02": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }},
127                "103": {"name": get_lang("Edit filters"), "icon": "filter", callback: filterbox2 },
128                "i04": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox },
129                "i05": {"name": get_lang("Share mailbox"), "icon": "share-mailbox", callback: sharebox },
130                "i06": {"name": get_lang("Labels"), "icon": "tag", callback: configureLabels },
131                "i08": {"name": get_lang("Empty trash"), "icon": "empty-trash", callback: function(key, opt){ empty_trash_imap }}
132        };
133               
134        if(preferences.use_local_messages==1) {
135                if(expresso_local_messages.is_offline_installed()) {
136                        menuToolsItems["i09"] = {"name": get_lang("Send from queue"), "icon": "queue", callback: force_check_queue };
137                }
138        }
139} else {
140        var menuToolsItems = {
141                "i01": {"name": get_lang("Search"), "icon": "search-mail", callback: function(key, opt){ search_emails(""); }},
142                "i02": {"name": get_lang("Edit folders"), "icon": "edit-folder", callback: folderbox }
143        }
144}
145$.contextMenu({
146        selector: "#link_tools",
147        trigger: 'left',
148        className: 'context-menu-tools',
149        position: function($menu, x, y){
150                $menu.$menu.position({ my: "center top", at: "center bottom", of: this, offset:"0 0"});
151        },
152        determinePosition: function($menu, x, y){
153                $menu.css('display', 'block').position({ my: "center top", at: "center bottom", of: this}).css('display', 'none');
154        },
155        events: {
156                show: function(opt) {
157                        var $trigger = $(opt.selector).css({'background-color': '#EEEEEE', 'border': '1px solid #CCCCCC'});
158                        $('.context-menu-tools.context-menu-list.context-menu-root').css({'width': $trigger.css('width') });
159                        return true;
160                },
161                hide: function(opt) {
162                        $(opt.selector).css({'background-color': '', 'border': 'none'});
163                        return true;
164                }
165        },
166        callback: function(key, options) {
167                //TODO - default actions
168
169        },
170        items: menuToolsItems
171});
172
173
174function updateLabelsColumn(messageInfo) {
175        var msg_number = messageInfo.msg_number;
176        //uid é o numero da mensagem quando os dados são carregados na busca rapida.
177        if(messageInfo.uid != '' && messageInfo.uid != 'undefined' && messageInfo.uid != null){
178                msg_number = messageInfo.uid;
179        }
180        var msg_folder = current_folder;
181        if(messageInfo.boxname != '' && messageInfo.boxname != 'undefined' && messageInfo.boxname != null){
182                msg_folder = messageInfo.boxname;
183        }
184       
185         if(current_folder == msg_folder || !current_folder){
186                 $('#td_message_labels_' + msg_number +', tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number)
187                 .html('<img src="../prototype/modules/mail/img/tag.png">');
188        }else{
189                $('tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number)
190                .html('<img src="../prototype/modules/mail/img/tag.png">');
191        }
192       
193        var menuItems = {};
194        if (messageInfo.labels) {
195                menuItems = messageInfo.labels;
196        } else {
197                var labeleds = DataLayer.get('labeled', {
198                        criteria: {deepness: '2',
199                        filter: [
200                                'AND',
201                                ['=', 'folderName', msg_folder],
202                                ['=', 'messageNumber', msg_number]
203                        ]}
204                       
205                });
206                if (labeleds) {
207                        for (var i=0; i < labeleds.length; i++)
208                                menuItems[labeleds[i].label.id] = labeleds[i].label;
209                } else {
210                        $('#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number+':first')
211                        .html('');
212                        //$.contextMenu( 'destroy', '#td_message_labels_' + msg_number +', #td_message_labels_search_' + msg_number+':first');
213                        $.contextMenu( 'destroy', '#td_message_labels_' + msg_number +', tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number);
214                        return false;
215                }
216        }
217         if(current_folder == msg_folder || !current_folder){
218                $.contextMenu( 'destroy', '#td_message_labels_' + msg_number +', tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number);
219
220                $.contextMenu({
221                        selector: '#td_message_labels_' + msg_number +', tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number,
222                        trigger: 'hover',
223                        delay:100,
224                        autoHide:true,
225                        callback: function(key, options) {
226                                //TODO - default actions
227
228                        },
229                        items: menuItems
230                });
231        }else{
232                $.contextMenu( 'destroy', 'tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number);
233
234                $.contextMenu({
235                        selector: 'tr[role="'+msg_number+'_'+msg_folder+'"] #td_message_labels_search_' + msg_number,
236                        trigger: 'hover',
237                        delay:100,
238                        autoHide:true,
239                        callback: function(key, options) {
240                                //TODO - default actions
241
242                        },
243                        items: menuItems
244                });     
245        }
246}
247
248
249
250
251
252
253
Note: See TracBrowser for help on using the repository browser.