Browse Source

#490, #489: Data preloading, static/media prefixes

Rafał Pitoń 10 years ago
parent
commit
1a2f8858ae

+ 2 - 0
misago/conf/defaults.py

@@ -59,6 +59,7 @@ PIPELINE_JS = {
             'misago/ember/handlebars.runtime-v2.0.0.js',
             'misago/ember/ember.prod-1.9.1.js',
             'misago/ember/ember-data.prod-1.0.0.b14.js',
+            'misago/js/preloadstore.js',
         ),
         'output_filename': 'misago_lib.js',
     },
@@ -68,6 +69,7 @@ PIPELINE_JS = {
             'misago/ember/handlebars-v2.0.0.js',
             'misago/ember/ember-1.9.1.js',
             'misago/ember/ember-data-1.0.0.b14.js',
+            'misago/js/preloadstore.js',
         ),
         'output_filename': 'misago_lib_debug.js',
     },

+ 3 - 0
misago/static/misago/js/application.js

@@ -1,3 +1,6 @@
 window.Misago = Ember.Application.create({
   rootElement: '#main'
 });
+
+
+Misago.ApplicationController = Ember.Controller.extend(MisagoPreloadStore.data);

+ 26 - 0
misago/static/misago/js/preloadstore.js

@@ -0,0 +1,26 @@
+window.MisagoPreloadStore = {
+
+  data: {},
+
+  has: function(key) {
+    return this.data.hasOwnProperty(key);
+  },
+
+  get: function(key, value) {
+
+    if (this.has(key)) {
+      return this.data[key];
+    } else if (value !== undefined) {
+      return value;
+    } else {
+      return undefined;
+    }
+
+  },
+
+  set: function(key, value) {
+    this.data[key] = value;
+    return value;
+  }
+
+}

+ 0 - 2
misago/static/misago/js/templates/application.hbs

@@ -1,3 +1 @@
-<p>If you see this, Ember.js renders application template.</p>
-
 {{outlet}}

+ 5 - 0
misago/templates/misago/base.html

@@ -36,6 +36,11 @@
     {% else %}
       {% javascript "misago_lib" %}
     {% endif %}
+
+    <script type="text/javascript">
+      {% include "misago/preload_data.js" %}
+    </script>
+
     {% javascript "misago" %}
 
   </body>

+ 2 - 0
misago/templates/misago/preload_data.js

@@ -0,0 +1,2 @@
+MisagoPreloadStore.set("staticUrl", "{{ STATIC_URL }}");
+MisagoPreloadStore.set("mediaUrl", "{{ MEDIA_URL }}");