engine/app/assets/javascripts/locomotive/views/theme_assets/image_picker_view.js.coffee

40 lines
1.1 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.ThemeAssets ||= {}
2011-11-19 16:33:16 +00:00
class Locomotive.Views.ThemeAssets.ImagePickerView extends Locomotive.Views.Shared.AssetPickerView
events:
'click ul.list a': 'select_asset'
2011-12-07 01:09:13 +00:00
initialize: ->
@collection ||= new Locomotive.Models.ThemeAssetsCollection()
super
2011-11-19 16:33:16 +00:00
template: ->
ich.theme_image_picker
2011-11-19 16:33:16 +00:00
fetch_assets: ->
@collection.fetch data: { content_type: 'image' }
2011-11-19 16:33:16 +00:00
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.ThemeAsset(source: file)
asset.save {},
headers: { 'X-Flash': true }
success: (model) => @collection.add(model)
error: => @shake()
select_asset: (event) ->
event.stopPropagation() & event.preventDefault()
if @options.on_select
@options.on_select($(event.target).html())
add_asset: (asset) ->
@$('ul.list').append(ich.theme_asset(asset.toJSON()))
2011-11-19 16:33:16 +00:00
@_refresh()