Sha256: 3f98b516c753a6b527075fb2f4614ffb61b214ed00f12932d5b4ea131ce47b90

Contents?: true

Size: 1.27 KB

Versions: 3

Compression:

Stored size: 1.27 KB

Contents

(function(window){
  'use strict';
  function defineLibrary(){
    var JobNotifier = {};

    JobNotifier.init = function() {
      var body = document.querySelector('body');
      JobNotifier.jobIdentifier = body.dataset.identifier;
      JobNotifier.rootUrl = body.dataset.rootUrl;
      setInterval(JobNotifier.poll, 5000);
    };

    JobNotifier.poll = function() {
      var oReq = new XMLHttpRequest();
      oReq.onload = JobNotifier.reqListener;
      oReq.onerror = JobNotifier.onError;
      var url = JobNotifier.rootUrl + 'job_notifier/jobs.json?identifier=' + JobNotifier.jobIdentifier;
      oReq.open('get', url, true);
      oReq.send();
    };

    JobNotifier.reqListener = function() {
      var data = JSON.parse(this.responseText);

      if(data.length > 0) {
        JobNotifier.onNotify(data);
      }
    };

    JobNotifier.onNotify = function(data) {
      console.info('Override this method with your own logic. Data: ', data);
    };

    JobNotifier.onError = function(err) {
      console.error('Error', err);
    };

    return JobNotifier;
  }

  if(typeof(JobNotifier) === 'undefined'){
    window.JobNotifier = defineLibrary();
  } else{
    console.log('JobNotifier already defined.');
  }
})(window);

document.addEventListener('DOMContentLoaded', JobNotifier.init);

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
job_notifier-0.2.0 app/assets/javascripts/job_notifier/notifier.js
job_notifier-0.1.1 app/assets/javascripts/job_notifier/notifier.js
job_notifier-0.1.0 app/assets/javascripts/job_notifier/notifier.js