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

Revision 7662, 30.7 KB checked in by angelo, 11 years ago (diff)

Ticket #3240 - Nao e possivel abrir mensagens resultantes de uma pesquisa avancada

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        totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length;
231        selectAllFolderMsgs(false);
232        updateSelectedMsgs();
233        }
234       
235        messages_proxy.prototype.link_anexo = function (info_msg,numero_ordem_anexo) {
236
237                if(info_msg.local_message==true) {
238            //MAILARCHIVER-04
239            return "javascript:download_local_attachment('"+ mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/download/' +info_msg.attachments[numero_ordem_anexo].pid + "')";
240                }
241                else {
242                        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+"')";
243                }
244        }
245
246        messages_proxy.prototype.proxy_source_msg = function (id_msg,folder) {
247                if(!this.is_local_folder(folder)) {
248                        source_msg(id_msg,folder);
249                }
250                else {
251                        var num_msg = id_msg.substr(0,(id_msg.length - 2));
252                        expresso_local_messages.get_source_msg(num_msg);
253                }
254        }
255       
256        messages_proxy.prototype.proxy_set_messages_flag = function (flag,msg_number){
257        //MAILARCHIVER
258
259        if(this.is_local_folder(get_current_folder())) {
260       
261            var msglist = get_selected_messages();   
262            var arrlist = msglist.split(",");
263            var operation;
264            var strtag;
265           
266            for(var i in arrlist){
267                var exit = true;
268
269                switch(flag.toLowerCase()){
270                    case 'unseen':
271                        strtag = "unseen";
272                        operation = 0;
273                        set_msg_as_unread(arrlist[i]);
274                        break;
275                    case 'seen':
276                        strtag = "unseen";
277                        operation = 1;
278                        exit = set_msg_as_read(arrlist[i], false, true);
279                        break;
280                    case 'flagged':
281                        strtag = "flagged, importance_high";
282                        operation = 0;
283                        set_msg_as_flagged(arrlist[i]);
284                        break;
285                    case 'unflagged':
286                        strtag = "flagged, importance_high";
287                        operation = 1;
288                        set_msg_as_unflagged(arrlist[i]);
289                        break;
290                }
291
292                if(exit){
293                    expresso_mail_archive.currenttag = flag;
294                    var tl = expresso_mail_archive.pattern.tagConfig(strtag, arrlist[i], operation);
295                    expresso_mail_archive.taglist = tl;                             
296                    expresso_mail_archive.progressbar = window.setTimeout("expresso_mail_archive.tagMessage()",1);
297                }
298            }
299           
300        }
301        else {
302            set_messages_flag(flag,msg_number);
303            // Verifica se a pasta que esta selecionada contem a opção "Não lidas" ativada
304            // caso exista, ele chama novamente a opção "Não lidas" para atualizar a pasta.
305            if('UNSEEN' == search_box_type)
306                return sort_box('UNSEEN','SORTARRIVAL');
307        }
308        }
309       
310        messages_proxy.prototype.proxy_set_message_flag = function (msg_number,flag,func_after_flag_change,msgid){
311        var msg_number_folder = Element("new_input_folder_"+msg_number+"_r"); //Mensagens respondidas/encaminhadas
312                if(!msg_number_folder)
313                        var msg_number_folder = Element("input_folder_"+msg_number+"_r"); //Mensagens abertas
314                var folder = msg_number_folder ?  msg_number_folder.value : get_current_folder();
315
316        //MAILARCHIVER
317        if(this.is_local_folder(folder)) {
318            if(!msgid)
319                msgid = msg_number;
320            var taglist = flag;
321            var operation;
322   
323            switch(flag.toLowerCase()){
324                case 'unseen':
325                    strtag = "unseen";
326                    operation = 0;
327                    set_msg_as_unread(msgid);
328
329                    break;
330                case 'seen':
331                    strtag = "unseen";
332                    operation = 1;
333                    set_msg_as_read(msgid);
334                    break;
335                case 'flagged':
336                    strtag = 'flagged, importance_high';
337                    operation = 0;
338                    set_msg_as_flagged(msgid);
339                    break;
340                case 'unflagged':
341                    strtag = "flagged, importance_high";
342                    operation = 1;
343                    set_msg_as_unflagged(msgid);
344                    break;
345                case 'forwarded':
346                    strtag = "forwarded";
347                    operation = 0;
348                    set_msg_as_flagged(msgid);
349                case 'answered':
350                    strtag = "answered";
351                    operation = 0;
352                    set_msg_as_flagged(msgid);                                 
353                   
354            }   
355            expresso_mail_archive.drawdata = null;
356            var tl = expresso_mail_archive.pattern.tagConfig(strtag, msgid, operation);
357            expresso_mail_archive.currenttag = flag;
358            expresso_mail_archive.taglist = tl;
359            expresso_mail_archive.progressbar = window.setTimeout("expresso_mail_archive.tagMessage()",1);
360        }
361        else {
362            set_message_flag(msg_number,flag, func_after_flag_change);
363        }
364        }
365       
366        messages_proxy.prototype.is_local_folder = function(folder) {
367                if(typeof(folder) == "undefined" || folder.indexOf("local_")==-1)
368                        return false;
369                return true;
370        }
371       
372        /*
373        messages_proxy.prototype.proxy_rename_folder = function(){
374                var specialFolders = special_folders[ttree.getFolder().split(cyrus_delimiter)[ttree.getFolder().split(cyrus_delimiter).length-1]];
375                if (ttree.getFolder() == 'INBOX' || specialFolders ) {
376                        alert(get_lang("It's not possible rename the folder: ") + lang_folder((specialFolders ? specialFolders : ttree.getFolder()))+ '.');
377                        return false;
378                }
379                if(ttree.getFolder() == 'root') {
380                        alert(get_lang("It's not possible rename this folder!"));
381                        return false;
382                }
383                if(!specialFolders && ttree.getFolder() == get_current_folder()){
384                                alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
385                                return false;
386                }
387               
388                if (this.is_local_folder(ttree.getFolder())) {
389                        folder = prompt(get_lang("Enter a name for the box"), "");
390                        if(folder.match(/[\/\\\!\@\#\$\%\&\*\+\(\)]/gi)){
391                        alert(get_lang("It's not possible rename this folder. try other folder name"));
392                        return false;
393                        }
394                        if(trim(folder) == "" || trim(folder) == null){
395                                alert(get_lang("you have to enter the name of the new folder"));
396                                return false;
397                        }
398                        var temp = expresso_local_messages.rename_folder(folder, ttree.FOLDER.substr(6));
399                        if (!temp)
400                                alert(get_lang("cannot rename folder. try other folder name"));
401                        ttreeBox.update_folder();
402                }
403                else {
404                        ttreeBox.validate("rename");
405                }
406               
407        }
408        */
409        /*
410        messages_proxy.prototype.proxy_create_folder = function() {
411                if (folders.length == preferences.imap_max_folders){
412                    alert(get_lang("Limit reached folders"));
413                    return false;
414                }
415               
416                if (this.is_local_folder(ttree.FOLDER)) {
417                        folder = prompt(get_lang('Enter the name of the new folder:'), "");
418
419                        if(folder == null)
420                            return;
421
422
423                        if(trim(folder) == ""){
424                                alert(get_lang("you have to enter the name of the new folder"));
425                                return false;
426                        }
427                        if(folder.match(/[\/\\\!\@\#\$\%\&\*\+\(\)]/gi)){
428                            alert(get_lang("cannot create folder. try other folder name"));
429                            return false;
430                        }
431                        if(ttree.FOLDER=="local_root")
432                                var temp = expresso_local_messages.create_folder(folder);
433                        else
434                                var temp = expresso_local_messages.create_folder(ttree.FOLDER.substr(6)+"/"+folder);
435                        if (!temp)
436                                alert(get_lang("cannot create folder. try other folder name"));
437                        ttreeBox.update_folder(true);
438                }
439                else                   
440                        if(ttree.FOLDER == "INBOX")
441                                alert(get_lang("It's not possible create inside: ") + lang_folder(ttree.FOLDER)+".");
442                        else if (!this.is_local_folder(ttree.FOLDER))
443                                ttreeBox.validate("newpast");
444                        else
445                                alert(get_lang("It's not possible create inside: ") + lang_folder(ttree.FOLDER.substr(6))+".");
446        }
447        */
448        /*
449        messages_proxy.prototype.proxy_remove_folder = function() {
450                if (this.is_local_folder(ttree.FOLDER)) {
451                        if(ttree.FOLDER == 'local_root') {
452                                alert(get_lang("Select a folder!"));
453                                return false;
454                        }
455                        if (ttree.FOLDER == 'local_Inbox' || (preferences.auto_create_local == '1' && (ttree.FOLDER == 'local_Sent' || ttree.FOLDER == 'local_Drafts' || ttree.FOLDER == 'local_Trash'))) {
456                                alert(get_lang("It's not possible delete the folder: ")  + lang_folder(ttree.FOLDER.substr(6)) + '.');
457                                return false;
458                        }
459                        if(ttree.FOLDER.match("^local_.*$") && ttree.FOLDER == get_current_folder()){
460                            alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
461                            return false;
462                        }
463
464                        if(ttree.FOLDER.indexOf("/")!="-1") {
465                                final_pos = ttree.FOLDER.lastIndexOf("/");
466                                new_caption = ttree.FOLDER.substr(final_pos+1);
467                        }
468                        else {
469                                new_caption = ttree.FOLDER.substr(6);
470                        }
471                        var string_confirm = get_lang("Do you wish to exclude the folder ") + new_caption + "?";
472
473                        if (confirm(string_confirm)) {
474                                var flag = expresso_local_messages.remove_folder(ttree.FOLDER.substr(6));
475                                if (flag) {
476                                        write_msg(get_lang("The folder %1 was successfully removed", new_caption));
477                                        draw_tree_local_folders();
478                                        ttreeBox.update_folder(true);
479                                }
480                                else
481                                        alert(get_lang("Delete your sub-folders first"));
482                               
483                        }
484                }
485                else
486                        ttreeBox.del();
487        }*/
488
489        messages_proxy.prototype.proxy_move_messages = function (folder, msgs_number, border_ID, new_folder, new_folder_name) {
490                if (! folder || folder == 'null')
491                        folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder());
492
493        //MAILARCHIVER-08
494        if (this.is_local_folder(folder)){
495            expresso_mail_archive.update_counters = true;
496            //Folder de onde sai a mensagem é local (armazenamento local)
497            if (folder == new_folder){
498                write_msg(get_lang('The origin folder and the destination folder are the same.'));
499                                return;
500            }                   
501
502            //Validação para recuperar o id caso não seja aba de listagem
503            if (msgs_number == 'selected' && currentTab != 0) //Recupera apenas o id da mensagem aberta
504                msgs_number = currentTab.substr(0,currentTab.indexOf('_r'));
505            else
506                msgs_number = get_selected_messages();
507
508            if (new_folder == 'local_root'){
509                alert(get_lang("Select a folder!"));
510            }
511                       
512            if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
513                if (this.is_local_folder(new_folder)){
514                    //esta tirando de um folder local para outro folder local
515                    expresso_mail_archive.moveMessages(new_folder.replace("local_messages_",""), msgs_number);
516                    if(currentTab != 0)
517                        delete_border(currentTab,'false');
518                }
519                else{
520                    //esta tirando de um folder local para um folder IMAP (desarquivamento)
521                    if(!new_folder){
522                        new_folder = 'INBOX';
523                    }
524                    if(currentTab.toString().indexOf("_r") != -1){
525                        msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));
526                    }                     
527                    expresso_mail_archive.unarchieve(folder, new_folder, msgs_number);
528                }
529            }
530            else{
531                write_msg(get_lang('No selected message.'));
532            }
533        }else{
534            if (this.is_local_folder(new_folder)){
535                //esta tirando de um folder não local para um folder local (arquivamento)
536                if(msgs_number=='selected'){
537                    archive_msgs(folder, new_folder);
538                }
539                else{
540                    archive_msgs(folder, new_folder, msgs_number);
541                }
542            }
543            else{
544                //esta tirando de um folder não local para outro folder não local (move)
545                move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
546            }
547        }       
548
549        //Adicionado código para o correto funcionamento da seleção independente de paginação.
550        $.each(msgs_number.split(","), function(index, value){
551            delete selectedPagingMsgs[value];
552        });
553        totalFolderMsgs = totalFolderMsgs - msgs_number.split(",").length;
554        selectAllFolderMsgs(false);
555        updateSelectedMsgs();
556        }
557       
558        messages_proxy.prototype.proxy_move_search_messages = function(border_id, new_folder, new_folder_name) {
559               
560               
561                /*
562               
563               
564                if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas não locais...
565                        if (folder == new_folder){
566                                write_msg(get_lang('The origin folder and the destination folder are the same.'));
567                                return;
568                        }
569                        if(msgs_number=='selected')
570                                msgs_number = get_selected_messages();
571                        if (new_folder == 'local_root')
572                                alert(get_lang("Select a folder!"));
573                        if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
574                                expresso_local_messages.move_messages(new_folder.substr(6), msgs_number);
575                                this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID);
576                        }
577                        else
578                                write_msg(get_lang('No selected message.'));
579                }
580                else
581                        if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais...
582                                move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
583                        }
584                        else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) {
585                                archive_msgs(folder,new_folder);
586                        }
587                        else {
588                                write_msg(get_lang("you can't move mails from local to server folders"));
589                        }*/
590        }
591       
592        messages_proxy.prototype.aux_interface_remove_mails = function(msgs_number,new_folder_name,border_ID,previous_msg) {
593                if(!msgs_number)
594                        msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));
595                       
596                if(msgs_number === ""){
597                        write_msg(get_lang('No selected message.'));
598                        return;
599                }
600               
601                Element('chk_box_select_all_messages').checked = false;
602                mail_msg = Element("tbody_box");
603                msgs_number = msgs_number.split(",");
604                var msg_to_delete;
605                this.previous = 0;
606                for (var i=0; i<msgs_number.length; i++){
607                        msg_to_delete = Element(msgs_number[i]);
608                        if (msg_to_delete){
609                                if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') )
610                                        select_msg('null', 'down');
611                                       
612                                  if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && currentTab.toString().indexOf("_r") > 0)
613                                for(var ii=0; ii < mail_msg.rows.length; ii++){
614                                        if(mail_msg.rows[ii] === msg_to_delete){
615                                                if(ii == 0){
616                                                        break;
617                                                }else{
618                                                        this.previous = mail_msg.rows[(ii - 1)].attributes[0];
619                                                        this.previous = parseInt(this.previous.value);
620                                                        break;
621                                                }
622                                        }
623                                }
624                                mail_msg.removeChild(msg_to_delete);
625                        }
626                }
627                new_folder_name = this.get_folder_name(new_folder_name);
628                if (msgs_number.length == 1)
629                        write_msg(get_lang("The message was moved to folder ") + new_folder_name);
630                else
631                        write_msg(get_lang("The messages were moved to folder ") + new_folder_name);
632
633                if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && this.previous){
634                        proxy_mensagens.get_msg(this.previous, folder, true, show_msg);
635                }else if(currentTab != 0){
636                if (border_ID != '' && border_ID != 'null'){
637                                delete_border(border_ID,'false');
638                        }else{
639                                delete_border(currentTab,'false');
640                        }
641                }
642                if(folder == get_current_folder())
643                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - msgs_number.length;                 
644        }
645
646        messages_proxy.prototype.get_folder_name = function(new_folder_name){
647                switch (new_folder_name) {
648                        case 'local_Inbox':
649                                return 'Local_Caixa de Entrada';
650                        case 'local_Sent':
651                                return 'Local_Enviados';
652                        case 'local_Trash':
653                                return 'Local_Lixeira';
654                        case 'local_Drafts':
655                                return 'Local_Rascunhos';
656                        default:
657                                return new_folder_name;
658                }
659        }
660       
661        messages_proxy.prototype.msg_img = function(msgs_number,folder_name,call_back) {
662     if(this.is_local_folder(folder_name)){
663         var msg = expresso_local_messages.get_local_mail(msgs_number);
664                 eval('call_back(msg)');
665     }
666     else
667         $.ajax({
668                  url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg',
669                                                      msg_number: msgs_number,
670                                                      msg_folder: folder_name,
671                                                      decoded: true } ),
672                  success: function( data ){
673                      data = connector.unserialize( data );
674                     
675                      if( data )
676                          call_back( data );
677                  },
678                  beforeSend: function( jqXHR, settings ){
679                        connector.showProgressBar();
680                  },
681                  complete: function( jqXHR, settings ){
682                        connector.hideProgressBar();
683                  }
684
685        });
686    }
687
688    messages_proxy.prototype.export_all_messages = function(folder){
689        if(typeof (currentTab) == "string" && currentTab.indexOf("local") != -1){ 
690            alert("Impossível manipular mensagens locais a partir de uma busca. Isso é permitido apenas para mensagens não locais.");
691            return true;
692        }
693        if (!folder) {
694            folder = get_current_folder();
695        }
696
697        if(!this.is_local_folder(folder) || folder.split("_")[0] == "local"){
698            export_all_selected_msgs();
699        }else{
700            local_messages.prototype.local_messages_to_export();
701        }
702        }
703       
704        messages_proxy.prototype.archive_message = function(folder, msgs_number) {
705                if(msgs_number == 'get_selected_messages')
706                        msgs_number = get_selected_messages();
707                       
708                expresso_mail_archive.Archive("INBOX", "inbox", msgs_number);
709        }
710
711    messages_proxy.prototype.unarchive_message = function(folder, msgs_number) {
712
713        if(msgs_number == 'get_selected_messages')
714            msgs_number = get_selected_messages();
715
716        expresso_mail_archive.unarchieve(folder, "inbox", msgs_number);
717        $('.select-link').trigger('click',function(){selectAllFolderMsgs();$('.select-link').unbind('click');});
718    }
719       
720        var proxy_mensagens;
721        proxy_mensagens = new messages_proxy();
Note: See TracBrowser for help on using the repository browser.