Fixed bug #693: Adding issues filters storage
parent
faa50a2bc4
commit
d6bf5758de
|
@ -43,6 +43,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
"$tgRepo",
|
"$tgRepo",
|
||||||
"$tgConfirm",
|
"$tgConfirm",
|
||||||
"$tgResources",
|
"$tgResources",
|
||||||
|
"$tgUrls",
|
||||||
"$routeParams",
|
"$routeParams",
|
||||||
"$q",
|
"$q",
|
||||||
"$location",
|
"$location",
|
||||||
|
@ -50,11 +51,18 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
"tgLoader"
|
"tgLoader"
|
||||||
]
|
]
|
||||||
|
|
||||||
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @params, @q, @location, @appTitle, tgLoader) ->
|
constructor: (@scope, @rootscope, @repo, @confirm, @rs, @urls, @params, @q, @location, @appTitle, tgLoader) ->
|
||||||
@scope.sprintId = @params.id
|
@scope.sprintId = @params.id
|
||||||
@scope.sectionName = "Issues"
|
@scope.sectionName = "Issues"
|
||||||
@scope.filters = {}
|
@scope.filters = {}
|
||||||
|
|
||||||
|
if _.isEmpty(@location.search())
|
||||||
|
filters = @rs.issues.getFilters(@params.pslug)
|
||||||
|
filters.page = 1
|
||||||
|
@location.search(filters)
|
||||||
|
@location.replace()
|
||||||
|
return
|
||||||
|
|
||||||
promise = @.loadInitialData()
|
promise = @.loadInitialData()
|
||||||
|
|
||||||
promise.then () =>
|
promise.then () =>
|
||||||
|
@ -68,6 +76,9 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
@.loadIssues()
|
@.loadIssues()
|
||||||
@.loadFilters()
|
@.loadFilters()
|
||||||
|
|
||||||
|
storeFilters: ->
|
||||||
|
@rs.issues.storeFilters(@params.pslug, @location.search())
|
||||||
|
|
||||||
loadProject: ->
|
loadProject: ->
|
||||||
return @rs.projects.get(@scope.projectId).then (project) =>
|
return @rs.projects.get(@scope.projectId).then (project) =>
|
||||||
@scope.project = project
|
@scope.project = project
|
||||||
|
@ -116,7 +127,7 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
if not searchdata[name]?
|
if not searchdata[name]?
|
||||||
searchdata[name] = {}
|
searchdata[name] = {}
|
||||||
|
|
||||||
for val in value.split(",")
|
for val in "#{value}".split(",")
|
||||||
searchdata[name][val] = true
|
searchdata[name][val] = true
|
||||||
|
|
||||||
isSelected = (type, id) ->
|
isSelected = (type, id) ->
|
||||||
|
@ -408,6 +419,7 @@ IssuesDirective = ($log, $location) ->
|
||||||
|
|
||||||
$scope.$apply ->
|
$scope.$apply ->
|
||||||
$ctrl.replaceFilter("orderBy", finalOrder)
|
$ctrl.replaceFilter("orderBy", finalOrder)
|
||||||
|
$ctrl.storeFilters()
|
||||||
$ctrl.loadIssues().then ->
|
$ctrl.loadIssues().then ->
|
||||||
# Update the arrow
|
# Update the arrow
|
||||||
$el.find(".row.title > div > span.icon").remove()
|
$el.find(".row.title > div > span.icon").remove()
|
||||||
|
@ -517,12 +529,14 @@ IssuesFiltersDirective = ($log, $location) ->
|
||||||
$scope.$apply ->
|
$scope.$apply ->
|
||||||
$ctrl.selectFilter(type, id)
|
$ctrl.selectFilter(type, id)
|
||||||
$ctrl.selectFilter("page", 1)
|
$ctrl.selectFilter("page", 1)
|
||||||
|
$ctrl.storeFilters()
|
||||||
$ctrl.loadIssues()
|
$ctrl.loadIssues()
|
||||||
else
|
else
|
||||||
selectedFilters = _.reject(selectedFilters, filter)
|
selectedFilters = _.reject(selectedFilters, filter)
|
||||||
$scope.$apply ->
|
$scope.$apply ->
|
||||||
$ctrl.unselectFilter(type, id)
|
$ctrl.unselectFilter(type, id)
|
||||||
$ctrl.selectFilter("page", 1)
|
$ctrl.selectFilter("page", 1)
|
||||||
|
$ctrl.storeFilters()
|
||||||
$ctrl.loadIssues()
|
$ctrl.loadIssues()
|
||||||
|
|
||||||
renderSelectedFilters(selectedFilters)
|
renderSelectedFilters(selectedFilters)
|
||||||
|
@ -539,8 +553,10 @@ IssuesFiltersDirective = ($log, $location) ->
|
||||||
return if value is undefined
|
return if value is undefined
|
||||||
if value.length == 0
|
if value.length == 0
|
||||||
$ctrl.replaceFilter("subject", null)
|
$ctrl.replaceFilter("subject", null)
|
||||||
|
$ctrl.storeFilters()
|
||||||
else
|
else
|
||||||
$ctrl.replaceFilter("subject", value)
|
$ctrl.replaceFilter("subject", value)
|
||||||
|
$ctrl.storeFilters()
|
||||||
$ctrl.loadIssues()
|
$ctrl.loadIssues()
|
||||||
|
|
||||||
$scope.$watch("filtersSubject", selectSubjectFilter)
|
$scope.$watch("filtersSubject", selectSubjectFilter)
|
||||||
|
|
|
@ -27,6 +27,7 @@ generateHash = taiga.generateHash
|
||||||
resourceProvider = ($repo, $http, $urls, $storage) ->
|
resourceProvider = ($repo, $http, $urls, $storage) ->
|
||||||
service = {}
|
service = {}
|
||||||
hashSuffix = "issues-queryparams"
|
hashSuffix = "issues-queryparams"
|
||||||
|
filtersHashSuffix = "issues-filters"
|
||||||
|
|
||||||
service.get = (projectId, issueId) ->
|
service.get = (projectId, issueId) ->
|
||||||
params = service.getQueryParams(projectId)
|
params = service.getQueryParams(projectId)
|
||||||
|
@ -68,6 +69,16 @@ resourceProvider = ($repo, $http, $urls, $storage) ->
|
||||||
hash = generateHash([projectId, ns])
|
hash = generateHash([projectId, ns])
|
||||||
return $storage.get(hash) or {}
|
return $storage.get(hash) or {}
|
||||||
|
|
||||||
|
service.storeFilters = (projectSlug, params) ->
|
||||||
|
ns = "#{projectSlug}:#{filtersHashSuffix}"
|
||||||
|
hash = generateHash([projectSlug, ns])
|
||||||
|
$storage.set(hash, params)
|
||||||
|
|
||||||
|
service.getFilters = (projectSlug) ->
|
||||||
|
ns = "#{projectSlug}:#{filtersHashSuffix}"
|
||||||
|
hash = generateHash([projectSlug, ns])
|
||||||
|
return $storage.get(hash) or {}
|
||||||
|
|
||||||
return (instance) ->
|
return (instance) ->
|
||||||
instance.issues = service
|
instance.issues = service
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue