fix loader

stable
Juanfran 2014-08-19 09:08:22 +02:00
parent ad752c0d21
commit 1c09279a2f
3 changed files with 35 additions and 28 deletions

View File

@ -54,7 +54,7 @@ configure = ($routeProvider, $locationProvider, $httpProvider, $provide, tgLoade
{templateUrl: "/partials/wiki-edit.html"})
# Issues
$routeProvider.when("/project/:pslug/issues/", {templateUrl: "/partials/issues.html", resolve: {loader: tgLoaderProvider.add()}})
$routeProvider.when("/project/:pslug/issues", {templateUrl: "/partials/issues.html", resolve: {loader: tgLoaderProvider.add()}})
$routeProvider.when("/project/:pslug/issues/:issueref",
{templateUrl: "/partials/issues-detail.html"})

View File

@ -3,7 +3,7 @@ sizeFormat = @.taiga.sizeFormat
module = angular.module("taigaCommon")
LoaderDirective = (tgLoader) ->
LoaderDirective = (tgLoader, $rootscope) ->
link = ($scope, $el, $attrs) ->
tgLoader.onStart () ->
$(document.body).addClass("loader-active")
@ -13,16 +13,21 @@ LoaderDirective = (tgLoader) ->
$(document.body).removeClass("loader-active")
$el.removeClass("active")
$scope.$on "$routeChangeSuccess", () ->
$rootscope.$on "$routeChangeSuccess", (e) ->
tgLoader.start()
$rootscope.$on "$locationChangeSuccess", (e) ->
tgLoader.reset()
return {
link: link
}
module.directive("tgLoader", ["tgLoader", LoaderDirective])
module.directive("tgLoader", ["tgLoader", "$rootScope", LoaderDirective])
Loader = () ->
forceDisabled = false
defaultLog = {
request: {
count: 0,
@ -43,35 +48,40 @@ Loader = () ->
log = _.merge({}, defaultLog)
config = _.merge({}, defaultConfig)
reset = () ->
log = _.merge({}, defaultLog)
config = _.merge({}, defaultConfig)
@.add = (auto = false) ->
return () ->
config.auto = auto
config.enabled = true
if !forceDisabled
config.auto = auto
config.enabled = true
@.$get = ["$rootScope", ($rootscope) ->
interval = null
startLoadTime = 0
return {
reset: () ->
reset()
pageLoaded: () ->
if config.enabled
log = _.merge({}, defaultLog)
config = _.merge({}, defaultConfig)
reset()
endTime = new Date().getTime()
diff = endTime - startLoadTime
endTime = new Date().getTime()
diff = endTime - startLoadTime
if diff < config.minTime
timeout = config.minTime - diff
else
timeout = 0
if diff < config.minTime
timeout = config.minTime - diff
else
timeout = 0
setTimeout ( ->
$rootscope.$broadcast("loader:end");
), timeout
setTimeout ( ->
$rootscope.$broadcast("loader:end");
), timeout
start: () ->
config.enabled = false
if config.enabled
if config.auto
interval = setInterval ( ->
@ -100,14 +110,11 @@ Loader = () ->
log.response.count++
log.response.time = new Date().getTime()
isEneabled: () ->
config.enabled == true
preventLoading: () ->
forceDisabled = true
disabled: () ->
config.enabled = false
enabled: () ->
config.enabled = true
disablePreventLoading: () ->
forceDisabled = false
}
]

View File

@ -121,7 +121,7 @@ ProjectsNavigationDirective = ($rootscope, animationFrame, $timeout, tgLoader) -
$(document.body)
.removeClass("loading-project open-projects-nav")
tgLoader.enabled()
tgLoader.disablePreventLoading()
), timeout
renderProjects = ($el, projects) ->
@ -153,7 +153,7 @@ ProjectsNavigationDirective = ($rootscope, animationFrame, $timeout, tgLoader) -
$(document.body)
.addClass('loading-project')
tgLoader.disabled()
tgLoader.preventLoading()
loadingStart = new Date().getTime()