Implementing prev and next for backlog and taskboard

stable
Alejandro Alonso 2014-08-08 13:03:08 +02:00
parent 86489c9c86
commit f3e4bcbba2
4 changed files with 43 additions and 9 deletions

View File

@ -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})

View File

@ -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 {}

View File

@ -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])

View File

@ -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])