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

Revision 7426, 33.1 KB checked in by thiago, 12 years ago (diff)

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