From 7850d828d83d54675ae5d54e0f96114c66059c42 Mon Sep 17 00:00:00 2001 From: mistic100 Date: Sat, 15 Jun 2013 15:45:41 +0000 Subject: Merged revision(s) 23231 from trunk: feature:2922 Add caseSensitive option to TokenInput (false by default) git-svn-id: http://piwigo.org/svn/branches/2.5@23232 68402e56-0260-453c-a942-63ccdbb3a9ee --- themes/default/js/plugins/jquery.tokeninput.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/themes/default/js/plugins/jquery.tokeninput.js b/themes/default/js/plugins/jquery.tokeninput.js index c36a864f2..0bbf8336b 100644 --- a/themes/default/js/plugins/jquery.tokeninput.js +++ b/themes/default/js/plugins/jquery.tokeninput.js @@ -38,7 +38,8 @@ var DEFAULT_SETTINGS = { onResult: null, onAdd: null, onDelete: null, - allowCreation: false + allowCreation: false, + caseSensitive: false }; // Default classes to use when theming @@ -576,7 +577,9 @@ $.TokenList = function (input, url_or_data, settings) { // Highlight the query part of the search term function highlight_term(value, term) { - return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + escape_regexp_chars(term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "$1"); + var param = "g"; + if (!settings.caseSensitive) param+= "i"; + return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + escape_regexp_chars(term) + ")(?![^<>]*>)(?![^&;]+;)", param), "$1"); } function escape_regexp_chars(string) { @@ -652,7 +655,8 @@ $.TokenList = function (input, url_or_data, settings) { // Do a search and show the "searching" dropdown if the input is longer // than settings.minChars function do_search() { - var query = input_box.val().toLowerCase(); + var query = input_box.val(); + if (!settings.caseSensitive) query = query.toLowerCase(); if(query && query.length) { if(selected_token) { @@ -716,7 +720,9 @@ $.TokenList = function (input, url_or_data, settings) { cache.add(query, settings.jsonContainer ? results[settings.jsonContainer] : results); // only populate the dropdown if the results are associated with the active search query - if(input_box.val().toLowerCase() === query) { + var value = input_box.val(); + if (!settings.caseSensitive) value = value.toLowerCase(); + if(value === query) { populate_dropdown(query, settings.jsonContainer ? results[settings.jsonContainer] : results); } }; @@ -726,7 +732,12 @@ $.TokenList = function (input, url_or_data, settings) { } else if(settings.local_data) { // Do the search through local data var results = $.grep(settings.local_data, function (row) { - return row.name.toLowerCase().indexOf(query.toLowerCase()) > -1; + if (settings.caseSensitive) { + return row.name.indexOf(query) > -1; + } + else { + return row.name.toLowerCase().indexOf(query.toLowerCase()) > -1; + } }); if($.isFunction(settings.onResult)) { -- cgit v1.2.3