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

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