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

Revision 8112, 32.1 KB checked in by marcieli, 11 years ago (diff)

Ticket #3437 - Correcao na manipulacao de msgs de subpastas locais. Removida borda da pasta local ao arrastar msg.

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