Archived
1
0
This repository has been archived on 2020-12-10. You can view files and clone it, but cannot push or open issues or pull requests.
old/assets/js/blog.js

136 lines
5.2 KiB
JavaScript

$(document).ready(function () {
$.ajax({
url: "/blog/getComments",
data: {
url: window.location.pathname
},
beforeSend: function () {
$("#comment-list").html("<h2><i class='fa fa-cog fa-spin'></i> Loading Comments</h2>");
},
success: function (data) {
console.log(data);
$("#comment-list").html(data);
},
error: function () {
$("#comment-list").html("<div class='alert alert-danger' role='alert'><b>Error!</b> Couldn't load the comments for this posts caused by an unkown error! Please try again later or contact the admin for help.</div>");
}
});
$('.blog .info-box').each((el) => {
console.log(el);
});
});
$('#commentForm').submit(function (event) {
event.preventDefault();
addComment();
});
var addComment = function () {
if ($('#commentField').val() !== '') {
var comment = $('#commentField').val();
comment.replace("\n", "<br>");
var item;
$.ajax({
url: "/blog/comment",
method: 'POST',
data: {
url: window.location.pathname,
comment: comment
},
beforeSend: function () {
var date = new Date();
date = date.getDate() + '.' + date.getMonth() + '.' + date.getYear() + ' ' + date.getHours() + ':' + date.getMinutes() + ' Uhr';
item = $(`
<li>
<div class="well comment-well">
<div class="d-inline-block mr-2">
<div class="image-placeholder">
</div>
</div>
<div class="d-inline-block mr-2">
<h3>
<small>
von Dir / ${date}
</small>
</h3>
<p class="comment">${comment}</p>
</div>
<div class="loading-container d-inline-block">
<i class="fa fa-cog fa-spin"></i>
</div>
</div>
</li>
`);
$('#comment-list').prepend(item);
$('#commentField').attr('disabled', '');
$('#addComment').attr('disabled', '');
},
success: function (data) {
console.log(data);
if (data.type === 'success') {
$('#commentField').val('');
$('#notice-container').html('<div class="alert alert-success" role="alert">Dein Kommentar wurde <b>erfolgreich</b> gesendet!</div>');
$('.loading-container', item).css('background-color', '#28b62c');
$('.loading-container i', item)
.removeClass('fa-cog').removeClass('fa-spin')
.addClass('fa-check').css('color', '#fff');
$('.content h3 small', item).hide()
.html(`von <a href="/user/${data.content.username}" target="_blank">${data.content.displayname}</a> / ${data.content.date}`).fadeIn();
$('.loading-container', item).delay(2000).fadeOut(2000);
$('.comment-well', item).prepend(`<img src="${data.content.profilePic}" style="display:none">`);
$('.comment-well img', item).fadeIn(2000);
$('.image-placeholder', item).remove();
wait(8000);
$('.content', item).removeClass('small');
$('.comment-count').text(parseInt($('.comment-count').text()) + 1);
} else {
}
},
error: function (data) {
console.log(data);
$('#notice-container').html('<div class="alert alert-danger" role="alert"><b>Error:</b> Comment couldn\'t be sent caused by an unkown error! Please try again later or contact the admin to get help!</div>')
$('div.loading-container', item).css('background-color', '#ff4136');
$('div.loading-container i', item).removeClass('fa-cog').removeClass('fa-spin').addClass('fa-exclamation').css("color", '#fff');
$(item).delay(3000).fadeOut(2000);
},
complete: function () {
$('#commentField').removeAttr('disabled');
$('#addComment').html('Kommentar senden').removeAttr('disabled');
}
});
}
};
function wait(ms) {
var start = new Date().getTime();
var end = start;
while (end < start + ms) {
end = new Date().getTime();
}
}
function likeDislike(postID) {
$.ajax({
type: "POST",
url: "/blog/like",
data: {
postID: postID
},
success: function (data) {
if (data == "no-user") {
$('#loginModal').modal('show');
} else {
data = data.split(":");
$('.like-toggle-icon').toggleClass('-checked');
$('.like-count').text(data[1]);
}
}
});
};