From a2efc66f1c79eeffec286f111fbc68eb325d821f Mon Sep 17 00:00:00 2001 From: Armin Pleisch Date: Wed, 17 Apr 2024 14:05:59 +0200 Subject: [PATCH] 10.6 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 e5ed82d3541..a8b54077322 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.get('key').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.get('key').toUpperCase()) === -1) { return -1; } - if (lastElementChild && elementKey.toUpperCase() > lastElementChild.get('key').toUpperCase()) { + if (lastElementChild && elementKey.toUpperCase().localeCompare(lastElementChild.get('key').toUpperCase()) === 1) { return 1; }