angular-loading-bar
Advanced tools
Comparing version 0.5.0 to 0.5.1
{ | ||
"name": "angular-loading-bar", | ||
"version": "0.5.0", | ||
"version": "0.5.1", | ||
"main": ["build/loading-bar.js", "build/loading-bar.css"], | ||
@@ -13,5 +13,5 @@ "ignore": [ | ||
"devDependencies": { | ||
"angular-mocks": "~1.2.9", | ||
"angular-animate": "~1.2.9" | ||
"angular-mocks": "^1.2.9", | ||
"angular-animate": "^1.2.9" | ||
} | ||
} |
/*! | ||
* angular-loading-bar v0.5.0 | ||
* angular-loading-bar v0.5.1 | ||
* https://chieffancypants.github.io/angular-loading-bar | ||
@@ -76,17 +76,13 @@ * Copyright (c) 2014 Wes Cruver | ||
var cache; | ||
var defaultCache = $cacheFactory.get('$http'); | ||
var defaults = $httpProvider.defaults; | ||
if (config.method !== 'GET' || config.cache === false) { | ||
config.cached = false; | ||
return false; | ||
// Choose the proper cache source. Borrowed from angular: $http service | ||
if ((config.cache || defaults.cache) && config.cache !== false && | ||
(config.method === 'GET' || config.method === 'JSONP')) { | ||
cache = angular.isObject(config.cache) ? config.cache | ||
: angular.isObject(defaults.cache) ? defaults.cache | ||
: defaultCache; | ||
} | ||
if (config.cache === true && defaults.cache === undefined) { | ||
cache = $cacheFactory.get('$http'); | ||
} else if (defaults.cache !== undefined) { | ||
cache = defaults.cache; | ||
} else { | ||
cache = config.cache; | ||
} | ||
var cached = cache !== undefined ? | ||
@@ -93,0 +89,0 @@ cache.get(config.url) !== undefined : false; |
/*! | ||
* angular-loading-bar v0.5.0 | ||
* angular-loading-bar v0.5.1 | ||
* https://chieffancypants.github.io/angular-loading-bar | ||
@@ -7,2 +7,2 @@ * Copyright (c) 2014 Wes Cruver | ||
*/ | ||
!function(){"use strict";angular.module("angular-loading-bar",["cfp.loadingBarInterceptor"]),angular.module("chieffancypants.loadingBar",["cfp.loadingBarInterceptor"]),angular.module("cfp.loadingBarInterceptor",["cfp.loadingBar"]).config(["$httpProvider",function(a){var b=["$q","$cacheFactory","$timeout","$rootScope","cfpLoadingBar",function(b,c,d,e,f){function g(){d.cancel(i),f.complete(),k=0,j=0}function h(b){var d,e=a.defaults;if("GET"!==b.method||b.cache===!1)return b.cached=!1,!1;d=b.cache===!0&&void 0===e.cache?c.get("$http"):void 0!==e.cache?e.cache:b.cache;var f=void 0!==d?void 0!==d.get(b.url):!1;return void 0!==b.cached&&f!==b.cached?b.cached:(b.cached=f,f)}var i,j=0,k=0,l=f.latencyThreshold;return{request:function(a){return a.ignoreLoadingBar||h(a)||(e.$broadcast("cfpLoadingBar:loading",{url:a.url}),0===j&&(i=d(function(){f.start()},l)),j++,f.set(k/j)),a},response:function(a){return a.config.ignoreLoadingBar||h(a.config)||(k++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url}),k>=j?g():f.set(k/j)),a},responseError:function(a){return a.config.ignoreLoadingBar||h(a.config)||(k++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url}),k>=j?g():f.set(k/j)),b.reject(a)}}}];a.interceptors.push(b)}]),angular.module("cfp.loadingBar",[]).provider("cfpLoadingBar",function(){this.includeSpinner=!0,this.includeBar=!0,this.latencyThreshold=100,this.startSize=.02,this.parentSelector="body",this.spinnerTemplate='<div id="loading-bar-spinner"><div class="spinner-icon"></div></div>',this.$get=["$document","$timeout","$animate","$rootScope",function(a,b,c,d){function e(){var e=a.find(l);b.cancel(k),p||(d.$broadcast("cfpLoadingBar:started"),p=!0,s&&c.enter(m,e),r&&c.enter(o,e),f(t))}function f(a){if(p){var c=100*a+"%";n.css("width",c),q=a,b.cancel(j),j=b(function(){g()},250)}}function g(){if(!(h()>=1)){var a=0,b=h();a=b>=0&&.25>b?(3*Math.random()+3)/100:b>=.25&&.65>b?3*Math.random()/100:b>=.65&&.9>b?2*Math.random()/100:b>=.9&&.99>b?.005:0;var c=h()+a;f(c)}}function h(){return q}function i(){d.$broadcast("cfpLoadingBar:completed"),f(1),b.cancel(k),k=b(function(){c.leave(m,function(){q=0,p=!1}),c.leave(o)},500)}var j,k,l=this.parentSelector,m=angular.element('<div id="loading-bar"><div class="bar"><div class="peg"></div></div></div>'),n=m.find("div").eq(0),o=angular.element(this.spinnerTemplate),p=!1,q=0,r=this.includeSpinner,s=this.includeBar,t=this.startSize;return{start:e,set:f,status:h,inc:g,complete:i,includeSpinner:this.includeSpinner,latencyThreshold:this.latencyThreshold,parentSelector:this.parentSelector,startSize:this.startSize}}]})}(); | ||
!function(){"use strict";angular.module("angular-loading-bar",["cfp.loadingBarInterceptor"]),angular.module("chieffancypants.loadingBar",["cfp.loadingBarInterceptor"]),angular.module("cfp.loadingBarInterceptor",["cfp.loadingBar"]).config(["$httpProvider",function(a){var b=["$q","$cacheFactory","$timeout","$rootScope","cfpLoadingBar",function(b,c,d,e,f){function g(){d.cancel(i),f.complete(),k=0,j=0}function h(b){var d,e=c.get("$http"),f=a.defaults;!b.cache&&!f.cache||b.cache===!1||"GET"!==b.method&&"JSONP"!==b.method||(d=angular.isObject(b.cache)?b.cache:angular.isObject(f.cache)?f.cache:e);var g=void 0!==d?void 0!==d.get(b.url):!1;return void 0!==b.cached&&g!==b.cached?b.cached:(b.cached=g,g)}var i,j=0,k=0,l=f.latencyThreshold;return{request:function(a){return a.ignoreLoadingBar||h(a)||(e.$broadcast("cfpLoadingBar:loading",{url:a.url}),0===j&&(i=d(function(){f.start()},l)),j++,f.set(k/j)),a},response:function(a){return a.config.ignoreLoadingBar||h(a.config)||(k++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url}),k>=j?g():f.set(k/j)),a},responseError:function(a){return a.config.ignoreLoadingBar||h(a.config)||(k++,e.$broadcast("cfpLoadingBar:loaded",{url:a.config.url}),k>=j?g():f.set(k/j)),b.reject(a)}}}];a.interceptors.push(b)}]),angular.module("cfp.loadingBar",[]).provider("cfpLoadingBar",function(){this.includeSpinner=!0,this.includeBar=!0,this.latencyThreshold=100,this.startSize=.02,this.parentSelector="body",this.spinnerTemplate='<div id="loading-bar-spinner"><div class="spinner-icon"></div></div>',this.$get=["$document","$timeout","$animate","$rootScope",function(a,b,c,d){function e(){var e=a.find(l);b.cancel(k),p||(d.$broadcast("cfpLoadingBar:started"),p=!0,s&&c.enter(m,e),r&&c.enter(o,e),f(t))}function f(a){if(p){var c=100*a+"%";n.css("width",c),q=a,b.cancel(j),j=b(function(){g()},250)}}function g(){if(!(h()>=1)){var a=0,b=h();a=b>=0&&.25>b?(3*Math.random()+3)/100:b>=.25&&.65>b?3*Math.random()/100:b>=.65&&.9>b?2*Math.random()/100:b>=.9&&.99>b?.005:0;var c=h()+a;f(c)}}function h(){return q}function i(){d.$broadcast("cfpLoadingBar:completed"),f(1),b.cancel(k),k=b(function(){c.leave(m,function(){q=0,p=!1}),c.leave(o)},500)}var j,k,l=this.parentSelector,m=angular.element('<div id="loading-bar"><div class="bar"><div class="peg"></div></div></div>'),n=m.find("div").eq(0),o=angular.element(this.spinnerTemplate),p=!1,q=0,r=this.includeSpinner,s=this.includeBar,t=this.startSize;return{start:e,set:f,status:h,inc:g,complete:i,includeSpinner:this.includeSpinner,latencyThreshold:this.latencyThreshold,parentSelector:this.parentSelector,startSize:this.startSize}}]})}(); |
Changelog | ||
========== | ||
## 0.5.1 | ||
- Reworked cache logic to allow cache:true ([#96](https://github.com/chieffancypants/angular-loading-bar/pull/96)) | ||
## 0.5.0 | ||
@@ -5,0 +8,0 @@ - Added spinner template configuration ([#82](https://github.com/chieffancypants/angular-loading-bar/pull/82)) |
{ | ||
"name": "angular-loading-bar", | ||
"version": "0.5.0", | ||
"version": "0.5.1", | ||
"description": "An automatic loading bar for AngularJS", | ||
@@ -5,0 +5,0 @@ "main": "src/loading-bar.js", |
@@ -148,2 +148,13 @@ angular-loading-bar | ||
## Events | ||
The loading bar broadcasts the following events over $rootScope allowing further customization: | ||
**`cfpLoadingBar:loading`** triggered upon each XHR request that is not already cached | ||
**`cfpLoadingBar:loaded`** triggered each time an XHR request recieves a response (either successful or error) | ||
**`cfpLoadingBar:started`** triggered once upon the first XHR request. Will trigger again if another request goes out after `cfpLoadingBar:completed` has triggered. | ||
**`cfpLoadingBar:completed`** triggered once when the all XHR requests have returned (either successfully or not) | ||
## Credits: | ||
@@ -150,0 +161,0 @@ Credit goes to [rstacruz](https://github.com/rstacruz) for his excellent [nProgress](https://github.com/rstacruz/nprogress). |
@@ -70,17 +70,13 @@ /* | ||
var cache; | ||
var defaultCache = $cacheFactory.get('$http'); | ||
var defaults = $httpProvider.defaults; | ||
if (config.method !== 'GET' || config.cache === false) { | ||
config.cached = false; | ||
return false; | ||
// Choose the proper cache source. Borrowed from angular: $http service | ||
if ((config.cache || defaults.cache) && config.cache !== false && | ||
(config.method === 'GET' || config.method === 'JSONP')) { | ||
cache = angular.isObject(config.cache) ? config.cache | ||
: angular.isObject(defaults.cache) ? defaults.cache | ||
: defaultCache; | ||
} | ||
if (config.cache === true && defaults.cache === undefined) { | ||
cache = $cacheFactory.get('$http'); | ||
} else if (defaults.cache !== undefined) { | ||
cache = defaults.cache; | ||
} else { | ||
cache = config.cache; | ||
} | ||
var cached = cache !== undefined ? | ||
@@ -87,0 +83,0 @@ cache.get(config.url) !== undefined : false; |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
74421
164
1043