diff --git a/src/webui/www/private/scripts/client.js b/src/webui/www/private/scripts/client.js index c7afcce1c..b2a8c7f3e 100644 --- a/src/webui/www/private/scripts/client.js +++ b/src/webui/www/private/scripts/client.js @@ -575,7 +575,7 @@ window.addEvent('load', function() { const sortedTags = []; for (const key in tagList) sortedTags.push(tagList[key].name); - sortedTags.sort(); + sortedTags.sort(window.qBittorrent.Misc.naturalSortCollator.compare); for (let i = 0; i < sortedTags.length; ++i) { const tagName = sortedTags[i]; diff --git a/src/webui/www/private/scripts/contextmenu.js b/src/webui/www/private/scripts/contextmenu.js index bb6a4e9f5..70e7fea06 100644 --- a/src/webui/www/private/scripts/contextmenu.js +++ b/src/webui/www/private/scripts/contextmenu.js @@ -456,7 +456,7 @@ window.qBittorrent.ContextMenu = (function() { Object.each(category_list, function(category) { sortedCategories.push(category.name); }); - sortedCategories.sort(); + sortedCategories.sort(window.qBittorrent.Misc.naturalSortCollator.compare); let first = true; Object.each(sortedCategories, function(categoryName) { @@ -493,7 +493,7 @@ window.qBittorrent.ContextMenu = (function() { const sortedTags = []; for (const key in tagList) sortedTags.push(tagList[key].name); - sortedTags.sort(); + sortedTags.sort(window.qBittorrent.Misc.naturalSortCollator.compare); for (let i = 0; i < sortedTags.length; ++i) { const tagName = sortedTags[i]; diff --git a/src/webui/www/private/scripts/misc.js b/src/webui/www/private/scripts/misc.js index 23e8bb520..cf23ab35d 100644 --- a/src/webui/www/private/scripts/misc.js +++ b/src/webui/www/private/scripts/misc.js @@ -179,7 +179,8 @@ window.qBittorrent.Misc = (function() { return escapedString; }; - const naturalSortCollator = new Intl.Collator(undefined, { numeric: true, sensitivity: 'base' }); + // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/Collator/Collator#parameters + const naturalSortCollator = new Intl.Collator(undefined, { numeric: true, usage: 'sort' }); const safeTrim = function(value) { try { diff --git a/src/webui/www/private/views/search.html b/src/webui/www/private/views/search.html index 2a4453466..f11337586 100644 --- a/src/webui/www/private/views/search.html +++ b/src/webui/www/private/views/search.html @@ -541,14 +541,10 @@ $('searchResultsTableContainer').style.display = "block"; // sort plugins alphabetically - const allPlugins = searchPlugins.sort(function(pluginA, pluginB) { - const a = pluginA.fullName.toLowerCase(); - const b = pluginB.fullName.toLowerCase(); - if (a < b) - return -1; - if (a > b) - return 1; - return 0; + const allPlugins = searchPlugins.sort((left, right) => { + const leftName = left.fullName; + const rightName = right.fullName; + return window.qBittorrent.Misc.naturalSortCollator.compare(leftName, rightName); }); allPlugins.each(function(plugin) {