diff options
Diffstat (limited to 'app/assets/javascripts/initializers/auto_view_setup.js.coffee')
| -rw-r--r-- | app/assets/javascripts/initializers/auto_view_setup.js.coffee | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/app/assets/javascripts/initializers/auto_view_setup.js.coffee b/app/assets/javascripts/initializers/auto_view_setup.js.coffee index 3a462068..4198749d 100644 --- a/app/assets/javascripts/initializers/auto_view_setup.js.coffee +++ b/app/assets/javascripts/initializers/auto_view_setup.js.coffee @@ -1,8 +1,28 @@ #= require ./behaviour class CakeSide.AutoViewSetup extends CakeSide.Behaviour + @views = {} @on "ready" + constructor: (logger = console) -> + @logger = logger + execute: -> for element in $('[data-autoview]') - CakeSide.AutoView.install(element) + #CakeSide.AutoView.install(element) + @install($(element)) + + install: (element) -> + viewName = element.data('autoview') + constructor = CakeSide.Proxy.create(CakeSide.Views, viewName) + + if _.isUndefined(constructor) + @logger.error("Could not find autoview for #{viewName}") + return + + view = new constructor + el: element + $el: $(element) + view.render() + + CakeSide.AutoViewSetup.views[viewName.replace('.', '')] = view |
