X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=app%2Fassets%2Fjavascripts%2Fpettanr.js.coffee;h=eab863b73cbc0156bab7c6b739aa02d104a40578;hb=51c40eccbe78bba37781e4c9abb9af2ac5907397;hp=a9175300303d9bc4844ca2365d32fe2c12c2d928;hpb=f5a8ee0b7a363b86a0528a659e261c8895d35a01;p=pettanr%2Fpettanr.git diff --git a/app/assets/javascripts/pettanr.js.coffee b/app/assets/javascripts/pettanr.js.coffee index a9175300..eab863b7 100644 --- a/app/assets/javascripts/pettanr.js.coffee +++ b/app/assets/javascripts/pettanr.js.coffee @@ -103,9 +103,9 @@ class Pettanr @credits = {} class Pettanr.AppController - constructor: () -> + constructor: (@operators) -> @params = {} - @operators = window.operators + _.extend(this, Backbone.Events) set_model: () -> @my_controller = Manifest.manifest().controllers[@params['controller']] @@ -129,13 +129,13 @@ class Pettanr @set_list() @list.open(() => pager = Locmare.ListGroupModule.LibModule.Pager.factory(@list.page_status, @params) - f = new Locmare.Filer({ - el: "#pettanr", - item_name: @my_list_model_class.item_name(), + filer = new Locmare.Filer({ + item_name: @list.item_name, items: @list.items(), pager: pager, operators: @operators }) + @trigger('ready', filer) ) false @@ -153,7 +153,7 @@ class Pettanr ) false - show_prof: () -> + show_prof: (el) -> @item.fetch({cache: true}).done => @item.boosts 'post' profiler = new Locmare.Profiler({ @@ -161,8 +161,9 @@ class Pettanr item: @item, operators: @operators }) - $("#pettanr").html(profiler.render().el) - @redraw_title(@params) + el ||= $("#pettanr") + el.html(profiler.render().el) + @trigger('retitle', @params) set_new: () -> @set_model() @@ -179,7 +180,7 @@ class Pettanr @render_form() render_form: () -> - @form = new Locmare.Form({ + @form = Locmare.Form.factory({ form_name: @item.item_name(), item: @item, mounted: true, @@ -196,11 +197,32 @@ class Pettanr form_edit: () -> @set_edit() - redraw_title: (params, str = null) -> - t = str || I18n.t(params['controller'] + '.' + params['action'] + '.title') - site_caption = Manifest.manifest().magic_numbers.profile.users.caption - $(document).attr('title', t + ' - ' + site_caption) + class Pettanr.Dialog extends Backbone.View + initialize: (options) -> + super(options) + + render: () -> + this.$el.html('') + this + + refresh: (body) -> + @listenTo(body, 'navigate', @navigate) + this.$el.html(body.render().el) + + fire: (params) -> + c = Pettanr[Pettanr.camelize(params['controller']) + 'Controller'] + controller = new c + controller.params = params + @listenTo(controller, 'ready', @refresh) + # ignore retitle message + # @listenTo(controller, 'retitle', @retitle) + controller[params['action']]() + + local_navigate: (url) -> + window.router.local_navigate(url, true) + + #>> https://gist.github.com/davidjbeveridge/3813724 @xeach: (arr, func, index=0) -> if index < arr.length then [ func(arr[index], index), @xeach(arr, func, index + 1)... ] else []