Sha256: d68620b6e979063f51331d38429bf035b4124309d31dd53d26d6fdc0a73f4ac1

Contents?: true

Size: 1.1 KB

Versions: 30

Compression:

Stored size: 1.1 KB

Contents

pageflow.DelayedStart = (function($) {
  return function() {
    var waitDeferred = new $.Deferred();
    var promises = [];
    var performed = false;

    return {
      promise: function() {
        return waitDeferred.promise();
      },

      wait: function(callback) {
        var cancelled = false;

        waitDeferred.then(function() {
          if (!cancelled) {
            callback();
          }
        });

        return {
          cancel: function() {
            cancelled = true;
          }
        };
      },

      waitFor: function(callbackOrPromise) {
        if (!performed) {
          if (typeof callbackOrPromise === 'function') {
            callbackOrPromise = new $.Deferred(function(deferred) {
              callbackOrPromise(deferred.resolve);
            }).promise();
          }

          promises.push(callbackOrPromise);
        }
      },

      perform: function() {
        if (!performed) {
          performed = true;
          $.when.apply(null, promises).then(waitDeferred.resolve);
        }
      }
    };
  };
}(jQuery));

pageflow.delayedStart = new pageflow.DelayedStart();

Version data entries

30 entries across 30 versions & 1 rubygems

Version Path
pageflow-14.5.2 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.2 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.1 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.0 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.5.1 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.5.0 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.0.rc2 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.0.rc1 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.0.beta4 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.0.beta3 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.4.0 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.0.beta2 app/assets/javascripts/pageflow/delayed_start.js
pageflow-15.0.0.beta1 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.3.0 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.2.1 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.2.0 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.1.1 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.1.0 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.0.0 app/assets/javascripts/pageflow/delayed_start.js
pageflow-14.0.0.rc2 app/assets/javascripts/pageflow/delayed_start.js