From 466b245fdf358804b4039ab48654721b9a792923 Mon Sep 17 00:00:00 2001 From: Damien Churchill Date: Mon, 26 Apr 2010 00:50:23 +0100 Subject: [PATCH] make it easier to manipulate filters --- deluge/ui/web/js/deluge-all/FilterPanel.js | 12 +++++------ deluge/ui/web/js/deluge-all/Sidebar.js | 23 ++++++++++++++++------ deluge/ui/web/js/deluge-all/UI.js | 2 +- 3 files changed, 24 insertions(+), 13 deletions(-) diff --git a/deluge/ui/web/js/deluge-all/FilterPanel.js b/deluge/ui/web/js/deluge-all/FilterPanel.js index 70e479ac3..a68617055 100644 --- a/deluge/ui/web/js/deluge-all/FilterPanel.js +++ b/deluge/ui/web/js/deluge-all/FilterPanel.js @@ -86,15 +86,15 @@ Deluge.FilterPanel = Ext.extend(Ext.Panel, { }, /** - * Return the currently selected filter - * @returns {String} the current filter + * Return the currently selected filter state + * @returns {String} the current filter state */ - getFilter: function() { + getState: function() { if (!this.list.getSelectionCount()) return; - var filter = this.list.getSelectedRecords()[0]; - if (filter.id == 'All') return; - return filter.id; + var state = this.list.getSelectedRecords()[0]; + if (state.id == 'All') return; + return state.id; }, /** diff --git a/deluge/ui/web/js/deluge-all/Sidebar.js b/deluge/ui/web/js/deluge-all/Sidebar.js index 8751491e8..53b4cc9ed 100644 --- a/deluge/ui/web/js/deluge-all/Sidebar.js +++ b/deluge/ui/web/js/deluge-all/Sidebar.js @@ -87,17 +87,28 @@ Deluge.Sidebar = Ext.extend(Ext.Panel, { this.fireEvent('afterfiltercreate', this, panel); }, - getFilters: function() { - var filters = {} + getFilterStates: function() { + var states = {} // Grab the filters from each of the filter panels this.items.each(function(panel) { - var filter = panel.getFilter(); - if (!filter == null) return; - filters[panel.filterType] = filter; + var state = panel.getState(); + if (!state == null) return; + states[panel.filterType] = state; }, this); - return filters; + return states; + }, + + hasFilter: function(filter) { + var has = false; + this.items.each(function(panel) { + if (panel.filterType == filter) { + has = true; + return false; + } + }); + return has; }, // private diff --git a/deluge/ui/web/js/deluge-all/UI.js b/deluge/ui/web/js/deluge-all/UI.js index 9286cca17..879ec5fbb 100644 --- a/deluge/ui/web/js/deluge-all/UI.js +++ b/deluge/ui/web/js/deluge-all/UI.js @@ -102,7 +102,7 @@ deluge.ui = { }, update: function() { - var filters = deluge.sidebar.getFilters(); + var filters = deluge.sidebar.getFilterStates(); deluge.client.web.update_ui(Deluge.Keys.Grid, filters, { success: this.onUpdate, failure: this.onUpdateError,