Add tracker filter an abstract components along the way

This commit is contained in:
John Furrow
2016-02-07 18:06:40 -08:00
parent 591eeed698
commit dc423ac6e9
26 changed files with 450 additions and 93 deletions
+22 -7
View File
@@ -68,9 +68,12 @@ class TorrentStoreClass extends BaseStore {
return this.torrents[hash];
}
getAllTorrents() {
return this.torrents;
}
getTorrents() {
if (TorrentFilterStore.getStatusFilter() ||
TorrentFilterStore.getSearchFilter()) {
if (TorrentFilterStore.isFilterActive()) {
return this.filteredTorrents;
}
@@ -86,19 +89,30 @@ class TorrentStoreClass extends BaseStore {
this.sortedTorrents = sortTorrents(this.torrents,
{direction: torrentsSort.direction, property: torrentsSort.value});
let statusFilter = TorrentFilterStore.getStatusFilter();
let searchFilter = TorrentFilterStore.getSearchFilter();
let statusFilter = TorrentFilterStore.getStatusFilter();
let trackerFilter = TorrentFilterStore.getTrackerFilter();
let filteredTorrents = Object.assign([], this.sortedTorrents);
if (statusFilter && statusFilter !== 'all') {
filteredTorrents = filterTorrents(filteredTorrents, statusFilter);
}
if (searchFilter && searchFilter !== '') {
filteredTorrents = searchTorrents(filteredTorrents, searchFilter);
}
if (statusFilter && statusFilter !== 'all') {
filteredTorrents = filterTorrents(filteredTorrents, {
type: 'status',
filter: statusFilter
});
}
if (trackerFilter && trackerFilter !== 'all') {
filteredTorrents = filterTorrents(filteredTorrents, {
type: 'tracker',
filter: trackerFilter
});
}
this.filteredTorrents = filteredTorrents;
this.emit(EventTypes.CLIENT_TORRENTS_REQUEST_SUCCESS);
@@ -152,6 +166,7 @@ AppDispatcher.register((payload) => {
TorrentStore.setSelectedTorrents(action.data.event, action.data.hash);
break;
case ActionTypes.UI_SET_TORRENT_STATUS_FILTER:
case ActionTypes.UI_SET_TORRENT_TRACKER_FILTER:
case ActionTypes.UI_SET_TORRENT_SEARCH_FILTER:
case ActionTypes.UI_SET_TORRENT_SORT:
TorrentStore.triggerTorrentsFilter();