From 50fe117d7cd00eb0d6a6a1985117b006aa02eee4 Mon Sep 17 00:00:00 2001 From: Robin Ward Date: Tue, 3 Dec 2013 15:11:33 -0500 Subject: [PATCH] FIX: Load order bug --- app/assets/javascripts/discourse.js | 18 ++++++++++++------ ...k_interceptor.js => 1_click_interceptor.js} | 2 +- .../initializers/1_init_message_bus.js | 2 +- .../discourse/initializers/bootbox.js | 2 +- .../discourse/initializers/csrf_token.js | 2 +- .../discourse/initializers/focus_event.js | 2 +- .../discourse/initializers/init_mobile.js | 2 +- .../discourse/initializers/live_development.js | 4 +--- .../discourse/initializers/relative_ages.js | 2 +- .../initializers/sniff_capabilities.js | 2 +- .../subscribe_user_notifications.js | 3 ++- 11 files changed, 23 insertions(+), 18 deletions(-) rename app/assets/javascripts/discourse/initializers/{click_interceptor.js => 1_click_interceptor.js} (99%) diff --git a/app/assets/javascripts/discourse.js b/app/assets/javascripts/discourse.js index 65db695ae2b..eea59a33339 100644 --- a/app/assets/javascripts/discourse.js +++ b/app/assets/javascripts/discourse.js @@ -100,10 +100,12 @@ Discourse = Ember.Application.createWithMixins(Discourse.Ajax, { @method addInitializer @param {Function} init the initializer to add. + @param {Boolean} immediate whether to execute the function right away. + Default is false, for next run loop. If unsure, use false. **/ - addInitializer: function(init) { + addInitializer: function(init, immediate) { Discourse.initializers = Discourse.initializers || []; - Discourse.initializers.push(init); + Discourse.initializers.push({fn: init, immediate: !!immediate}); }, /** @@ -115,10 +117,14 @@ Discourse = Ember.Application.createWithMixins(Discourse.Ajax, { var initializers = this.initializers; if (initializers) { var self = this; - Em.run.next(function() { - initializers.forEach(function (init) { - init.call(self); - }); + initializers.forEach(function (init) { + if (init.immediate) { + init.fn.call(self); + } else { + Em.run.next(function() { + init.fn.call(self); + }); + } }); } } diff --git a/app/assets/javascripts/discourse/initializers/click_interceptor.js b/app/assets/javascripts/discourse/initializers/1_click_interceptor.js similarity index 99% rename from app/assets/javascripts/discourse/initializers/click_interceptor.js rename to app/assets/javascripts/discourse/initializers/1_click_interceptor.js index 81f7050dabb..71b5a178082 100644 --- a/app/assets/javascripts/discourse/initializers/click_interceptor.js +++ b/app/assets/javascripts/discourse/initializers/1_click_interceptor.js @@ -29,4 +29,4 @@ Discourse.addInitializer(function() { return false; }); -}); \ No newline at end of file +}, true); \ No newline at end of file diff --git a/app/assets/javascripts/discourse/initializers/1_init_message_bus.js b/app/assets/javascripts/discourse/initializers/1_init_message_bus.js index 68a678f8bed..d4397f5356a 100644 --- a/app/assets/javascripts/discourse/initializers/1_init_message_bus.js +++ b/app/assets/javascripts/discourse/initializers/1_init_message_bus.js @@ -5,4 +5,4 @@ Discourse.addInitializer(function() { Discourse.MessageBus.alwaysLongPoll = Discourse.Environment === "development"; Discourse.MessageBus.start(); Discourse.KeyValueStore.init("discourse_", Discourse.MessageBus); -}); +}, true); diff --git a/app/assets/javascripts/discourse/initializers/bootbox.js b/app/assets/javascripts/discourse/initializers/bootbox.js index 9d8b73fe2d2..171992d1a28 100644 --- a/app/assets/javascripts/discourse/initializers/bootbox.js +++ b/app/assets/javascripts/discourse/initializers/bootbox.js @@ -8,4 +8,4 @@ Discourse.addInitializer(function() { // clicking outside a bootbox modal closes it bootbox.backdrop(true); -}); \ No newline at end of file +}, true); \ No newline at end of file diff --git a/app/assets/javascripts/discourse/initializers/csrf_token.js b/app/assets/javascripts/discourse/initializers/csrf_token.js index 36ff38de8a7..163416f6f43 100644 --- a/app/assets/javascripts/discourse/initializers/csrf_token.js +++ b/app/assets/javascripts/discourse/initializers/csrf_token.js @@ -15,5 +15,5 @@ Discourse.addInitializer(function() { } }); -}); +}, true); diff --git a/app/assets/javascripts/discourse/initializers/focus_event.js b/app/assets/javascripts/discourse/initializers/focus_event.js index 6c6ad80aa82..6c50db77fd4 100644 --- a/app/assets/javascripts/discourse/initializers/focus_event.js +++ b/app/assets/javascripts/discourse/initializers/focus_event.js @@ -13,4 +13,4 @@ Discourse.addInitializer(function() { self.set('hasFocus', false); }); -}); \ No newline at end of file +}, true); \ No newline at end of file diff --git a/app/assets/javascripts/discourse/initializers/init_mobile.js b/app/assets/javascripts/discourse/initializers/init_mobile.js index d16f4ca9aaf..57e8b32e8bb 100644 --- a/app/assets/javascripts/discourse/initializers/init_mobile.js +++ b/app/assets/javascripts/discourse/initializers/init_mobile.js @@ -3,5 +3,5 @@ **/ Discourse.addInitializer(function() { Discourse.Mobile.init(); -}); +}, true); diff --git a/app/assets/javascripts/discourse/initializers/live_development.js b/app/assets/javascripts/discourse/initializers/live_development.js index 28fecc67cec..6442597c2d6 100644 --- a/app/assets/javascripts/discourse/initializers/live_development.js +++ b/app/assets/javascripts/discourse/initializers/live_development.js @@ -3,8 +3,6 @@ **/ Discourse.addInitializer(function() { - console.log('live reloading'); - // subscribe to any site customizations that are loaded $('link.custom-css').each(function() { var split = this.href.split("/"), @@ -70,4 +68,4 @@ Discourse.addInitializer(function() { }); }); -}); \ No newline at end of file +}, true); \ No newline at end of file diff --git a/app/assets/javascripts/discourse/initializers/relative_ages.js b/app/assets/javascripts/discourse/initializers/relative_ages.js index 331d3cd66ef..5888e52ab9c 100644 --- a/app/assets/javascripts/discourse/initializers/relative_ages.js +++ b/app/assets/javascripts/discourse/initializers/relative_ages.js @@ -8,5 +8,5 @@ Discourse.addInitializer(function() { Discourse.Formatter.updateRelativeAge($('.relative-date')); }, 60 * 1000); -}); +}, true); diff --git a/app/assets/javascripts/discourse/initializers/sniff_capabilities.js b/app/assets/javascripts/discourse/initializers/sniff_capabilities.js index e2871c41411..bbe5b85715e 100644 --- a/app/assets/javascripts/discourse/initializers/sniff_capabilities.js +++ b/app/assets/javascripts/discourse/initializers/sniff_capabilities.js @@ -23,4 +23,4 @@ Discourse.addInitializer(function() { // iPads should report as 1024. caps.set('highRes', Modernizr.mq("only screen and (min-width: 1280px)")); -}); +}, true); diff --git a/app/assets/javascripts/discourse/initializers/subscribe_user_notifications.js b/app/assets/javascripts/discourse/initializers/subscribe_user_notifications.js index 048d40cdd7d..394377621af 100644 --- a/app/assets/javascripts/discourse/initializers/subscribe_user_notifications.js +++ b/app/assets/javascripts/discourse/initializers/subscribe_user_notifications.js @@ -28,5 +28,6 @@ Discourse.addInitializer(function() { }); }); } -}); + +}, true);