source: sandbox/2.5.0-expresso1/expressoMail1_2/js/messages_controller.js @ 7183

Revision 7183, 32.2 KB checked in by airton, 12 years ago (diff)

Ticket #3088 - Melhoria no arquivamento local do Expresso - Arquivar mais de uma mensagem

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
14            //MAILARCHIVER-01
15           
16            //var baseFolder = folder.substr(6);
17            var baseFolder = folder.replace('local_messages_', '');
18            var tree_name;
19            //var drawinginfo = {treeObject: tree_name, treeName: tree_name, folderName: baseFolder};
20            var drawinginfo = {};
21            expresso_mail_archive.update_counters = false;
22            expresso_mail_archive.currentfolder = baseFolder;
23            expresso_mail_archive.getFolderInfo(expresso_mail_archive.currentfolder);
24            expresso_mail_archive.drawdata = drawinginfo;
25
26            if(tree_name == 'tree_folders'){ //only the 'tree_folders' must show messages. 'folders_tree' are just for managment operation
27                console.log('if 1');
28                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);
29                expresso_mail_archive.queryconfig.setExpressoDefaults(exp_dfs);
30                expresso_mail_archive.listMessages();
31            }
32            else{
33                if (!tree_name){
34                    console.log('if 2');
35                    //window.alert('sem arvore para atualizar, com sort_box_type =' + sort_box_type + ' e search_box_type= ' + search_box_type + ' reverse -- ' + sort_box_reverse);
36                    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);
37                    console.log(exp_dfs);
38                    expresso_mail_archive.queryconfig.setExpressoDefaults(exp_dfs);
39                    expresso_mail_archive.listMessages();
40                }
41                if(tree_name == 'folders_tree'){
42                    console.log('if 3   ');
43                    /*var div_export_local = document.createElement('div');
44                    div.style.width
45                    var lbl_check = document.createElement('label');
46                    var check_export_local_recursive = document.createElement('input');
47                    var lbl_combo = document.createElement('label');
48                    var combo_export_local_format = document.createElement('select');*/
49                    //window.alert('alert td content = ' + Element('div_buttons').getElementsByTagName('table')[0].tbody[0].tr[4].td[0].innerHTML);
50                    //Element('div_buttons').appendChild(div_export_local);
51                }
52            }
53
54        }else {
55            $.ajax({
56                url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3",
57                                    folder: folder,
58                                    msg_range_begin: msg_range_begin,
59                                    msg_range_end: emails_per_page,
60                                    sort_box_type: sort_box_type,
61                                    search_box_type: search_box_type,
62                                    sort_box_reverse: sort_box_reverse } ),
63
64                  success: function( data ){
65                    data = connector.unserialize(data);
66                   
67                    if( data )
68                        call_back( data );
69                  },
70                  beforeSend: function( jqXHR, settings ){
71                    connector.showProgressBar();
72                  },
73                  complete: function( jqXHR, settings ){
74                    connector.hideProgressBar();
75                  }
76             
77            });
78        }
79    }
80        messages_proxy.prototype.messages_list_old = 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) {
81                if(this.is_local_folder(folder)) {
82                        var real_folder = folder.substr(6);             
83                        var msgs = expresso_local_messages.get_local_range_msgs(real_folder,msg_range_begin,preferences.max_email_per_page,sort_box_type,sort_box_reverse,search_box_type,preferences.preview_msg_subject,preferences.preview_msg_tip);
84                        if(call_back)
85                                call_back(msgs);
86                        else{
87                                call_back = function(data)
88                                {
89                                        alternate_border(0);
90                                        draw_box(data, get_current_folder());
91                                }
92                                call_back(msgs);
93                        }
94                        draw_tree_local_folders();
95                }else {
96                        $.ajax({
97                                url: "controller.php?" + $.param( {action: "$this.imap_functions.get_range_msgs3",
98                                                                    folder: folder,
99                                                                    msg_range_begin: msg_range_begin,
100                                                                    msg_range_end: emails_per_page,
101                                                                    sort_box_type: sort_box_type,
102                                                                    search_box_type: search_box_type,
103                                                                    sort_box_reverse: sort_box_reverse } ),
104
105                              success: function( data ){
106                                    data = connector.unserialize(data);
107                                   
108                                    if( data )
109                                                call_back( data );
110                              },
111                                  beforeSend: function( jqXHR, settings ){
112                                        connector.showProgressBar();
113                                  },
114                                  complete: function( jqXHR, settings ){
115                                        connector.hideProgressBar();
116                                  }
117                         
118                        });
119                }
120        }
121
122        messages_proxy.prototype.get_msg = function(msg_number,msg_folder,set_flag,call_back) {
123                if(this.is_local_folder(msg_folder)) {
124                       
125
126            //if(set_flag)
127                        //      expresso_local_messages.set_messages_flag(msg_number,"seen");
128                        // var data = expresso_local_messages.get_local_mail(msg_number);       
129            //MAILARCHIVER-02
130            expresso_mail_archive.getMessage(msg_number);
131
132                        //eval("call_back(data)");
133                }else{
134                    $.ajax({
135                              url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg',
136                                                                  msg_number: msg_number,
137                                                                  msg_folder: msg_folder
138                                                                  } ),
139                              success: function( data ){
140                                  data = connector.unserialize( data );
141                                 
142                                  if( data )
143                                      call_back( data );
144                              },
145                                  beforeSend: function( jqXHR, settings ){
146                                        connector.showProgressBar();
147                                  },
148                                  complete: function( jqXHR, settings ){
149                                        connector.hideProgressBar();
150                                  }
151
152                    });
153                }
154
155        }
156       
157        messages_proxy.prototype.delete_msgs = function(folder, msgs_number, border_ID) {
158
159                if (folder == 'null')
160                        folder = get_current_folder();
161
162        //Marcosw inicio - Inserida validação para recuperar o id caso não seja aba de listagem
163                if (msgs_number == 'selected' && currentTab != 0) //Recupera apenas o id da mensagem aberta
164                        msgs_number = currentTab.substr(0,currentTab.indexOf('_r'));
165        else
166            msgs_number = get_selected_messages();
167        //Marcos fim
168
169                if(currentTab != 0 && currentTab.indexOf("search_")  >= 0){
170                        var content_search = document.getElementById('content_id_'+currentTab);
171                        action_msg_selected_from_search(content_search.id, 'delete');
172                        refresh();
173                        //draw_tree_folders();
174                        //update_local_box();
175                        return;
176                }
177                       
178                if (!this.is_local_folder(folder)){
179                        delete_msgs(folder, msgs_number, border_ID);
180                }else {   
181            //MAILARCHIVER-03
182            var msg_to_delete = Element(msgs_number);
183            //user has preference to show previous message on deleting one
184            if (isNaN(currentTab) && parseInt(preferences.delete_and_show_previous_message) && msg_to_delete) {
185                    if (msg_to_delete.previousSibling){
186                            var previous_msg = msg_to_delete.previousSibling.id;
187                           
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                                //user has preference to "save" delete messasge on trash folder, so move it to there
191                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
192                                    expresso_mail_archive.folder_destination = 'trash';
193                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
194                                    //Marcos Início - É preciso remover a aba da mensagem para que a próxima seja exibida
195                                    delete_border(currentTab,'false');
196                                    //Marcos fim
197                                    expresso_mail_archive.getMessage(previous_msg);
198                                }
199                                //user does not want to save messages deleted on trash. purge them imediatly
200                                else{
201                                    expresso_mail_archive.deleteMessages(msgs_number);
202                                    //Marcos Início - É preciso remover a aba da mensagem para que a próxima seja exibida
203                                    delete_border(currentTab,'false');
204                                    //Marcos fim
205                                    expresso_mail_archive.getMessage(previous_msg)
206                                }                                                                               
207                            }
208                            //maybe, we do not have trash.
209                            else{
210                                //user has preference to "save" delete messasge on trash folder, so move it to there
211                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
212                                    expresso_mail_archive.createFolder("","Trash");
213                                    expresso_mail_archive.folder_destination = 'trash';
214                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
215                                    //Marcos Início - É preciso remover a aba da mensagem para que a próxima seja exibida
216                                    delete_border(currentTab,'false');
217                                    //Marcos Fim
218                                    expresso_mail_archive.getMessage(previous_msg);
219                                }
220                                //user does not want to save messages deleted on trash. purge them imediatly
221                                else{
222                                    expresso_mail_archive.deleteMessages(msgs_number);
223                                    //Marcos Início - É preciso remover a aba da mensagem para que a próxima seja exibida
224                                    delete_border(currentTab,'false');
225                                    //Marcos Fim
226                                    expresso_mail_archive.getMessage(previous_msg)
227                                }                                         
228                            }
229                    }
230                    //there is no previous message existing to show. Just delete de view context
231                    else{
232                           //user has preference to maintain default folder structure at local folders, so we have trash folder
233                           if(preferences.auto_create_local == 1){
234                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
235                                    expresso_mail_archive.folder_destination = 'trash';
236                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
237                                    delete_border(currentTab,'false');
238                                }
239                                //user does not want to save messages deleted on trash. purge them imediatly
240                                else{
241                                    expresso_mail_archive.deleteMessages(msgs_number);
242                                    delete_border(currentTab,'false');
243                                }                                       
244                           }
245                            //maybe, we do not have trash. Purge message so.
246                            else{
247                                //user has preference to "save" delete messasge on trash folder, so move it to there
248                                if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
249                                    expresso_mail_archive.createFolder("","Trash");
250                                    expresso_mail_archive.folder_destination = 'trash';
251                                    expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
252                                    expresso_mail_archive.getMessage(previous_msg);
253                                }
254                                //user does not want to save messages deleted on trash. purge them imediatly
255                                else{
256                                    expresso_mail_archive.deleteMessages(msgs_number);
257                                }                                   
258                            }
259                    }
260            }
261            //user has no preferece to show previous message on deleting
262            else{
263                if(preferences.auto_create_local == 1){
264                    //user has preference to "save" delete messasge on trash folder, so move it to there
265                                        //Marcosw inicio - removido "messages_" da string folder para evitar inconsistência
266                    if (((preferences.save_deleted_msg == true)) && (folder.replace('messages_','') != expresso_mail_archive.specialfolders.trash)){
267                    //Marcosw fim
268                        expresso_mail_archive.folder_destination = 'trash';
269                        expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
270                        delete_border(currentTab,'false');
271                    }
272                    //user does not want to save messages deleted on trash (or is cleaning it). purge them imediatly
273                    else{
274                        expresso_mail_archive.deleteMessages(msgs_number);
275                        delete_border(currentTab,'false');
276                    }                           
277                }
278                //maybe, we do not have trash. Purge message so.
279                else{
280                    //user has preference to "save" delete messasge on trash folder, so move it to there
281                    if (((preferences.save_deleted_msg == true)) && (folder != expresso_mail_archive.specialfolders.trash)){
282                      expresso_mail_archive.createFolder("","Trash");
283                      expresso_mail_archive.folder_destination = 'trash';
284                      expresso_mail_archive.moveMessages(expresso_mail_archive.folder_destination, msgs_number);
285                    }
286                    //user does not want to save messages deleted on trash. purge them imediatly
287                    else{
288                      expresso_mail_archive.deleteMessages(msgs_number);
289                    }                                   
290                }
291            }
292                }
293
294
295
296                /*}else {
297                        if((folder != 'local_Trash') && (expresso_local_messages.as_trash())){
298                                expresso_local_messages.move_messages('Trash', msgs_number);
299                                this.aux_interface_remove_mails(msgs_number, 'local_Trash', border_ID);
300                                draw_tree_local_folders();
301                                update_local_box();
302                                refresh();
303                        }else{
304                        expresso_local_messages.delete_msgs(msgs_number, border_ID);
305                        draw_tree_local_folders();
306                                update_local_box();
307                                refresh();
308                        }
309                }*/
310        }
311       
312        messages_proxy.prototype.link_anexo = function (info_msg,numero_ordem_anexo) {
313
314                if(info_msg.local_message==true) {
315            //ma serpro
316                        // return "javascript:download_local_attachment('"+
317                        //              expresso_local_messages.get_url_anexo(info_msg.msg_number,info_msg.attachments[numero_ordem_anexo].pid)+
318                        //              "')";
319            //MAILARCHIVER-04
320            return "javascript:download_local_attachment('"+ mail_archive_protocol+'://'+mail_archive_host+':'+mail_archive_port+'/temp/download/' +info_msg.attachments[numero_ordem_anexo].pid + "')";
321                }
322                else {
323                        return "javascript:download_attachments('"+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+"')";
324                }
325        }
326
327        messages_proxy.prototype.proxy_source_msg = function (id_msg,folder) {
328                if(!this.is_local_folder(folder)) {
329                        source_msg(id_msg,folder);
330                }
331                else {
332                        var num_msg = id_msg.substr(0,(id_msg.length - 2));
333                        expresso_local_messages.get_source_msg(num_msg);
334                }
335        }
336       
337        messages_proxy.prototype.proxy_set_messages_flag = function (flag,msg_number){
338                if(this.is_local_folder(get_current_folder())) {
339            //mail archiver
340                        //expresso_local_messages.set_messages_flag(msg_number,flag);
341                }
342                else {
343                        set_messages_flag(flag,msg_number);
344                                // Verifica se a pasta que esta selecionada contem a opção "Não lidas" ativada
345                                // caso exista, ele chama novamente a opção "Não lidas" para atualizar a pasta.
346                                if('UNSEEN' == search_box_type)
347                                        return sort_box('UNSEEN','SORTARRIVAL');
348                }
349        }
350       
351        messages_proxy.prototype.proxy_set_message_flag = function (msg_number,flag,func_after_flag_change){
352                var msg_number_folder = Element("new_input_folder_"+msg_number+"_r"); //Mensagens respondidas/encaminhadas
353                if(!msg_number_folder)
354                        var msg_number_folder = Element("input_folder_"+msg_number+"_r"); //Mensagens abertas
355                var folder = msg_number_folder ?  msg_number_folder.value : get_current_folder();
356                if(this.is_local_folder(folder)) {
357                        expresso_local_messages.set_message_flag(msg_number,flag, func_after_flag_change);
358                }
359                else {
360                        set_message_flag(msg_number,flag, func_after_flag_change);
361                }
362        }
363       
364        messages_proxy.prototype.is_local_folder = function(folder) {
365                if(typeof(folder) == "undefined" || folder.indexOf("local_")==-1)
366                        return false;
367                return true;
368        }
369       
370        /*
371        messages_proxy.prototype.proxy_rename_folder = function(){
372                var specialFolders = special_folders[ttree.getFolder().split(cyrus_delimiter)[ttree.getFolder().split(cyrus_delimiter).length-1]];
373                if (ttree.getFolder() == 'INBOX' || specialFolders ) {
374                        alert(get_lang("It's not possible rename the folder: ") + lang_folder((specialFolders ? specialFolders : ttree.getFolder()))+ '.');
375                        return false;
376                }
377                if(ttree.getFolder() == 'root') {
378                        alert(get_lang("It's not possible rename this folder!"));
379                        return false;
380                }
381                if(!specialFolders && ttree.getFolder() == get_current_folder()){
382                                alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
383                                return false;
384                }
385               
386                if (this.is_local_folder(ttree.getFolder())) {
387                        folder = prompt(get_lang("Enter a name for the box"), "");
388                        if(folder.match(/[\/\\\!\@\#\$\%\&\*\+\(\)]/gi)){
389                        alert(get_lang("It's not possible rename this folder. try other folder name"));
390                        return false;
391                        }
392                        if(trim(folder) == "" || trim(folder) == null){
393                                alert(get_lang("you have to enter the name of the new folder"));
394                                return false;
395                        }
396                        var temp = expresso_local_messages.rename_folder(folder, ttree.FOLDER.substr(6));
397                        if (!temp)
398                                alert(get_lang("cannot rename folder. try other folder name"));
399                        ttreeBox.update_folder();
400                }
401                else {
402                        ttreeBox.validate("rename");
403                }
404               
405        }
406        */
407        /*
408        messages_proxy.prototype.proxy_create_folder = function() {
409                if (folders.length == preferences.imap_max_folders){
410                    alert(get_lang("Limit reached folders"));
411                    return false;
412                }
413               
414                if (this.is_local_folder(ttree.FOLDER)) {
415                        folder = prompt(get_lang('Enter the name of the new folder:'), "");
416
417                        if(folder == null)
418                            return;
419
420
421                        if(trim(folder) == ""){
422                                alert(get_lang("you have to enter the name of the new folder"));
423                                return false;
424                        }
425                        if(folder.match(/[\/\\\!\@\#\$\%\&\*\+\(\)]/gi)){
426                            alert(get_lang("cannot create folder. try other folder name"));
427                            return false;
428                        }
429                        if(ttree.FOLDER=="local_root")
430                                var temp = expresso_local_messages.create_folder(folder);
431                        else
432                                var temp = expresso_local_messages.create_folder(ttree.FOLDER.substr(6)+"/"+folder);
433                        if (!temp)
434                                alert(get_lang("cannot create folder. try other folder name"));
435                        ttreeBox.update_folder(true);
436                }
437                else                   
438                        if(ttree.FOLDER == "INBOX")
439                                alert(get_lang("It's not possible create inside: ") + lang_folder(ttree.FOLDER)+".");
440                        else if (!this.is_local_folder(ttree.FOLDER))
441                                ttreeBox.validate("newpast");
442                        else
443                                alert(get_lang("It's not possible create inside: ") + lang_folder(ttree.FOLDER.substr(6))+".");
444        }
445        */
446        /*
447        messages_proxy.prototype.proxy_remove_folder = function() {
448                if (this.is_local_folder(ttree.FOLDER)) {
449                        if(ttree.FOLDER == 'local_root') {
450                                alert(get_lang("Select a folder!"));
451                                return false;
452                        }
453                        if (ttree.FOLDER == 'local_Inbox' || (preferences.auto_create_local == '1' && (ttree.FOLDER == 'local_Sent' || ttree.FOLDER == 'local_Drafts' || ttree.FOLDER == 'local_Trash'))) {
454                                alert(get_lang("It's not possible delete the folder: ")  + lang_folder(ttree.FOLDER.substr(6)) + '.');
455                                return false;
456                        }
457                        if(ttree.FOLDER.match("^local_.*$") && ttree.FOLDER == get_current_folder()){
458                            alert(get_lang("It's not possible rename this folder, because it is being used in the moment!"));
459                            return false;
460                        }
461
462                        if(ttree.FOLDER.indexOf("/")!="-1") {
463                                final_pos = ttree.FOLDER.lastIndexOf("/");
464                                new_caption = ttree.FOLDER.substr(final_pos+1);
465                        }
466                        else {
467                                new_caption = ttree.FOLDER.substr(6);
468                        }
469                        var string_confirm = get_lang("Do you wish to exclude the folder ") + new_caption + "?";
470
471                        if (confirm(string_confirm)) {
472                                var flag = expresso_local_messages.remove_folder(ttree.FOLDER.substr(6));
473                                if (flag) {
474                                        write_msg(get_lang("The folder %1 was successfully removed", new_caption));
475                                        draw_tree_local_folders();
476                                        ttreeBox.update_folder(true);
477                                }
478                                else
479                                        alert(get_lang("Delete your sub-folders first"));
480                               
481                        }
482                }
483                else
484                        ttreeBox.del();
485        }*/
486
487        messages_proxy.prototype.proxy_move_messages = function (folder, msgs_number, border_ID, new_folder, new_folder_name) {
488                if (! folder || folder == 'null')
489                        folder = Element("input_folder_"+msgs_number+"_r") ? Element("input_folder_"+msgs_number+"_r").value : (openTab.imapBox[currentTab] ? openTab.imapBox[currentTab]:get_current_folder());
490
491        //MAILARCHIVER-08
492        if (this.is_local_folder(folder)){
493            expresso_mail_archive.update_counters = true;
494            //Folder de onde sai a mensagem é local (armazenamento local)
495            if (folder == new_folder){
496                write_msg(get_lang('The origin folder and the destination folder are the same.'));
497                                return;
498            }                   
499
500            //Marcosw inicio - Inserida validação para recuperar o id caso não seja aba de listagem
501            if (msgs_number == 'selected' && currentTab != 0) //Recupera apenas o id da mensagem aberta
502                msgs_number = currentTab.substr(0,currentTab.indexOf('_r'));
503            else
504                msgs_number = get_selected_messages();
505            //Marcosw fim
506
507            if (new_folder == 'local_root'){
508                alert(get_lang("Select a folder!"));
509            }
510                       
511            if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
512                if (this.is_local_folder(new_folder)){
513                    //esta tirando de um folder local para outro folder local
514                    expresso_mail_archive.moveMessages(new_folder.substr(6), msgs_number);
515                    //Marcos Início - É preciso remover a aba da mensagem copiada
516                    delete_border(currentTab,'false');
517                    //Marcos fim
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
550
551                /*if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas não locais...
552                        if (folder == new_folder){
553                                write_msg(get_lang('The origin folder and the destination folder are the same.'));
554                                return;
555                        }
556                        if(msgs_number=='selected')
557                                msgs_number = get_selected_messages();
558                        if (new_folder == 'local_root')
559                                alert(get_lang("Select a folder!"));
560                        if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
561                                expresso_local_messages.move_messages(new_folder.substr(6), msgs_number);
562                                this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID);
563                                draw_tree_local_folders();
564                                update_local_box();
565                        }
566                        else
567                                write_msg(get_lang('No selected message.'));
568                }
569                else
570                        if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais...
571                                if(new_folder_name == 'Spam'){
572                                        move_msgs_not_previus(folder, msgs_number, border_ID, new_folder, new_folder_name);
573                                }else{
574                                move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
575                        }
576                        }else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) {
577                                if(msgs_number=='selected')
578                                        archive_msgs(folder,new_folder);
579                                else
580                                        archive_msgs(folder,new_folder,msgs_number);
581
582                               
583                                draw_tree_local_folders();
584                                refresh();
585                        }
586                        else {
587                //Por Bruno Costa (bruno.vieira-costa@serpro.gov.br) permite o desarquivamento de menssagens chamando a função unarchive_msgs quando uma msg é movida de uma pasta local para uma pasta remota.
588
589                                expresso_local_messages.unarchive_msgs(folder,new_folder,msgs_number);
590                //write_msg(get_lang("you can't move mails from local to server folders"));
591                        }*/
592        }
593       
594        messages_proxy.prototype.proxy_move_search_messages = function(border_id, new_folder, new_folder_name) {
595               
596               
597                /*
598               
599               
600                if ((this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) { //Move entre pastas não locais...
601                        if (folder == new_folder){
602                                write_msg(get_lang('The origin folder and the destination folder are the same.'));
603                                return;
604                        }
605                        if(msgs_number=='selected')
606                                msgs_number = get_selected_messages();
607                        if (new_folder == 'local_root')
608                                alert(get_lang("Select a folder!"));
609                        if (parseInt(msgs_number) > 0 || msgs_number.length > 0) {
610                                expresso_local_messages.move_messages(new_folder.substr(6), msgs_number);
611                                this.aux_interface_remove_mails(msgs_number, new_folder_name, border_ID);
612                        }
613                        else
614                                write_msg(get_lang('No selected message.'));
615                }
616                else
617                        if ((!this.is_local_folder(folder)) && (!this.is_local_folder(new_folder))) { //Move entre pastas locais...
618                                move_msgs(folder, msgs_number, border_ID, new_folder, new_folder_name);
619                        }
620                        else if ((!this.is_local_folder(folder)) && (this.is_local_folder(new_folder))) {
621                                archive_msgs(folder,new_folder);
622                        }
623                        else {
624                                write_msg(get_lang("you can't move mails from local to server folders"));
625                        }*/
626        }
627       
628        messages_proxy.prototype.aux_interface_remove_mails = function(msgs_number,new_folder_name,border_ID,previous_msg) {
629                if(!msgs_number)
630                        msgs_number = currentTab.toString().substr(0,currentTab.toString().indexOf("_r"));
631                       
632                if(msgs_number === ""){
633                        write_msg(get_lang('No selected message.'));
634                        return;
635                }
636               
637                Element('chk_box_select_all_messages').checked = false;
638                mail_msg = Element("tbody_box");
639                msgs_number = msgs_number.split(",");
640                var msg_to_delete;
641                this.previous = 0;
642                for (var i=0; i<msgs_number.length; i++){
643                        msg_to_delete = Element(msgs_number[i]);
644                        if (msg_to_delete){
645                                if ( (msg_to_delete.style.backgroundColor != '') && (preferences.use_shortcuts == '1') )
646                                        select_msg('null', 'down');
647                                       
648                                  if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && currentTab.toString().indexOf("_r") > 0)
649                                for(var ii=0; ii < mail_msg.rows.length; ii++){
650                                        if(mail_msg.rows[ii] === msg_to_delete){
651                                                if(ii == 0){
652                                                        break;
653                                                }else{
654                                                        this.previous = mail_msg.rows[(ii - 1)].attributes[0];
655                                                        this.previous = parseInt(this.previous.value);
656                                                        break;
657                                                }
658                                        }
659                                }
660                                mail_msg.removeChild(msg_to_delete);
661                        }
662                }
663                new_folder_name = this.get_folder_name(new_folder_name);
664                if (msgs_number.length == 1)
665                        write_msg(get_lang("The message was moved to folder ") + new_folder_name);
666                else
667                        write_msg(get_lang("The messages were moved to folder ") + new_folder_name);
668
669                if (parseInt(preferences.delete_and_show_previous_message) && msg_to_delete && this.previous){
670                        proxy_mensagens.get_msg(this.previous, folder, true, show_msg);
671                }else if(currentTab != 0){
672                if (border_ID != '' && border_ID != 'null'){
673                                delete_border(border_ID,'false');
674                        }else{
675                                delete_border(currentTab,'false');
676                        }
677                }
678                if(folder == get_current_folder())
679                        Element('tot_m').innerHTML = parseInt(Element('tot_m').innerHTML) - msgs_number.length;                 
680        }
681
682        messages_proxy.prototype.get_folder_name = function(new_folder_name){
683                switch (new_folder_name) {
684                        case 'local_Inbox':
685                                return 'Local_Caixa de Entrada';
686                        case 'local_Sent':
687                                return 'Local_Enviados';
688                        case 'local_Trash':
689                                return 'Local_Lixeira';
690                        case 'local_Drafts':
691                                return 'Local_Rascunhos';
692                        default:
693                                return new_folder_name;
694                }
695        }
696       
697        messages_proxy.prototype.msg_img = function(msgs_number,folder_name,call_back) {
698     if(this.is_local_folder(folder_name)){
699         var msg = expresso_local_messages.get_local_mail(msgs_number);
700                 eval('call_back(msg)');
701     }
702     else
703         $.ajax({
704                  url: 'controller.php?' + $.param( {action: '$this.imap_functions.get_info_msg',
705                                                      msg_number: msgs_number,
706                                                      msg_folder: folder_name,
707                                                      decoded: true } ),
708                  success: function( data ){
709                      data = connector.unserialize( data );
710                     
711                      if( data )
712                          call_back( data );
713                  },
714                  beforeSend: function( jqXHR, settings ){
715                        connector.showProgressBar();
716                  },
717                  complete: function( jqXHR, settings ){
718                        connector.hideProgressBar();
719                  }
720
721        });
722    }
723
724    messages_proxy.prototype.export_all_messages = function(folder){
725
726                if (!folder){
727                        folder = get_current_folder();
728                }
729
730                if(!this.is_local_folder(folder)){
731                        export_all_selected_msgs();
732                }else{
733                        local_messages.prototype.local_messages_to_export();
734                }
735        }
736       
737
738
739        /* Airton
740        * Método que vai chamar efetivamente o método Archive.
741        * TO-DO: Tirar desse arquivo o método e passar pra outro arquivo
742        */
743        messages_proxy.prototype.archive_message = function(folder, msgs_number) {
744                if(msgs_number == 'get_selected_messages')
745                        msgs_number = get_selected_messages();
746                       
747                expresso_mail_archive.Archive("INBOX", "inbox", msgs_number);
748        }
749       
750        /*
751        messages_proxy.prototype.proxy_export_all_msg=function(){
752
753                var er=/^local/;
754
755
756                if(ttree.getFolder() == "local_root" || ttree.getFolder() == "root"){return false;}   //Usuario não selecionou uma pasta local e esta no começo dos nós
757                var nm_bx = ttree.getFolder().split(cyrus_delimiter);
758
759                var name_f = nm_bx[nm_bx.length -1].replace("local_","");
760
761                if (!er.test(nm_bx)){
762                        //Se a pasta nao for local, ou seja a string nao contem a string "local"
763                        ttreeBox.export_all_msg();
764                } else{
765                        expresso_local_messages.get_all_local_folder_messages(name_f);
766                }
767        }
768        */
769        var proxy_mensagens;
770        proxy_mensagens = new messages_proxy();
Note: See TracBrowser for help on using the repository browser.