import Ember from 'ember';

export default Ember.Component.extend({
  logBinding: 'job.log',
  classNames: ['job-log'],

  didReceiveAttrs: function(options) {
    this._super(...arguments);

    let oldJob = options.oldAttrs && options.oldAttrs.job && options.oldAttrs.job.value,
        newJob = options.newAttrs && options.newAttrs.job && options.newAttrs.job.value;

    if(newJob !== oldJob) {
      if(newJob) {
        this.setupLog(newJob);
      }

      if(oldJob) {
        this.teardownLog(oldJob);
      }
    }
  },

  teardownLog(job) {
    job.unsubscribe();
  },

  setupLog(job) {
    this.set('error', false);
    job.get('log').fetch().then(function() { }, () => {
      this.set('error', true);
    });
    job.subscribe();
  }
});