class Locmare.ProfilerModule.AssociationModule.BelongsTo extends Pettanr.View tagName: 'div' initialize: (options) -> @association = options.association @belongs_to_manifest = options.belongs_to_manifest clear: () -> this.$el.html('') @item().get_parent(@belongs_to_manifest.name, this, { success: (@parent_item) => @set_filer() @render() fail: (response, opt) => @open_error_dialog(response, opt) }) this render: () -> this.$el.html('') this.$el.append(@filer.el) this set_filer: () -> @filer = new Locmare.Filer({ item_name: @parent_item.item_name(), items: [@parent_item], pager: null, }) @filer.render() @listenTo(@filer, 'http_get', @http_get) @listenTo(@filer, 'pick', @pick) item: () -> @profiler().item parent_model: () -> @belongs_to_manifest.model() parent_id: () -> c = @model_belongs_to_manifest().id_column @item().get(c) model_manifest: () -> Manifest.manifest().models[@profiler().item_name] model_belongs_to_manifest: () -> @model_manifest().associations.belongs_to[@belongs_to_manifest.item_name] profiler: () -> @association.profiler add_pick: (target_model) -> @parent_model().retrieve(@parent_id(), this, { success: (@parent_item) => @set_filer() @render() @filer.add_pick(target_model) fail: (response, opt) => @open_error_dialog(response, opt) }) http_get: (url) -> @trigger('http_get', url) pick: (item) -> @trigger('pick', item)