docbrown/app/assets/javascripts/initializers/initializeBodyData.js
Ben Halpern 0941b2e4fb
Add some tests around model validations (#459)
* Modify sample_application.yml and write test

* Add ahrefs verification

* Add some tests around model validations

* Indent an end

* Add a few tests

* Add tests and reserved words

* Fix live articles spec typo

* Modify ga_events_controller
2018-06-20 17:14:08 -04:00

53 lines
No EOL
1.7 KiB
JavaScript

function initializeBodyData() {
fetchBaseData();
}
function fetchBaseData() {
var xmlhttp;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == XMLHttpRequest.DONE ) {
var json = JSON.parse(xmlhttp.responseText);
if (json.token) {
removeExistingCSRF();
}
var meta = document.createElement('meta');
var metaTag = document.querySelector("meta[name='csrf-token']");
meta.name = "csrf-param";
meta.content = json.param;
document.getElementsByTagName('head')[0].appendChild(meta);
var meta = document.createElement('meta');
meta.name = "csrf-token";
meta.content = json.token;
document.getElementsByTagName('head')[0].appendChild(meta);
document.getElementsByTagName('body')[0].dataset.loaded = "true";
if (checkUserLoggedIn()) {
document.getElementsByTagName('body')[0].dataset.user = json.user;
browserStoreCache("set",json.user)
setTimeout(function(){
if (typeof ga === "function") {
ga('set', 'userId', JSON.parse(json.user).id);
}
},400)
}
}
};
var timeString = (Date.now()).toString();
xmlhttp.open("GET", "/async_info/base_data", true);
xmlhttp.send();
}
function removeExistingCSRF(){
var csrfTokenMeta = document.querySelector("meta[name='csrf-token']");
var csrfParamMeta = document.querySelector("meta[name='csrf-param']");
if (csrfTokenMeta && csrfParamMeta) {
csrfTokenMeta.parentNode.removeChild(csrfTokenMeta);
csrfParamMeta.parentNode.removeChild(csrfParamMeta);
}
}