source: trunk/expressoMail1_2/js/messages_controller.js @ 7742

Revision 7742, 31.0 KB checked in by marcieli, 11 years ago (diff)

Ticket #3287 - Corrigido deslocamento para baixo quando selecionadas mensagens.

Line 
1/**
2 * @author diogenes
3 */
4
5        function messages_proxy() {
6               
7        }
8/**
9 * Retorna os cabeçalhos das mensagens a serem desenhadas na caixa de email.
10 */
11    messages_proxy.prototype.messages_list = function(folder,msg_range_begin,emails_per_page,sort_box_type,search_box_type,sort_box_reverse,preview_msg_subject,preview_msg_tip,call_back) {
12        if(this.is_local_folder(folder)) {
13            //MAILARCHIVER-01
14            var baseFolder = folder.replace('local_messages_', '');
15            var tree_name;
16            var drawinginfo = {};
17            expresso_mail_archive.update_counters = false;
18            expresso_mail_archive.currentfolder = baseFolder;
19            expresso_mail_archive.getFolderInfo(expresso_mail_archive.currentfolder);
20            expresso_mail_archive.drawdata = drawinginfo;
21
22            if(tree_name == 'tree_folders'){ //only the 'tree_folders' must show messages. 'folders_tree' are just for managment operation
23                var exp_dfs = new Array(baseFolder,msg_range_begin,emails_per_page,sort_box_type,search_box_type, sort_box_reverse,preview_msg_subject,preview_msg_tip);
24                expresso_mail_archive.queryconfig.setExpressoDefaults(exp_dfs);
25                expresso_mail_archive.listMessages();
26            }
27            else{
28                //window.alert('sem arvore para atualizar, com sort_box_type =' + sort_box_type + ' e search_box_type= ' + search_box_type + ' reverse -- ' + sort_box_reverse);
29                var exp_dfs = new Array(baseFolder,msg_range_begin,emails_per_page,sort_box_type,search_box_type,sort_box_reverse,preview_msg_subject,preview_msg_tip);
30                expresso_mail_archive.queryconfig.setExpressoDefaults(exp_dfs);
31                //Para recontagem de mensagens para aba e paginação.
32                expresso_mail_archive.tot_msgs_tab = 0;
33                expresso_mail_archive.tot_unseen_msgs_tab = 0;
34                expresso_mail_archive.listAllMessagesByFolder(folder.replace("local_messages_",""), search_box_type);
35                selectAllFolderMsgs(false);
36                populateSelectedMsgs(expresso_mail_archive.allmessagesbyfolder);
37                expresso_mail_archive.listMessages();
38            }
39
40        }else {
41            $.ajax({
42                url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3",
43                                    folder: folder,
44                                    msg_range_begin: msg_range_begin,
45                                    msg_range_end: emails_per_page,
46                                    sort_box_type: sort_box_type,
47                                    search_box_type: search_box_type,
48                                    sort_box_reverse: sort_box_reverse } ),
49
50                  success: function( data ){
51                    data = connector.unserialize(data);
52                   
53                    if( data )
54                        call_back( data );
55                  },
56                  beforeSend: function( jqXHR, settings ){
57                    connector.showProgressBar();
58                  },
59                  complete: function( jqXHR, settings ){
60                    connector.hideProgressBar();
61                  }
62             
63            });
64        }
65    }
66       
67       
68
69        messages_proxy.prototype.get_msg = function(msg_number,msg_folder,set_flag,call_back) {
70                if(this.is_local_folder(msg_folder)) {
71            //MAILARCHIVER-02
72            expresso_mail_archive.getMessage(msg_number);
73                }else{
74                    $.ajax({
75                              url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg',
76                                                                  msg_number: msg_number,
77                                                                  msg_folder: msg_folder,
78                                                                  sort_box_type : sort_box_type,
79                                                                  search_box_type : search_box_type,
80                                                                  sort_box_reverse: sort_box_reverse
81                                                                  } ),
82                              success: function( data ){
83                                  data = connector.unserialize( data );
84                                 
85                                  if( data )
86                                      call_back( data );
87                              },
88                                  beforeSend: function( jqXHR, settings ){
89                                        connector.showProgressBar();
90                                  },
91                                  complete: function( jqXHR, settings ){
92                                        connector.hideProgressBar();
93                                  }
94
95                    });
96                }
97
98        }
99       
100        messages_proxy.prototype.delete_msgs = function(folder, msgs_number, border_ID, id_delete_msg) {
101
102                if (folder == 'null')
103                        folder = get_current_folder();
104
105        //Validação para recuperar o id caso não seja aba de listagem
106                if (msgs_number == 'selected' && currentTab != 0) //Recupera apenas o id da mensagem aberta
107                        msgs_number = currentTab.substr(0,currentTab.indexOf('_r'));
108        else if (msgs_number == 'selected' && currentTab == 0)
109            msgs_number = get_selected_messages();
110
111                if(currentTab != 0 && currentTab.indexOf("search_")  >= 0){
112                        var content_search = document.getElementById('content_id_'+currentTab);
113                        action_msg_selected_from_search(content_search.id, 'delete');
114                        refresh();
115                        //draw_tree_folders();
116                        //update_local_box();
117                        return;
118                }
119                       
120                if (!this.is_local_folder(folder)){
121                        delete_msgs(folder, msgs_number, border_ID, undefined, undefined, id_delete_msg);
122                }else {   
123            //MAILARCHIVER-03
124            var msg_to_delete = Element(msgs_number);
125            //user has preference to show previous message on deleting one
126            if (isNaN(currentTab) && parseInt(preferences.delete_and_show_previous_message) && msg_to_delete) {
127                    if (msg_to_delete.previousSibling){
128                            var previous_msg = id_delete_msg ? id_delete_msg : msg_to_delete.previousSibling.id;
129
130                            //user has preference to maintain default folder structure at local folders, so we have trash folder
131                            if(preferences.auto_create_local == 1){
132                                //user has preference to "save" delete messasge on trash folder, so move it to there
133                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
134                                    expresso_mail_archive.folder_destination = 'trash';
135                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
136                                    delete_border(currentTab,'false');
137                                    expresso_mail_archive.getMessage(previous_msg);
138                                }
139                                //user does not want to save messages deleted on trash. purge them imediatly
140                                else{
141                                    expresso_mail_archive.deleteMessages(msgs_number);
142                                    delete_border(currentTab,'false');
143                                    expresso_mail_archive.getMessage(previous_msg);
144                                }                                                                               
145                            }
146                            //maybe, we do not have trash.
147                            else{
148                                //user has preference to "save" delete messasge on trash folder, so move it to there
149                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
150                                    expresso_mail_archive.createFolder("","Trash");
151                                    expresso_mail_archive.folder_destination = 'trash';
152                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
153                                    delete_border(currentTab,'false');
154                                    expresso_mail_archive.getMessage(previous_msg);
155                                }
156                                //user does not want to save messages deleted on trash. purge them imediatly
157                                else{
158                                    expresso_mail_archive.deleteMessages(msgs_number);
159                                    delete_border(currentTab,'false');
160                                    expresso_mail_archive.getMessage(previous_msg)
161                                }                                         
162                            }
163                    }
164                    //there is no previous message existing to show. Just delete de view context
165                    else{
166                           //user has preference to maintain default folder structure at local folders, so we have trash folder
167                           if(preferences.auto_create_local == 1){
168                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
169                                    expresso_mail_archive.folder_destination = 'trash';
170                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
171                                    delete_border(currentTab,'false');
172                                }
173                                //user does not want to save messages deleted on trash. purge them imediatly
174                                else{
175                                    expresso_mail_archive.deleteMessages(msgs_number);
176                                    delete_border(currentTab,'false');
177                                }                                       
178                           }
179                            //maybe, we do not have trash. Purge message so.
180                            else{
181                                //user has preference to "save" delete messasge on trash folder, so move it to there
182                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
183                                    expresso_mail_archive.createFolder("","Trash");
184                                    expresso_mail_archive.folder_destination = 'trash';
185                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
186                                    expresso_mail_archive.getMessage(previous_msg);
187                                }
188                                //user does not want to save messages deleted on trash. purge them imediatly
189                                else{
190                                    expresso_mail_archive.deleteMessages(msgs_number);
191                                }                                   
192                            }
193                    }
194            }
195            //user has no preferece to show previous message on deleting
196            else{
197                if(preferences.auto_create_local == 1){
198                    //user has preference to "save" delete messasge on trash folder, so move it to there
199                    if (((preferences.save_deleted_msg == true)) && (folder.replace('messages_','') != expresso_mail_archive.specialfolders.trash)){
200                        expresso_mail_archive.folder_destination = 'trash';
201                        expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
202                        delete_border(currentTab,'false');
203                    }
204                    //user does not want to save messages deleted on trash (or is cleaning it). purge them imediatly
205                    else{
206                        expresso_mail_archive.deleteMessages(msgs_number);
207                        delete_border(currentTab,'false');
208                    }                           
209                }
210                //maybe, we do not have trash. Purge message so.
211                else{
212                    //user has preference to "save" delete messasge on trash folder, so move it to there
213                    if (((preferences.save_deleted_msg == true)) && (folder.replace('messages_','') != expresso_mail_archive.specialfolders.trash)){
214                        expresso_mail_archive.createFolder("","Trash");
215                        expresso_mail_archive.folder_destination = 'trash';
216                        expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
217                    }
218                    //user does not want to save messages deleted on trash. purge them imediatly
219                    else{
220                        expresso_mail_archive.deleteMessages(msgs_number);
221                    }     
222                }
223            }
224                }
225
226        //Código adicionado para o correto funcionamento da seleção independente de paginação.
227        $.each(msgs_number.split(","), function(index, value){
228            delete selectedPagingMsgs[value];
229        });
230//      Inserida verificação ao decrementar variável para que a mesma não seja decrementada mais de uma vez em outros lugares.
231        var isTrash = folder.split("/");
232        if(isTrash[isTrash.length - 1] == 'Trash' || !!!parseInt(preferences.save_deleted_msg))
233            totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length;
234        selectAllFolderMsgs(false);
235        updateSelectedMsgs();
236        }
237       
238        messages_proxy.prototype.link_anexo = function (info_msg,numero_ordem_anexo) {
239
240                if(info_msg.local_message==true) {
241            //MAILARCHIVER-04
242            return "javascript:download_local_attachment('"+ mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/download/' +info_msg.attachments[numero_ordem_anexo].pid + "')";
243                }
244                else {
245                        return "javascript:download_attachments('"+Base64.encode(info_msg.msg_folder)+"','"+info_msg.msg_number+"',"+numero_ordem_anexo+",'"+info_msg.attachments[numero_ordem_anexo].pid+"','"+info_msg.attachments[numero_ordem_anexo].encoding+"','"+info_msg.attachments[numero_ordem_anexo].name+"')";
246                }
247        }
248
249        messages_proxy.prototype.proxy_source_msg = function (id_msg,folder) {
250                if(!this.is_local_folder(folder)) {
251                        source_msg(id_msg,folder);
252                }
253                else {
254                        var num_msg = id_msg.substr(0,(id_msg.length - 2));
255                        expresso_local_messages.get_source_msg(num_msg);
256                }
257        }
258       
259        messages_proxy.prototype.proxy_set_messages_flag = function (flag,msg_number){
260        //MAILARCHIVER
261
262        if(this.is_local_folder(get_current_folder())) {
263       
264            var msglist = get_selected_messages();   
265            var arrlist = msglist.split(",");
266            var operation;
267            var strtag;
268           
269            for(var i in arrlist){
270                var exit = true;
271
272                switch(flag.toLowerCase()){
273                    case 'unseen':
274                        strtag = "unseen";
275                        operation = 0;
276                        set_msg_as_unread(arrlist[i]);
277                        break;
278                    case 'seen':
279                        strtag = "unseen";
280                        operation = 1;
281                        exit = set_msg_as_read(arrlist[i], false, true);
282                        break;
283                    case 'flagged':
284                        strtag = "flagged, importance_high";
285                        operation = 0;
286                        set_msg_as_flagged(arrlist[i]);
287                        break;
288                    case 'unflagged':
289                        strtag = "flagged, importance_high";
290                        operation = 1;
291                        set_msg_as_unflagged(arrlist[i]);
292                        break;
293                }
294
295                if(exit){
296                    expresso_mail_archive.currenttag = flag;
297                    var tl = expresso_mail_archive.pattern.tagConfig(strtag, arrlist[i], operation);
298                    expresso_mail_archive.taglist = tl;                             
299                    expresso_mail_archive.progressbar = window.setTimeout("expresso_mail_archive.tagMessage()",1);
300                }
301            }
302           
303        }
304        else {
305            set_messages_flag(flag,msg_number);
306            // Verifica se a pasta que esta selecionada contem a opção "Não lidas" ativada
307            // caso exista, ele chama novamente a opção "Não lidas" para atualizar a pasta.
308            if('UNSEEN' == search_box_type)
309                return sort_box('UNSEEN','SORTARRIVAL');
310        }
311        }
312       
313        messages_proxy.prototype.proxy_set_message_flag = function (msg_number,flag,func_after_flag_change,msgid){
314        var msg_number_folder = Element("new_input_folder_"+msg_number+"_r"); //Mensagens respondidas/encaminhadas
315                if(!msg_number_folder)
316                        var msg_number_folder = Element("input_folder_"+msg_number+"_r"); //Mensagens abertas
317                var folder = msg_number_folder ?  msg_number_folder.value : get_current_folder();
318
319        //MAILARCHIVER
320        if(this.is_local_folder(folder)) {
321            if(!msgid)
322                msgid = msg_number;
323            var taglist = flag;
324            var operation;
325   
326            switch(flag.toLowerCase()){
327                case 'unseen':
328                    strtag = "unseen";
329                    operation = 0;
330                    set_msg_as_unread(msgid);
331
332                    break;
333                case 'seen':
334                    strtag = "unseen";
335                    operation = 1;
336                    set_msg_as_read(msgid);
337                    break;
338                case 'flagged':
339                    strtag = 'flagged, importance_high';
340                    operation = 0;
341                    set_msg_as_flagged(msgid);
342                    break;
343                case 'unflagged':
344                    strtag = "flagged, importance_high";
345                    operation = 1;
346                    set_msg_as_unflagged(msgid);
347                    break;
348                case 'forwarded':
349                    strtag = "forwarded";
350                    operation = 0;
351                    set_msg_as_flagged(msgid);
352                case 'answered':
353                    strtag = "answered";
354                    operation = 0;
355                    set_msg_as_flagged(msgid);                                 
356                   
357            }   
358            expresso_mail_archive.drawdata = null;
359            var tl = expresso_mail_archive.pattern.tagConfig(strtag, msgid, operation);
360            expresso_mail_archive.currenttag = flag;
361            expresso_mail_archive.taglist = tl;
362            expresso_mail_archive.progressbar = window.setTimeout("expresso_mail_archive.tagMessage()",1);
363        }
364        else {
365            set_message_flag(msg_number,flag, func_after_flag_change);
366        }
367        }
368       
369        messages_proxy.prototype.is_local_folder = function(folder) {
370                if(typeof(folder) == "undefined" || folder.indexOf("local_")==-1)
371                        return false;
372                return true;
373        }
374       
375        /*
376        messages_proxy.prototype.proxy_rename_folder = function(){
377                var specialFolders = special_folders[ttree.getFolder().split(cyrus_delimiter)[ttree.getFolder().split(cyrus_delimiter).length-1]];
378                if (ttree.getFolder() == 'INBOX' || specialFolders ) {
379                        alert(get_lang("It's not possible rename the folder: ") + lang_folder((specialFolders ? specialFolders : ttree.getFolder()))+ '.');
380                        return false;
381                }
382                if(ttree.getFolder() == 'root') {
383                        alert(get_lang("It's not possible rename this folder!"));
384                        return false;
385                }
386                if(!specialFolders && ttree.getFolder() == get_current_folder()){
387                                alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
388                                return false;
389                }
390               
391                if (this.is_local_folder(ttree.getFolder())) {
392                        folder = prompt(get_lang("Enter a name for the box"), "");
393                        if(folder.match(/[\/\\\!\@\#\$\%\&\*\+\(\)]/gi)){
394                        alert(get_lang("It's not possible rename this folder. try other folder name"));
395                        return false;
396                        }
397                        if(trim(folder) == "" || trim(folder) == null){
398                                alert(get_lang("you have to enter the name of the new folder"));
399                                return false;
400                        }
401                        var temp = expresso_local_messages.rename_folder(folder, ttree.FOLDER.substr(6));
402                        if (!temp)
403                                alert(get_lang("cannot rename folder. try other folder name"));
404                        ttreeBox.update_folder();
405                }
406                else {
407                        ttreeBox.validate("rename");
408                }
409               
410        }
411        */
412        /*
413        messages_proxy.prototype.proxy_create_folder = function() {
414                if (folders.length == preferences.imap_max_folders){
415                    alert(get_lang("Limit reached folders"));
416                    return false;
417                }
418               
419                if (this.is_local_folder(ttree.FOLDER)) {
420                        folder = prompt(get_lang('Enter the name of the new folder:'), "");
421
422                        if(folder == null)
423                            return;
424
425
426                        if(trim(folder) == ""){
427                                alert(get_lang("you have to enter the name of the new folder"));
428                                return false;
429                        }
430                        if(folder.match(/[\/\\\!\@\#\$\%\&\*\+\(\)]/gi)){
431                            alert(get_lang("cannot create folder. try other folder name"));
432                            return false;
433                        }
434                        if(ttree.FOLDER=="local_root")
435                                var temp = expresso_local_messages.create_folder(folder);
436                        else
437                                var temp = expresso_local_messages.create_folder(ttree.FOLDER.substr(6)+"/"+folder);
438                        if (!temp)
439                                alert(get_lang("cannot create folder. try other folder name"));
440                        ttreeBox.update_folder(true);
441                }
442                else                   
443                        if(ttree.FOLDER == "INBOX")
444                                alert(get_lang("It's not possible create inside: ") + lang_folder(ttree.FOLDER)+".");
445                        else if (!this.is_local_folder(ttree.FOLDER))
446                                ttreeBox.validate("newpast");
447                        else
448                                alert(get_lang("It's not possible create inside: ") + lang_folder(ttree.FOLDER.substr(6))+".");
449        }
450        */
451        /*
452        messages_proxy.prototype.proxy_remove_folder = function() {
453                if (this.is_local_folder(ttree.FOLDER)) {
454                        if(ttree.FOLDER == 'local_root') {
455                                alert(get_lang("Select a folder!"));
456                                return false;
457                        }
458                        if (ttree.FOLDER == 'local_Inbox' || (preferences.auto_create_local == '1' && (ttree.FOLDER == 'local_Sent' || ttree.FOLDER == 'local_Drafts' || ttree.FOLDER == 'local_Trash'))) {
459                                alert(get_lang("It's not possible delete the folder: ")  + lang_folder(ttree.FOLDER.substr(6)) + '.');
460                                return false;
461                        }
462                        if(ttree.FOLDER.match("^local_.*$") && ttree.FOLDER == get_current_folder()){
463                            alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
464                            return false;
465                        }
466
467                        if(ttree.FOLDER.indexOf("/")!="-1") {
468                                final_pos = ttree.FOLDER.lastIndexOf("/");
469                                new_caption = ttree.FOLDER.substr(final_pos+1);
470                        }
471                        else {
472                                new_caption = ttree.FOLDER.substr(6);
473                        }
474                        var string_confirm = get_lang("Do you wish to exclude the folder ") + new_caption + "?";
475
476                        if (confirm(string_confirm)) {
477                                var flag = expresso_local_messages.remove_folder(ttree.FOLDER.substr(6));
478                                if (flag) {
479                                        write_msg(get_lang("The folder %1 was successfully removed", new_caption));
480                                        draw_tree_local_folders();
481                                        ttreeBox.update_folder(true);
482                                }
483                                else
484                                        alert(get_lang("Delete your sub-folders first"));
485                               
486                        }
487                }
488                else
489                        ttreeBox.del();
490        }*/
491
492        messages_proxy.prototype.proxy_move_messages = function (folder, msgs_number, border_ID, new_folder, new_folder_name) {
493                if (! folder || folder == 'null')
494                        folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder());
495
496        //MAILARCHIVER-08
497        if (this.is_local_folder(folder)){
498            expresso_mail_archive.update_counters = true;
499            //Folder de onde sai a mensagem é local (armazenamento local)
500            if (folder == new_folder){
501                write_msg(get_lang('The origin folder and the destination folder are the same.'));
502                                return;
503            }                   
504
505            //Validação para recuperar o id caso não seja aba de listagem
506            if (msgs_number == 'selected' && currentTab != 0) //Recupera apenas o id da mensagem aberta
507                msgs_number = currentTab.substr(0,currentTab.indexOf('_r'));
508            else
509                msgs_number = get_selected_messages();
510
511            if (new_folder == 'local_root'){
512                alert(get_lang("Select a folder!"));
513            }
514                       
515            if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
516                if (this.is_local_folder(new_folder)){
517                    //esta tirando de um folder local para outro folder local
518                    expresso_mail_archive.moveMessages(new_folder.replace("local_messages_",""), msgs_number);
519                    if(currentTab != 0)
520                        delete_border(currentTab,'false');
521                }
522                else{
523                    //esta tirando de um folder local para um folder IMAP (desarquivamento)
524                    if(!new_folder){
525                        new_folder = 'INBOX';
526                    }
527                    if(currentTab.toString().indexOf("_r") != -1){
528                        msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));
529                    }                     
530                    expresso_mail_archive.unarchieve(folder, new_folder, msgs_number);
531                }
532            }
533            else{
534                write_msg(get_lang('No selected message.'));
535            }
536        }else{
537            if (this.is_local_folder(new_folder)){
538                //esta tirando de um folder não local para um folder local (arquivamento)
539                if(msgs_number=='selected'){
540                    archive_msgs(folder, new_folder);
541                }
542                else{
543                    archive_msgs(folder, new_folder, msgs_number);
544                }
545            }
546            else{
547                //esta tirando de um folder não local para outro folder não local (move)
548                move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
549            }
550        }       
551
552        //Adicionado código para o correto funcionamento da seleção independente de paginação.
553        $.each(msgs_number.split(","), function(index, value){
554            delete selectedPagingMsgs[value];
555        });
556        totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length;
557        selectAllFolderMsgs(false);
558        updateSelectedMsgs();
559        }
560       
561        messages_proxy.prototype.proxy_move_search_messages = function(border_id, new_folder, new_folder_name) {
562               
563               
564                /*
565               
566               
567                if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas não locais...
568                        if (folder == new_folder){
569                                write_msg(get_lang('The origin folder and the destination folder are the same.'));
570                                return;
571                        }
572                        if(msgs_number=='selected')
573                                msgs_number = get_selected_messages();
574                        if (new_folder == 'local_root')
575                                alert(get_lang("Select a folder!"));
576                        if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
577                                expresso_local_messages.move_messages(new_folder.substr(6), msgs_number);
578                                this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID);
579                        }
580                        else
581                                write_msg(get_lang('No selected message.'));
582                }
583                else
584                        if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais...
585                                move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
586                        }
587                        else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) {
588                                archive_msgs(folder,new_folder);
589                        }
590                        else {
591                                write_msg(get_lang("you can't move mails from local to server folders"));
592                        }*/
593        }
594       
595        messages_proxy.prototype.aux_interface_remove_mails = function(msgs_number,new_folder_name,border_ID,previous_msg) {
596                if(!msgs_number)
597                        msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));
598                       
599                if(msgs_number === ""){
600                        write_msg(get_lang('No selected message.'));
601                        return;
602                }
603               
604                Element('chk_box_select_all_messages').checked = false;
605                mail_msg = Element("tbody_box");
606                msgs_number = msgs_number.split(",");
607                var msg_to_delete;
608                this.previous = 0;
609                for (var i=0; i<msgs_number.length; i++){
610                        msg_to_delete = Element(msgs_number[i]);
611                        if (msg_to_delete){
612                                if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') )
613                                        select_msg('null', 'down');
614                                       
615                                  if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && currentTab.toString().indexOf("_r") > 0)
616                                for(var ii=0; ii < mail_msg.rows.length; ii++){
617                                        if(mail_msg.rows[ii] === msg_to_delete){
618                                                if(ii == 0){
619                                                        break;
620                                                }else{
621                                                        this.previous = mail_msg.rows[(ii - 1)].attributes[0];
622                                                        this.previous = parseInt(this.previous.value);
623                                                        break;
624                                                }
625                                        }
626                                }
627                                mail_msg.removeChild(msg_to_delete);
628                        }
629                }
630                new_folder_name = this.get_folder_name(new_folder_name);
631                if (msgs_number.length == 1)
632                        write_msg(get_lang("The message was moved to folder ") + new_folder_name);
633                else
634                        write_msg(get_lang("The messages were moved to folder ") + new_folder_name);
635
636                if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && this.previous){
637                        proxy_mensagens.get_msg(this.previous, folder, true, show_msg);
638                }else if(currentTab != 0){
639                if (border_ID != '' && border_ID != 'null'){
640                                delete_border(border_ID,'false');
641                        }else{
642                                delete_border(currentTab,'false');
643                        }
644                }
645                if(folder == get_current_folder())
646                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - msgs_number.length;                 
647        }
648
649        messages_proxy.prototype.get_folder_name = function(new_folder_name){
650                switch (new_folder_name) {
651                        case 'local_Inbox':
652                                return 'Local_Caixa de Entrada';
653                        case 'local_Sent':
654                                return 'Local_Enviados';
655                        case 'local_Trash':
656                                return 'Local_Lixeira';
657                        case 'local_Drafts':
658                                return 'Local_Rascunhos';
659                        default:
660                                return new_folder_name;
661                }
662        }
663       
664        messages_proxy.prototype.msg_img = function(msgs_number,folder_name,call_back) {
665     if(this.is_local_folder(folder_name)){
666         var msg = expresso_local_messages.get_local_mail(msgs_number);
667                 eval('call_back(msg)');
668     }
669     else
670         $.ajax({
671                  url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg',
672                                                      msg_number: msgs_number,
673                                                      msg_folder: folder_name,
674                                                      decoded: true } ),
675                  success: function( data ){
676                      data = connector.unserialize( data );
677                     
678                      if( data )
679                          call_back( data );
680                  },
681                  beforeSend: function( jqXHR, settings ){
682                        connector.showProgressBar();
683                  },
684                  complete: function( jqXHR, settings ){
685                        connector.hideProgressBar();
686                  }
687
688        });
689    }
690
691    messages_proxy.prototype.export_all_messages = function(folder){
692        if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){ 
693            alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");
694            return true;
695        }
696        if (!folder) {
697            folder = get_current_folder();
698        }
699
700        if(!this.is_local_folder(folder) || folder.split("_")[0] == "local"){
701            export_all_selected_msgs();
702        }else{
703            local_messages.prototype.local_messages_to_export();
704        }
705        }
706       
707        messages_proxy.prototype.archive_message = function(folder, msgs_number) {
708                if(msgs_number == 'get_selected_messages')
709                        msgs_number = get_selected_messages();
710                       
711                expresso_mail_archive.Archive("INBOX", "inbox", msgs_number);
712        }
713
714    messages_proxy.prototype.unarchive_message = function(folder, msgs_number) {
715
716        if(msgs_number == 'get_selected_messages')
717            msgs_number = get_selected_messages();
718
719        expresso_mail_archive.unarchieve(folder, "inbox", msgs_number);
720        $('.select-link').trigger('click',function(){selectAllFolderMsgs();$('.select-link').unbind('click');});
721    }
722       
723        var proxy_mensagens;
724        proxy_mensagens = new messages_proxy();
Note: See TracBrowser for help on using the repository browser.