casper-modified-ghost-theme/partials/isso-scripts.hbs

76 lines
3.3 KiB
Handlebars
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<script>
function addCheckbox(container = document) {
const original_submit = container.querySelector(
".post-action input[type='submit']"
);
original_submit.style.setProperty("display", "none");
const faux_submit = document.createElement("input");
faux_submit.value = "Wyślij";
faux_submit.type = "submit";
const comment_checkbox_id = "comment-checkbox";
const checkbox = document.createElement("input");
checkbox.type = "checkbox";
checkbox.id = comment_checkbox_id;
checkbox.required = true;
const label = document.createElement("label");
label.style.setProperty("line-height", 1);
label.style.setProperty("margin", "1em 0");
label.for = comment_checkbox_id;
label.appendChild(checkbox);
label.id = comment_checkbox_id + "__label";
const label_text = document.createElement("span");
label_text.innerHTML = `Zapoznałam/em się z <a href="/regulamin-komentarzy">Regulaminem publikowania komentarzy</a> i&nbsp;akceptuję jego treść.`;
label.appendChild(label_text);
container
.querySelector("#isso-thread .auth-section")
.insertBefore(
label,
container.querySelector(".auth-section .post-action")
);
const legal = document.createElement("p");
legal.classList.add("legal");
legal.innerHTML = `Współadministratorami danych osobowych są Arkadiusz Wieczorek oraz Jan Orlik. Dane osobowe podane w formularzu są przetwarzane w celu realizacji usługi publikowania komentarzy na stronie internetowej współadministratorów, jak również w celu ustalenia, dochodzenia lub obrony roszczeń. Masz w szczególności prawo dostępu do swoich danych osobowych, ich usunięcia oraz wniesienia sprzeciwu wobec przetwarzania danych. Szczegóły dotyczące przetwarzania danych osobowych i przysługujących Ci praw znajdują się w <a href="/polityka-prywatnosci">Polityce prywatności</a>.`;
legal.style.setProperty("hyphens", "auto");
legal.style.setProperty("text-align", "justify");
legal.style.setProperty("font-style", "italic");
legal.style.setProperty("font-size", "1.333rem");
legal.style.setProperty("line-height", "150%");
container
.querySelector("#isso-thread .auth-section")
.insertBefore(
legal,
container.querySelector(".auth-section .post-action")
);
const email_input = container.querySelector(`input[type="email"]`);
email_input.placeholder = "adres E-mail";
email_input.required = true;
faux_submit.addEventListener("click", () => {
if (!email_input.validity.valid) {
email_input.reportValidity();
} else if (!checkbox.checked) {
checkbox.reportValidity();
} else {
original_submit.click();
}
});
original_submit.parentElement.appendChild(faux_submit);
}
(async function () {
for (let i = 0; i <= 20; i++) {
if (document.querySelector(".post-action input[type='submit']")) {
continue;
}
await new Promise((resolve) => setTimeout(resolve, 200));
}
addCheckbox(document.querySelector("#isso-thread"));
document.querySelectorAll(".isso-comment-footer a.reply").forEach((el) =>
el.addEventListener("click", (e) =>
setTimeout(() => {
addCheckbox(e.target.parentNode.nextSibling);
}, 20)
)
);
})();
</script>