From 3d76d225c7ba545bf8056e17ce145a1afbda4514 Mon Sep 17 00:00:00 2001 From: Juanfran Date: Thu, 21 May 2015 12:06:41 +0200 Subject: [PATCH] convert loader to a factory --- app/coffee/app.coffee | 5 +- app/coffee/modules/common/loader.coffee | 99 ++++++++++++------------- 2 files changed, 50 insertions(+), 54 deletions(-) diff --git a/app/coffee/app.coffee b/app/coffee/app.coffee index 0df17bb9..511cf222 100644 --- a/app/coffee/app.coffee +++ b/app/coffee/app.coffee @@ -35,9 +35,7 @@ taiga.generateUniqueSessionIdentifier = -> taiga.sessionId = taiga.generateUniqueSessionIdentifier() - -configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, tgLoaderProvider, - $compileProvider, $translateProvider) -> +configure = ($routeProvider, $locationProvider, $httpProvider, $provide, $tgEventsProvider, $compileProvider, $translateProvider) -> $routeProvider.when("/", { templateUrl: "home/home.html", @@ -579,7 +577,6 @@ module.config([ "$httpProvider", "$provide", "$tgEventsProvider", - "tgLoaderProvider", "$compileProvider", "$translateProvider", configure diff --git a/app/coffee/modules/common/loader.coffee b/app/coffee/modules/common/loader.coffee index e149a458..762f3840 100644 --- a/app/coffee/modules/common/loader.coffee +++ b/app/coffee/modules/common/loader.coffee @@ -46,74 +46,73 @@ LoaderDirective = (tgLoader, $rootscope) -> module.directive("tgLoader", ["tgLoader", "$rootScope", LoaderDirective]) -Loader = () -> +Loader = ($rootscope) -> config = { 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 requestCount = 0 lastResponseDate = 0 - pageLoaded = (force = false) -> - if startLoadTime - timeoutValue = 0 + autoClose = () -> + maxAuto = 5000 + timeoutAuto = setTimeout (() -> + pageLoaded() - if !force - endTime = new Date().getTime() - diff = endTime - startLoadTime + clearInterval(intervalAuto) + ), maxAuto - if diff < config.minTime - timeoutValue = config.minTime - diff - - timeout(timeoutValue, -> $rootscope.$broadcast("loader:end")) - - startLoadTime = 0 - requestCount = 0 - lastResponseDate = 0 - - autoClose = () -> - maxAuto = 5000 - timeoutAuto = setTimeout (() -> + intervalAuto = setInterval (() -> + if lastResponseDate && requestCount == 0 pageLoaded() clearInterval(intervalAuto) - ), maxAuto + clearTimeout(timeoutAuto) + ), 50 - intervalAuto = setInterval (() -> - if lastResponseDate && requestCount == 0 - pageLoaded() + start = () -> + startLoadTime = new Date().getTime() + $rootscope.$broadcast("loader:start") - clearInterval(intervalAuto) - clearTimeout(timeoutAuto) - ), 50 + return { + pageLoaded: pageLoaded + start: start + startWithAutoClose: () -> + start() + autoClose() + onStart: (fn) -> + $rootscope.$on("loader:start", fn) - start = () -> - startLoadTime = new Date().getTime() - $rootscope.$broadcast("loader:start") + onEnd: (fn) -> + $rootscope.$on("loader:end", fn) - return { - pageLoaded: pageLoaded - start: start - startWithAutoClose: () -> - start() - autoClose() - onStart: (fn) -> - $rootscope.$on("loader:start", fn) + logRequest: () -> + requestCount++ - onEnd: (fn) -> - $rootscope.$on("loader:end", fn) + logResponse: () -> + requestCount-- + lastResponseDate = new Date().getTime() + } - logRequest: () -> - requestCount++ - logResponse: () -> - requestCount-- - lastResponseDate = new Date().getTime() - } - ] +Loader.$inject = ["$rootScope"] - return - -module.provider("tgLoader", [Loader]) +module.factory("tgLoader", Loader)