From 2ded6dc63646370715e6f62ee256d5ea5e385f1e Mon Sep 17 00:00:00 2001 From: airium Date: Tue, 6 Aug 2019 21:13:36 +0800 Subject: [PATCH] Sort torrent names case-insensitively in webui --- src/webui/www/private/scripts/dynamicTable.js | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/webui/www/private/scripts/dynamicTable.js b/src/webui/www/private/scripts/dynamicTable.js index 78d0d5baf..0ea098488 100644 --- a/src/webui/www/private/scripts/dynamicTable.js +++ b/src/webui/www/private/scripts/dynamicTable.js @@ -987,13 +987,22 @@ const TorrentsTable = new Class({ else return 0; }; - // name, category + // name, category, tags this.columns['name'].updateTd = function(td, row) { const name = escapeHtml(this.getRowValue(row)) td.set('html', name); td.set('title', name); }; this.columns['category'].updateTd = this.columns['name'].updateTd; + this.columns['tags'].updateTd = this.columns['name'].updateTd; + + this.columns['name'].compareRows = function(row1, row2) { + const row1Val = this.getRowValue(row1); + const row2Val = this.getRowValue(row2); + return row1Val.localeCompare(row2Val, undefined, {numeric: true, sensitivity: 'base'}); + }; + this.columns['category'].compareRows = this.columns['name'].compareRows; + this.columns['tags'].compareRows = this.columns['name'].compareRows; // size this.columns['size'].updateTd = function(td, row) { @@ -1098,9 +1107,6 @@ const TorrentsTable = new Class({ td.set('title', string); }; - // tags - this.columns['tags'].updateTd = this.columns['name'].updateTd; - // added on this.columns['added_on'].updateTd = function(td, row) { const date = new Date(this.getRowValue(row) * 1000).toLocaleString();