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

Revision 7623, 30.7 KB checked in by thiago, 11 years ago (diff)

Ticket #3223 - Corrigido o problema de colocar uma mensagem com conf leit como não lida.

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