From 837d39dac76c1215c9a9655edef66e456d4a1a27 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartu=20=C3=96zen?= Date: Thu, 2 Nov 2023 11:35:42 +0300 Subject: [PATCH] WebUI: Fix incorrect subcategory sorting PR #19833. Closes #19756. --- src/webui/www/private/scripts/client.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js index 8cfacac9d..afd2440ca 100644 --- a/src/webui/www/private/scripts/client.js +++ b/src/webui/www/private/scripts/client.js @@ -488,7 +488,21 @@ window.addEvent('load', function() { Object.each(category_list, function(category) { sortedCategories.push(category.name); }); - sortedCategories.sort(); + sortedCategories.sort(function(category1, category2) { + for (let i = 0; i < Math.min(category1.length, category2.length); ++i) { + if (category1[i] === "/" && category2[i] !== "/") { + return -1; + } + else if (category1[i] !== "/" && category2[i] === "/") { + return 1; + } + else if (category1[i] !== category2[i]) { + return category1[i].localeCompare(category2[i]); + } + } + + return category1.length - category2.length; + }); for (let i = 0; i < sortedCategories.length; ++i) { const categoryName = sortedCategories[i];