diff --git a/app/coffee/modules/backlog/main.coffee b/app/coffee/modules/backlog/main.coffee index b49eb4f8..59999cae 100644 --- a/app/coffee/modules/backlog/main.coffee +++ b/app/coffee/modules/backlog/main.coffee @@ -99,6 +99,8 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F for name, values of @scope.urlFilters @scope.httpParams[name] = values + @rs.userstories.storeQueryParams(@scope.projectId, @scope.httpParams) + return @rs.userstories.listUnassigned(@scope.projectId, @scope.httpParams).then (userstories) => @scope.userstories = userstories @@ -164,6 +166,13 @@ class BacklogController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.F res = _.find(selectedStatuses, (x) -> x == taiga.toString(us.status)) return not res + @rs.userstories.storeQueryParams(@scope.projectId, { + "status": selectedStatuses, + "tags": selectedTags, + "project": @scope.projectId + "milestone": "null" + }) + prepareBulkUpdateData: (uses) -> return _.map(uses, (x) -> {"us_id": x.id, "order": x.order}) diff --git a/app/coffee/modules/resources/issues.coffee b/app/coffee/modules/resources/issues.coffee index 567c7fde..309e76ec 100644 --- a/app/coffee/modules/resources/issues.coffee +++ b/app/coffee/modules/resources/issues.coffee @@ -26,6 +26,7 @@ generateHash = taiga.generateHash resourceProvider = ($repo, $http, $urls, $storage) -> service = {} + hashSuffix = "issues-queryparams" service.get = (projectId, issueId) -> params = service.getQueryParams(projectId) @@ -54,15 +55,16 @@ resourceProvider = ($repo, $http, $urls, $storage) -> service.listValues = (projectId, type) -> params = {"project": projectId} + service.storeQueryParams(projectId, params) return $repo.queryMany(type, params) service.storeQueryParams = (projectId, params) -> - ns = "#{projectId}:issues-queryparams" + ns = "#{projectId}:#{hashSuffix}" hash = generateHash([projectId, ns]) $storage.set(hash, params) service.getQueryParams = (projectId) -> - ns = "#{projectId}:issues-queryparams" + ns = "#{projectId}:#{hashSuffix}" hash = generateHash([projectId, ns]) return $storage.get(hash) or {} diff --git a/app/coffee/modules/resources/sprints.coffee b/app/coffee/modules/resources/sprints.coffee index fccbcf4e..8ddc9855 100644 --- a/app/coffee/modules/resources/sprints.coffee +++ b/app/coffee/modules/resources/sprints.coffee @@ -21,11 +21,15 @@ taiga = @.taiga -resourceProvider = ($repo, $model) -> +generateHash = taiga.generateHash + +resourceProvider = ($repo, $model, $storage) -> service = {} + hashSuffixUserstories = "userstories-queryparams" service.get = (projectId, sprintId) -> return $repo.queryOne("milestones", sprintId).then (sprint) -> + service.storeUserstoriesQueryParams(projectId, {"milestone": sprintId}) uses = sprint.user_stories uses = _.map(uses, (u) -> $model.make_model("userstories", u)) sprint._attrs.user_stories = uses @@ -43,9 +47,13 @@ resourceProvider = ($repo, $model) -> m._attrs.user_stories = uses return milestones + service.storeUserstoriesQueryParams = (projectId, params) -> + ns = "#{projectId}:#{hashSuffixUserstories}" + hash = generateHash([projectId, ns]) + $storage.set(hash, params) return (instance) -> instance.sprints = service module = angular.module("taigaResources") -module.factory("$tgSprintsResourcesProvider", ["$tgRepo", "$tgModel", resourceProvider]) +module.factory("$tgSprintsResourcesProvider", ["$tgRepo", "$tgModel", "$tgStorage", resourceProvider]) diff --git a/app/coffee/modules/resources/userstories.coffee b/app/coffee/modules/resources/userstories.coffee index 283cd718..cdb252ba 100644 --- a/app/coffee/modules/resources/userstories.coffee +++ b/app/coffee/modules/resources/userstories.coffee @@ -21,17 +21,21 @@ taiga = @.taiga -resourceProvider = ($repo, $http, $urls) -> +generateHash = taiga.generateHash + +resourceProvider = ($repo, $http, $urls, $storage) -> service = {} + hashSuffix = "userstories-queryparams" service.get = (projectId, usId) -> - return $repo.queryOne("userstories", usId) + params = service.getQueryParams(projectId) + params.project = projectId + return $repo.queryOne("userstories", usId, params) service.listUnassigned = (projectId, filters) -> params = {"project": projectId, "milestone": "null"} - params = _.extend({}, params, filters or {}) - + service.storeQueryParams(projectId, params) return $repo.queryMany("userstories", params) service.bulkCreate = (projectId, status, bulk) -> @@ -55,10 +59,21 @@ resourceProvider = ($repo, $http, $urls) -> service.listValues = (projectId, type) -> params = {"project": projectId} + service.storeQueryParams(projectId, params) return $repo.queryMany(type, params) + service.storeQueryParams = (projectId, params) -> + ns = "#{projectId}:#{hashSuffix}" + hash = generateHash([projectId, ns]) + $storage.set(hash, params) + + service.getQueryParams = (projectId) -> + ns = "#{projectId}:#{hashSuffix}" + hash = generateHash([projectId, ns]) + return $storage.get(hash) or {} + return (instance) -> instance.userstories = service module = angular.module("taigaResources") -module.factory("$tgUserstoriesResourcesProvider", ["$tgRepo", "$tgHttp", "$tgUrls", resourceProvider]) +module.factory("$tgUserstoriesResourcesProvider", ["$tgRepo", "$tgHttp", "$tgUrls", "$tgStorage", resourceProvider])