Sha256: 6edd9b225ef9a34873c98c5523d0cb20eaa84341cda6d325f65d008cdcd55e00

Contents?: true

Size: 1.46 KB

Versions: 22

Compression:

Stored size: 1.46 KB

Contents

#= require ../shared/asset_picker_view

Locomotive.Views.ContentAssets ||= {}

class Locomotive.Views.ContentAssets.PickerView extends Locomotive.Views.Shared.AssetPickerView

  number_items_per_row: 4

  _item_views: []

  template: ->
    ich.content_asset_picker

  fetch_assets: ->
    @_reset()
    @collection.fetch
      success: () =>
        @open()

  build_uploader: (el, link) ->
    link.bind 'click', (event) ->
      event.stopPropagation() & event.preventDefault()
      el.click()

    el.bind 'change', (event) =>
      _.each event.target.files, (file) =>
        asset = new Locomotive.Models.ContentAsset(source: file)
        asset.save {},
          headers:  { 'X-Flash': true }
          success:  (model, response) => @collection.add(model.prepare())
          error:    => @shake()

  add_asset: (asset, first) ->
    view = new Locomotive.Views.ContentAssets.PickerItemView model: asset, parent: @

    (@_item_views ||= []).push(view)
    @$('ul.list .clear').before(view.render().el)

    @_refresh()

    @_move_to_last_asset() unless first == true

  remove_asset: (asset) ->
    view = _.find @_item_views, (tmp) -> tmp.model == asset
    view.remove() if view?
    @_refresh()

  _on_refresh: ->
    self = @
    @$('ul.list li.asset').each (index) ->
      if (index + 1) % self.number_items_per_row == 0
        $(@).addClass('last')
      else
        $(@).removeClass('last')

  _reset: ->
    _.each @_item_views || [], (view) -> view.remove()
    super()

Version data entries

22 entries across 22 versions & 2 rubygems

Version Path
locomotive_cms-2.4.1 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.4.0 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.2.3 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.2.2 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.2.1 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.2.0 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.1.4 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.1.3 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.1.2 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.1.1 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.1.0 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.0.3 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.0.2 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.0.1 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.0.0 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
tribeca_cms-0.1.1 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
tribeca_cms-2.0.0.rc12 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.0.0.rc12 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.0.0.rc11 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee
locomotive_cms-2.0.0.rc10 app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee