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