make it easier to manipulate filters

This commit is contained in:
Damien Churchill 2010-04-26 00:50:23 +01:00
parent bfdaa47aff
commit 466b245fdf
3 changed files with 24 additions and 13 deletions

View File

@ -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;
},
/**

View File

@ -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

View File

@ -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,