summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/initializers/auto_view_setup.js.coffee
diff options
context:
space:
mode:
Diffstat (limited to 'app/assets/javascripts/initializers/auto_view_setup.js.coffee')
-rw-r--r--app/assets/javascripts/initializers/auto_view_setup.js.coffee22
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