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

Revision 7768, 31.7 KB checked in by thiago, 11 years ago (diff)

Ticket #3309 - Inconsistência ao clicar para exibir mensagem em anexo.

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