| Server IP : 23.254.227.96 / Your IP : 216.73.216.21 Web Server : Apache/2.4.62 (Unix) OpenSSL/1.1.1k System : Linux hwsrv-1277026.hostwindsdns.com 4.18.0-477.13.1.el8_8.x86_64 #1 SMP Tue May 30 14:53:41 EDT 2023 x86_64 User : viralblo ( 1001) PHP Version : 8.1.31 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/viralblo/public_html/js/ |
Upload File : |
// Comment submit Function //
function SubmitComment() {
event.preventDefault();
let commentForm = document.getElementById('comment_form');
let url = commentForm.action;
let formData = new FormData(commentForm);
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
let comBtn = document.getElementById('postcomment');
let successMsg = document.getElementById('show-com-msg');
let comCountDiv = document.getElementById('comcount');
let comCount = comCountDiv.innerHTML;
let comArea = document.getElementById('com-area');
let parentDiv = document.getElementById('dynamic_com');
let orgBtn = comBtn.innerHTML;
comBtn.disabled = true;
comBtn.innerHTML =
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> ' +
processing;
fetch(url, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
},
body: formData,
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
successMsg.innerHTML = '';
comArea.value = '';
successMsg.classList.remove('d-none');
successMsg.innerHTML +=
'<span class="align-self-center"><small>' +
successCom +
'</small></span>';
var divTop = document.createElement('div');
divTop.className = 'maincom';
var divCom = document.createElement('div');
divCom.className = 'd-flex pt-3';
divCom.innerHTML =
'<img class="flex-shrink-0 me-3 avatar img-fluid rounded-circle" src="' +
data.avatar +
'"><p class="pb-3 mb-0 small lh-sm border-comment w-100"><input type="hidden" class="comment_id own_id" value="' +
data.comid +
'" /><span class="d-block mb-2"><strong class="text-gray-800"><a href="' +
siteURL +
'/profile/' +
data.username +
'">' +
data.user +
'</a></strong> <span class="usrname text-muted">@' +
data.username +
' </span><span class="badge bg-info text-dark time">' +
now +
'</span></span><span class="combody">' +
data.success +
'</span><span class="d-block mt-2"><a class="link-secondary me-3" onclick="ReplyComment(this)" href="#">' +
MsgReply +
'</a><a class="link-secondary me-3" onclick="EditComment(this)" href="#">' +
MsgEdit +
'</a><a onclick="DeleteComment(this)" class="link-secondary" href="#">' +
MsgDelete +
'</a></span> <span class="d-block mt-2 editcomment d-none"> </span> </p>';
divTop.appendChild(divCom);
parentDiv.insertBefore(divTop, parentDiv.firstChild);
comCountDiv.innerHTML = ++comCount;
} else {
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
successMsg.innerHTML = '';
successMsg.classList.remove('d-none');
successMsg.innerHTML +=
'<span class="align-self-center text-danger"><small>' +
data.error +
'</small></span>';
}
})
.catch((error) => {
console.error('Error:', error);
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
});
}
function RemoveBox(input) {
event.preventDefault();
let ownDiv = input.closest('.pb-3');
let EditComment = ownDiv.querySelector('.editcomment');
EditComment.innerHTML = '';
EditComment.classList.add('d-none');
}
function EditComment(input) {
event.preventDefault();
let ownDiv = input.closest('.pb-3');
let EditComment = ownDiv.querySelector('.editcomment');
let getTxt = ownDiv.querySelector('.combody').innerText;
EditComment.innerHTML =
'<textarea name="body" class="form-control mb-3" rows="3">' +
getTxt +
'</textarea><div class="form-text pb-2 d-none text-danger"></div><button class="btn btn-success btn-sm me-2" type="button" onclick="UpdateComment(this)">' +
MsgEdit +
'</button> <button class="btn btn-secondary btn-sm" type="button" onclick="RemoveBox(this)">' +
MsgCancel +
'</button>';
EditComment.classList.remove('d-none');
}
function ReplyComment(input) {
event.preventDefault();
let ownDiv = input.closest('.pb-3');
let ReplyComment = ownDiv.querySelector('.editcomment');
let parendID = ownDiv.querySelector('.comment_id').value;
let getUser = ownDiv.querySelector('.usrname').innerHTML;
ReplyComment.innerHTML =
'<form class="reply_form" method="POST" action="' +
siteURL +
'/comments"><input type="hidden" name="post_id" value="' +
postID +
'" /><input type="hidden" name="parent_id" value="' +
parendID +
'" /><textarea name="body" class="form-control mb-3" rows="3">' +
getUser +
' </textarea><div class="form-text pb-2 d-none text-danger"></div><button class="btn btn-primary btn-sm me-2" type="button" onclick="ReplySend(this)">' +
MsgReply +
'</button> <button class="btn btn-secondary btn-sm" type="button" onclick="RemoveBox(this)">' +
MsgCancel +
'</button></form>';
ReplyComment.classList.remove('d-none');
}
// Comment reply Function //
function ReplySend(input) {
event.preventDefault();
let ownDiv = input.closest('.editcomment');
let mainDiv = ownDiv.closest('.pt-3');
let parendID = mainDiv.querySelector('.comment_id').value;
let replyForm = ownDiv.querySelector('.reply_form');
let errMsg = ownDiv.querySelector('.form-text');
let url = replyForm.action;
let comCountDiv = document.getElementById('comcount');
let comCount = comCountDiv.innerHTML;
let formData = new FormData(replyForm);
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
let comBtn = ownDiv.querySelector('.btn-primary');
let orgBtn = comBtn.innerHTML;
comBtn.disabled = true;
comBtn.innerHTML =
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> ' +
processing;
fetch(url, {
method: 'POST',
headers: {
'X-CSRF-TOKEN': token,
},
body: formData,
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
ownDiv.classList.add('d-none');
var divCom = document.createElement('div');
divCom.className = 'd-flex pt-3 ps-5';
divCom.innerHTML =
'<img class="flex-shrink-0 me-3 avatar-sm img-fluid rounded-circle" src="' +
data.avatar +
'"><p class="pb-3 mb-0 small lh-sm border-comment w-100"><input type="hidden" class="comment_id" value="' +
parendID +
'" /><input type="hidden" class="own_id" value="' +
data.comid +
'" /><span class="d-block mb-2"><strong class="text-gray-800"><a href="' +
siteURL +
'/profile/' +
data.username +
'">' +
data.user +
'</a></strong> <span class="usrname text-muted">@' +
data.username +
' </span><span class="badge bg-info text-dark time">' +
now +
'</span></span><span class="combody">' +
data.success +
'</span><span class="d-block mt-2"><a class="link-secondary me-3" onclick="ReplyComment(this)" href="#">' +
MsgReply +
'</a><a class="link-secondary me-3" onclick="EditComment(this)" href="#">' +
MsgEdit +
'</a><a onclick="DeleteComment(this)" class="link-secondary" href="#">' +
MsgDelete +
'</a></span> <span class="d-block mt-2 editcomment d-none"> </span> </p>';
mainDiv.after(divCom);
comCountDiv.innerHTML = ++comCount;
} else {
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
errMsg.innerHTML = '';
errMsg.classList.remove('d-none');
errMsg.innerHTML += data.error;
}
})
.catch((error) => {
console.error('Error:', error);
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
});
}
// Update Comment Function //
function UpdateComment(input) {
event.preventDefault();
let ownDiv = input.closest('.editcomment');
let mainDiv = ownDiv.closest('.pt-3');
let ownID = mainDiv.querySelector('.own_id').value;
let errMsg = ownDiv.querySelector('.form-text');
let comBody = mainDiv.querySelector('.combody');
let comnewBody = ownDiv.querySelector('.form-control');
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
let comBtn = ownDiv.querySelector('.btn-success');
let orgBtn = comBtn.innerHTML;
comBtn.disabled = true;
comBtn.innerHTML =
'<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> ' +
processing;
fetch(siteURL + '/comments/' + ownID, {
method: 'PUT',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json, text-plain, */*',
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN': token,
},
body: JSON.stringify({
id: ownID,
body: comnewBody.value,
}),
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
ownDiv.classList.add('d-none');
comBody.innerHTML = data.success;
} else {
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
errMsg.innerHTML = '';
errMsg.classList.remove('d-none');
errMsg.innerHTML += data.error;
}
})
.catch((error) => {
console.error('Error:', error);
comBtn.innerHTML = orgBtn;
comBtn.disabled = false;
});
}
function DeleteComment(input) {
event.preventDefault();
let ownDiv = input.closest('.pb-3');
let EditComment = ownDiv.querySelector('.editcomment');
let getTxt = ownDiv.querySelector('.combody').innerHTML;
EditComment.innerHTML =
'<span class="fw-bolder me-3">' +
MsgSure +
'</span><a class="me-3" onclick="DeleteCommentRequest(this)" href="#">' +
MsgDelete +
'</a> <a class="me-3" href="#" onclick="RemoveBox(this)">' +
MsgCancel +
'</a>';
EditComment.classList.remove('d-none');
}
// Delete Comment From Database Function //
function DeleteCommentRequest(input) {
event.preventDefault();
let ownDiv = input.closest('.editcomment');
let checkDiv = ownDiv.closest('.pt-3');
if (checkDiv.classList.contains('ps-5')) {
var mainDiv = ownDiv.closest('.pt-3');
} else {
var mainDiv = ownDiv.closest('.maincom');
}
let comCountDiv = document.getElementById('comcount');
let comCount = comCountDiv.innerHTML;
let ownID = mainDiv.querySelector('.own_id').value;
let token = document
.querySelector('meta[name="csrf-token"]')
.getAttribute('content');
fetch(siteURL + '/comments/' + ownID, {
method: 'DELETE',
headers: {
'Content-Type': 'application/json',
Accept: 'application/json, text-plain, */*',
'X-Requested-With': 'XMLHttpRequest',
'X-CSRF-TOKEN': token,
},
body: JSON.stringify({
id: ownID,
}),
})
.then((response) => response.json())
.then((data) => {
if (data.success) {
mainDiv.remove();
comCountDiv.innerHTML = --comCount;
}
})
.catch((error) => {
console.error('Error:', error);
});
}