50 lines
No EOL
1.4 KiB
JavaScript
50 lines
No EOL
1.4 KiB
JavaScript
if(window.location['pathname'] == "/post.html"){
|
|
loadPost();
|
|
}
|
|
|
|
|
|
function getParameter(key) {
|
|
|
|
// Address of the current window
|
|
let address = window.location.search
|
|
|
|
// Returns a URLSearchParams object instance
|
|
let parameterList = new URLSearchParams(address)
|
|
|
|
// Returning the respected value associated
|
|
// with the provided key
|
|
return parameterList.get(key)
|
|
}
|
|
|
|
async function loadPost() {
|
|
let id = getParameter("id");
|
|
|
|
let header = document.createElement("jl-header");
|
|
let footer = document.createElement("jl-footer");
|
|
let content = document.createElement("div");
|
|
|
|
if(id == null) {
|
|
content.innerHTML = "<h1>404 - Post not found</h1>";
|
|
} else {
|
|
var graphql = JSON.stringify({
|
|
query: 'query($postID: String!) {blogPost(id: $postID) {content title}}',
|
|
variables: {
|
|
"postID": id
|
|
}
|
|
})
|
|
var requestOptions = {
|
|
method: 'POST',
|
|
body: graphql,
|
|
};
|
|
let post = (await (await fetch("/API/graphql.php", requestOptions)).json()).data.blogPost;
|
|
content.innerHTML = post["content"];
|
|
document.title = post["title"] + " - Jonas Leder";
|
|
|
|
header.setAttribute("data-title", post["title"]);
|
|
}
|
|
content.id = "content";
|
|
|
|
document.body.appendChild(header);
|
|
document.body.appendChild(content);
|
|
document.body.appendChild(footer);
|
|
} |