diff --git a/templates/client/blank.html b/templates/client/blank.html index 00219448..1be9b75a 100644 --- a/templates/client/blank.html +++ b/templates/client/blank.html @@ -87,7 +87,7 @@ This template include basic anf main styles and js files, "tag": "{{ tag }}" }; - +
diff --git a/templates/client/includes/banners/tops.html b/templates/client/includes/banners/tops.html index 142e63a4..f1678855 100644 --- a/templates/client/includes/banners/tops.html +++ b/templates/client/includes/banners/tops.html @@ -1,13 +1,7 @@ +{% load static %} +
-
+
diff --git a/templates/client/static_client/js/banners.js b/templates/client/static_client/js/rejs/banners.js
similarity index 89%
rename from templates/client/static_client/js/banners.js
rename to templates/client/static_client/js/rejs/banners.js
index 1f6126ca..df86bbb0 100644
--- a/templates/client/static_client/js/banners.js
+++ b/templates/client/static_client/js/rejs/banners.js
@@ -4,10 +4,17 @@
var API_URL_ROOT = "/expo-b/get-banners/";
var getUrl = function () {
+ var catalog = "";
+
+ var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname);
+ if (parts) {
+ catalog = parts[1];
+ }
+
var data = window.sendData;
if (data instanceof Object) {
- var search = [];
+ var search = ["catalog=" + catalog];
for (var key in data) {
if (data.hasOwnProperty(key)) {
@@ -23,9 +30,7 @@
}
}
- if (search.length) {
- return API_URL_ROOT + "?" + search.join("&");
- }
+ return API_URL_ROOT + "?" + search.join("&");
}
return API_URL_ROOT;
diff --git a/templates/client/static_client/js/rejs/tops.js b/templates/client/static_client/js/rejs/tops.js
new file mode 100644
index 00000000..db87aa6a
--- /dev/null
+++ b/templates/client/static_client/js/rejs/tops.js
@@ -0,0 +1,72 @@
+(function () {
+ "use strict";
+
+ var API_URL_ROOT = "/expo-b/get-tops/";
+ var PARENT_ID = "expo_top_events";
+
+ var getUrl = function () {
+ var catalog = "";
+
+ var parts = /^\/([^\/]+)(?:\/|$)/i.exec(location.pathname);
+ if (parts) {
+ catalog = parts[1];
+ }
+
+ var data = window.sendData;
+
+ if (data instanceof Object) {
+ var search = ["catalog=" + catalog];
+
+ for (var key in data) {
+ if (data.hasOwnProperty(key)) {
+ var value = data[key];
+
+ if (value instanceof Array) {
+ for (var i = 0, l = value.length; i < l; i++) {
+ search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value[i]));
+ }
+ } else {
+ search.push(encodeURIComponent(key) + "=" + encodeURIComponent(value));
+ }
+ }
+ }
+
+ return API_URL_ROOT + "?" + search.join("&");
+ }
+
+ return API_URL_ROOT;
+ };
+
+ var getTops = function (url, callback) {
+ var xhr = new XMLHttpRequest();
+ xhr.open("GET", url, true);
+
+ xhr.onreadystatechange = function (event) {
+ if (event.target.readyState === 4) {
+ if (event.target.status === 200) {
+ try {
+ callback(event.target.responseText);
+ } catch (error) {
+ // do nothing
+ }
+ }
+ }
+ };
+
+ xhr.send();
+ };
+
+ var insertTops = function (text) {
+ var parent = document.getElementById(PARENT_ID);
+
+ if (parent) {
+ parent.innerHTML = text;
+ }
+ };
+
+ var main = function () {
+ getTops(getUrl(), insertTops);
+ };
+
+ window.addEventListener("load", main);
+})();