diff options
| author | user@node5.net <user@node5.net> | 2025-12-08 21:37:16 +0100 |
|---|---|---|
| committer | user@node5.net <user@node5.net> | 2025-12-08 21:37:16 +0100 |
| commit | 246d46811b831b4f96933b42da9c6444190a4fe5 (patch) | |
| tree | 800554cee58b76e8f8f93ca204c71ccbd7cc4489 /web_interface | |
| parent | 37775ae8c0d87745e526572dc0e5b95263ecf1c9 (diff) | |
Search - Diacritics agnostic
Diffstat (limited to 'web_interface')
| -rw-r--r-- | web_interface/drinks/templates/drinks_overview.html | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/web_interface/drinks/templates/drinks_overview.html b/web_interface/drinks/templates/drinks_overview.html index 7bee2d7..dd86886 100644 --- a/web_interface/drinks/templates/drinks_overview.html +++ b/web_interface/drinks/templates/drinks_overview.html @@ -12,14 +12,21 @@ <script> const searchBar = document.getElementById('search-bar'); + function removeDiacritics(str) { + return str.normalize("NFD").replace(/[\u0300-\u036f]/g, ""); + } + function Search(value) { const drinks = document.getElementById('drinks').children; - document.getElementById('search-clear').style.visibility = searchBar.value.length > 0 ? '' : 'hidden'; + const normalizedValue = removeDiacritics(value.toLowerCase()); + + document.getElementById('search-clear').style.visibility = value.length > 0 ? '' : 'hidden'; + // Loop through all list items and hide those that don't match the filter for (let i = 0; i < drinks.length; i++) { - const itemText = drinks[i].textContent.toLowerCase(); + const itemText = removeDiacritics(drinks[i].textContent.toLowerCase()); // Show item if it matches the filter, hide otherwise - if (itemText.includes(value.toLowerCase())) { + if (itemText.includes(normalizedValue)) { drinks[i].style.display = ''; } else { drinks[i].style.display = 'none'; |
