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