Commit 7f7cd2b

mo khan <mo@mokhan.ca>
2017-03-09 04:14:49
load js behaviours on turbolinks:load.
1 parent 58cda19
app/assets/javascripts/lib/behaviours/autovue.js.coffee
@@ -1,8 +1,9 @@
-class Autovue extends Stronglifters.Behaviour
+class Stronglifters.Autovue extends Stronglifters.Behaviour
   @on "turbolinks:load"
 
   execute: ->
     for element in $("[data-autovue]")
-      window.vue = new Vue
+      window.views ?= []
+      window.views.push new Vue
         el: element
         data: gon
app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee
@@ -2,5 +2,20 @@ class HamburgerMenu extends Stronglifters.Behaviour
   @on "turbolinks:load"
 
   execute: ->
-    $(".nav-toggle").on "click", (event) ->
+    $(".nav-toggle").on "click", ->
       $(".nav-menu").toggleClass "is-active"
+
+class CloseNotification extends Stronglifters.Behaviour
+  @on "turbolinks:load"
+
+  execute: ->
+    $('.delete').on 'click', ->
+      $('.delete').parent('div:first').hide()
+
+
+class CloseModal extends Stronglifters.Behaviour
+  @on "turbolinks:load"
+
+  execute: ->
+    $('.close-modal').on 'click', ->
+      $('.modal').removeClass('is-active')
app/assets/javascripts/lib/behaviours/loading_indicator.js.coffee
@@ -0,0 +1,14 @@
+class DisplayLoadingIndicator extends Stronglifters.Behaviour
+  @on "turbolinks:load"
+
+  execute: ->
+    $(document).on 'turbolinks:request-start', ->
+      $(".loading-indicator").show()
+
+
+class HideLoadingIndicator extends Stronglifters.Behaviour
+  @on "turbolinks:load"
+
+  execute: ->
+    $(document).on 'turbolinks:request-end', ->
+      $(".loading-indicator").hide()
app/assets/javascripts/lib/behaviour.js.coffee
@@ -5,7 +5,8 @@ class Stronglifters.Behaviour
     @events[event] ?= []
     @events[event].push(this)
 
-  @install: () ->
+  @install: ->
     for event of @events
-      for behaviour in @events[event]
-        new behaviour().execute()
+      document.addEventListener event, () =>
+        for behaviour in @events[event]
+          new behaviour().execute()
app/assets/javascripts/models/startup.js.coffee
@@ -2,9 +2,3 @@ class Stronglifters.Startup
   start: ->
     Ractive.DEBUG = false
     new Clipboard('.clipboard-button')
-    $(document).on 'turbolinks:request-start', ->
-      $(".loading-indicator").show()
-    $(document).on 'turbolinks:request-end', ->
-      $(".loading-indicator").hide()
-    $('.delete').on 'click', ->
-      $('.delete').parent('div:first').hide()
app/assets/javascripts/application.js.coffee
@@ -29,6 +29,11 @@
 
 window.Stronglifters ?= {}
 
-$(document).on 'turbolinks:load', () =>
+document.addEventListener "turbolinks:load", () =>
   new Stronglifters.Startup().start()
+
+$(document).ready () =>
   Stronglifters.Behaviour.install()
+  for event in [ "before-cache", "before-render", "before-visit", "click", "load", "render", "request-end", "request-start", "visit" ]
+    $(document).on "turbolinks:#{event}", =>
+      console.log "Triggered: #{event}"
app/views/registrations/new.html.erb
@@ -57,9 +57,5 @@ $(function(){
   $('#terms-modal').on('click', function(){
     $('.modal').addClass('is-active');
   });
-
-  $('.close-modal').on('click', function(){
-    $('.modal').removeClass('is-active');
-  });
 });
 <% end %>