Changeset 7414 for trunk/expressoMail1_2/js/search.js
- Timestamp:
- 10/11/12 18:14:36 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoMail1_2/js/search.js
r7386 r7414 1 1 xhr = false; 2 3 var folder = {}; 2 4 3 5 function searchE() … … 144 146 } 145 147 148 //draws folder list 146 149 searchE.prototype.foldersTree = function() 147 150 { 148 var treeFoldersSearch = new dFTree({name : 'treeFoldersSearch'}); 149 150 var root = new dNode({id : 'root', caption: get_lang('My Folders'), onClick: "ttree.setFolder('root')"}); 151 152 treeFoldersSearch.add(root, 'root'); 153 154 for(var i = 0; i < folders.length ; i++ ) 155 { 156 var nn = new dNode({id:folders[i].folder_id, caption: lang_folder(folders[i].folder_name), plusSign:folders[i].folder_hasChildren, onClick: "ttree.setFolder('"+folders[i].folder_id+"')"}); 151 /*Insere a árvore de diretórios*/ 152 153 var foldersTree = jQuery("#divFoldersSearch") 154 .removeClass('empty-container') 155 .html(DataLayer.render(BASE_PATH + 'api/templates/foldertree.ejs', {folders: [cp_tree1, cp_tree2, cp_tree3 ]})) 156 .find("#foldertree").treeview() 157 .click(function(event) 158 { 159 //request new selected folder messages 160 var target = $(event.target); 161 162 if( target.is('.collapsable-hitarea, .expandable-hitarea, .lastCollapsable, .lastExpandable, .treeview') ) 163 return; 164 165 if( !target.attr('id') ) 166 target = target.parent(); 167 168 if (target.attr('id') == "foldertree") return; 157 169 158 if ( folders[i].folder_parent == '' ) 159 { 160 folders[i].folder_parent = 'root'; 161 } 162 else if ( folders[i].folder_parent.indexOf('user') != -1 ) 163 { 164 //if ( treeFoldersSearch.getNodeById('user') ) 165 { 166 var n_root_shared_folders = new dNode({id:'user', caption:get_lang("Shared Folders"), plusSign:true}); 167 treeFoldersSearch.add( n_root_shared_folders,'root'); 168 } 169 } 170 171 // Ver Ticket #1548 172 if( folders[i].folder_parent != 'root') 173 { 174 var node_parent = treeFoldersSearch.getNodeById(folders[i].folder_parent); 175 176 if( typeof node_parent != 'undefined') 177 { 178 node_parent.plusSign = true; 179 treeFoldersSearch.alter(node_parent); 180 } 181 } 170 folder = {}; 171 folder.id = target.attr('id'); 172 folder.child = target.find('.folder'); 173 folder.caption = target.find('span').attr('title'); 182 174 183 treeFoldersSearch.add( nn, folders[i].folder_parent ); 184 } 185 186 treeFoldersSearch.draw( $("#divFoldersSearch")[0] ); 187 treeFoldersSearch.getNodeById("root")._select(); 188 root.changeState(); 175 $('.filetree span.folder.selected').removeClass('selected'); 176 if(!target.is('#foldertree > .expandable, #foldertree > .collapsable')) 177 $(target).children('.folder').addClass('selected'); 178 179 selectedFolder = { 180 id: folder.id, 181 name: folder.child.attr('title'), 182 'class': folder.child.attr('class') 183 }; 184 }); 185 189 186 } 190 187 … … 413 410 searchE.prototype.viewLocalMessage = function() 414 411 { 412 /* 415 413 var data = [2]; 416 414 var gears = []; … … 449 447 450 448 EsearchE.mount_result( data, 'SORTDATE' ); 449 } 450 */ 451 452 var data = [2]; 453 var gears = []; 454 var local_folders = []; 455 456 //MailArchiver - local data 457 if ( preferences.use_local_messages == 1 ) 458 { 459 data['data_gears'] = expresso_mail_archive.search_queryresult; 460 data['num_msgs'] = expresso_mail_archive.search_queryresult.length; 461 write_msg( data['num_msgs'] + " " + get_lang("results found")); 462 EsearchE.mount_result(data , 'SORTDATE'); 451 463 } 452 464 } … … 545 557 if (j == 4) 546 558 { 547 td.setAttribute("width", colSizes[1][4]); 548 td.id = "td_message_followup_search_"+uid_msg; 549 td.setAttribute("class","search-result-item"); 550 td1 = '<div class="flag-edited" style="width:8px;height:6px;"><img src="../prototype/modules/mail/img/flagEditor.png"></div>'; 559 if(border_id.split("local").length == 1){ 560 td.setAttribute("width", colSizes[1][4]); 561 td.id = "td_message_followup_search_"+uid_msg; 562 td.setAttribute("class","search-result-item"); 563 td1 = '<div class="flag-edited" style="width:8px;height:6px;"><img src="../prototype/modules/mail/img/flagEditor.png"></div>'; 564 565 $(td).click(function(event, ui){ 566 var messageClickedId = $(this).attr('id').match(/td_message_followup_search_([\d]+)/)[1]; 551 567 552 $(td).click(function(event, ui){ 553 var messageClickedId = $(this).attr('id').match(/td_message_followup_search_([\d]+)/)[1]; 568 var followupColor = $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css('backgroundColor'); 569 570 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 571 .html('<img alt="Carregando" title="Carregando" style="margin-left:-3px; margin-top:-4px; width:13px; height:13px;" src="../prototype/modules/mail/img/ajax-loader.gif" />'); 572 573 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "transparent"); 574 575 /**TODO Alterar após melhorias no filtro da camada javascript*/ 576 DataLayer.remove('followupflagged', false); 577 var flagged = DataLayer.get('followupflagged', {filter: [ 578 'AND', 579 ['=', 'messageNumber', messageClickedId], 580 ['=', 'folderName', mailbox] 581 ]}); 582 if(flagged == '' || flagged == [] || flagged == 'undefined'){ 583 /** 584 * Aplica followupflag de Acompanhamento 585 */ 586 aux.followupflagged = { 587 uid : User.me.id, 588 folderName : mailbox, 589 messageNumber : messageClickedId, 590 alarmTime : false, 591 backgroundColor : '#FF2016', 592 followupflagId: '1' 593 }; 554 594 555 var followupColor = $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css('backgroundColor'); 556 557 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 558 .html('<img alt="Carregando" title="Carregando" style="margin-left:-3px; margin-top:-4px; width:13px; height:13px;" src="../prototype/modules/mail/img/ajax-loader.gif" />'); 559 560 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "transparent"); 561 562 /**TODO Alterar após melhorias no filtro da camada javascript*/ 563 DataLayer.remove('followupflagged', false); 564 var flagged = DataLayer.get('followupflagged', {filter: [ 565 'AND', 566 ['=', 'messageNumber', messageClickedId], 567 ['=', 'folderName', mailbox] 568 ]}); 569 if(flagged == '' || flagged == [] || flagged == 'undefined'){ 570 /** 571 * Aplica followupflag de Acompanhamento 572 */ 573 aux.followupflagged = { 574 uid : User.me.id, 575 folderName : mailbox, 576 messageNumber : messageClickedId, 577 alarmTime : false, 578 backgroundColor : '#FF2016', 579 followupflagId: '1' 580 }; 581 582 aux.followupflagged.id = DataLayer.put('followupflagged', aux.followupflagged); 583 DataLayer.commit(false, false, function(data){ 584 var fail = false; 585 $.each(data, function(index, value) { 586 fail = false; 587 if(typeof value === 'string'){ 588 fail = value; 595 aux.followupflagged.id = DataLayer.put('followupflagged', aux.followupflagged); 596 DataLayer.commit(false, false, function(data){ 597 var fail = false; 598 $.each(data, function(index, value) { 599 fail = false; 600 if(typeof value === 'string'){ 601 fail = value; 602 } 603 }); 604 605 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 606 .html('<img src="../prototype/modules/mail/img/flagEditor.png">'); 607 608 if (fail) { 609 610 var isCurrentFolder = current_folder == mailbox ? '#td_message_followup_' + messageClickedId + ', ' : ''; 611 $(isCurrentFolder + 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "#CCCCCC"); 612 MsgsCallbackFollowupflag[fail](); 613 return false; 614 } 615 616 if(current_folder == mailbox){ 617 $('#td_message_followup_' + messageClickedId + ', ' + 618 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 619 }else{ 620 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 621 } 622 updateCacheFollowupflag(messageClickedId, mailbox, true); 623 }); 624 625 626 }else if(onceOpenedHeadersMessages[mailbox][messageClickedId]['followupflagged'].followupflag.name == 'Follow up'){ 627 /** 628 * Remover followupflag de Acompanhamento (DFD0078:RI25) 629 */ 630 $(this).find(".flag-edited").css("background", "#cccccc"); 631 DataLayer.remove('followupflagged', flagged[0].id ); 632 DataLayer.commit(false, false, function(){ 633 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 634 .html('<img src="../prototype/modules/mail/img/flagEditor.png">'); 635 if(current_folder == mailbox){ 636 updateCacheFollowupflag(messageClickedId, mailbox, false); 637 638 $('#td_message_followup_' + messageClickedId + ', ' + 639 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', '').find(".flag-edited").css("background", '#CCC'); 640 641 $('#td_message_followup_' + messageClickedId + ', ' + 642 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 643 .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 644 }else{ 645 updateCacheFollowupflag(messageClickedId, mailbox, false); 646 647 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', '').find(".flag-edited").css("background", '#CCC'); 648 649 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 650 .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 589 651 } 590 652 }); 591 653 654 } else { 592 655 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 593 656 .html('<img src="../prototype/modules/mail/img/flagEditor.png">'); 594 595 if (fail) { 596 597 var isCurrentFolder = current_folder == mailbox ? '#td_message_followup_' + messageClickedId + ', ' : ''; 598 $(isCurrentFolder + 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", "#CCCCCC"); 599 MsgsCallbackFollowupflag[fail](); 600 return false; 601 } 602 603 if(current_folder == mailbox){ 604 $('#td_message_followup_' + messageClickedId + ', ' + 605 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 606 }else{ 607 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', get_lang('Follow up')).find(".flag-edited").css("background", aux.followupflagged.backgroundColor); 608 } 609 updateCacheFollowupflag(messageClickedId, mailbox, true); 610 }); 611 612 613 }else if(onceOpenedHeadersMessages[mailbox][messageClickedId]['followupflagged'].followupflag.name == 'Follow up'){ 614 /** 615 * Remover followupflag de Acompanhamento (DFD0078:RI25) 616 */ 617 $(this).find(".flag-edited").css("background", "#cccccc"); 618 DataLayer.remove('followupflagged', flagged[0].id ); 619 DataLayer.commit(false, false, function(){ 620 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 621 .html('<img src="../prototype/modules/mail/img/flagEditor.png">'); 622 if(current_folder == mailbox){ 623 updateCacheFollowupflag(messageClickedId, mailbox, false); 624 625 $('#td_message_followup_' + messageClickedId + ', ' + 626 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', '').find(".flag-edited").css("background", '#CCC'); 627 628 $('#td_message_followup_' + messageClickedId + ', ' + 629 'tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 630 .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 631 }else{ 632 updateCacheFollowupflag(messageClickedId, mailbox, false); 633 634 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).attr('title', '').find(".flag-edited").css("background", '#CCC'); 635 636 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 637 .find("img").attr("src", "../prototype/modules/mail/img/flagEditor.png").css("margin-left","0"); 638 } 639 }); 640 657 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", followupColor); 658 $(this).parents('[role="'+messageClickedId+'_'+mailbox+'"]').attr('class', 'selected_msg').find(':checkbox').trigger('click'); 659 configureFollowupflag(); 660 } 661 //if(!){} 662 663 }); 664 } 665 } 666 if (j == 5) 667 { 668 if(border_id.split("local").length == 1){ 669 td.setAttribute("width", colSizes[1][5]); 670 td.id = "td_message_labels_search_"+uid_msg; 671 td.setAttribute("class","td-label-search"); 672 673 if (aux.labels) { 674 td1 = '<img src="../prototype/modules/mail/img/tag.png">'; 675 updateLabelsColumn(aux) 641 676 } else { 642 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited") 643 .html('<img src="../prototype/modules/mail/img/flagEditor.png">'); 644 $('tr[role="'+messageClickedId+'_'+mailbox+'"] #td_message_followup_search_' + messageClickedId).find(".flag-edited").css("background", followupColor); 645 $(this).parents('[role="'+messageClickedId+'_'+mailbox+'"]').attr('class', 'selected_msg').find(':checkbox').trigger('click'); 646 configureFollowupflag(); 677 td1 = ''; 647 678 } 648 //if(!){}649 650 });651 }652 if (j == 5)653 {654 td.setAttribute("width", colSizes[1][5]);655 td.id = "td_message_labels_search_"+uid_msg;656 td.setAttribute("class","td-label-search");657 658 if (aux.labels) {659 td1 = '<img src="../prototype/modules/mail/img/tag.png">';660 updateLabelsColumn(aux)661 } else {662 td1 = '';663 679 } 664 680 } … … 735 751 td.onclick = _onclick; 736 752 737 if( validate_date( aux.udate ) ) 738 { 753 if(validate_date(new String(aux.udate))){ 739 754 var td1 = aux.udate; 740 755 } … … 1256 1271 if(typeof(Data.data_gears)=="undefined") 1257 1272 EsearchE.show_paging( Data['num_msgs'] ); 1273 1274 Data = null; 1275 data = null; 1258 1276 } 1259 1277 … … 1275 1293 { 1276 1294 var sel = Element("sel_search_nm_box1"); 1295 this.name_box_search = folder.id; 1277 1296 1278 1297 if (!proxy_mensagens.is_local_folder(this.name_box_search)) … … 1298 1317 name_box_def = this.name_box_search.substr(final_pos+1); 1299 1318 } 1300 else 1301 name_box_def = this.name_box_search.substr(6);//Retira o 'local_' 1319 else { 1320 name_box_def = folder.caption + " (local)"; //this.name_box_search.substr(6);//Retira o 'local_' 1321 } 1302 1322 } 1303 1323 … … 1490 1510 if (preferences.use_local_messages == 1) 1491 1511 { 1492 temp = expresso_local_messages.list_local_folders(); 1493 for (var x in temp) 1494 { 1495 local_folders.push(temp[x][0]); 1496 } 1512 local_folders[0] = ""; //se local_folders[0] estiver vazio, busca em todas as pastas 1497 1513 } 1498 1514 } … … 1566 1582 { 1567 1583 expresso_local_messages.setSortType('SORTDATE'); 1568 tmp = expresso_local_messages.search( local_folders, fields ); 1584 //tmp = expresso_local_messages.search( local_folders, fields ); 1585 expresso_mail_archive.search(local_folders, fields); 1586 tmp = expresso_mail_archive.search_queryresult; 1569 1587 } 1570 1588 … … 1575 1593 } 1576 1594 1577 if ( tmp.length > 0 ) 1578 { 1579 allMsg['gears_num_msgs'] = tmp.length ; 1595 if (tmp) { 1596 if ( tmp.length > 0 ) 1597 { 1598 allMsg['gears_num_msgs'] = tmp.length ; 1599 } 1600 } else { 1601 allMsg['gears_num_msgs'] = 0; 1580 1602 } 1581 1603 … … 1586 1608 else 1587 1609 { 1588 if( ( tmp .length > 0) && ( !data['num_msgs'] ) )1610 if( ( tmp && tmp.length > 0) && ( !data['num_msgs'] ) ) 1589 1611 { 1590 1612 EsearchE.viewLocalMessage(); … … 1596 1618 EsearchE.func_clean(); 1597 1619 } 1598 1599 1620 write_msg( count + " " + get_lang("results found") ); 1600 1621 … … 1646 1667 searchE.prototype.quickSearchMail = function(value, page, sort, border_id) 1647 1668 { 1648 var local_folders = new Array ();1669 var local_folders = new Array; 1649 1670 var temp; 1650 1671 var not_found_corrent_folder = true; … … 1657 1678 } 1658 1679 1680 //Inserido valor vazio no array para representar todas as pastas locais 1659 1681 if (preferences.use_local_messages == 1) 1660 { 1661 temp = expresso_local_messages.list_local_folders(); 1662 for (var x in temp) 1663 { 1664 local_folders.push(temp[x][0]); 1665 } 1666 } 1682 local_folders.push(""); 1667 1683 1668 1684 this.sort = sort || this.sort || "SORTDATE"; … … 1711 1727 write_msg( "pesquisando " + labels[0] + link, true ); 1712 1728 var keepFilled = false; 1713 1729 //Inserida variável de controle para correta manipulação das mensagens locais 1730 var local_messages_link = true; 1714 1731 1715 1732 var handler = function( data ) … … 1723 1740 }; 1724 1741 1725 // Gears - local 1726 if ( local_folders.length > 0 ){ 1727 expresso_local_messages.setSortType('SORTDATE'); 1728 var tmp = expresso_local_messages.search( local_folders, "##ALL <=>" + url_encode(value) + "##" ); 1729 1730 if( tmp.length > 0 ) 1731 if( !allMsg['num_msgs'] ){ 1732 clean_msg(); 1733 not_found_corrent_folder = false; 1734 if(tmp.length) 1735 allMsg['gears_num_msgs'] = tmp.length; 1736 }else 1737 allMsg['gears_num_msgs'] = tmp.length; 1738 } 1739 1740 if( !allMsg['num_msgs'] && !url.length && not_found_corrent_folder){ 1741 clean_msg(); 1742 return EsearchE.viewLocalMessage(); 1743 } 1742 //MAILARCHIVER 1743 if(local_messages_link){ //Código executado apenas na primeira vez. 1744 if ( local_folders.length > 0 ){ 1745 expresso_mail_archive.search_queryresult = null; //Limpa a variável global para não exibir resultados anteriores 1746 expresso_mail_archive.search(local_folders, "##ALL <=>" + url_encode(value) + "##"); 1747 tmp = expresso_mail_archive.search_queryresult; 1748 if(tmp == null){ 1749 tmp = new Object(); 1750 tmp.length = 0; 1751 } 1752 } 1753 EsearchE.localResults = tmp.length; 1754 1755 if( tmp.length > 0 ) 1756 { 1757 allMsg['gears_num_msgs'] = tmp.length ; 1758 } 1759 } 1744 1760 1745 1761 if( allMsg['num_msgs'] ) … … 1754 1770 async: true, 1755 1771 success: function(data){ 1772 //Inserida variável de controle para correta manipulação das mensagens locais 1773 local_messages_link = false; 1756 1774 handler(data); 1757 1775 }, … … 1759 1777 connector.showProgressBar(); 1760 1778 }, 1761 1779 complete: function( jqXHR, settings ){ 1762 1780 connector.hideProgressBar(); 1763 1781 } … … 1769 1787 1770 1788 } 1771 1789 1772 1790 xhr = $.ajax({ 1773 1791 url: 'controller.php?action='+url.shift(),
Note: See TracChangeset
for help on using the changeset viewer.