From 599b6aab677439ae1bdea2cdca3233d0b763fd3f Mon Sep 17 00:00:00 2001 From: Reinier Zwitserloot Date: Mon, 17 Oct 2016 23:09:21 +0200 Subject: Updated just about all of the pages to the template-based redesign. Added ajaxified loading for feature pages. --- website2/resources/js/main.js | 54 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 website2/resources/js/main.js (limited to 'website2/resources/js/main.js') diff --git a/website2/resources/js/main.js b/website2/resources/js/main.js new file mode 100644 index 00000000..497b310c --- /dev/null +++ b/website2/resources/js/main.js @@ -0,0 +1,54 @@ +"use strict"; + +(function($) { + swfobject.registerObject("player", "9.0.98", "videos/expressInstall.swf"); + + function toKey(href) { + var lnk = "__savedContent_" + href.replace(/\//g, '_'); + if (lnk.substring(lnk.length - 5) === ".html") lnk = lnk.substring(0, lnk.length - 5); + return lnk; + } + + function ajaxFeaturePages() { + if (!History.enabled) return; + History.replaceState({urlPath: window.location.pathname}, $("title").text(), History.getState().urlpath); + + $("a").each(function() { + var self = $(this); + var href = self.attr("href"); + if (!href) return; + if (href.substring(0, 10) !== "/features/") return; + self.on("click", function(evt) { + evt.preventDefault(); + var key = toKey(window.location.pathname); + if ($("#" + key).length < 1) { + var d = $("
").attr("id", key).append($("#featureContent").contents()).hide(); + $("body").append(d); + } + History.pushState({urlPath: href}, self.text(), href); + }); + }); + + $(window).on("statechange", function() { + var hs = History.getState(); + var u = hs.data.urlPath; + if (u.substring(u.length - 5) !== ".html") u += ".html"; + var key = toKey(u); + var sc = $("#" + key); + if (sc.length > 0) { + var a = $("#featureContent"); + sc.show().attr("id", "featureContent"); + a.replaceWith(sc); + } else { + $.ajax({ + url: u, + success: function(response) { + $("#featureContent").replaceWith($(response).find("#featureContent")); + } + }); + } + }); + } + + $(ajaxFeaturePages); +})($); \ No newline at end of file -- cgit