convert loader to a factory
parent
946d86e687
commit
3d76d225c7
|
@ -35,9 +35,7 @@ taiga.generateUniqueSessionIdentifier = ->
|
||||||
|
|
||||||
taiga.sessionId = taiga.generateUniqueSessionIdentifier()
|
taiga.sessionId = taiga.generateUniqueSessionIdentifier()
|
||||||
|
|
||||||
|
configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, $compileProvider, $translateProvider) ->
|
||||||
configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, tgLoaderProvider,
|
|
||||||
$compileProvider, $translateProvider) ->
|
|
||||||
$routeProvider.when("/",
|
$routeProvider.when("/",
|
||||||
{
|
{
|
||||||
templateUrl: "home/home.html",
|
templateUrl: "home/home.html",
|
||||||
|
@ -579,7 +577,6 @@ module.config([
|
||||||
"$httpProvider",
|
"$httpProvider",
|
||||||
"$provide",
|
"$provide",
|
||||||
"$tgEventsProvider",
|
"$tgEventsProvider",
|
||||||
"tgLoaderProvider",
|
|
||||||
"$compileProvider",
|
"$compileProvider",
|
||||||
"$translateProvider",
|
"$translateProvider",
|
||||||
configure
|
configure
|
||||||
|
|
|
@ -46,74 +46,73 @@ LoaderDirective = (tgLoader, $rootscope) ->
|
||||||
|
|
||||||
module.directive("tgLoader", ["tgLoader", "$rootScope", LoaderDirective])
|
module.directive("tgLoader", ["tgLoader", "$rootScope", LoaderDirective])
|
||||||
|
|
||||||
Loader = () ->
|
Loader = ($rootscope) ->
|
||||||
config = {
|
config = {
|
||||||
minTime: 300
|
minTime: 300
|
||||||
}
|
}
|
||||||
|
|
||||||
@.$get = ["$rootScope", ($rootscope) ->
|
startLoadTime = 0
|
||||||
|
requestCount = 0
|
||||||
|
lastResponseDate = 0
|
||||||
|
|
||||||
|
pageLoaded = (force = false) ->
|
||||||
|
if startLoadTime
|
||||||
|
timeoutValue = 0
|
||||||
|
|
||||||
|
if !force
|
||||||
|
endTime = new Date().getTime()
|
||||||
|
diff = endTime - startLoadTime
|
||||||
|
|
||||||
|
if diff < config.minTime
|
||||||
|
timeoutValue = config.minTime - diff
|
||||||
|
|
||||||
|
timeout(timeoutValue, -> $rootscope.$broadcast("loader:end"))
|
||||||
|
|
||||||
startLoadTime = 0
|
startLoadTime = 0
|
||||||
requestCount = 0
|
requestCount = 0
|
||||||
lastResponseDate = 0
|
lastResponseDate = 0
|
||||||
|
|
||||||
pageLoaded = (force = false) ->
|
autoClose = () ->
|
||||||
if startLoadTime
|
maxAuto = 5000
|
||||||
timeoutValue = 0
|
timeoutAuto = setTimeout (() ->
|
||||||
|
pageLoaded()
|
||||||
|
|
||||||
if !force
|
clearInterval(intervalAuto)
|
||||||
endTime = new Date().getTime()
|
), maxAuto
|
||||||
diff = endTime - startLoadTime
|
|
||||||
|
|
||||||
if diff < config.minTime
|
intervalAuto = setInterval (() ->
|
||||||
timeoutValue = config.minTime - diff
|
if lastResponseDate && requestCount == 0
|
||||||
|
|
||||||
timeout(timeoutValue, -> $rootscope.$broadcast("loader:end"))
|
|
||||||
|
|
||||||
startLoadTime = 0
|
|
||||||
requestCount = 0
|
|
||||||
lastResponseDate = 0
|
|
||||||
|
|
||||||
autoClose = () ->
|
|
||||||
maxAuto = 5000
|
|
||||||
timeoutAuto = setTimeout (() ->
|
|
||||||
pageLoaded()
|
pageLoaded()
|
||||||
|
|
||||||
clearInterval(intervalAuto)
|
clearInterval(intervalAuto)
|
||||||
), maxAuto
|
clearTimeout(timeoutAuto)
|
||||||
|
), 50
|
||||||
|
|
||||||
intervalAuto = setInterval (() ->
|
start = () ->
|
||||||
if lastResponseDate && requestCount == 0
|
startLoadTime = new Date().getTime()
|
||||||
pageLoaded()
|
$rootscope.$broadcast("loader:start")
|
||||||
|
|
||||||
clearInterval(intervalAuto)
|
return {
|
||||||
clearTimeout(timeoutAuto)
|
pageLoaded: pageLoaded
|
||||||
), 50
|
start: start
|
||||||
|
startWithAutoClose: () ->
|
||||||
|
start()
|
||||||
|
autoClose()
|
||||||
|
onStart: (fn) ->
|
||||||
|
$rootscope.$on("loader:start", fn)
|
||||||
|
|
||||||
start = () ->
|
onEnd: (fn) ->
|
||||||
startLoadTime = new Date().getTime()
|
$rootscope.$on("loader:end", fn)
|
||||||
$rootscope.$broadcast("loader:start")
|
|
||||||
|
|
||||||
return {
|
logRequest: () ->
|
||||||
pageLoaded: pageLoaded
|
requestCount++
|
||||||
start: start
|
|
||||||
startWithAutoClose: () ->
|
|
||||||
start()
|
|
||||||
autoClose()
|
|
||||||
onStart: (fn) ->
|
|
||||||
$rootscope.$on("loader:start", fn)
|
|
||||||
|
|
||||||
onEnd: (fn) ->
|
logResponse: () ->
|
||||||
$rootscope.$on("loader:end", fn)
|
requestCount--
|
||||||
|
lastResponseDate = new Date().getTime()
|
||||||
|
}
|
||||||
|
|
||||||
logRequest: () ->
|
|
||||||
requestCount++
|
|
||||||
|
|
||||||
logResponse: () ->
|
Loader.$inject = ["$rootScope"]
|
||||||
requestCount--
|
|
||||||
lastResponseDate = new Date().getTime()
|
|
||||||
}
|
|
||||||
]
|
|
||||||
|
|
||||||
return
|
module.factory("tgLoader", Loader)
|
||||||
|
|
||||||
module.provider("tgLoader", [Loader])
|
|
||||||
|
|
Loading…
Reference in New Issue