diff --git a/templates/client/includes/banners/tops.html b/templates/client/includes/banners/tops.html index d421696d..f1678855 100644 --- a/templates/client/includes/banners/tops.html +++ b/templates/client/includes/banners/tops.html @@ -1,3 +1,5 @@ +{% load static %} +
diff --git a/templates/client/static_client/js/rejs/tops.js b/templates/client/static_client/js/rejs/tops.js index b3fbd8a5..5f99943b 100644 --- a/templates/client/static_client/js/rejs/tops.js +++ b/templates/client/static_client/js/rejs/tops.js @@ -4,5 +4,67 @@ var API_URL_ROOT = "/expo-b/get-tops/"; var PARENT_ID = "expo_top_events"; - console.log("TOPS"); + 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(JSON.parse(event.target.responseText)); + } catch (error) { + // do nothing + } + } + } + }; + + xhr.send(); + }; + + var insertTops = function (data) { + console.log(data); + }; + + var main = function () { + console.log("### TOPS ###"); + + getTops(getUrl(), insertTops); + }; + + window.addEventListener("load", main); })();