From 7f7cd2bf63da0b0b7359e2c8e98bb8eda108c1ac Mon Sep 17 00:00:00 2001 From: mo khan Date: Wed, 8 Mar 2017 21:14:49 -0700 Subject: load js behaviours on turbolinks:load. --- app/assets/javascripts/application.js.coffee | 7 ++++++- app/assets/javascripts/lib/behaviour.js.coffee | 7 ++++--- app/assets/javascripts/lib/behaviours/autovue.js.coffee | 5 +++-- .../javascripts/lib/behaviours/hamburger_menu.js.coffee | 17 ++++++++++++++++- .../lib/behaviours/loading_indicator.js.coffee | 14 ++++++++++++++ app/assets/javascripts/models/startup.js.coffee | 6 ------ app/views/registrations/new.html.erb | 4 ---- 7 files changed, 43 insertions(+), 17 deletions(-) create mode 100644 app/assets/javascripts/lib/behaviours/loading_indicator.js.coffee diff --git a/app/assets/javascripts/application.js.coffee b/app/assets/javascripts/application.js.coffee index 71e185f..5a51017 100644 --- a/app/assets/javascripts/application.js.coffee +++ b/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}" diff --git a/app/assets/javascripts/lib/behaviour.js.coffee b/app/assets/javascripts/lib/behaviour.js.coffee index c2a5183..17e64f8 100644 --- a/app/assets/javascripts/lib/behaviour.js.coffee +++ b/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() diff --git a/app/assets/javascripts/lib/behaviours/autovue.js.coffee b/app/assets/javascripts/lib/behaviours/autovue.js.coffee index 105d0cd..5d46bc3 100644 --- a/app/assets/javascripts/lib/behaviours/autovue.js.coffee +++ b/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 diff --git a/app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee b/app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee index b12a682..0c64660 100644 --- a/app/assets/javascripts/lib/behaviours/hamburger_menu.js.coffee +++ b/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') diff --git a/app/assets/javascripts/lib/behaviours/loading_indicator.js.coffee b/app/assets/javascripts/lib/behaviours/loading_indicator.js.coffee new file mode 100644 index 0000000..9a7e3dd --- /dev/null +++ b/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() diff --git a/app/assets/javascripts/models/startup.js.coffee b/app/assets/javascripts/models/startup.js.coffee index a0d1b9b..b3ea8a8 100644 --- a/app/assets/javascripts/models/startup.js.coffee +++ b/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() diff --git a/app/views/registrations/new.html.erb b/app/views/registrations/new.html.erb index 9bb806b..dcff1ef 100644 --- a/app/views/registrations/new.html.erb +++ b/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 %> -- cgit v1.2.3