Show
Ignore:
Timestamp:
27.03.2012 13:03:21 (8 years ago)
Author:
sjm84
Message:

Added the ability to do a range search (e.g. 1-342) in the filter pages area

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • main/trunk/greenstone3/web/interfaces/oran/js/document_scripts.js

    r25283 r25295  
    334334        { 
    335335            var currentValue = filter.val(); 
     336            var isRange = (currentValue.search(/\d+-\d+/) != -1) 
     337             
     338            var found = false; 
    336339            for(var i = 0; i < _titles.length; i++) 
    337340            { 
    338                 var currentTitle = _titles[i]; 
    339                 if(currentTitle[0].search(/*"^" +*/ currentValue.replace(/\./g, "\\.")) != -1) 
     341                if(_titles[i][0] == currentValue) 
    340342                { 
    341                     currentTitle[1].cell.style.display = "table-cell"; 
     343                    found = true; 
    342344                } 
    343                 else 
     345            } 
     346             
     347            if(!found && isRange) 
     348            { 
     349                var firstNumber = currentValue.replace(/^(\d+)-\d+$/, "$1"); 
     350                var secondNumber = currentValue.replace(/^\d+-(\d+)$/, "$1"); 
     351                 
     352                if(firstNumber <= secondNumber) 
    344353                { 
    345                     currentTitle[1].cell.style.display = "none"; 
     354                    var matchingTitles = new Array(); 
     355                    for(var i = firstNumber; i <= secondNumber; i++) 
     356                    { 
     357                        var numString = i + ""; 
     358                        for(var j = 0; j < _titles.length; j++) 
     359                        { 
     360                            var currentTitle = _titles[j]; 
     361                            if(currentTitle[0].search(numString) != -1) 
     362                            { 
     363                                matchingTitles.push(currentTitle); 
     364                            } 
     365                        } 
     366                    } 
     367                     
     368                    for(var i = 0; i < _titles.length; i++) 
     369                    { 
     370                        _titles[i][1].cell.style.display = "none"; 
     371                    } 
     372                     
     373                    for(var i = 0; i < matchingTitles.length; i++) 
     374                    { 
     375                        matchingTitles[i][1].cell.style.display = "table-cell"; 
     376                    } 
     377                } 
     378            } 
     379            else 
     380            { 
     381                for(var i = 0; i < _titles.length; i++) 
     382                { 
     383                    var currentTitle = _titles[i]; 
     384                    if(currentTitle[0].search(currentValue.replace(/\./g, "\\.")) != -1) 
     385                    { 
     386                        currentTitle[1].cell.style.display = "table-cell"; 
     387                    } 
     388                    else 
     389                    { 
     390                        currentTitle[1].cell.style.display = "none"; 
     391                    } 
    346392                } 
    347393            }