engine/app/assets/javascripts/locomotive/views/content_assets/picker_view.js.coffee

50 lines
1.3 KiB
CoffeeScript
Raw Normal View History

2011-11-19 16:33:16 +00:00
#= require ../shared/asset_picker_view
2011-11-19 16:33:16 +00:00
Locomotive.Views.ContentAssets ||= {}
2011-11-19 16:33:16 +00:00
class Locomotive.Views.ContentAssets.PickerView extends Locomotive.Views.Shared.AssetPickerView
number_items_per_row: 4
_item_views: []
2011-11-19 16:33:16 +00:00
template: ->
ich.content_asset_picker
2011-11-19 16:33:16 +00:00
fetch_assets: ->
@collection.fetch()
2011-11-19 16:33:16 +00:00
build_uploader: (el, link) ->
window.LocomotiveUploadify.build el,
url: link.attr('href')
data_name: el.attr('name')
height: link.outerHeight()
width: link.outerWidth()
file_ext: '*.png;*.gif;*.jpg;*.jpeg;*.pdf;*.doc;*.docx;*.xls;*.xlsx;*.txt;*.zip'
success: (model) => @collection.add(model)
error: (msg) => @shake()
add_asset: (asset) ->
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()
remove_asset: (asset) ->
view = _.find @_item_views, (tmp) -> tmp.model == asset
view.remove() if view?
@_refresh()
2011-11-19 16:33:16 +00:00
_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()
2011-11-19 16:33:16 +00:00
super()