Web/main/scripts/blog.js
Ell c24d2ea943
All checks were successful
Web/pipeline/head This commit looks good
force to anchor after loading the blog
2021-11-08 18:45:31 +01:00

38 lines
1.2 KiB
JavaScript

$("#blog-archive-button").on("click", function () {
let archive = $('#blog-archive');
archive.toggle();
$(this).html((archive.is(":visible") ? "Hide" : "Show") + " archived posts");
});
$(".blog-cat-button").on("click", function () {
let tag = $(this).attr("id");
openCategory(tag);
history.replaceState(null, null, `#blog-${tag}`);
});
let category = location.hash.match(/#blog-(.+)/);
openCategory(category && decodeURI(category[1]));
forceToAnchor();
function openCategory(name) {
// if there are no tags that match our name, we display featured
if (!name || $(`#blog-${name}`).length <= 0)
name = "featured";
let all = name == "all";
// toggle post visibilites
$(".blog-entry").each(function () {
let e = $(this);
if (all || e.hasClass(`blog-tag-${name}`)) {
e.show();
} else {
e.hide();
}
});
// show or hide "no archived posts" text
$("#no-archived-posts").attr("hidden", $("#blog-archive").children(all ? "*" : `.blog-tag-${name}`).length > 0);
// disable the shown category's button
$(`.blog-cat-button`).each(function () {
$(this).attr("disabled", $(this).attr("id") == name);
});
}