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

Revision 7150, 30.2 KB checked in by marcosw, 12 years ago (diff)

Ticket #3088 - Melhoria para mover e remover mensagens locais

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