From cad994e40b57def5b8c049d660657ed54995c562 Mon Sep 17 00:00:00 2001 From: Armin Pleisch Date: Wed, 17 Apr 2024 14:21:15 +0200 Subject: [PATCH] 6.9 Fix tree node locator to work with umlauts correctly --- .../Resources/public/js/pimcore/treenodelocator.js | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/bundles/AdminBundle/Resources/public/js/pimcore/treenodelocator.js b/bundles/AdminBundle/Resources/public/js/pimcore/treenodelocator.js index 9071365888e..dead123bb39 100644 --- a/bundles/AdminBundle/Resources/public/js/pimcore/treenodelocator.js +++ b/bundles/AdminBundle/Resources/public/js/pimcore/treenodelocator.js @@ -472,11 +472,14 @@ pimcore.treenodelocator = function() return -1; } - if (firstElementChild && elementKey.toUpperCase() < firstElementChild.data.text.toUpperCase()) { + // Cando fix: simple string comparison is not working as expected, because umlauts and special characters + // will be sort by their ASCII codes. In that case we have to use the upper case version of the string + // with the locale compare function. Should this be extended with the admin ui locale? + if (firstElementChild && elementKey.toUpperCase().localeCompare(firstElementChild.data.text.toUpperCase()) === -1) { return -1; } - if (lastElementChild && elementKey.toUpperCase() > lastElementChild.data.text.toUpperCase()) { + if (lastElementChild && elementKey.toUpperCase().localeCompare(lastElementChild.data.text.toUpperCase()) === 1) { return 1; }