commit
0d7bd369e0
|
@ -419,7 +419,7 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
|||
# Add next param when user try to access to a secction need auth permissions.
|
||||
authHttpIntercept = ($q, $location, $navUrls, $lightboxService) ->
|
||||
httpResponseError = (response) ->
|
||||
if response.status == 0 || response.status == -1
|
||||
if response.status == 0 || (response.status == -1 && !response.config.cancelable)
|
||||
$lightboxService.closeAll()
|
||||
$location.path($navUrls.resolve("error"))
|
||||
$location.replace()
|
||||
|
|
|
@ -45,8 +45,6 @@ class HttpService extends taiga.Service
|
|||
|
||||
request: (options) ->
|
||||
options.headers = _.merge({}, options.headers or {}, @.headers())
|
||||
if _.isPlainObject(options.data)
|
||||
options.data = JSON.stringify(options.data)
|
||||
|
||||
return @http(options)
|
||||
|
||||
|
|
|
@ -69,6 +69,8 @@ MarkitupDirective = ($rootscope, $rs, $selectedText, $template, $compile, $trans
|
|||
$scope.$on "markdown-editor:submit", ->
|
||||
closePreviewMode()
|
||||
|
||||
cancelablePromise = null
|
||||
|
||||
preview = ->
|
||||
markdownDomNode = element.parents(".markdown")
|
||||
markItUpDomNode = element.parents(".markItUp")
|
||||
|
@ -370,7 +372,11 @@ MarkitupDirective = ($rootscope, $rs, $selectedText, $template, $compile, $trans
|
|||
return true
|
||||
return false
|
||||
|
||||
$rs.search.do($scope.projectId, term).then (res) =>
|
||||
cancelablePromise.abort() if cancelablePromise
|
||||
|
||||
cancelablePromise = $rs.search.do($scope.projectId, term)
|
||||
|
||||
cancelablePromise.then (res) =>
|
||||
# ignore wikipages if they're the only results. can't exclude them in search
|
||||
if res.count < 1 or res.count == res.wikipages.length
|
||||
callback([])
|
||||
|
|
|
@ -22,22 +22,39 @@
|
|||
|
||||
taiga = @.taiga
|
||||
|
||||
resourceProvider = ($repo, $urls, $http) ->
|
||||
resourceProvider = ($repo, $urls, $http, $q) ->
|
||||
service = {}
|
||||
|
||||
service.do = (projectId, term) ->
|
||||
deferredAbort = $q.defer()
|
||||
|
||||
url = $urls.resolve("search")
|
||||
params = {
|
||||
project: projectId
|
||||
text: term,
|
||||
get_all: false
|
||||
url: url,
|
||||
method: "GET",
|
||||
timeout: deferredAbort.promise,
|
||||
cancelable: true,
|
||||
params: {
|
||||
project: projectId
|
||||
text: term,
|
||||
get_all: false,
|
||||
}
|
||||
}
|
||||
|
||||
return $http.get(url, params).then (data) ->
|
||||
request = $http.request(params).then (data) ->
|
||||
return data.data
|
||||
|
||||
request.abort = () ->
|
||||
deferredAbort.resolve()
|
||||
|
||||
request.finally = () ->
|
||||
request.abort = angular.noop
|
||||
deferredAbort = request = null
|
||||
|
||||
return request
|
||||
|
||||
return (instance) ->
|
||||
instance.search = service
|
||||
|
||||
module = angular.module("taigaResources")
|
||||
module.factory("$tgSearchResourcesProvider", ["$tgRepo", "$tgUrls", "$tgHttp", resourceProvider])
|
||||
module.factory("$tgSearchResourcesProvider", ["$tgRepo", "$tgUrls", "$tgHttp", "$q", resourceProvider])
|
||||
|
|
|
@ -95,19 +95,15 @@ class SearchController extends mixOf(taiga.Controller, taiga.PageMixin)
|
|||
@scope.loading = true
|
||||
|
||||
@._loadSearchData(term).then (data) =>
|
||||
if data
|
||||
@scope.searchResults = data
|
||||
@scope.loading = false
|
||||
@scope.searchResults = data
|
||||
@scope.loading = false
|
||||
|
||||
_loadSearchData: (term = "") ->
|
||||
@.deferredAbort.resolve() if @.deferredAbort
|
||||
@._promise.abort() if @._promise
|
||||
|
||||
@.deferredAbort = @q.defer()
|
||||
@._promise = @rs.search.do(@scope.projectId, term)
|
||||
|
||||
@rs.search.do(@scope.projectId, term).then (data) =>
|
||||
@.deferredAbort.resolve(data)
|
||||
|
||||
return @.deferredAbort.promise
|
||||
return @._promise
|
||||
|
||||
loadInitialData: ->
|
||||
return @.loadProject().then (project) =>
|
||||
|
|
Loading…
Reference in New Issue