Sha256: 29a36c323d9d3506c4a066dfd414008b49c14fd24116fe2444e575cf16eb23e6

Contents?: true

Size: 1012 Bytes

Versions: 3

Compression:

Stored size: 1012 Bytes

Contents

(function() {

  var self = JobState = {};

  self.startPolling = function(options) {
    self._jobUuid = options.jobUuid;
    self._updateFn = options.update;
    self._successFn = options.success;
    self._errorFn = options.error;
    self._pollingPeriod = options.pollingPeriod || 1000;
    self._poll();
  };

  self._poll = function() {
    setTimeout(function() {
      $.ajax({
        url: '/job_state/job_states/' + self._jobUuid,
        type: 'GET',
        dataType: 'json',
        success: function(data) {
          if (data.job_state == 'success') {
            if (self._successFn) {
              self._successFn();
            }
          }
          else if (data.job_state == 'error') {
            if (self._errorFn) {
              self._errorFn();
            }
          }
          else {
            if (self._updateFn) {
              self._updateFn(data);
            }
            self._poll(self._jobUuid);
          }
        }
      });
    }, self._pollingPeriod);
  };

}());

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
job_state-0.0.3 app/assets/javascripts/job_state/job-state.js
job_state-0.0.2 app/assets/javascripts/job_state/job-state.js
job_state-0.0.1 app/assets/javascripts/job_state/job-state.js