class Locmare.ProfilerModule.AssociationModule.BelongsTo extends Backbone.View tagName: 'div' initialize: (options) -> @association = options.association @belongs_to_manifest = options.belongs_to_manifest clear: () -> this.$el.html('') retriever = new Pettanr.Cache.Retriever(@parent_model(), @parent_id()) @listenTo(retriever, 'retrieve', @retrieve_parent_item) retriever.retrieve() this retrieve_parent_item: (@parent_item) -> @set_filer() @render() 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) -> retriever = new Pettanr.Cache.Retriever(@parent_model(), @parent_id()) @listenTo(retriever, 'retrieve', @retrieve_pick_item) retriever.retrieve() retrieve_pick_item: (@parent_item) -> @set_filer() @render() @filer.add_pick(target_model) http_get: (url) -> @trigger('http_get', url) pick: (item) -> @trigger('pick', item)