class Locmare.FilerModule.BodyModule.FileBodyModule.FileItem extends Pettanr.View tagName: 'li' initialize: (options) -> @file_body = options.file_body @item = options.item @symbol = @module().SymbolItemColumnFactory.factory this, @manifest().symbol, @item @caption = @module().CaptionItemColumnFactory.factory this, @manifest().caption, @item @summary = @module().SummaryItemColumnFactory.factory this, @manifest().summary, @item @icon = @module().IconItemColumnFactory.factory this, @manifest().icon, @item @date = @module().DateItemColumnFactory.factory this, @manifest().date, @item @edit = @module().EditItemColumnFactory.factory this, @manifest().edit, @item @el.className = 'filer-item filer-item-' + @item.item_name() @listenTo(@symbol, 'click:symbol', @click_symbol) @listenTo(@caption, 'click:caption', @click_caption) @listenTo(@icon, 'click:prof', @click_prof) @listenTo(@symbol, 'http_get', @http_get) @listenTo(@caption, 'http_get', @http_get) @listenTo(@summary, 'http_get', @http_get) @listenTo(@icon, 'http_get', @http_get) @listenTo(@edit, 'http_get', @http_get) @listenTo(@edit, 'http_post', @http_post) @listenTo(@edit, 'remove', @click_remove) @listenTo(@edit, 'update', @click_update) render: () -> this.$el.html('') if @pick this.$el.append(@pick.render().el) if @symbol.is_visible() this.$el.append(@symbol.render().el) if @caption.is_visible() this.$el.append(@caption.render().el) if @summary.is_visible() this.$el.append(@summary.render().el) if @icon.is_visible() this.$el.append(@icon.render().el) if @date.is_visible() this.$el.append(@date.render().el) if !@pick and @edit.is_visible() this.$el.append(@edit.render().el) this filer: () -> @file_body.filer() manifest: () -> @filer().manifest item_name: () -> @filer().item_name model: () -> @filer().model items: () -> @filer().items add_pick: (target_model) -> @pick = new Pettanr.View.Pick(target_model.pick_type(@item_name()), { class_name: 'filer-item-pick', context: this, click: () => @trigger('click:pick', this) }) @render() click_symbol: () -> @trigger('click:symbol', this) click_caption: () -> @trigger('click:caption', this) click_prof: (url) -> @trigger('click:prof', this) @trigger('http_get', url) http_get: (url) -> @trigger('http_get', url) http_post: (url) -> @trigger('http_post', url) click_remove: () -> return if !confirm('remove?') proxy = new Pettanr.Proxy({}) @listenTo(proxy, 'success', @remove_success) @listenTo(proxy, 'fail', @remove_fail) @listenTo(proxy, 'deny', @remove_deny) proxy.http_post(@item.destroy_url()) remove_success: () -> @trigger('remove:success', this) remove_fail: () -> @trigger('remove:fail') remove_deny: () -> click_update: () -> # do fetch / update item Pettanr.cache.refresh(@item) @render() module: () -> Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule class Locmare.FilerModule.BodyModule.FileBodyModule.FileItemModule