automatic loader close
parent
7e98130323
commit
ad2d1d766f
|
@ -42,7 +42,7 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
|||
{templateUrl: "home/home-page.html", resolve: {loader: tgLoaderProvider.add()}})
|
||||
|
||||
$routeProvider.when("/projects/",
|
||||
{templateUrl: "projects/projects-page.html", resolve: {loader: tgLoaderProvider.add()}})
|
||||
{templateUrl: "projects/projects-page.html", resolve: {loader: tgLoaderProvider.add(true)}})
|
||||
|
||||
$routeProvider.when("/project/:pslug/",
|
||||
{templateUrl: "project/project.html"})
|
||||
|
@ -206,6 +206,25 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEven
|
|||
|
||||
$httpProvider.interceptors.push("authHttpIntercept")
|
||||
|
||||
|
||||
loaderIntercept = (loaderService) ->
|
||||
return {
|
||||
request: (config) ->
|
||||
loaderService.logRequest()
|
||||
|
||||
return config
|
||||
|
||||
response: (response) ->
|
||||
loaderService.logResponse()
|
||||
|
||||
return response
|
||||
}
|
||||
|
||||
|
||||
$provide.factory("loaderIntercept", ["tgLoader", loaderIntercept])
|
||||
|
||||
$httpProvider.interceptors.push("loaderIntercept")
|
||||
|
||||
# If there is an error in the version throw a notify error.
|
||||
# IMPROVEiMENT: Move this version error handler to USs, issues and tasks repository
|
||||
versionCheckHttpIntercept = ($q) ->
|
||||
|
|
|
@ -57,18 +57,22 @@ Loader = () ->
|
|||
|
||||
defaultConfig = {
|
||||
enabled: false,
|
||||
minTime: 300
|
||||
minTime: 300,
|
||||
auto: false
|
||||
}
|
||||
|
||||
config = _.merge({}, defaultConfig)
|
||||
|
||||
@.add = () ->
|
||||
@.add = (auto = false) ->
|
||||
return () ->
|
||||
if !forceDisabled
|
||||
config.enabled = true
|
||||
config.auto = auto
|
||||
|
||||
@.$get = ["$rootScope", ($rootscope) ->
|
||||
startLoadTime = 0
|
||||
requestCount = 0
|
||||
lastResponseDate = 0
|
||||
|
||||
reset = () ->
|
||||
config = _.merge({}, defaultConfig)
|
||||
|
@ -86,6 +90,23 @@ Loader = () ->
|
|||
|
||||
timeout(timeoutValue, -> $rootscope.$broadcast("loader:end"))
|
||||
|
||||
|
||||
autoClose = () ->
|
||||
maxAuto = 5000
|
||||
timeoutAuto = setTimeout (() ->
|
||||
pageLoaded()
|
||||
|
||||
clearInterval(intervalAuto)
|
||||
), maxAuto
|
||||
|
||||
intervalAuto = setInterval (() ->
|
||||
if lastResponseDate && requestCount == 0
|
||||
pageLoaded()
|
||||
|
||||
clearInterval(intervalAuto)
|
||||
clearTimeout(timeoutAuto)
|
||||
), 200
|
||||
|
||||
start = () ->
|
||||
startLoadTime = new Date().getTime()
|
||||
$rootscope.$broadcast("loader:start")
|
||||
|
@ -98,6 +119,8 @@ Loader = () ->
|
|||
if config.enabled
|
||||
start()
|
||||
|
||||
autoClose() if config.auto
|
||||
|
||||
onStart: (fn) ->
|
||||
$rootscope.$on("loader:start", fn)
|
||||
|
||||
|
@ -109,6 +132,12 @@ Loader = () ->
|
|||
|
||||
disablePreventLoading: () ->
|
||||
forceDisabled = false
|
||||
|
||||
logRequest: () ->
|
||||
requestCount++
|
||||
logResponse: () ->
|
||||
requestCount--
|
||||
lastResponseDate = new Date().getTime()
|
||||
}
|
||||
]
|
||||
|
||||
|
|
|
@ -21,15 +21,6 @@ class ProjectsPageController extends taiga.Controller
|
|||
if !@auth.isAuthenticated()
|
||||
@location.path(@navUrls.resolve("login"))
|
||||
|
||||
#Projects
|
||||
promise = @projectsService.fetchProjects()
|
||||
|
||||
# On Success
|
||||
promise.then =>
|
||||
@appTitle.set(@translate.instant("PROJECT.SECTION_PROJECTS"))
|
||||
|
||||
# Finally
|
||||
promise.finally tgLoader.pageLoaded
|
||||
|
||||
@appTitle.set(@translate.instant("PROJECT.SECTION_PROJECTS"))
|
||||
|
||||
angular.module("taigaProjects").controller("ProjectsPage", ProjectsPageController)
|
||||
|
|
Loading…
Reference in New Issue