diff --git a/app/coffee/modules/backlog/filters.coffee b/app/coffee/modules/backlog/filters.coffee index 903c713c..68d8405a 100644 --- a/app/coffee/modules/backlog/filters.coffee +++ b/app/coffee/modules/backlog/filters.coffee @@ -116,6 +116,16 @@ BacklogFiltersDirective = ($log, $location) -> renderSelectedFilters(selectedFilters) renderFilters(_.reject(filters, "selected")) + selectSubjectFilter = debounce 400, (value) -> + return if value is undefined + if value.length == 0 + $ctrl.replaceFilter("subject", null) + else + $ctrl.replaceFilter("subject", value) + $ctrl.loadUserstories() + + $scope.$watch("filtersSubject", selectSubjectFilter) + # Angular Watchers $scope.$on "filters:loaded", (ctx, filters) -> initializeSelectedFilters(filters) diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index 54cf9864..63e5575b 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -80,7 +80,13 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F return sprints loadUserstories: -> - return @rs.userstories.listUnassigned(@scope.projectId).then (userstories) => + @scope.urlFilters = @.getUrlFilters() + + @scope.httpParams = {} + for name, values of @scope.urlFilters + @scope.httpParams[name] = values + + return @rs.userstories.listUnassigned(@scope.projectId, @scope.httpParams).then (userstories) => @scope.userstories = userstories @.generateFilters() @@ -268,11 +274,16 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F return promise getUrlFilters: -> - return _.pick(@location.search(), "statuses", "tags") + return _.pick(@location.search(), "statuses", "tags", "subject") generateFilters: -> + urlfilters = @.getUrlFilters() + + if urlfilters.subject + @scope.filtersSubject = urlfilters.subject + searchdata = {} - for name, value of @.getUrlFilters() + for name, value of urlfilters if not searchdata[name]? searchdata[name] = {} diff --git a/app/coffee/modules/resources/userstories.coffee b/app/coffee/modules/resources/userstories.coffee index 1f51264f..3c552041 100644 --- a/app/coffee/modules/resources/userstories.coffee +++ b/app/coffee/modules/resources/userstories.coffee @@ -27,8 +27,11 @@ resourceProvider = ($repo, $http, $urls) -> service.get = (projectId, usId) -> return $repo.queryOne("userstories", usId) - service.listUnassigned = (projectId) -> + service.listUnassigned = (projectId, filters) -> params = {"project": projectId, "milestone": "null"} + + params = _.extend({}, params, filters or {}) + return $repo.queryMany("userstories", params) service.bulkCreate = (projectId, data) ->