Files

2 lines
1.2 KiB
JavaScript

/*! angular-poller v0.2.2 13-05-2014 */
!function(a,b,c){"use strict";b.module("emguo.poller",[]).factory("poller",["$interval","$q",function(a,d){var e=[],f={action:"query",delay:5e3,params:{},smart:!1},g=function(a,b){this.resource=a,this.set(b)},h=function(a){var c=null;return b.forEach(e,function(d){b.equals(d.resource,a)&&(c=d)}),c};return b.extend(g.prototype,{set:function(a){b.forEach(["action","delay","params","smart"],function(b){a&&a[b]?this[b]=a[b]:this[b]||(this[b]=f[b])},this)},start:function(){function c(){j&&b.isDefined(e)&&!e.$resolved||(e=f[g](i,function(a){k.deferred.notify(a)}))}var e,f=this.resource,g=this.action,h=this.delay,i=this.params,j=this.smart,k=this;this.deferred||(this.deferred=d.defer()),c(),this.interval=a(c,h),this.promise=this.deferred.promise},stop:function(){b.isDefined(this.interval)&&(a.cancel(this.interval),this.interval=c)},restart:function(){this.stop(),this.start()}}),{get:function(a,b){var c=h(a);return c?(c.set(b),c.restart()):(c=new g(a,b),e.push(c),c.start()),c},size:function(){return e.length},stopAll:function(){b.forEach(e,function(a){a.stop()})},restartAll:function(){b.forEach(e,function(a){a.restart()})},reset:function(){this.stopAll(),e=[]}}}])}(window,window.angular);