Ignore:
Timestamp:
11/03/11 13:24:28 (12 years ago)
Author:
wmerlotto
Message:

Ticket #2305 - Enviando alteracoes, desenvolvidas internamente na Prognus, do modulo ExpressoMail?.

File:
1 edited

Legend:

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

    r4993 r5134  
    1616                this.txtfields          = new Array("txt_ass","txt_de","txt_body","txt_para","txt_cc","txt_cco", "since_date", "before_date", "on_date"); 
    1717                this.selectFields       = new Array("flagged", "seen", "answered", "recent"); 
    18                 this.localResults   = 0; 
    1918        } 
    2019 
     
    227226 
    228227        // Gears - local 
    229                 if (preferences.use_local_messages == 1 && EsearchE.localResults != 0) 
     228                if ( preferences.use_local_messages == 1 ) 
    230229                { 
    231230                        temp = expresso_local_messages.list_local_folders(); 
     
    234233                                local_folders.push(temp[x][0]); 
    235234                        } 
     235                } 
     236                 
    236237                    if ( local_folders.length > 0 ) 
    237238                        _gears = expresso_local_messages.search( local_folders, expresso_local_messages.getFilter() ); 
    238                         _data['gears_num_msgs'] = _gears.length; 
    239                 }else{ 
    240                     _data['gears_num_msgs']     = 0; 
    241                 } 
    242239 
    243240                _data['data']                   = data['data']; 
    244241                _data['num_msgs']               = data['num_msgs']; 
    245                  
     242                _data['gears_num_msgs'] = _gears.length; 
    246243 
    247244                delete_border( data['currentTab'], false); 
     
    263260  
    264261                if(size > parseInt(preferences.max_email_per_page)) {  
    265                         this.totalPages = parseInt(size/preferences.max_email_per_page);  
     262                        this.totalPages = Math.ceil(size/preferences.max_email_per_page);  
    266263                        if((size/preferences.max_email_per_page) > this.totalPages)  
    267264                        this.totalPages++;  
     
    270267                if(this.page != 0) {  
    271268                        _link = document.createElement("A");  
     269                if( this.value ) 
     270                  _link.href  = 'javascript:EsearchE.quickSearchMail( false, '+0+', false, "'+currentTab+'" )';  
     271                else{ 
    272272            _link.href  = 'javascript:EsearchE.page=0;';  
    273273            _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page=0&current_tab='+currentTab+'");';  
     274        }  
    274275        }  
    275276        else {  
     
    319320                                var _link = document.createElement('A');  
    320321                                _link.innerHTML = ( _page + 1 ) + "  ";  
     322                                if( this.value ) 
     323                                _link.href = 'javascript: EsearchE.quickSearchMail( false, '+i+', false, "'+currentTab+'" )'; 
     324                                else{ 
    321325                                _link.href  = 'javascript:EsearchE.page='+i+';';  
    322326                                _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+_page+'&current_tab='+currentTab+'");';  
     327                        }  
    323328                        }  
    324329                        _link.innerHTML = " ... ";  
     
    339344                        if(this.page != (this.totalPages - 1)) {  
    340345                                _link = document.createElement("A");  
     346                                if( this.value ) 
     347                                _link.href = 'javascript: EsearchE.quickSearchMail( false, '+(this.totalPages-1)+', false, "'+currentTab+'" )'; 
     348                                else{ 
    341349                                _link.href  = 'javascript:EsearchE.page='+(this.totalPages-1)+';';  
    342350                                _link.href += 'cExecute("$this.imap_functions.search_msg",openpage,"condition='+this.condition+'&sort_type='+this.sort_type+'&page='+(this.totalPages-1)+'&current_tab='+currentTab+'");';  
     351                        }  
    343352                        }  
    344353                else {  
     
    360369                var sort_type   = sortType; 
    361370 
     371                if( this.value ) 
     372                  return this.quickSearchMail( false, false, sortType, border_id ); 
     373  
    362374                var is_local = border_id.match('.*_local_.*'); 
    363375 
     
    383395                        if ( local_folders.length > 0 ){ 
    384396                            expresso_local_messages.setSortType(sortType); 
    385                             gears = expresso_local_messages.search( expresso_local_messages.getFolders(), expresso_local_messages.getFilter() ); 
     397                            gears = expresso_local_messages.search( local_folders, expresso_local_messages.getFilter() ); 
    386398                        } 
    387399                } 
     
    396408            if (gears.length > 0) 
    397409            { 
    398                 this.localResults = gears.length; 
    399410                allMsg['data_gears']                    = gears; 
    400             }else{ 
    401                  this.localResults = 0; 
    402411            } 
    403412                 
     
    434443 
    435444                        if ( local_folders.length > 0 ) 
    436                                 gears = expresso_local_messages.search( expresso_local_messages.getFolders(), expresso_local_messages.getFilter() ); 
     445                                gears = expresso_local_messages.search( local_folders, expresso_local_messages.getFilter() ); 
    437446 
    438447                        data['data_gears']      = gears; 
     
    473482                { 
    474483                        var td = document.createElement("TD"); 
     484                        add_className(td, 'td_msg'); 
    475485                        if (j == 0) 
    476486                        { 
     
    480490                                        chk_onclick = "changeBgColor(window.event,"+uid_msg+");"; 
    481491                                else 
    482                                         chk_onclick = "changeBgColor(event,"+uid_msg+");"; 
    483                                 var td1 = '<input type="checkbox" onclick="' + chk_onclick + '" id="check_box_message_'+tr.id+'"></input>'; 
     492                                        chk_onclick = "changeBgColor(event,"+uid_msg+");";                              //'search_' + numBox 
     493                                var td1 = '<input type="checkbox" onclick="' + chk_onclick + '" id="' + border_id + '_check_box_message_'+uid_msg+'"></input>'; 
    484494 
    485495                        } 
     
    510520                        { 
    511521                                td.setAttribute("width", colSizes[1][3]); 
    512                                 td.id = "td_message_important_"+tr.id; 
     522                                td.id = "td_message_important_"+uid_msg; 
    513523                                if (aux.flag.match("F")) 
    514524                                { 
     
    551561                        if( j == 6 ) 
    552562                        { 
    553                                 if (aux.from.length > 29) 
     563                                if ( aux.from !== null && aux.from.length > 29) 
    554564                                        aux.from = aux.from.substr(0,29) + "..."; 
    555565 
     
    634644 
    635645        // Form resultado 
    636         searchE.prototype.mount_result = function( Data, sort_type, keep_border ) 
     646        searchE.prototype.mount_result = function( Data, sort_type, keep_border, keep_filled, division ) 
    637647        { 
    638648                var data = ( Data['data'] ) ? Data['data'] : Data['data_gears']; 
     
    648658                        sort_type = this.sort_type; 
    649659 
    650                 var tab = numBox; 
    651  
    652660                if ( keep_border ) { 
    653661                        var border_id = currentTab; 
    654662                } 
    655663                else { 
    656                         tab = count_borders() + 1; 
     664                        numBox++; 
    657665 
    658666                        if( Data['data'] ) 
    659                                 var border_id = create_border(get_lang("Server Results"), "search_" + tab); 
     667                                var border_id = create_border(get_lang("Server Results"), "search_" + numBox); 
    660668 
    661669                        if( Data['data_gears']) 
    662                                 var border_id = create_border(get_lang("Local Results"), "search_local_msg" + tab); 
     670                                var border_id = create_border(get_lang("Local Results"), "search_local_msg" + numBox); 
    663671                } 
    664672 
     
    667675 
    668676        currentTab = border_id; 
    669         openTab.content_id[currentTab] = Element('content_id_search_' + tab); 
     677        openTab.content_id[currentTab] = Element('content_id_search_' + numBox); 
    670678        openTab.type[currentTab] = 1; 
    671679                openTab.condition[currentTab] = this.condition; 
     
    673681                if ( keep_border ) { 
    674682                        var content_search =  Element('content_id_' + border_id); 
    675                         var div_scroll_result = Element("divScrollMain_"+tab); 
     683                        var div_scroll_result = Element("divScrollMain_"+numBox); 
     684 
    676685                        content_search.removeChild(div_scroll_result); 
     686 
     687                        if( !keep_filled ) 
     688                            div_scroll_result = false; 
    677689                } 
    678690 
    679691                var table = document.createElement("TABLE"); 
    680                         table.id    = "table_resultsearch_" + tab; 
     692                        table.id    = "table_resultsearch_" + numBox; 
    681693                        table.frame = "void"; 
    682694                        table.rules = "rows"; 
     
    686698 
    687699                var tbody               = document.createElement("TBODY"); 
    688                         tbody.id        = "tbody_box_" + tab; 
     700                        tbody.id        = "tbody_box_" + numBox; 
    689701 
    690702                for( var i=0; i < data.length; i++) 
    691703                { 
     704                        if(data[i] !== null){ 
    692705                        var tr = EsearchE.make_tr_message(data[i],border_id,i); 
    693  
    694706            tbody.appendChild(tr); 
    695707                } 
     708                } 
    696709                 
    697710                //global_search++; //Tabs from search must not have the same id on its tr's // use numBox instead of this! 
     
    700713 
    701714                var colgr_element = buildColGroup(1); 
    702                 colgr_element.setAttribute("id","colgroup_main_"+tab); 
     715                colgr_element.setAttribute("id","colgroup_main_"+numBox); 
    703716                table.appendChild(colgr_element); 
    704717 
    705718                var content_search =  Element('content_id_' + border_id); 
     719                 
     720                if( !div_scroll_result ) 
     721                { 
    706722                var div_scroll_result = document.createElement("DIV"); 
    707                 div_scroll_result.id = "divScrollMain_"+tab; 
     723                    div_scroll_result.id = "divScrollMain_"+numBox; 
    708724                div_scroll_result.style.overflowY = "scroll"; 
    709725                div_scroll_result.style.overflowX = "hidden"; 
     
    714730                        div_scroll_result.style.width   ="100%"; 
    715731                } 
     732                } 
     733                if( division ) 
     734                { 
     735                    var _div = document.createElement("div"); 
     736                    _div.className = 'local-messages-search-warning'; 
     737                    _div.innerHTML = division; 
     738                    div_scroll_result.appendChild(_div); 
     739                } 
    716740 
    717741                if(is_ie) 
     
    730754                        table_element.addEventListener("mousedown",startColResize,false); 
    731755                } 
    732                 table_element.setAttribute("id", "table_message_header_box_"+tab); 
     756                table_element.setAttribute("id", "table_message_header_box_"+numBox); 
    733757                table_element.className = "table_message_header_box"; 
    734758                if (!is_ie) 
     
    772796                 
    773797                // Ordernar Pasta 
    774                 if ( sort_type == 'SORTBOX') 
     798                if ( sort_type == 'SORTBOX' /*|| sort_type == 'SORTBOX_REVERSE'*/ ) 
    775799                { 
    776800                        if( Data['data'] ) 
     
    801825                td_element2 = createTDElement(1,6,"th_resizable","left"); 
    802826 
    803                 if (sort_type == 'SORTFROM') 
     827                if (sort_type == 'SORTFROM' || sort_type == 'SORTWHO' /*|| sort_type == 'SORTWHO_REVERSE' || sort_type == 'SORTFROM_REVERSE'*/ ) 
    804828                { 
    805829                        if(Data['data']) 
     
    830854                td_element3 = createTDElement(1,7,"th_resizable","left"); 
    831855                 
    832                 if (sort_type == 'SORTSUBJECT') 
     856                if (sort_type == 'SORTSUBJECT' /*|| sort_type == 'SORTSUBJECT_REVERSE'*/) 
    833857                { 
    834858                        if( Data['data']) 
     
    859883                td_element4 = createTDElement(1,8,"th_resizable","center"); 
    860884                 
    861                 if ( sort_type == 'SORTDATE' ) 
     885                if ( sort_type == 'SORTDATE' /*|| sort_type == 'SORTDATE_REVERSE'*/ ) 
    862886                { 
    863887                        if( Data['data'] ) 
     
    888912                td_element5 = createTDElement(1,9,"th_resizable","center"); 
    889913                 
    890                 if ( sort_type == 'SORTSIZE' ) 
     914                if ( sort_type == 'SORTSIZE' /*|| sort_type == 'SORTSIZE_REVERSE'*/ ) 
    891915                { 
    892916                        if( Data['data'] ) 
     
    928952 
    929953                var colgr_element = buildColGroup(1); 
    930                 colgr_element.setAttribute("id","colgroup_head_"+tab); 
     954                colgr_element.setAttribute("id","colgroup_head_"+numBox); 
    931955                table_element.appendChild(colgr_element); 
    932956 
    933                 if( parseInt( Data['gears_num_msgs'] ) > 0 && !Data['data_gears']) 
     957                if( parseInt( Data['gears_num_msgs'] ) > 0 && !keep_filled) 
    934958                { 
    935959                        var _div_gears = document.createElement("div"); 
     
    941965                }                
    942966 
    943                 var _divScroll = document.getElementById("divScrollHead_"+tab); 
    944  
    945                 if(!_divScroll){ 
     967                var _divScroll = document.getElementById("divScrollHead_"+numBox); 
     968                 
     969                if( _divScroll ){ 
     970                        content_search.removeChild(_divScroll); 
     971                        _divScroll = false; 
     972                } 
     973 
    946974                        _divScroll = document.createElement("DIV"); 
    947                         _divScroll.id = "divScrollHead_"+tab; 
     975                _divScroll.id = "divScrollHead_"+numBox; 
    948976                        _divScroll.style.overflowY = "hidden"; 
    949977                        _divScroll.style.overflowX = "hidden"; 
     
    955983                        _divScroll.appendChild(table_element); 
    956984                        content_search.appendChild(_divScroll); 
    957                 } 
     985 
    958986                /*end of "put header"*/ 
    959987                if ( !expresso_offline ) 
     
    10671095 
    10681096        // Search; 
    1069         searchE.prototype.func_search = function(value) 
     1097        searchE.prototype.func_search_complex = function() 
    10701098        { 
    10711099                var fields = "##"; 
     
    11111139                    } 
    11121140            } 
    1113  
     1141                        if ((trim(Element("since_date").value) != "") && (trim(Element("before_date").value) != "")){ 
     1142                                if(!(validate_date_order(trim(Element("since_date").value), trim(Element("before_date").value)))){ 
     1143                                        alert(get_lang('Invalid date on field %1', get_lang('Before Date'))); 
     1144                    return false; 
     1145                                } 
     1146                        } 
    11141147            if(trim(Element("on_date").value) != "") 
    11151148            { 
     
    11711204                } 
    11721205            } 
    1173  
    1174             if ( value ) 
    1175             { 
    1176                                 fields = "##ALL " +  "<=>" +url_encode(value) + "##"; 
    1177                         } 
    11781206 
    11791207                if(fields == "##") 
     
    12341262            { 
    12351263                var allMsg      = [3]; 
     1264                var count       = ( data['num_msgs'] ) ?  data['num_msgs'] : "0"; 
    12361265                var tmp         = []; 
    12371266 
     
    12411270                    tmp = expresso_local_messages.search( local_folders, fields ); 
    12421271                } 
    1243                 var count = data['num_msgs'] ?  data['num_msgs'] : tmp.length > 0 ? tmp.length : "0"; 
    1244                  EsearchE.localResults = tmp.length; 
     1272 
    12451273                if( data['num_msgs'] ) 
    12461274                { 
     
    12541282                } 
    12551283 
    1256                 if( data['num_msgs'] == 0 && tmp.length < 0) 
     1284                if( ( data['num_msgs'] ) == 0 ) 
    12571285                { 
    12581286                    alert( get_lang("None result was found.") ); 
     
    12601288                else 
    12611289                { 
    1262                     if(tmp.length > 0 && !data['num_msgs']) 
     1290                if( (tmp.length > 0) && (!data['num_msgs']) )  
    12631291                    { 
    1264                         allMsg['data_gears'] = tmp; 
     1292                        EsearchE.viewLocalMessage(); 
    12651293                    } 
    1266                     
     1294                else 
     1295                { 
     1296                                        if(count > 0) 
     1297                                                EsearchE.func_clean(); 
    12671298                     write_msg( count + " " + get_lang("results found") ); 
    12681299                    EsearchE.mount_result( allMsg, 'SORTDATE' ); 
    12691300                } 
    1270  
     1301            } 
    12711302            } 
    12721303 
     
    12801311            else 
    12811312                    cExecute( args, handler, params); 
     1313        } 
     1314         
     1315        searchE.prototype.func_search = function(value, page, sort, border_id) 
     1316        { 
     1317          if( !value ) 
     1318              this.func_search_complex(); 
     1319          else 
     1320            this.quickSearchMail( value, page, sort, border_id ); 
     1321        } 
     1322         
     1323        searchE.prototype.quickSearchMail = function(value, page, sort, border_id) 
     1324        { 
     1325                var local_folders = new Array(); 
     1326                var temp; 
     1327                var not_found_corrent_folder = true; 
     1328 
     1329//              if( Element("check_all_msg").checked ) 
     1330//              { 
     1331                        this.all_mailboxes(); 
     1332                        var nm_box = new Array; 
     1333                        for(var i=0; i < EsearchE.all_boxes.length; i++) 
     1334                        { 
     1335                                nm_box[i] = EsearchE.all_boxes[i]/* + fields*/; 
     1336                        } 
     1337                        if (preferences.use_local_messages == 1) 
     1338                        { 
     1339                                temp = expresso_local_messages.list_local_folders(); 
     1340                                for (var x in temp) 
     1341                                { 
     1342                                        local_folders.push(temp[x][0]); 
     1343                                } 
     1344                        } 
     1345                this.sort               = sort || this.sort || "SORTDATE"; 
     1346                this.page               = isNaN(page) ? ( value ? 0 : this.page ) : page; 
     1347                this.value              = value || this.value || false; 
     1348                 
     1349                if( !this.value ) 
     1350                    return alert( "Busca sem caracteres." ); 
     1351 
     1352                var args                = "$this.imap_functions.quickSearchMail"; 
     1353                var params              = { page: this.page, sort: this.sort, search: this.value }; 
     1354 
     1355                var selection1 = [], selection2 = []; 
     1356 
     1357                for( var i = 0; i < nm_box.length; i++ ) 
     1358                    if( nm_box[i] === current_folder ) 
     1359                        continue; 
     1360                    else if( /^user/.test(nm_box[i]) ) 
     1361                        selection2[selection2.length] = nm_box[i]; 
     1362                    else 
     1363                        selection1[selection1.length] = nm_box[i]; 
     1364 
     1365                 if( expresso_offline ) 
     1366                            handler('none'); 
     1367                 else 
     1368                 { 
     1369                            var url = [], labels = []; 
     1370 
     1371                            params['folder'] = current_folder; 
     1372                            url[0] = args + "&" +  $.param( params ); 
     1373                            labels[0] = "mensagem na sua pasta atual"; 
     1374 
     1375                            if(selection1.length) 
     1376                            { 
     1377                                        params['folder'] = selection1; 
     1378                                        url[1] = args + "&" +  $.param( params ); 
     1379                                        labels[1] = "mensagens nas suas outras pastas"; 
     1380                                } 
     1381                                if(selection2.length) 
     1382                            { 
     1383                                        params['folder'] = selection2; 
     1384                                        url[2] = args + "&" +  $.param( params ); 
     1385                                        labels[2] = "mensagens nas suas pastas compartilhadas"; 
     1386                                } 
     1387                            var link = ' <a href="#" onclick="connector.cancelRequest(); clean_msg(); return false;">cancelar<a/>'; 
     1388 
     1389                            write_msg( "pesquisando " + labels[0] + link, true ); 
     1390                             
     1391                            var keepFilled = false; 
     1392 
     1393                            var handler = function( data ) 
     1394                            { 
     1395                                        data = $.parseJSON( Base64.decode(data) ); 
    12821396             
     1397                                        var allMsg      = { 
     1398                                                num_msgs: ( data['num_msgs'] || 0 ), 
     1399                                                data: ( data['data'] || data['msgs'] || data ) 
     1400                                        }; 
     1401 
     1402                                        // Gears - local 
     1403                                        if ( local_folders.length > 0 ){ 
     1404                                                expresso_local_messages.setSortType('SORTDATE'); 
     1405                                                var tmp = expresso_local_messages.search( local_folders, "##ALL <=>" + url_encode(value) + "##" );  
     1406 
     1407                                                if( tmp.length > 0 ) 
     1408                                                        if( !allMsg['num_msgs'] ){ 
     1409                                                                clean_msg(); 
     1410                                                            not_found_corrent_folder = false; 
     1411                                                                if(tmp.length) 
     1412                                                                        allMsg['gears_num_msgs'] = tmp.length; 
     1413                                                        }else 
     1414                                                                allMsg['gears_num_msgs'] = tmp.length; 
    12831415        } 
    1284         // clean; 
     1416 
     1417                                        if( !allMsg['num_msgs'] && !url.length && not_found_corrent_folder){ 
     1418                                                clean_msg(); 
     1419                                                //alert( get_lang("None result was found.") ); 
     1420                                                return EsearchE.viewLocalMessage(); 
     1421                                        } 
     1422 
     1423                                        if( allMsg['num_msgs'] ) 
     1424                                                EsearchE.total = allMsg['num_msgs'] = Math.max( (EsearchE.total || 0), allMsg['num_msgs'] );     
     1425 
     1426                                        EsearchE.mount_result( allMsg, EsearchE.sort, ( keepFilled || border_id === currentTab ), keepFilled, "Foram encontradas " + data['msgs'].length + " "+labels.shift()+"." ); 
     1427                                         
     1428                                        keepFilled = true; 
     1429                                         
     1430                                        write_msg( "pesquisando " + labels[0] + link, true ); 
     1431 
     1432                                        if( url.length ) 
     1433                                                cExecute( url.shift(), handler ); 
     1434                                        else 
     1435                                                clean_msg(); 
     1436                            } 
     1437 
     1438                            cExecute( url.shift(), handler ); 
     1439                    } 
     1440        } 
     1441         
     1442// clean; 
    12851443        searchE.prototype.func_clean = function() 
    12861444        { 
Note: See TracChangeset for help on using the changeset viewer.