diff --git a/datamodels/2.x/itop-portal-base/portal/web/lib/jquery-treelistfilter/js/TreeListFilter.js b/datamodels/2.x/itop-portal-base/portal/web/lib/jquery-treelistfilter/js/TreeListFilter.js index 9189aab46e..ff51adde72 100644 --- a/datamodels/2.x/itop-portal-base/portal/web/lib/jquery-treelistfilter/js/TreeListFilter.js +++ b/datamodels/2.x/itop-portal-base/portal/web/lib/jquery-treelistfilter/js/TreeListFilter.js @@ -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; +} +