Commit 58acf6c7
Changed files (6)
app
assets
javascripts
views
app/assets/javascripts/infrastructure/auto_view_setup.js.coffee
@@ -1,7 +1,7 @@
#= require ./behaviour
class CakeSide.AutoViewSetup extends CakeSide.Behaviour
- @on "load"
+ @on "ready"
execute: ->
for element in $('[data-autoview]')
app/assets/javascripts/infrastructure/behaviour.js.coffee
@@ -1,12 +1,5 @@
class CakeSide.Behaviour
- @events: {}
-
@on: (event) ->
- @events[event] ?= []
- @events[event].push(@)
-
- @install: ->
- for event of @events
- window.addEventListener event, () =>
- for behaviour in @events[event]
- new behaviour().execute()
+ behaviour = new this()
+ $(document).on event, () =>
+ behaviour.execute()
app/assets/javascripts/infrastructure/infinite_scroll.js.coffee
@@ -1,11 +1,14 @@
#= require ./behaviour
class CakeSide.InfiniteScroll extends CakeSide.Behaviour
+ PERCENTAGE=0.8
@on "scroll"
execute: ->
$moreButton = $('[data-infinite-scroll]')
return if $moreButton.length == 0
- if $(window).scrollTop() >= ($(document).height() - $(window).height())*0.8
+ top = $(window).scrollTop()
+ height = ($(document).height() - $(window).height())
+ if top >= height * PERCENTAGE
$moreButton.trigger('click')
app/assets/javascripts/views/cakes/show_page.js.coffee
@@ -1,4 +1,4 @@
-#= require infrastructure/auto_view
+#= require views/auto_view
class CakeSide.Views.Cakes.ShowPage extends CakeSide.AutoView
@viewName "cakes#show"
app/assets/javascripts/infrastructure/auto_view.js.coffee → app/assets/javascripts/views/auto_view.js.coffee
@@ -20,4 +20,5 @@ class CakeSide.AutoView extends Backbone.View
@views[name] ?= []
@views[name].push(view)
- render: -> { }
+ render: ->
+ @
app/assets/javascripts/application.js
@@ -16,5 +16,3 @@
//= require backbone-model-file-upload
//= require cakeside
//= require_self
-
-CakeSide.Behaviour.install();