X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Flocmare%2Fprofiler%2Fassociation%2Fhas_one.js.coffee;h=0c6c6e0ecc0233545866b6a9740b5aabde02a633;hb=d7c8065be895b67dc453b0e11ad0f259f1ca6706;hp=087d18aa49140334e08ff7f596b215f0a17f7812;hpb=d6d237012089604cdbc61943856d42c0a0472dc7;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/locmare/profiler/association/has_one.js.coffee b/app/assets/javascripts/locmare/profiler/association/has_one.js.coffee index 087d18aa..0c6c6e0e 100644 --- a/app/assets/javascripts/locmare/profiler/association/has_one.js.coffee +++ b/app/assets/javascripts/locmare/profiler/association/has_one.js.coffee @@ -1,4 +1,4 @@ -class Locmare.ProfilerModule.AssociationModule.HasOne extends Backbone.View +class Locmare.ProfilerModule.AssociationModule.HasOne extends Pettanr.View tagName: 'div' initialize: (options) -> @@ -7,27 +7,34 @@ class Locmare.ProfilerModule.AssociationModule.HasOne extends Backbone.View @filer = null controller = Manifest.manifest().controllers[@has_one_manifest.controller_name] action = controller.actions[@has_one_manifest.action_name] - @list = Locmare.ListGroup.list( - action.path_name(), action.name, - @profiler().operators, {id: @item().get('id')} - ) - @list.open((page_status) => - @filer = new Locmare.Filer({ - item_name: @has_one_model().item_name(), - items: @list.items(), - pager: @pager, - operators: @profiler().operators - }) - @listenTo(@filer, 'http_get', @http_get) - @render() - ) + @list = action.find({id: @item().get('id')}) + + clear: () -> + this.$el.html('') + @list.open(this, { + success: (page_status) => + @set_filer() + @render() + fail: (response, opt) => + @open_error_dialog(response, opt) + }) + this render: () -> this.$el.html('') - if @filer - this.$el.html(@filer.render().el) + this.$el.html(@filer.el) this + set_filer: () -> + @filer = new Locmare.Filer({ + item_name: @has_one_model().item_name(), + items: @list.items(), + pager: @pager, + }) + @filer.render() + @listenTo(@filer, 'http_get', @http_get) + @listenTo(@filer, 'pick', @pick) + item: () -> @profiler().item @@ -37,6 +44,19 @@ class Locmare.ProfilerModule.AssociationModule.HasOne extends Backbone.View profiler: () -> @association.profiler + add_pick: (target_model) -> + @list.open(this, { + success: (page_status) => + @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) +