Merge branch 'master' into kevin-prototype

This commit is contained in:
K. Nobel
2017-02-02 13:15:29 +01:00
36 changed files with 408 additions and 125 deletions

View File

@@ -0,0 +1,20 @@
<?php
session_start();
require_once "../../queries/post.php";
require_once "../../queries/user.php";
if (isset($_SESSION["userID"]) and
getRoleByID($_SESSION["userID"]) != 'frozen' and
getRoleByID($_SESSION["userID"]) != 'banned') {
if (empty($_POST["postID"]) or empty($_SESSION["userID"])) {
header('HTTP/1.1 500 Non enough arguments');
}
deletePost($_POST["postID"], $_SESSION["userID"]);
return;
} else {
echo "frozen";
}

View File

@@ -6,6 +6,7 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/private_message.php");
require_once("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
echo selectAllUnreadChat();

View File

@@ -6,6 +6,7 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/friendship.php");
require_once ("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'frozen' &&
getRoleByID($_SESSION["userID"]) != 'banned') {

View File

@@ -7,9 +7,11 @@ require_once ("../../queries/checkInput.php");
require_once ("../../queries/friendship.php");
require_once("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
if (isset($_SESSION["userID"])) {
// Echo the limited or unlimited users.
if (isset($_POST["limit"])) {
echo selectLimitedFriends($_SESSION["userID"], (int)test_input($_POST["limit"]));
} else if (isset($_GET["limit"])) {

View File

@@ -8,8 +8,10 @@ require_once ("../../queries/group_member.php");
require_once("../../queries/user.php");
// Check if the user is allowed to load them.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
// Echo the limited or unlimited groups.
if (isset($_POST["limit"])) {
echo selectLimitedGroupsFromUser($_SESSION["userID"], (int)test_input($_POST["limit"]));
} else {

View File

@@ -8,8 +8,10 @@ require_once("../../queries/checkInput.php");
require_once("../../queries/friendship.php");
require_once("../../queries/user.php");
// Check if the user is allowed to get the messages.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
// Check if the users wants new messages or old ones, and give the right one back.
if (isset($_POST["lastID"]) && $_POST["lastID"] != "") {
setLastVisited(test_input($_POST["destination"]));
echo getNewChatMessages(test_input($_POST["lastID"]), test_input($_POST["destination"]));

View File

@@ -6,11 +6,11 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/checkInput.php");
require_once ("../../queries/user.php");
require_once ("../../queries/group_page.php");
require_once ("../../queries/friendship.php");
require_once ("../../queries/group_member.php");
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') {
$user_perpage = $group_perpage = 20;
getRoleByID($_SESSION["userID"]) != 'banned') {$user_perpage = $group_perpage = 20;
$user_currentpage = $group_currentpage = 1;
if (isset($_POST['user-pageselect'])) {
@@ -28,20 +28,26 @@ if (isset($_SESSION["userID"]) &&
$search = test_input($_POST['search']);
}
$user_count = countSomeUsers($search)->fetchColumn();
$group_count = countSomeGroups($search)->fetchColumn();
$filter = "all";
if (isset($_POST['filter'])) {
$filter = test_input($_POST['filter']);
}
if ($filter == "all") {
$user_count = countSomeUsers($search)->fetchColumn();
$group_count = countSomeGroups($search)->fetchColumn();
} else {
$user_count = countSomeFriends($search);
$group_count = countSomeOwnGroups($search);
}
$option = "user";
if (isset($_POST['option'])) {
$option = test_input($_POST['option']);
}
include("../../views/searchPageNumber.php");
include ("../../views/searchPageNumber.php");
} else {
header('HTTP/1.0 403 Forbidden');
}
}

View File

@@ -6,12 +6,15 @@ require_once("../../queries/private_message.php");
require_once("../../queries/checkInput.php");
require_once("../../queries/user.php");
// Check if the user is allowed to send a message.
if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'frozen' &&
getRoleByID($_SESSION["userID"]) != 'banned') {
if (!empty(test_input($_POST["destination"])) &&
!empty(test_input($_POST["content"]))
) {
// Send the message.
// Returns false when it didn't succeed sending the message.
if (sendMessage(test_input($_POST["destination"]), test_input($_POST["content"]))) {
echo 1;
} else {

View File

@@ -4,6 +4,7 @@ session_start();
include_once ("../../queries/friendship.php");
// Initialize variables to given or default values.
if (isset($_POST["action"])) {
$action = $_POST["action"];
} else {
@@ -18,6 +19,8 @@ if (isset($_POST["actionType"])) {
$friends = json_decode($_POST["friends"]);
// Foreach friend, return them as list item.
foreach($friends as $i => $friend) {
$friendshipStatus = getFriendshipStatus($friend->userID);
?>
@@ -38,7 +41,7 @@ foreach($friends as $i => $friend) {
<?= $friend->fullname ?><br/>
<span style='color: #666'><?php
if (isset($friend->username)) {
echo $friend->username;
echo $friend->usernameshort;
} else if (isset($friend->content)) {
echo $friend->content;
}
@@ -48,6 +51,7 @@ foreach($friends as $i => $friend) {
</button>
</form>
<?php
// Add friendship options if possible.
if ($friendshipStatus > 1) {
if ($friendshipStatus == 2) {
$denyName = "Annuleer";

View File

@@ -6,6 +6,7 @@ include_once ("../../queries/group_member.php");
$groups = json_decode($_POST["groups"]);
// Add each group as list item.
foreach($groups as $i => $group) {
?>
<li class='group-item'>

View File

@@ -9,13 +9,17 @@ $(document).ready(function() {
$(".chat-field").hide();
});
// This function loads the new messages and runs the addMessages function to show them.
function loadMessages() {
// If the function is not running elsewhere, run it here.
if (!gettingMessages) {
gettingMessages = true;
// Get the messages.
$.post(
"API/loadMessages.php",
$("#lastIDForm").serialize()
).done(function (data) {
// Post the messages in the chat.
if (data && data != "[]") {
messages = JSON.parse(data);
addMessages(messages);
@@ -28,7 +32,7 @@ function loadMessages() {
}
}
// Send a message to a friend of the user.
function sendMessage() {
$.post(
"API/sendMessage.php",
@@ -37,42 +41,54 @@ function sendMessage() {
if (response == "frozen") {
alert("Je account is bevroren, dus je kan niet chat berichten versturen. Contacteer een admin als je denkt dat dit onjuist is.");
}
// Load messages if the message has been send, so it shows in the chat.
loadMessages();
});
$("#newContent").val("");
loadMessages();
}
// Add messages to the chat.
function addMessages(messages) {
var messagesText = "";
// Loop over all the messages.
for(var i in messages) {
// Initialize message variables
// Initialize message variables.
var thisDate = new Date(messages[i].creationdate.replace(/ /,"T"));
var thisTime = thisDate.getHours() + ":" + thisDate.getMinutes();
var type;
thisDate.setHours(0,0,0,0);
// See where the message has been send from, so it shows on the right side.
if (messages[i].destination == $(".destinationID").val()) {
type = "chat-message-self";
} else {
type = "chat-message-other";
}
// If it is the first message, open the message box and maybe add a year.
if (i == 0) {
if (thisDate.getTime() > previousDate.getTime()) {
messagesText += '\
<div class="day-message"> \
<div class="day-message-content">\
' + days[thisDate.getDay()] + " " + thisDate.getDate() + " " + months[thisDate.getMonth()] + " " + thisDate.getFullYear() + '\
</div> \
</div>';
}
previousDate = thisDate;
messagesText += '\
<div class="day-message"> \
<div class="day-message-content">\
' + days[thisDate.getDay()] + " " + thisDate.getDate() + " " + months[thisDate.getMonth()] + " " + thisDate.getFullYear() + '\
</div> \
</div>';
messagesText += '<div class="chat-message"><div class="' + type + '">';
// If it is not the first message, and has a different date/time/type then the previous message,
} else if (type != previousType || thisTime != previousTime || thisDate.getTime() > previousDate.getTime()) {
// Close the previous message.
messagesText += '<div class="chat-time">\
' + thisTime + '\
</div></div></div>';
previousTime = thisTime;
previousType = type;
// If the date is different, add a new date.
if (thisDate > previousDate) {
previousDate = thisDate;
messagesText += '\
@@ -83,8 +99,11 @@ function addMessages(messages) {
</div>';
}
// Open the new message.
messagesText += '<div class="chat-message"><div class="' + type + '">';
}
// Add the content of the message in the new box.
messagesText += fancyText(messages[i].content) + "<br />";
}
@@ -93,11 +112,14 @@ function addMessages(messages) {
' + thisTime + '\
</div></div></div>';
// Add all the new created messaged to the chat.
$("#chat-history").append(messagesText);
// Scroll down, so the user can see the new messages.
$("#chat-history").scrollTop($("#chat-history")[0].scrollHeight - $('#chat-history')[0].clientHeight);
}
// Switch to a different user.
function switchUser(userID) {
previousDate = new Date("1970-01-01 00:00:00");
$(".chat-field").show();
@@ -108,6 +130,7 @@ function switchUser(userID) {
$("#friend-item-" + userID).addClass("active-friend-chat");
}
// Insert a message in the chat, this is used when it is empty.
function sayEmpty() {
$("#chat-history").html("Probeer ook eens foto's en video's te sturen");
}

View File

@@ -11,7 +11,8 @@ $(document).ready(function() {
// Add cookie so the menu stays open on other pages
if (window.innerWidth > 1080) {
$("#chat-history").width("calc(100% - 587px)");
$("#chat-history").css("margin-right", "266px");
$("#chat-history").css("width", "calc(100% - 512px - 75px)");
document.cookie = "menu=open; path=/";
} else {
document.cookie = "menu=closed; path=/";
@@ -22,7 +23,8 @@ $(document).ready(function() {
$("#notification-center").css("display", "none");
if (window.innerWidth > 1080) {
$("#chat-history").width("calc(100% - 331px)");
$("#chat-history").css("margin-right", "10px");
$("#chat-history").css("width", "calc(100% - 256px - 85px)");
} else {
// Make the menu invisible and move the content to the right.
$("#contact-menu").css("display", "none");
@@ -43,6 +45,7 @@ $(document).ready(function() {
// Add cookie so the menu stays open on other pages
if (window.innerWidth > 1080) {
$("#chat-history").css("margin-right", "266px");
$("#chat-history").width("calc(100% - 587px)");
document.cookie = "menu=open; path=/";
} else {

View File

@@ -14,14 +14,14 @@ function fancyText(text) {
return "<video width='100%'>" +
"<source src='"+ link +"' type='video/mp4'>" +
"<b>Je browser ondersteund geen video</b>" +
"</video><button class='gray' onclick='$(this).prev().get(0).play();'>Speel af</button>";
"</video><button class='gray' onclick='$(this).prev().get(0).play();'><i class='fa fa-play'></i></button>";
}
// Add ogg video's
else if (link.match(/(https?:\/\/.[^ ]*\.(?:ogg))/ig)) {
return "<video width='100%'>" +
"<source src='"+ link +"' type='video/ogg'>" +
"<b>Je browser ondersteund geen video</b>" +
"</video><button onclick='$(this).prev().get(0).play();'>Speel af</button>";
"</video><button class='gray' onclick='$(this).prev().get(0).play();'><i class='fa fa-play'></i></button>";
}
// Add youtube video's
else if (link.match(/(https?:\/\/.(www.)?youtube|youtu.be)*watch/ig)) {
@@ -38,6 +38,8 @@ function fancyText(text) {
return text;
}
// This function gets the value of a cookie when given a key.
// If didn´t find any compatible cookie, it returns false.
function getCookie(key) {
cookies = document.cookie.split("; ");
for (var i in cookies) {
@@ -49,6 +51,7 @@ function getCookie(key) {
return false;
}
// Edit the friendship status of two users.
function editFriendship(userID, value) {
$.post("API/editFriendship.php", { usr: userID, action: value })
.done(function() {
@@ -57,6 +60,8 @@ function editFriendship(userID, value) {
});
}
// Show the given friends in the given list.
// The friends are giving in JSON, and the list is giving with a hashtag.
function showFriends(friends, list) {
if(friends && friends != "[]") {
$(list).load("bits/friend-item.php", {
@@ -69,6 +74,8 @@ function showFriends(friends, list) {
}
}
// Show the given friends in the given list.
// This function supports more options given as parameters. This adds extra functionality.
function showFriendsPlus(friends, list, limit, action, actionType) {
if(friends && friends != "[]") {
$(list).load("bits/friend-item.php", {
@@ -84,6 +91,7 @@ function showFriendsPlus(friends, list, limit, action, actionType) {
}
}
// Show the given groups in the given list.
function showGroups(groups, list) {
if(groups && groups != "[]") {
$(list).load("bits/group-item.php", {
@@ -94,14 +102,4 @@ function showGroups(groups, list) {
} else {
return false;
}
}
$(document).ready(function() {
$("body").delegate("textarea[maxlength]", "keydown", function() {
if ($(this).val().length / .9 >= $(this).attr("maxlength")) {
$(this).next().text($(this).val().length + "/" + $(this).attr("maxlength"));
} else {
$(this).next().text("");
}
});
});
}

View File

@@ -61,19 +61,9 @@ $(document).ready(function () {
});
$(window).on("load", function() {
$(".modal-close").click(function () {
$(".modal").hide();
scrollbarMargin(0, 'auto');
$('#modal-response').hide();
$('.modal-default').show();
});
$(".modal-close").click(function (){closeModal()});
// http://stackoverflow.com/questions/9439725/javascript-how-to-detect-if-browser-window-is-scrolled-to-bottom
// $(window).on("scroll", function () {
// if ((window.innerHeight + window.pageYOffset) >= document.body.offsetHeight) {
// loadMorePosts(userID, groupID, postAmount, postLimit);
// }
// });
window.onscroll = function(ev) {
if($(window).scrollTop() + $(window).height() == $(document).height() ) {
loadMorePosts(userID, groupID, postAmount, postLimit);
@@ -81,6 +71,13 @@ $(window).on("load", function() {
};
});
function closeModal() {
$(".modal").hide();
scrollbarMargin(0, 'auto');
$('#modal-response').hide();
$('.modal-default').show();
}
$(window).resize(function() {
clearTimeout(window.resizedFinished);
window.resizeFinished = setTimeout(function() {
@@ -123,7 +120,7 @@ function masonry(mode) {
$form.append($("<input class=\"newpost\" name=\"title\" placeholder=\"Titel\" type=\"text\">"));
$form.append($("<textarea class=\"newpost\" name=\"content\" placeholder=\"Schrijf een berichtje...\" maxlength='1000'></textarea><span></span>"));
$form.append($("<input value=\"Plaats!\" type=\"submit\">"));
$form.append($("<button type=\"submit\"><i class='fa fa-sticky-note-o'></i> Plaats!</button>"));
columns[0][1].append($postInput);
columns[0][0] = $postInput.height() + margin;

View File

@@ -6,11 +6,7 @@ var updatingMenus = 0;
// On document load, load menus and loops loading menus every 10 seconds.
$(document).ready(function() {
updatingMenus = 4;
loadMenuFriends(5);
loadNotificationFriends();
loadUnreadMessages();
loadMenuGroups();
updateMenus();
setInterval(updateMenus, 10000);
});
@@ -18,7 +14,6 @@ $(document).ready(function() {
// Update the menu and notification items.
function updateMenus() {
if (updatingMenus <= 0) {
updatingMenus = 4;
loadMenuFriends(5);
loadNotificationFriends();
loadUnreadMessages();
@@ -27,76 +22,105 @@ function updateMenus() {
}
// Get, every 3 seconds, the friends and insert them in the menu.
// Get the friends and insert them in the menu.
function loadMenuFriends(limit) {
updatingMenus ++;
$.post(
"API/loadFriends.php",
{
limit: 5
}
).done(function(data) {
if (data == "" || data == "[]") {
$("#friends-menu-section").hide();
} else {
$("#friends-menu-section").show();
}
if (menuFriendsData != data) {
menuFriendsData = data;
if (showFriends(data, "#menu-friends-list", 5, "profile.php", "GET", limit)) {
$("#friends-menu-section").show();
} else {
if (!showFriends(data, "#menu-friends-list", 5, "profile.php", "GET", limit)) {
$("#friends-menu-section").hide();
}
}
}).fail(function() {
$("#friends-menu-section").hide();
}).always(function() {
updatingMenus --;
});
}
// Get, every 3 seconds, the groups and insert them in the menu.
// Get the groups and insert them in the menu.
function loadMenuGroups() {
updatingMenus ++;
$.post(
"API/loadGroups.php",
{
limit: 5
}
).done(function(data) {
if (data == "" || data == "[]") {
$("#groups-menu-section").hide();
} else {
$("#groups-menu-section").show();
}
if (menuGroupsData != data) {
menuGroupsData = data;
if (showGroups(data, "#menu-groups-list")) {
$("#groups-menu-section").show();
} else {
if (!showGroups(data, "#menu-groups-list")) {
$("#groups-menu-section").hide();
}
}
}).fail(function() {
$("#groups-menu-section").hide();
}).always(function() {
updatingMenus --;
});
}
// Get, every 3 seconds, the friends requests and insert them in the notification center.
// Get the friends requests and insert them in the notification center.
function loadNotificationFriends() {
updatingMenus ++;
$.post(
"API/loadFriendRequest.php"
).done(function(data) {
if (data == "" || data == "[]") {
$("#friend-request-section").hide();
} else {
$("#friend-request-section").show();
}
if (notificationRequestsData != data) {
notificationRequestsData = data;
if (showFriendsPlus(data, "#friend-requests-list", 5, "profile.php", "GET")) {
$("#friend-request-section").show();
} else {
if (!showFriendsPlus(data, "#friend-requests-list", 5, "profile.php", "GET")) {
$("#friend-request-section").hide();
}
}
}).fail(function() {
$("#friend-request-section").hide();
}).always(function() {
updatingMenus --;
});
}
// Get, every 3 seconds, the unread messages and insert them in the notification center.
// Get the unread messages and insert them in the notification center.
function loadUnreadMessages() {
updatingMenus ++;
$.post(
"API/loadChatNotifications.php"
).done(function(data) {
if (data == "" || data == "[]") {
$("#unread-messages-section").hide();
} else {
$("#unread-messages-section").show();
}
if (notificationMessagesData != data) {
notificationMessagesData = data;
if (showFriendsPlus(data, "#unread-chat-list", 5, "chat.php", "GET")) {
$("#unread-messages-section").show();
} else {
if (!showFriendsPlus(data, "#unread-chat-list", 5, "chat.php", "GET")) {
$("#unread-messages-section").hide();
}
}
}).fail(function() {
$("#unread-messages-section").hide();
}).always(function() {
updatingMenus --;
});
}

View File

@@ -1,3 +1,4 @@
function postComment(buttonValue) {
formData = $("#newcommentform").serializeArray();
formData.push({name: "button", value: buttonValue});
@@ -19,4 +20,18 @@ function postComment(buttonValue) {
).done(function (data) {
$('#modal-response').html(fancyText(data));
});
}
function deletePost(postID) {
var formData = [{name: "postID", value: postID}];
$.post(
"API/deletePost.php",
formData
).done(function (response) {
if (response == "frozen") {
alert("Je account is bevroren, dus je kan geen posts verwijderen. Contacteer een admin als je denkt dat dit onjuist is.");
}
});
closeModal();
masonry(masonryMode);
}

View File

@@ -2,6 +2,7 @@ $(window).on('load', function () {
pageNumber();
});
// Search for the users and put them in the user list.
function searchUsers() {
$.post(
"API/searchUsers.php",
@@ -13,6 +14,7 @@ function searchUsers() {
});
}
// Search for the groups and put them in the group list.
function searchGroups() {
$.post(
"API/searchGroups.php",
@@ -24,6 +26,7 @@ function searchGroups() {
});
}
// Get the page numbers and return them in the select.
function pageNumber() {
var input = input2 = $('#search-form').serialize();
$.post(

View File

@@ -56,5 +56,5 @@
}
.bancommentform input[type="text"] {
width: 100%;
width: 80%;
}

View File

@@ -102,7 +102,6 @@ p {
.group-picture {
border-radius: 5px;
border: none;
}
.item-box, .item-box-full-width {
@@ -117,7 +116,7 @@ p {
@media only screen and (max-width: 1400px) {
.item-box {
width: calc(100% - 50px);
width: calc(100% - 50px)!important;
}
}
@@ -291,19 +290,6 @@ div[data-title]:hover:after {
vertical-align: middle;
}
::-webkit-scrollbar {
width: 5px;
height: 5px;
}
::-webkit-scrollbar-track {
background: none;
}
::-webkit-scrollbar-thumb {
-webkit-border-radius: 20px;
border-radius: 20px;
background: #4CAF50;
}
@media only screen and (max-width: 1080px) {
body {
font-size: 28px!important;

View File

@@ -83,4 +83,21 @@
vertical-align: middle;
height: 24px;
width: 24px;
}
.deleteButton {
background-color: firebrick;
}
.deleteButton i {
display: inline-block;
}
.deleteButton:hover span {
display: inline-block;
}
.deleteButton span {
display: none;
}

View File

@@ -11,7 +11,7 @@
display: inline-block;
}
.friend-button-container {
.friend-button-container, .group-button-container {
position: relative;
float: right;
width: 200px;
@@ -62,7 +62,6 @@
.group-picture {
border: none;
margin-bottom: 0;
margin-right: 15px;
}
@@ -108,7 +107,7 @@ div.posts .post form input, div.posts .post form textarea {
width: calc(100% - 15px);
}
div.posts .post form input[type="submit"] {
div.posts .post form input[type="submit"], .post button{
width: 100%;
}

View File

@@ -32,6 +32,11 @@
text-align: right;
}
.settings-password, .settings-email {
width: calc(50% - 60px);
display: inline-flex;
}
.settings-password label, .settings-email label {
text-align: left;
}