Sha256: bf8c2dd1fb5c1f9a7fb2bd6a2893454501c5161fa71fab4512d2732678ed7cda

Contents?: true

Size: 1.42 KB

Versions: 6

Compression:

Stored size: 1.42 KB

Contents

pageflow.FileThumbnailView = Backbone.Marionette.ItemView.extend({
  className: 'file_thumbnail',
  template: 'templates/file_thumbnail',

  modelEvents: {
    'change:state': 'update'
  },

  ui: {
    pictogram: '.pictogram'
  },

  onRender: function() {
    this.update();
  },

  update: function() {
    if (this.model) {
      var stage = this.model.currentStage();

      if (stage) {
        this.setStageClassName(stage.get('name'));
        this.ui.pictogram.toggleClass('failed', stage.get('failed'));
      }
      else {
        this.ui.pictogram.removeClass(this.model.stages.pluck('name').join(' '));
      }

      this.ui.pictogram.addClass(this.model.thumbnailPictogram);
      this.$el.css('background-image', 'url(' + this._imageUrl() + ')');
      this.$el
        .removeClass('empty')
        .toggleClass('always_picogram', !!this.model.thumbnailPictogram)
        .toggleClass('ready', this.model.isReady());
    }
    else {
      this.$el.css('background-image', '');
      this.$el.removeClass('ready');
      this.ui.pictogram.addClass('empty');
    }
  },

  setStageClassName: function(name) {
    if (!this.$el.hasClass(name)) {
      this.ui.pictogram.removeClass('empty');
      this.ui.pictogram.removeClass(this.model.stages.pluck('name').join(' '));
      this.ui.pictogram.addClass(name);
    }
  },

  _imageUrl: function() {
    return this.model.get(this.options.imageUrlPropertyName || 'thumbnail_url');
  }
});

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
pageflow-0.1.0 app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js
pageflow-0.0.5 app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js
pageflow-0.0.4 app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js
pageflow-0.0.3 app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js
pageflow-0.0.2 app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js
pageflow-0.0.1 app/assets/javascripts/pageflow/editor/views/file_thumbnail_view.js