Portal: Filter was not looking in the item description in tree mode.

SVN:trunk[4893]
This commit is contained in:
Guillaume Lajarige
2017-09-05 12:14:00 +00:00
parent 03fbde3403
commit ce81f7abb6

View File

@@ -1,87 +1,83 @@
/**
* Tree List Filter jQuery plugin 1.0
*
* Copyright (c) 2014, AIWSolutions
* License: GPL2
* Project Website: http://wiki.aiwsolutions.net/dOQKO
**/
// WARNING : GLA 2016-02-19 : We have altered the lib as it was no longer maintained nor flexible enough
// - Added callback
// - Added latinisation of the search (accents removing)
jQuery.fn.treeListFilter = function(list, timeout, callback) {
var list = jQuery(list);
var input = this;
var keyTimeout;
var lastFilter = '';
// Default timeout
if (timeout === undefined) {
timeout = 200;
}
// GLA : Default callback
if (callback === undefined) {
callback = function(){ return null; };
}
function filterList(ulObject, filterValue) {
if (!ulObject.is('ul') && !ulObject.is('ol')) {
return false;
}
var children = ulObject.children();
var result = false;
for (var i = 0; i < children.length; i++) {
var liObject = jQuery(children[i]);
if(liObject.is('li')) {
var display = false;
if (liObject.children().length > 0) {
for (var j = 0; j < liObject.children().length; j++) {
var subDisplay = filterList(jQuery(liObject.children()[j]), filterValue);
display = display || subDisplay;
}
}
if (!display) {
// GLA : Modified the search so it looks for each parts of the search and not the entire sentance
// GLA : Modified the text to remove accents (latinise())
var text = liObject.find('a.tree-item').text();
var textLC = text.toLowerCase().latinise();
var filterValues = filterValue.split(' ');
var display = true;
for(var k in filterValues)
{
if(textLC.indexOf(filterValues[k]) < 0)
{
display = false;
break;
}
}
}
liObject.css('display', display ? '' : 'none');
result = result || display;
}
}
return result;
}
input.on('change', function(event) {
// GLA : Modified the search t remove accents (latinise())
var filter = input.val().toLowerCase().trim().latinise();
//var startTime = new Date().getTime();
filterList(list, filter);
//var endTime = new Date().getTime();
//console.log('Search for ' + filter + ' took: ' + (endTime - startTime) + 'ms');
callback();
return false;
}).keydown(function() {
clearTimeout(keyTimeout);
keyTimeout = setTimeout(function() {
if( input.val() === lastFilter ) return;
lastFilter = input.val();
input.change();
}, timeout);
});
return this;
}
/**
* Tree List Filter jQuery plugin 1.0
*
* Copyright (c) 2014, AIWSolutions
* License: GPL2
* Project Website: http://wiki.aiwsolutions.net/dOQKO
**/
jQuery.fn.treeListFilter = function(list, timeout, callback) {
var list = jQuery(list);
var input = this;
var keyTimeout;
var lastFilter = '';
// Default timeout
if (timeout === undefined) {
timeout = 200;
}
// Default callback
if (callback === undefined) {
callback = function(){ return null; };
}
function filterList(ulObject, filterValue) {
if (!ulObject.is('ul') && !ulObject.is('ol')) {
return false;
}
var children = ulObject.children();
var result = false;
for (var i = 0; i < children.length; i++) {
var liObject = jQuery(children[i]);
if(liObject.is('li')) {
var display = false;
if (liObject.children().length > 0) {
for (var j = 0; j < liObject.children().length; j++) {
var subDisplay = filterList(jQuery(liObject.children()[j]), filterValue);
display = display || subDisplay;
}
}
if (!display) {
// Modified the search so it looks for each parts of the search and not the entire sentance
// Modified the text to remove accents (latinise())
var text = liObject.find('.tree-item-wrapper').text();
var textLC = text.toLowerCase().latinise();
var filterValues = filterValue.split(' ');
var display = true;
for(var k in filterValues)
{
if(textLC.indexOf(filterValues[k]) < 0)
{
display = false;
break;
}
}
}
liObject.css('display', display ? '' : 'none');
result = result || display;
}
}
return result;
}
input.on('change', function(event) {
// Modified the search t remove accents (latinise())
var filter = input.val().toLowerCase().trim().latinise();
//var startTime = new Date().getTime();
filterList(list, filter);
//var endTime = new Date().getTime();
//console.log('Search for ' + filter + ' took: ' + (endTime - startTime) + 'ms');
callback();
return false;
}).keydown(function() {
clearTimeout(keyTimeout);
keyTimeout = setTimeout(function() {
if( input.val() === lastFilter ) return;
lastFilter = input.val();
input.change();
}, timeout);
});
return this;
}