Sha256: 970c7812258033309712e575746fc7e5ca417e0613cd18a92f647cb3eccd2388

Contents?: true

Size: 1.71 KB

Versions: 32

Compression:

Stored size: 1.71 KB

Contents

!(angular => {
  'use strict';

  class SourceRenderer {

    constructor(visualization) {
      this._visualization = visualization;
    }

    setTemplate(template) {
      this._compiledTemplate = _.template(template);
    }

    setResults(results) {
      this.results = results;
    }

    latestResult() {
      let latestResult;

      _(this.results.items())
        .sortBy('id')
        .reverse()
        .forEach(result => {
          if (!_.exists(latestResult) && result.status === 'complete') {
            latestResult = result;
          }
        });

      return latestResult;
    }

    isValid() {
      return this._visualization.hasSource() && this.latestResult() && _.exists(this._compiledTemplate);
    }

    rendered() {
      let result = this.latestResult();
      if(this._visualization.hasSource() && result && _.exists(this._compiledTemplate)) {
        this._internalizeToLocalStorage(result);
        return this._compiledTemplate({
          result_id: result.id,
          panel: '#chart-panel',
          body: this._visualization.item.html_source
        });
      } else {
        return null;
      }
    }

    // private methods

    _internalizeToLocalStorage(result) {
      SerializedStorage.set('DATASET', result.sample_data);
      SerializedStorage.set('COLUMNS', this._toColumns(result.headers, result.sample_data));
      SerializedStorage.set('HEADERS', result.headers);
    }

    _toColumns(headers, dataset) {
      let arr = [];
      headers.forEach((header, idx) => {
        arr.push([header].concat(dataset.map(row => row[idx])));
      });
      return arr;
    }
  }

  angular.module('alephServices.sourceRenderer', []).service('SourceRenderer', () => SourceRenderer);

}(angular));

Version data entries

32 entries across 16 versions & 1 rubygems

Version Path
aleph_analytics-0.4.9.pre.dev public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.4.9.pre.dev app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.4.8 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.4.8 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.4.7 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.4.7 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.4.4 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.4.4 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.4.2 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.4.2 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.4.1 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.4.1 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.3.0 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.3.0 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.2.0 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.2.0 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.1.0 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.1.0 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6
aleph_analytics-0.0.6 public/assets/angular/services/visualization/source_renderer.js-d7274c88b067a35f2e91bf7f39be7d47.es6
aleph_analytics-0.0.6 app/assets/javascripts/angular/services/visualization/source_renderer.js.es6