diff options
| author | mo khan <mo@mokhan.ca> | 2017-03-08 21:14:49 -0700 |
|---|---|---|
| committer | mo khan <mo@mokhan.ca> | 2017-03-08 21:14:49 -0700 |
| commit | 7f7cd2bf63da0b0b7359e2c8e98bb8eda108c1ac (patch) | |
| tree | ca4f7c3834e16f458bc985d508b678ca7c370f1f | |
| parent | 58cda19f4ffad761e6912aaa5e3bbbd170bba7c7 (diff) | |
load js behaviours on turbolinks:load.
7 files changed, 43 insertions, 17 deletions
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 %> |
