Ignore:
Timestamp:
05/11/09 16:29:56 (15 years ago)
Author:
niltonneto
Message:

Ticket #409 - Padronizar o resultado da busca. Exibir mais informações e permitir ordenação reversa do resultado.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoMail1_2/js/search.js

    r689 r832  
    22 Início  
    33\**************************************************************************/ 
    4         function searchE(){ 
     4        function searchE() 
     5        { 
    56                this.searchW   = new Array; 
    67                this.name_box_search = ""; 
     
    101102                                                     "</tr>"+ 
    102103                                                     "<tr>"+ 
    103                                                      "<td valign='top'><input type='checkBox' id='check_all_msg' name='check_all_msg'><b>" + get_lang('In all the folders') + "</b></td>"+ 
     104                                                     "<td valign='top'><input type='checkBox' id='check_all_msg' name='check_all_msg' onclick='EsearchE.all_mailboxes()'><b>" + get_lang('In all the folders') + "</b></td>"+ 
    104105                                                     "</tr>"+ 
    105106                                                     "</table>"+ 
     
    164165                return data2 - data1; 
    165166        } 
     167        function date_comp_reverse(a,b) 
     168        { 
     169                return date_comp(b,a); 
     170        } 
    166171         
    167172        function box_comp(a,b) 
     
    179184                return -1; 
    180185        } 
     186        function box_comp_reverse(a,b) 
     187        { 
     188                return box_comp(b,a); 
     189        } 
    181190 
    182191        function who_comp(a,b) 
     
    193202        else 
    194203                return -1; 
     204        } 
     205        function who_comp_reverse(a,b) 
     206        { 
     207                return who_comp(b,a); 
    195208        } 
    196209 
     
    211224                return -1; 
    212225        } 
     226        function subject_comp_reverse(a,b) 
     227        { 
     228                return subject_comp(b,a); 
     229        } 
    213230 
    214231        function size_comp(a,b) 
     
    223240                        if (data1.match("m")) 
    224241                                size_a = size_a * 1048576; 
    225                  
    226242                var data2 = b.match(/\d{2}\/\d{2}\/\d{4}--\d+? \w*b--.*--\d*$/g); 
    227243                data2 = data2[0].substr(data2[0].indexOf('--')+2) 
     
    233249                        if (data2.match("m")) 
    234250                                size_b = size_b * 1048576; 
    235                                  
    236251                return size_b - size_a; 
    237252        } 
    238  
    239         // Form resultado; 
     253        function size_comp_reverse(a,b) 
     254        { 
     255                return size_comp(b,a); 
     256        } 
     257 
     258        // Form resultado 
    240259        searchE.prototype.mount_result = function(data,sort_type){ 
    241260                var nw_array = new Array; 
     
    248267                                var_tmp.sort(date_comp); 
    249268                                break; 
     269                        case 'SORTDATE_REVERSE': 
     270                                var_tmp.sort(date_comp_reverse); 
     271                                break; 
    250272                        case 'SORTBOX': 
    251273                                var_tmp.sort(box_comp); 
    252274                                break; 
     275                        case 'SORTBOX_REVERSE': 
     276                                var_tmp.sort(box_comp_reverse); 
     277                                break; 
    253278                        case 'SORTSUBJECT': 
    254279                                var_tmp.sort(subject_comp); 
     280                                break; 
     281                        case 'SORTSUBJECT_REVERSE': 
     282                                var_tmp.sort(subject_comp_reverse); 
    255283                                break; 
    256284                        case 'SORTWHO': 
    257285                                var_tmp.sort(who_comp); 
    258286                                break; 
     287                        case 'SORTWHO_REVERSE': 
     288                                var_tmp.sort(who_comp_reverse); 
     289                                break; 
    259290                        case 'SORTSIZE': 
    260291                                var_tmp.sort(size_comp); 
     292                                break; 
     293                        case 'SORTSIZE_REVERSE': 
     294                                var_tmp.sort(size_comp_reverse); 
    261295                                break; 
    262296                        default: 
     
    275309                numBox++; 
    276310                var border_id = create_border(get_lang("Search Results"), "search_" + numBox); 
     311                currentTab = border_id; 
     312                openTab.type[currentTab] = 1; 
    277313                var table = document.createElement("TABLE"); 
    278314                table.id    = "table_resultsearch_" + numBox; 
     
    284320 
    285321                var tbody = document.createElement("TBODY"); 
    286                 tbody.id    = "tbody_resultsearch_" + numBox; 
     322                tbody.id    = "tbody_box_" + numBox; 
     323 
    287324                for( var i=0; i < nw_array.length; i++){ 
    288325                        var tr = document.createElement("TR"); 
     
    303340                        else 
    304341                        { 
    305                         var aux = nw_array[i].split("--"); 
    306                         } 
     342                                var aux = nw_array[i].split("--"); 
     343                        } 
     344 
    307345                        var mailbox = aux[0]; 
    308346                        var uid_msg = aux[6]; 
     
    311349                        tr.name = mailbox; 
    312350 
    313                         for(var j=0 ; j <= 10 ; j++) 
     351                        var _onclick = function () { cExecute("$this.imap_functions.get_info_msg&msg_number="+this.parentNode.id+"&msg_folder="+url_encode(this.parentNode.name),show_msg); }; 
     352                        for(var j=0 ; j < 10 ; j++) 
    314353                        { 
    315                                 var td = document.createElement("TD");                                   
     354                                var td = document.createElement("TD"); 
    316355                                if (j == 0) 
    317356                                { 
     357                                        if (aux[5].match("U")) 
     358                                                tr.className = 'tr_msg_unread'; 
     359                                        else 
     360                                                tr.className = 'tr_msg_read'; 
    318361                                        td.style.width = "1%"; 
    319362                                        var td1 = '<input type="checkbox" id="check_box_message_'+uid_msg+'"></input>'; 
     
    322365                                { 
    323366                                        td.style.width = "2%"; 
    324                                         td1 = ''; 
     367                                        if (aux[5].match('T')) 
     368                                        { 
     369                                                attachNum = parseInt(aux[5].substr(aux[5].indexOf('T')+1)); 
     370                                                td1 = "<img src='templates/"+template+"/images/clip.gif' title='"+attachNum +' '+ get_lang('attachment(s)')+"'>"; 
     371                                        } 
     372                                        else 
     373                                                td1 = ''; 
    325374                                } 
    326375                                if (j == 2) 
     
    328377                                        td.style.width = "1%"; 
    329378                                        td.id = "td_message_answered_"+uid_msg; 
    330                                         td1 = ''; 
     379                                        if (aux[5].match('X')) 
     380                                                td1 = '<img src=templates/'+template+'/images/forwarded.gif title=Forwarded>'; 
     381                                        else 
     382                                                if (aux[5].match('A')) 
     383                                                        td1 = '<img src=templates/'+template+'/images/answered.gif>'; 
     384                                                else 
     385                                                        td1 = ''; 
    331386                                } 
    332387                                if (j == 3) 
     
    334389                                        td.style.width = "1%"; 
    335390                                        td.id = "td_message_important_"+uid_msg; 
    336                                         td1 = ''; 
     391                                        if (aux[5].match("F")) 
     392                                        { 
     393                                                tr.className = 'flagged_msg'; 
     394                                                td1 = '<img title="Importante" src="templates/'+template+'/images/important.gif"/>'; 
     395                                        } 
     396                                        else 
     397                                                td1 = ''; 
    337398                                } 
    338399                                if (j == 4) 
     
    344405                                if (j == 5) 
    345406                                { 
    346                                         td.style.width = "14%";                                  
     407                                        td.style.width = "14%"; 
     408                                        td.onclick = _onclick; 
    347409                                        var nm_box = aux[0].split(cyrus_delimiter); 
    348410                                        var td1 = nm_box.pop(); 
     
    351413                                        td.style.color = "#42795b"; 
    352414                                        td.style.fontWeight = "bold"; 
     415 
    353416                                        if(td1 == "INBOX"){ 
    354417                                                var td1  = get_lang("Inbox"); 
    355418                                        } 
    356                                                 if(proxy_mensagens.is_local_folder(td1)) { 
    357                                                         var td1 = this.aux_local_folder_display(td1); 
     419 
     420                                        if(proxy_mensagens.is_local_folder(td1)) { 
     421                                                var td1 = this.aux_local_folder_display(td1); 
    358422                                        } 
    359423                                } 
    360424                                if( j == 6) 
    361425                                { 
    362                                         var subject_encode = url_encode(aux[1]); 
    363                                         td.style.width = "20%";                                  
     426                                        if (aux[1].length > 29) 
     427                                                aux[1] = aux[1].substr(0,29) + "..."; 
     428                                        td.style.width = "20%"; 
     429                                        td.onclick = _onclick; 
     430                                        td.setAttribute("NoWrap","true"); 
     431                                        td.style.overflow = "hidden"; 
    364432                                        var td1  =  '<div style="width:100%;overflow:hidden">'+aux[1]+"</div>"; 
    365433                                } 
     
    369437                                        if (! subject_encode) 
    370438                                                aux[2] = get_lang("no subject") + "..."; 
    371                                         td.style.width = "35%";                                  
    372                                         var td1  = '<div style="width:100%;overflow:hidden"><a href=javascript:void(0) onclick=EsearchE.open_msg(\"' + url_encode(mailbox) + '\",\"' + uid_msg + '\",\"' + subject_encode + '\")>' + aux[2] +'</a></div>'; 
     439                                        if (aux[2].length > 70) 
     440                                                aux[2] = aux[2].substr(0,70) + "..."; 
     441                                        td.style.width = "35%"; 
     442                                        td.onclick = _onclick; 
     443                                        td.setAttribute("NoWrap","true"); 
     444                                        td.style.overflow = "hidden"; 
     445                                        var td1  = aux[2]; 
    373446 
    374447                                } 
    375448                                if( j == 8) 
    376449                                { 
    377                                         td.style.width = "15%";                                  
     450                                        td.style.width = "15%"; 
    378451                                        td.align = "center"; 
     452                                        td.onclick = _onclick; 
    379453                                        var td1  = aux[3]; 
    380454                                } 
     
    383457                                        td.style.width = "10%"; 
    384458                                        td.align = "center"; 
     459                                        td.onclick = _onclick; 
    385460                                        var td1  = aux[4]; 
    386461                                } 
     
    400475                        aux.splice(0,(aux.length)); 
    401476 
    402                 _dragArea.makeDragged(tr, uid_msg, subject_encode, true, mailbox); 
     477                _dragArea.makeDragged(tr, uid_msg, subject, true, mailbox); 
    403478                tbody.appendChild(tr); 
    404479                } 
    405480                table.appendChild(tbody); 
    406                  
    407         var content_search =  Element('content_id_search_' + numBox);    
     481 
     482        var content_search =  Element('content_id_search_' + numBox); 
    408483        // BEGIN MAKE THE SCROLL HEIGHT          
    409         var defaultWidth = document.body.offsetWidth - 31;       
     484        var defaultWidth = document.body.offsetWidth - 31; 
    410485        var menuHidden = Element("folderscol").style.display == 'none' ? true : false; 
    411486        if(!menuHidden) 
     
    417492        var div_scroll_result = document.createElement("DIV"); 
    418493        div_scroll_result.id = "divScrollMain_"+numBox; 
    419         div_scroll_result.style.background = 'WHITE'; 
    420494        div_scroll_result.style.height = document.body.clientHeight - offset - 120; 
    421495        content_search.style.height = document.body.clientHeight - offset - 80; 
     
    428502                        Element("border_table").width = "99.5%"; 
    429503                 
    430                 /* Put header */ 
     504                // Put header 
    431505                var table_element = document.createElement("TABLE"); 
    432506                var tbody_element = document.createElement("TBODY"); 
     
    447521                        { 
    448522                                if ((window.event.keyCode) == 46) 
    449                                         delete_msgs(get_current_folder(),'selected','null'); 
     523                                        delete_msgs(current_folder,'selected','null'); 
    450524                        } 
    451525                        else 
    452526                        { 
    453527                                if ((e.keyCode) == 46) 
    454                                         delete_msgs(get_current_folder(),'selected','null'); 
     528                                        delete_msgs(current_folder,'selected','null'); 
    455529                        } 
    456530                }; 
     
    460534                td_element1.setAttribute("width", "20%"); 
    461535                td_element1.align = "left"; 
    462                 td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);}; 
    463                 td_element1.innerHTML = (sort_type == 'SORTBOX')?"<b>"+get_lang("folder")+"</b>":get_lang("folder"); 
     536                if (sort_type == 'SORTBOX') 
     537                { 
     538                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX_REVERSE'); delete_border(border_id,false);}; 
     539                        td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
     540                } 
     541                else 
     542                { 
     543                        td_element1.onclick = function () { EsearchE.mount_result(data,'SORTBOX'); delete_border(border_id,false);}; 
     544                        if  (sort_type == 'SORTBOX_REVERSE') 
     545                                td_element1.innerHTML ="<b>"+get_lang("Folder")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     546                        else 
     547                                td_element1.innerHTML = get_lang("Folder"); 
     548                } 
    464549                td_element2 = document.createElement("TD"); 
    465550                td_element2.setAttribute("width", "20%"); 
    466551                td_element2.align = "left"; 
    467                 td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);}; 
    468                 td_element2.innerHTML = (sort_type == 'SORTWHO')?"<b>"+get_lang("Who")+"</b>":get_lang("Who"); 
     552                if (sort_type == 'SORTWHO') 
     553                { 
     554                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO_REVERSE'); delete_border(border_id,false);}; 
     555                        td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
     556                } 
     557                else 
     558                { 
     559                        td_element2.onclick = function () { EsearchE.mount_result(data,'SORTWHO'); delete_border(border_id,false);}; 
     560                        if  (sort_type == 'SORTWHO_REVERSE') 
     561                                td_element2.innerHTML ="<b>"+get_lang("who")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     562                        else 
     563                                td_element2.innerHTML = get_lang("who"); 
     564                } 
    469565                td_element3 = document.createElement("TD"); 
    470566                td_element3.setAttribute("width", "35%"); 
    471567                td_element3.align = "left"; 
    472                 td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);}; 
    473                 td_element3.innerHTML = (sort_type == 'SORTSUBJECT')?"<b>"+get_lang("Subject")+"</b>":get_lang("Subject"); 
     568                if (sort_type == 'SORTSUBJECT') 
     569                { 
     570                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT_REVERSE'); delete_border(border_id,false);}; 
     571                        td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
     572                } 
     573                else 
     574                { 
     575                        td_element3.onclick = function () { EsearchE.mount_result(data,'SORTSUBJECT'); delete_border(border_id,false);}; 
     576                        if  (sort_type == 'SORTSUBJECT_REVERSE') 
     577                                td_element3.innerHTML ="<b>"+get_lang("subject")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     578                        else 
     579                                td_element3.innerHTML = get_lang("subject"); 
     580                } 
    474581                td_element4 = document.createElement("TD"); 
    475582                td_element4.setAttribute("width", "15%"); 
    476583                td_element4.align = "center"; 
    477                 td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);}; 
    478                 td_element4.innerHTML = (sort_type == 'SORTDATE')?"<b>"+get_lang("Date")+"</b>":get_lang("Date"); 
     584                if (sort_type == 'SORTDATE') 
     585                { 
     586                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE_REVERSE'); delete_border(border_id,false);}; 
     587                        td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
     588                } 
     589                else 
     590                { 
     591                        td_element4.onclick = function () { EsearchE.mount_result(data,'SORTDATE'); delete_border(border_id,false);}; 
     592                        if  (sort_type == 'SORTDATE_REVERSE') 
     593                                td_element4.innerHTML ="<b>"+get_lang("Date")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     594                        else 
     595                                td_element4.innerHTML = get_lang("Date"); 
     596                } 
    479597                td_element5 = document.createElement("TD"); 
    480598                td_element5.setAttribute("width", "10%"); 
    481599                td_element5.align = "center"; 
    482                 td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);}; 
    483                 td_element5.innerHTML = (sort_type == 'SORTSIZE')?"<b>"+get_lang("Size")+"</b>":get_lang("Size"); 
    484          
     600                if (sort_type == 'SORTSIZE') 
     601                { 
     602                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE_REVERSE'); delete_border(border_id,false);}; 
     603                        td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_descendant.gif'>"; 
     604                } 
     605                else 
     606                { 
     607                        td_element5.onclick = function () { EsearchE.mount_result(data,'SORTSIZE'); delete_border(border_id,false);}; 
     608                        if  (sort_type == 'SORTSIZE_REVERSE') 
     609                                td_element5.innerHTML ="<b>"+get_lang("size")+"</b><img src='templates/"+template+"/images/arrow_ascendant.gif'>"; 
     610                        else 
     611                                td_element5.innerHTML = get_lang("Size"); 
     612                } 
    485613                tr_element.appendChild(td_element0); 
    486614                tr_element.appendChild(td_element1); 
     
    492620                table_element.appendChild(tbody_element); 
    493621                content_search.appendChild(table_element); 
    494                 /*end of "put header"*/ 
    495  
    496                 var span_options = document.createElement("SPAN");               
    497                 if (span_options) 
    498                         span_options.innerHTML = '<span title="'+get_lang("Delete")+'" style="margin-top:3px;margin-left:8px" class="message_options" onclick="javascript:move_search_msgs(\''+content_search.id+'\');">'+get_lang("Delete")+'</span> | '+ 
    499                                 '<span title="'+get_lang("Move")+'" class="message_options" onclick=wfolders.makeWindowNew(\"'+content_search.id+'\",\"move_to\",true)>'+get_lang("Move")+'</span>'; 
     622                // end of put header 
     623 
    500624                div_scroll_result.appendChild(table); 
    501                 content_search.appendChild(div_scroll_result);   
    502                 if (span_options) 
    503                         content_search.appendChild(span_options); 
     625                content_search.appendChild(div_scroll_result); 
    504626        } 
    505627 
     
    666788                for(var i=0; i < this.fields.length; i++){ 
    667789                        if(Element("txt" + this.fields[i]) != null){Element("txt" + this.fields[i]).value = "";} 
    668                 }                        
     790                } 
    669791            if(Element("check_all_msg") != null){Element("check_all_msg").checked = false;} 
    670792 
     
    688810                        div.style.visibility = "hidden"; 
    689811                        div.style.position = "absolute"; 
    690                         div.style.zIndex = "10003";                      
     812                        div.style.zIndex = "10003"; 
    691813                        var title = ":: "+ get_lang("Search")+" ::"; 
    692814                        var wHeight = div.offsetHeight + "px"; 
    693815                        var wWidth =  div.offsetWidth   + "px"; 
    694                          
    695                         win = new dJSWin({                       
     816 
     817                        win = new dJSWin({ 
    696818                                id: 'ccList'+div.id, 
    697819                                content_id: div.id, 
     
    700822                                title_color: '#3978d6', 
    701823                                bg_color: '#eee', 
    702                                 title: title,                                            
     824                                title: title, 
    703825                                title_text_color: 'white', 
    704826                                button_y_img: '../phpgwapi/images/win_min.gif', 
Note: See TracChangeset for help on using the changeset viewer.