From e55899bb91ddb32e584c80707a062ecfbd8fdcf2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jes=C3=BAs=20Espino?= Date: Wed, 27 Aug 2014 15:06:52 +0200 Subject: [PATCH] Fixed bug #778: Now stored filters are removed when detect the filter items are deleted --- app/coffee/modules/issues/list.coffee | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/coffee/modules/issues/list.coffee b/app/coffee/modules/issues/list.coffee index 1ec230e6..2275c168 100644 --- a/app/coffee/modules/issues/list.coffee +++ b/app/coffee/modules/issues/list.coffee @@ -123,6 +123,21 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi deferred.resolve(result) return deferred.promise + removeNotExistingFiltersFromUrl: -> + currentSearch = @location.search() + urlfilters = @.getUrlFilters() + for filterName, filterValue of urlfilters + if filterName == "page" or filterName == "orderBy" + continue + + splittedValues = (parseInt(val) for val in "#{filterValue}".split(",")) + existingValues = _.intersection(splittedValues, _.map(@scope.filters[filterName], "id")) + if splittedValues.length != existingValues.length + @location.search(filterName, existingValues.join()) + + if currentSearch != @location.search() + @location.replace() + markSelectedFilters: (filters, urlfilters) -> # Build selected filters (from url) fast lookup data structure searchdata = {} @@ -194,6 +209,8 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi @scope.filters.types = choicesFiltersFormat data.types, "types", @scope.issueTypeById @scope.filters.tags = tagsFilterFormat data.tags + @.removeNotExistingFiltersFromUrl() + @.markSelectedFilters(@scope.filters, urlfilters) @rootscope.$broadcast("filters:loaded", @scope.filters)