Commit d7eb1b16

mo <mokha@cisco.com>
2017-09-02 22:09:27
convert infinite scroll into a behaviour.
1 parent 69a7960
app/assets/javascripts/infrastructure/auto_view.js.coffee
@@ -4,6 +4,7 @@ class CakeSide.AutoView extends Backbone.View
 
   @viewName: (name) ->
     @constructors[name] = this
+    @::name = name
 
   @install: (element) ->
     name = $(element).data('autoview')
app/assets/javascripts/infrastructure/behaviour.js.coffee
@@ -10,4 +10,3 @@ class CakeSide.Behaviour
       window.addEventListener event, () =>
         for behaviour in @events[event]
           new behaviour().execute()
-
app/assets/javascripts/infrastructure/infinite_scroll.js.coffee
@@ -0,0 +1,8 @@
+#= require ./behaviour
+
+class CakeSide.InfiniteScroll extends CakeSide.Behaviour
+  @on "scroll"
+
+  execute: ->
+    if $(window).scrollTop() >= ($(document).height() - $(window).height())*0.8
+      $('.more-button').trigger('click')
app/assets/javascripts/views/cakes/show_page.js.coffee
@@ -0,0 +1,7 @@
+#= require infrastructure/auto_view
+
+class CakeSide.Views.Cakes.ShowPage extends CakeSide.AutoView
+  @viewName "cakes#show"
+
+  render: ->
+    console.log(@name)
app/assets/javascripts/views/index.js.coffee
@@ -1,6 +1,7 @@
 #= require_self
 #= require_tree .
 
+CakeSide.Views.Cakes ||= {}
 CakeSide.Views.My ||= {}
 CakeSide.Views.My.Cakes ||= {}
 CakeSide.Views.My.Photos ||= {}
app/assets/javascripts/application.js
@@ -17,12 +17,4 @@
 //= require cakeside
 //= require_self
 
-CakeSide.Behaviour.install()
-var initialize = function(){
-  $(window).scroll(function(){
-    if ($(window).scrollTop() >= ($(document).height() - $(window).height())*0.8){
-      $('.more-button').trigger('click');
-    }
-  });
-};
-$(document).ready(initialize);
+CakeSide.Behaviour.install();
app/views/cakes/_show.html.erb
@@ -1,4 +1,4 @@
-<div class="row">
+<div class="row" data-autoview="cakes#show">
   <div class="col">
     <h1><%= link_to @creation.name, cake_path(@creation) %></h1>
     <p>By <%= link_to @creation.user.name, profile_path(@creation.user) %></p>