mirror of
https://github.com/Combodo/iTop.git
synced 2026-05-17 22:39:03 +02:00
Portal: Filter was not looking in the item description in tree mode.
SVN:trunk[4893]
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user