51 lines
No EOL
2 KiB
JavaScript
51 lines
No EOL
2 KiB
JavaScript
function timestamp(str, ti) {
|
|
date = new Date(ti*1000);
|
|
document.getElementById(str).setAttribute("data-bs-original-title", date.toString());
|
|
};
|
|
|
|
function collapse_comment(comment_id) {
|
|
const comment = document.getElementById(`comment-${comment_id}`)
|
|
const top = comment.getBoundingClientRect().y;
|
|
|
|
const toggler = document.getElementById(`comment-collapse-${comment_id}`);
|
|
|
|
['hidden', 'pointer-events-none'].map(x=> toggler.classList.toggle(x));
|
|
|
|
['items-center', 'opacity-50', 'md:hover:opacity-100', 'collapsed'].map(y=> comment.classList.toggle(y)); // apply flex alignment and opacity to comment parent wrapping div
|
|
|
|
const isClosed = comment.classList.contains("collapsed");
|
|
|
|
const icon = document.getElementsByClassName(`comment-toggle-icon-${comment_id}`);
|
|
for (let i = 0; i < icon.length; i++) {
|
|
//icon[i].innerText = isClosed ? '[+]' : '[-]'; // text fallback if we don't want to use icons
|
|
icon[i].classList.toggle('fa-minus-circle');
|
|
icon[i].classList.toggle('fa-plus-circle');
|
|
}
|
|
|
|
if (isClosed && top < 0) {
|
|
comment.scrollIntoView()
|
|
window.scrollBy(0, - 100)
|
|
}
|
|
};
|
|
|
|
function morecomments(cid) {
|
|
btn = document.getElementById(`btn-${cid}`);
|
|
btn.disabled = true;
|
|
btn.innerHTML = "Requesting...";
|
|
var form = new FormData();
|
|
form.append("formkey", formkey());
|
|
var xhr = new XMLHttpRequest();
|
|
xhr.open("post", `/morecomments/${cid}`);
|
|
xhr.withCredentials=true;
|
|
xhr.onload=function(){
|
|
if (xhr.status==200) {
|
|
document.getElementById(`morecomments-${cid}`).innerHTML = xhr.response.replace(/data-src/g, 'src').replace(/data-cfsrc/g, 'src').replace(/style="display:none;visibility:hidden;"/g, '');
|
|
var tooltipTriggerList = [].slice.call(document.querySelectorAll('[data-bs-toggle="tooltip"]'));
|
|
tooltipTriggerList.map(function(element){
|
|
return new bootstrap.Tooltip(element);
|
|
});
|
|
popovertrigger()
|
|
}
|
|
}
|
|
xhr.send(form)
|
|
} |