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

Revision 7455, 33.5 KB checked in by marcosw, 11 years ago (diff)

Ticket #3088 - Correção na aba de contadores de mensagens e paginação

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