 #############################################################################
 
 class UsFiltersMixin
+    excludePrefix: "exclude_"
+    filterCategories: [
+        "tags",
+        "status",
+        "assigned_users",
+        "assigned_to",
+        "owner",
+        "epic",
+        "role",
+    ]
+
     changeQ: (q) ->
         @.replaceFilter("q", q)
         @.filtersReloadContent()
         @.generateFilters()
 
     removeFilter: (filter) ->
-        @.unselectFilter(filter.dataType, filter.id)
+        @.unselectFilter(filter.dataType, filter.id, false, filter.mode)
         @.filtersReloadContent()
         @.generateFilters()
 
     addFilter: (newFilter) ->
-        @.selectFilter(newFilter.category.dataType, newFilter.filter.id)
+        @.selectFilter(newFilter.category.dataType, newFilter.filter.id, false, newFilter.mode)
         @.filtersReloadContent()
         @.generateFilters()
 


        loadFilters = {}
        loadFilters.project = @scope.projectId
        loadFilters.tags = urlfilters.tags
        loadFilters.status = urlfilters.status
        loadFilters.assigned_users = urlfilters.assigned_users
        loadFilters.assigned_to = urlfilters.assigned_to
        loadFilters.owner = urlfilters.owner
        loadFilters.epic = urlfilters.epic
        loadFilters.role = urlfilters.role
        loadFilters.q = urlfilters.q

        if milestone
            loadFilters.milestone = milestone

                it.name = it.full_name || "Unassigned"

                return it
            dataCollection.assigned_to = _.map data.assigned_to, (it) ->
                if it.id
                    it.id = it.id.toString()
                else
