From d938643c380d46d714ea78a06e40020f6c6589e1 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sat, 22 Nov 2014 10:23:51 +0300 Subject: [PATCH] WebUI: Drop client-side filtering. --- src/webui/www/public/filters.html | 6 +- src/webui/www/public/scripts/client.js | 8 +- src/webui/www/public/scripts/dynamicTable.js | 92 +++----------------- 3 files changed, 22 insertions(+), 84 deletions(-) diff --git a/src/webui/www/public/filters.html b/src/webui/www/public/filters.html index e0791fe83..c18cae28a 100644 --- a/src/webui/www/public/filters.html +++ b/src/webui/www/public/filters.html @@ -9,9 +9,9 @@ diff --git a/src/webui/www/public/scripts/client.js b/src/webui/www/public/scripts/client.js index f4feac3bc..065b562e5 100644 --- a/src/webui/www/public/scripts/client.js +++ b/src/webui/www/public/scripts/client.js @@ -134,7 +134,8 @@ window.addEvent('load', function () { var ajaxfn = function () { var queueing_enabled = false; - var url = 'json/torrents'; + var url = new URI('json/torrents'); + url.setData({'filter': filter}); if (!waiting) { waiting = true; var request = new Request.JSON({ @@ -272,9 +273,10 @@ window.addEvent('load', function () { $("active_filter").removeClass("selectedFilter"); $("inactive_filter").removeClass("selectedFilter"); $(f + "_filter").addClass("selectedFilter"); - myTable.setFilter(f); - ajaxfn(); + filter = f; localStorage.setItem('selected_filter', f); + // Reload torrents + ajaxfn(); } }); diff --git a/src/webui/www/public/scripts/dynamicTable.js b/src/webui/www/public/scripts/dynamicTable.js index 32d9a2027..caa06f433 100644 --- a/src/webui/www/public/scripts/dynamicTable.js +++ b/src/webui/www/public/scripts/dynamicTable.js @@ -41,10 +41,6 @@ var dynamicTable = new Class({ this.cur = new Array(); this.priority_hidden = false; this.progressIndex = progressIndex; - this.filter = localStorage.getItem('selected_filter'); - if (!$defined(this.filter)) { - this.filter = 'all'; - } this.context_menu = context_menu; this.table.sortedIndex = 1; // Default is NAME this.table.reverseSort = false; @@ -122,10 +118,6 @@ var dynamicTable = new Class({ this.priority_hidden = true; }, - setFilter : function (f) { - this.filter = f; - }, - showPriority : function () { if (!this.priority_hidden) return; @@ -138,49 +130,6 @@ var dynamicTable = new Class({ this.priority_hidden = false; }, - applyFilterOnRow : function (tr, status) { - switch (this.filter) { - case 'all': - tr.removeClass("invisible"); - break; - case 'downloading': - if (status == "downloading" || status == "stalledDL" || status == "checkingDL" || status == "pausedDL" || status == "queuedDL") { - tr.removeClass("invisible"); - } else { - tr.addClass("invisible"); - } - break; - case 'completed': - if (status == "uploading" || status == "stalledUP" || status == "checkingUP" || status == "pausedUP" || status == "queuedUP") { - tr.removeClass("invisible"); - } else { - tr.addClass("invisible"); - } - break; - case 'paused': - if (status == "pausedDL" || status == "pausedUP") { - tr.removeClass("invisible"); - } else { - tr.addClass("invisible"); - } - break; - case 'active': - if (status == "downloading" || status == "uploading") { - tr.removeClass("invisible"); - } else { - tr.addClass("invisible"); - } - break; - case 'inactive': - if (status != "downloading" && status != "uploading") { - tr.removeClass("invisible"); - } else { - tr.addClass("invisible"); - } - } - return !tr.hasClass('invisible'); - }, - insertRow : function (id, row, data, status) { if (this.rows.has(id)) { return; @@ -302,8 +251,7 @@ var dynamicTable = new Class({ } return false; }.bind(this)); - // Apply filter - this.applyFilterOnRow(tr, status); + // Insert var trs = this.table.getChildren('tr'); var i = 0; @@ -336,34 +284,22 @@ var dynamicTable = new Class({ return false; } var tr = this.rows.get(id); - // Apply filter - if (this.applyFilterOnRow(tr, status)) { - var tds = tr.getElements('td'); - for (var i = 0; i < row.length; i++) { - if (i == 1) - continue; // Do not refresh name - if (i == this.progressIndex) { - $('pb_' + id).setValue(row[i]); + var tds = tr.getElements('td'); + for (var i = 0; i < row.length; i++) { + if (i == 1) + continue; // Do not refresh name + if (i == this.progressIndex) { + $('pb_' + id).setValue(row[i]); + } else { + if (i == 0) { + tds[i].getChildren('img')[0].set('src', row[i]); } else { - if (i == 0) { - tds[i].getChildren('img')[0].set('src', row[i]); - } else { - tds[i].set('html', row[i]); - } + tds[i].set('html', row[i]); } - if (typeof data[i] != 'undefined') - tds[i].set('data-raw', data[i]) - }; - } else { - // Row was hidden, check if it was selected - // and unselect it if it was - if (this.cur.contains(id)) { - // Remove from selection - this.cur.erase(id); - // Remove selected style - tr.removeClass('selected'); } - } + if (typeof data[i] != 'undefined') + tds[i].set('data-raw', data[i]) + }; return true; },