Merge pull request #106 from taigaio/bug/1188/issues-text-search
We need to guarantee that the last petition done here is the finally use...stable
commit
7bb9bea28a
|
@ -134,9 +134,10 @@ class RepositoryService extends taiga.Service
|
||||||
return @http.get(url, params, httpOptions).then (data) =>
|
return @http.get(url, params, httpOptions).then (data) =>
|
||||||
return data.data
|
return data.data
|
||||||
|
|
||||||
queryPaginated: (name, params) ->
|
queryPaginated: (name, params, options={}) ->
|
||||||
url = @urls.resolve(name)
|
url = @urls.resolve(name)
|
||||||
return @http.get(url, params).then (data) =>
|
httpOptions = _.merge({headers: {}}, options)
|
||||||
|
return @http.get(url, params, httpOptions).then (data) =>
|
||||||
headers = data.headers()
|
headers = data.headers()
|
||||||
result = {}
|
result = {}
|
||||||
result.models = _.map(data.data, (x) => @model.make_model(name, x))
|
result.models = _.map(data.data, (x) => @model.make_model(name, x))
|
||||||
|
|
|
@ -229,7 +229,12 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
@.markSelectedFilters(@scope.filters, urlfilters)
|
@.markSelectedFilters(@scope.filters, urlfilters)
|
||||||
@rootscope.$broadcast("filters:loaded", @scope.filters)
|
@rootscope.$broadcast("filters:loaded", @scope.filters)
|
||||||
|
|
||||||
loadIssues: ->
|
# We need to guarantee that the last petition done here is the finally used
|
||||||
|
# When searching by text loadIssues can be called fastly with different parameters and
|
||||||
|
# can be resolved in a different order than generated
|
||||||
|
# We count the requests made and only if the callback is for the last one data is updated
|
||||||
|
loadIssuesRequests: 0
|
||||||
|
loadIssues: =>
|
||||||
@scope.urlFilters = @.getUrlFilters()
|
@scope.urlFilters = @.getUrlFilters()
|
||||||
|
|
||||||
# Convert stored filters to http parameters
|
# Convert stored filters to http parameters
|
||||||
|
@ -255,7 +260,11 @@ class IssuesController extends mixOf(taiga.Controller, taiga.PageMixin, taiga.Fi
|
||||||
name = "type"
|
name = "type"
|
||||||
@scope.httpParams[name] = values
|
@scope.httpParams[name] = values
|
||||||
|
|
||||||
return @rs.issues.list(@scope.projectId, @scope.httpParams).then (data) =>
|
promise = @rs.issues.list(@scope.projectId, @scope.httpParams)
|
||||||
|
@.loadIssuesRequests += 1
|
||||||
|
promise.index = @.loadIssuesRequests
|
||||||
|
promise.then (data) =>
|
||||||
|
if promise.index == @.loadIssuesRequests
|
||||||
@scope.issues = data.models
|
@scope.issues = data.models
|
||||||
@scope.page = data.current
|
@scope.page = data.current
|
||||||
@scope.count = data.count
|
@scope.count = data.count
|
||||||
|
|
|
@ -35,11 +35,11 @@ resourceProvider = ($repo, $http, $urls, $storage, $q) ->
|
||||||
params.project = projectId
|
params.project = projectId
|
||||||
return $repo.queryOne("issues", issueId, params)
|
return $repo.queryOne("issues", issueId, params)
|
||||||
|
|
||||||
service.list = (projectId, filters) ->
|
service.list = (projectId, filters, options) ->
|
||||||
params = {project: projectId}
|
params = {project: projectId}
|
||||||
params = _.extend({}, params, filters or {})
|
params = _.extend({}, params, filters or {})
|
||||||
service.storeQueryParams(projectId, params)
|
service.storeQueryParams(projectId, params)
|
||||||
return $repo.queryPaginated("issues", params)
|
return $repo.queryPaginated("issues", params, options)
|
||||||
|
|
||||||
service.bulkCreate = (projectId, data) ->
|
service.bulkCreate = (projectId, data) ->
|
||||||
url = $urls.resolve("bulk-create-issues")
|
url = $urls.resolve("bulk-create-issues")
|
||||||
|
|
Loading…
Reference in New Issue