21 Commits

Author SHA1 Message Date
Hendrik
93e63111de cleaned fix 2017-02-02 13:54:52 +01:00
Hendrik
feba1d9786 fix reload after posting post 2017-02-02 13:47:41 +01:00
Hendrik
6ed19d9060 Merge branch 'master' into hendrik-post 2017-02-02 13:43:31 +01:00
Hendrik
d4d16661df added alert box when emptpy posting 2017-02-02 13:42:59 +01:00
Lars van Hijfte
ab5f243281 Merge branch 'lars' into 'master'
BUG FIX: username doesn't cut off in link

See merge request !181
2017-02-02 12:53:13 +01:00
Lars van Hijfte
327a6a8f5c BUG FIX: username doesn't cut off in link 2017-02-02 12:52:03 +01:00
Lars van Hijfte
d03d58ce37 Merge branch 'hendrik-search' into 'master'
Hendrik search

See merge request !177
2017-02-02 12:47:05 +01:00
Lars van Hijfte
487e0a0523 Merge branch 'lars' into 'master'
Lars

See merge request !180
2017-02-02 12:46:42 +01:00
Lars van Hijfte
1dfc14e6f0 Added meta data 2017-02-02 12:44:03 +01:00
Marijn Jansen
cc9866d3dd Merge branch 'marijn-settings' into 'master'
More Awesome Fonts :D

See merge request !179
2017-02-02 10:54:10 +01:00
Marijn Jansen
04df02862f More Awesome Fonts :D 2017-02-02 10:52:42 +01:00
Lars van Hijfte
60b55b3f04 Added comments
Also hiding the mail/age if said so by the user
2017-02-02 10:29:49 +01:00
Marijn Jansen
70b7e12559 Merge branch 'marijn-settings' into 'master'
Added show profile into settings

See merge request !178
2017-02-02 10:28:54 +01:00
Marijn Jansen
e299ef59e8 Added show profile into settings 2017-02-02 10:28:12 +01:00
Hendrik
d9c68d5f5f Merge branch 'master' into hendrik-search 2017-02-02 10:27:21 +01:00
Hendrik
d027333bd7 fix filter and pagenumber interaction in search 2017-02-02 01:06:31 +01:00
Lars van Hijfte
12d5e00731 Merge branch 'hendrik-testing' into 'master'
Hendrik testing

See merge request !173
2017-02-01 14:52:03 +01:00
Lars van Hijfte
0546b8689d BUG FIX: name size 2017-02-01 14:51:27 +01:00
Marijn Jansen
eb8eb5bf03 Merge branch 'marijn-postdelete' into 'master'
Double session_start fixed :D

See merge request !176
2017-02-01 14:46:31 +01:00
Hendrik
022893aca2 Merge branch 'master' into hendrik-testing 2017-02-01 14:24:27 +01:00
Hendrik
3c79d86abd add admin search by role 2017-02-01 11:33:34 +01:00
32 changed files with 293 additions and 110 deletions

View File

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

View File

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

View File

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

View File

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

View File

@@ -8,8 +8,10 @@ require_once("../../queries/checkInput.php");
require_once("../../queries/friendship.php"); require_once("../../queries/friendship.php");
require_once("../../queries/user.php"); require_once("../../queries/user.php");
// Check if the user is allowed to get the messages.
if (isset($_SESSION["userID"]) && if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') { 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"] != "") { if (isset($_POST["lastID"]) && $_POST["lastID"] != "") {
setLastVisited(test_input($_POST["destination"])); setLastVisited(test_input($_POST["destination"]));
echo getNewChatMessages(test_input($_POST["lastID"]), test_input($_POST["destination"])); echo getNewChatMessages(test_input($_POST["lastID"]), test_input($_POST["destination"]));

View File

@@ -12,36 +12,39 @@ if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'frozen' && getRoleByID($_SESSION["userID"]) != 'frozen' &&
getRoleByID($_SESSION["userID"]) != 'banned') { getRoleByID($_SESSION["userID"]) != 'banned') {
if (empty($_POST["title"]) or if (empty($_SESSION["userID"])) {
empty($_POST["content"]) or
empty($_SESSION["userID"])
) {
header('HTTP/1.1 500 Non enough arguments'); header('HTTP/1.1 500 Non enough arguments');
} }
if (empty($_POST["group"])) { if (empty(test_input($_POST["title"])) or
// User Post empty(test_input($_POST["content"]))
makePost( ) {
$_SESSION["userID"], echo "empty";
null,
test_input($_POST["title"]),
test_input($_POST["content"])
);
} else { } else {
// Group Post if (empty($_POST["group"])) {
// User Post
makePost(
$_SESSION["userID"],
null,
test_input($_POST["title"]),
test_input($_POST["content"])
);
} else {
// Group Post
// Check if the user is an admin or mod of the group. // Check if the user is an admin or mod of the group.
if (!in_array(selectGroupRole($_POST["group"]), array('mod', 'admin'))) { if (!in_array(selectGroupRole($_POST["group"]), array('mod', 'admin'))) {
header('HTTP/1.1 500 Non enough rights'); header('HTTP/1.1 500 Non enough rights');
return; return;
}
makePost(
$_SESSION["userID"],
$_POST["group"],
test_input($_POST["title"]),
test_input($_POST["content"])
);
} }
makePost(
$_SESSION["userID"],
$_POST["group"],
test_input($_POST["title"]),
test_input($_POST["content"])
);
} }
} else { } else {
echo "frozen"; echo "frozen";

View File

@@ -6,11 +6,11 @@ require_once ("../../queries/connect.php");
require_once ("../../queries/checkInput.php"); require_once ("../../queries/checkInput.php");
require_once ("../../queries/user.php"); require_once ("../../queries/user.php");
require_once ("../../queries/group_page.php"); require_once ("../../queries/group_page.php");
require_once ("../../queries/friendship.php");
require_once ("../../queries/group_member.php");
if (isset($_SESSION["userID"]) && if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'banned') { getRoleByID($_SESSION["userID"]) != 'banned') {$user_perpage = $group_perpage = 20;
$user_perpage = $group_perpage = 20;
$user_currentpage = $group_currentpage = 1; $user_currentpage = $group_currentpage = 1;
if (isset($_POST['user-pageselect'])) { if (isset($_POST['user-pageselect'])) {
@@ -28,20 +28,26 @@ if (isset($_SESSION["userID"]) &&
$search = test_input($_POST['search']); $search = test_input($_POST['search']);
} }
$user_count = countSomeUsers($search)->fetchColumn();
$group_count = countSomeGroups($search)->fetchColumn();
$filter = "all"; $filter = "all";
if (isset($_POST['filter'])) { if (isset($_POST['filter'])) {
$filter = test_input($_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"; $option = "user";
if (isset($_POST['option'])) { if (isset($_POST['option'])) {
$option = test_input($_POST['option']); $option = test_input($_POST['option']);
} }
include("../../views/searchPageNumber.php"); include ("../../views/searchPageNumber.php");
} else { } else {
header('HTTP/1.0 403 Forbidden'); 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/checkInput.php");
require_once("../../queries/user.php"); require_once("../../queries/user.php");
// Check if the user is allowed to send a message.
if (isset($_SESSION["userID"]) && if (isset($_SESSION["userID"]) &&
getRoleByID($_SESSION["userID"]) != 'frozen' && getRoleByID($_SESSION["userID"]) != 'frozen' &&
getRoleByID($_SESSION["userID"]) != 'banned') { getRoleByID($_SESSION["userID"]) != 'banned') {
if (!empty(test_input($_POST["destination"])) && if (!empty(test_input($_POST["destination"])) &&
!empty(test_input($_POST["content"])) !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"]))) { if (sendMessage(test_input($_POST["destination"]), test_input($_POST["content"]))) {
echo 1; echo 1;
} else { } else {

View File

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

View File

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

View File

@@ -9,13 +9,17 @@ $(document).ready(function() {
$(".chat-field").hide(); $(".chat-field").hide();
}); });
// This function loads the new messages and runs the addMessages function to show them.
function loadMessages() { function loadMessages() {
// If the function is not running elsewhere, run it here.
if (!gettingMessages) { if (!gettingMessages) {
gettingMessages = true; gettingMessages = true;
// Get the messages.
$.post( $.post(
"API/loadMessages.php", "API/loadMessages.php",
$("#lastIDForm").serialize() $("#lastIDForm").serialize()
).done(function (data) { ).done(function (data) {
// Post the messages in the chat.
if (data && data != "[]") { if (data && data != "[]") {
messages = JSON.parse(data); messages = JSON.parse(data);
addMessages(messages); addMessages(messages);
@@ -28,7 +32,7 @@ function loadMessages() {
} }
} }
// Send a message to a friend of the user.
function sendMessage() { function sendMessage() {
$.post( $.post(
"API/sendMessage.php", "API/sendMessage.php",
@@ -37,42 +41,54 @@ function sendMessage() {
if (response == "frozen") { 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."); 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(""); $("#newContent").val("");
loadMessages();
} }
// Add messages to the chat.
function addMessages(messages) { function addMessages(messages) {
var messagesText = ""; var messagesText = "";
// Loop over all the messages.
for(var i in messages) { for(var i in messages) {
// Initialize message variables // Initialize message variables.
var thisDate = new Date(messages[i].creationdate.replace(/ /,"T")); var thisDate = new Date(messages[i].creationdate.replace(/ /,"T"));
var thisTime = thisDate.getHours() + ":" + thisDate.getMinutes(); var thisTime = thisDate.getHours() + ":" + thisDate.getMinutes();
var type; var type;
thisDate.setHours(0,0,0,0); 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()) { if (messages[i].destination == $(".destinationID").val()) {
type = "chat-message-self"; type = "chat-message-self";
} else { } else {
type = "chat-message-other"; type = "chat-message-other";
} }
// If it is the first message, open the message box and maybe add a year.
if (i == 0) { 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; 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 + '">'; 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()) { } else if (type != previousType || thisTime != previousTime || thisDate.getTime() > previousDate.getTime()) {
// Close the previous message.
messagesText += '<div class="chat-time">\ messagesText += '<div class="chat-time">\
' + thisTime + '\ ' + thisTime + '\
</div></div></div>'; </div></div></div>';
previousTime = thisTime; previousTime = thisTime;
previousType = type; previousType = type;
// If the date is different, add a new date.
if (thisDate > previousDate) { if (thisDate > previousDate) {
previousDate = thisDate; previousDate = thisDate;
messagesText += '\ messagesText += '\
@@ -83,8 +99,11 @@ function addMessages(messages) {
</div>'; </div>';
} }
// Open the new message.
messagesText += '<div class="chat-message"><div class="' + type + '">'; messagesText += '<div class="chat-message"><div class="' + type + '">';
} }
// Add the content of the message in the new box.
messagesText += fancyText(messages[i].content) + "<br />"; messagesText += fancyText(messages[i].content) + "<br />";
} }
@@ -93,11 +112,14 @@ function addMessages(messages) {
' + thisTime + '\ ' + thisTime + '\
</div></div></div>'; </div></div></div>';
// Add all the new created messaged to the chat.
$("#chat-history").append(messagesText); $("#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); $("#chat-history").scrollTop($("#chat-history")[0].scrollHeight - $('#chat-history')[0].clientHeight);
} }
// Switch to a different user.
function switchUser(userID) { function switchUser(userID) {
previousDate = new Date("1970-01-01 00:00:00"); previousDate = new Date("1970-01-01 00:00:00");
$(".chat-field").show(); $(".chat-field").show();
@@ -108,6 +130,7 @@ function switchUser(userID) {
$("#friend-item-" + userID).addClass("active-friend-chat"); $("#friend-item-" + userID).addClass("active-friend-chat");
} }
// Insert a message in the chat, this is used when it is empty.
function sayEmpty() { function sayEmpty() {
$("#chat-history").html("Probeer ook eens foto's en video's te sturen"); $("#chat-history").html("Probeer ook eens foto's en video's te sturen");
} }

View File

@@ -14,14 +14,14 @@ function fancyText(text) {
return "<video width='100%'>" + return "<video width='100%'>" +
"<source src='"+ link +"' type='video/mp4'>" + "<source src='"+ link +"' type='video/mp4'>" +
"<b>Je browser ondersteund geen video</b>" + "<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 // Add ogg video's
else if (link.match(/(https?:\/\/.[^ ]*\.(?:ogg))/ig)) { else if (link.match(/(https?:\/\/.[^ ]*\.(?:ogg))/ig)) {
return "<video width='100%'>" + return "<video width='100%'>" +
"<source src='"+ link +"' type='video/ogg'>" + "<source src='"+ link +"' type='video/ogg'>" +
"<b>Je browser ondersteund geen video</b>" + "<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 // Add youtube video's
else if (link.match(/(https?:\/\/.(www.)?youtube|youtu.be)*watch/ig)) { else if (link.match(/(https?:\/\/.(www.)?youtube|youtu.be)*watch/ig)) {
@@ -38,6 +38,8 @@ function fancyText(text) {
return 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) { function getCookie(key) {
cookies = document.cookie.split("; "); cookies = document.cookie.split("; ");
for (var i in cookies) { for (var i in cookies) {
@@ -49,6 +51,7 @@ function getCookie(key) {
return false; return false;
} }
// Edit the friendship status of two users.
function editFriendship(userID, value) { function editFriendship(userID, value) {
$.post("API/editFriendship.php", { usr: userID, action: value }) $.post("API/editFriendship.php", { usr: userID, action: value })
.done(function() { .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) { function showFriends(friends, list) {
if(friends && friends != "[]") { if(friends && friends != "[]") {
$(list).load("bits/friend-item.php", { $(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) { function showFriendsPlus(friends, list, limit, action, actionType) {
if(friends && friends != "[]") { if(friends && friends != "[]") {
$(list).load("bits/friend-item.php", { $(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) { function showGroups(groups, list) {
if(groups && groups != "[]") { if(groups && groups != "[]") {
$(list).load("bits/group-item.php", { $(list).load("bits/group-item.php", {

View File

@@ -31,14 +31,28 @@ function postPost() {
$.post("API/postPost.php", { title: title, $.post("API/postPost.php", { title: title,
content : content, content : content,
group : groupID }) group : groupID })
.done(function() { .done(function(data) {
masonry(masonryMode); if (data == "empty") {
$('#alertbox').show();
$('#alerttext').html("Geen titel of inhoud; vul a.u.b. in.");
window.scrollTo(0,0);
} else {
$('#alertbox').hide();
masonry(masonryMode);
}
}); });
} else { } else {
$.post("API/postPost.php", { title: title, $.post("API/postPost.php", { title: title,
content : content }) content : content })
.done(function() { .done(function(data) {
masonry(masonryMode); if (data == "empty") {
$('#alertbox').show();
$('#alerttext').html("Geen titel of inhoud; vul a.u.b. in.");
window.scrollTo(0,0);
} else {
$('#alertbox').hide();
masonry(masonryMode);
}
}); });
} }
@@ -98,6 +112,10 @@ function masonry(mode) {
masonryMode = mode; masonryMode = mode;
$container.children().remove(); $container.children().remove();
// reinit posts
noposts = false;
postAmount = 0;
/* /*
* Initialise columns. * Initialise columns.
*/ */
@@ -120,7 +138,7 @@ function masonry(mode) {
$form.append($("<input class=\"newpost\" name=\"title\" placeholder=\"Titel\" type=\"text\">")); $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($("<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][1].append($postInput);
columns[0][0] = $postInput.height() + margin; columns[0][0] = $postInput.height() + margin;
@@ -153,9 +171,6 @@ function loadMorePosts(uID, gID, offset, limit) {
return; return;
} }
console.log(uID, gID, offset, limit);
$.post("API/getPosts.php", { usr : uID, $.post("API/getPosts.php", { usr : uID,
grp : gID, grp : gID,
offset : offset, offset : offset,

View File

@@ -34,6 +34,4 @@ function deletePost(postID) {
}); });
closeModal(); closeModal();
masonry(masonryMode); masonry(masonryMode);
} }

View File

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

View File

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

View File

@@ -102,7 +102,6 @@ p {
.group-picture { .group-picture {
border-radius: 5px; border-radius: 5px;
border: none;
} }
.item-box, .item-box-full-width { .item-box, .item-box-full-width {
@@ -117,7 +116,7 @@ p {
@media only screen and (max-width: 1400px) { @media only screen and (max-width: 1400px) {
.item-box { .item-box {
width: calc(100% - 50px); width: calc(100% - 50px)!important;
} }
} }
@@ -291,19 +290,6 @@ div[data-title]:hover:after {
vertical-align: middle; 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) { @media only screen and (max-width: 1080px) {
body { body {
font-size: 28px!important; font-size: 28px!important;

View File

@@ -1,5 +1,10 @@
/* New */ /* New */
.alertbox {
display: none;
background-color: firebrick;
}
.user-box { .user-box {
text-align: center; text-align: center;
} }
@@ -11,7 +16,7 @@
display: inline-block; display: inline-block;
} }
.friend-button-container { .friend-button-container, .group-button-container {
position: relative; position: relative;
float: right; float: right;
width: 200px; width: 200px;
@@ -62,7 +67,6 @@
.group-picture { .group-picture {
border: none; border: none;
margin-bottom: 0;
margin-right: 15px; margin-right: 15px;
} }
@@ -108,7 +112,7 @@ div.posts .post form input, div.posts .post form textarea {
width: calc(100% - 15px); width: calc(100% - 15px);
} }
div.posts .post form input[type="submit"] { div.posts .post form input[type="submit"], .post button{
width: 100%; width: 100%;
} }

View File

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

View File

@@ -10,8 +10,9 @@ function selectLimitedFriends($userID, $limit) {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
`userID`, `userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`, `username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`, LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL( IFNULL(
`profilepicture`, `profilepicture`,
'../img/avatar-standard.png' '../img/avatar-standard.png'
@@ -50,8 +51,9 @@ function selectAllFriends($userID) {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
`userID`, `userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`, `username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`, LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL( IFNULL(
`profilepicture`, `profilepicture`,
'../img/avatar-standard.png' '../img/avatar-standard.png'
@@ -85,8 +87,9 @@ function selectAllFriendRequests() {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
`userID`, `userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`, `username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`, LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL( IFNULL(
`profilepicture`, `profilepicture`,
'../img/avatar-standard.png' '../img/avatar-standard.png'
@@ -235,8 +238,9 @@ function searchSomeFriends($n, $m, $search) {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
`userID`, `userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`, `username`,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`, LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
IFNULL( IFNULL(
`profilepicture`, `profilepicture`,
'../img/avatar-standard.png' '../img/avatar-standard.png'
@@ -276,3 +280,34 @@ function searchSomeFriends($n, $m, $search) {
$stmt->execute(); $stmt->execute();
return json_encode($stmt->fetchAll()); return json_encode($stmt->fetchAll());
} }
function countSomeFriends($search) {
$stmt = prepareQuery("
SELECT
COUNT(*)
FROM
`user`
INNER JOIN
`friendship`
WHERE
((`friendship`.`user1ID` = :userID AND
`friendship`.`user2ID` = `user`.`userID` OR
`friendship`.`user2ID` = :userID AND
`friendship`.`user1ID` = `user`.`userID`) AND
`user`.`role` != 'banned' AND
`friendship`.`status` = 'confirmed') AND
(`username` LIKE :keyword OR
`fname` LIKE :keyword OR
`lname` LIKE :keyword)
ORDER BY
`fname`,
`lname`,
`username`
");
$search = "%$search%";
$stmt->bindParam(':keyword', $search);
$stmt->bindParam(':userID', $_SESSION["userID"], PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchColumn();
}

View File

@@ -55,6 +55,29 @@ function searchSomeOwnGroups($n, $m, $search) {
return json_encode($stmt->fetchAll()); return json_encode($stmt->fetchAll());
} }
function countSomeOwnGroups($search) {
$stmt = prepareQuery("
SELECT
COUNT(*)
FROM
`group_page`
INNER JOIN
`group_member`
WHERE
`group_member`.`userID` = :userID AND
`group_member`.`groupID` = `group_page`.`groupID` AND
`group_page`.`status` != 'hidden' AND
`name` LIKE :keyword
");
$search = "%$search%";
$stmt->bindParam(':keyword', $search);
$stmt->bindParam(':userID', $_SESSION["userID"], PDO::PARAM_INT);
$stmt->execute();
return $stmt->fetchColumn();
}
function addMember($groupID, $userID, $role) { function addMember($groupID, $userID, $role) {
$stmt = prepareQuery(" $stmt = prepareQuery("
INSERT INTO INSERT INTO

View File

@@ -193,7 +193,9 @@ function search20GroupsFromNByStatus($n, $keyword, $status) {
return $q; return $q;
} }
function searchSomeGroupsByStatus($n, $m, $keyword, $status) { function searchSomeGroupsByStatus($n, $m, $search, $status) {
// parentheses not needed in where clause, for clarity as
// role search should override status filter.
$q = prepareQuery(" $q = prepareQuery("
SELECT SELECT
`groupID`, `groupID`,
@@ -203,16 +205,18 @@ function searchSomeGroupsByStatus($n, $m, $keyword, $status) {
FROM FROM
`group_page` `group_page`
WHERE WHERE
`name` LIKE :keyword AND (`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses) FIND_IN_SET (`status`, :statuses)) OR
`status` = :search
ORDER BY ORDER BY
`name` `name`
LIMIT LIMIT
:n, :m :n, :m
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$q->bindParam(':n', $n, PDO::PARAM_INT); $q->bindParam(':n', $n, PDO::PARAM_INT);
$q->bindParam(':m', $m, PDO::PARAM_INT); $q->bindParam(':m', $m, PDO::PARAM_INT);
$statuses = implode(',', $status); $statuses = implode(',', $status);
@@ -221,21 +225,23 @@ function searchSomeGroupsByStatus($n, $m, $keyword, $status) {
return $q; return $q;
} }
function countSomeGroupsByStatus($keyword, $status) { function countSomeGroupsByStatus($search, $status) {
$q = prepareQuery(" $q = prepareQuery("
SELECT SELECT
COUNT(*) COUNT(*)
FROM FROM
`group_page` `group_page`
WHERE WHERE
`name` LIKE :keyword AND (`name` LIKE :keyword AND
FIND_IN_SET (`status`, :statuses) FIND_IN_SET (`status`, :statuses)) OR
`status` = :search
ORDER BY ORDER BY
`name` `name`
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$statuses = implode(',', $status); $statuses = implode(',', $status);
$q->bindParam(':statuses', $statuses); $q->bindParam(':statuses', $statuses);
$q->execute(); $q->execute();

View File

@@ -95,7 +95,7 @@ function getNewChatMessages($lastID, $destination) {
function selectAllUnreadChat() { function selectAllUnreadChat() {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) AS `fullname`, LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
`user`.`userID`, `user`.`userID`,
IFNULL( IFNULL(
`profilepicture`, `profilepicture`,

View File

@@ -18,7 +18,8 @@ function getSettings() {
`bio`, `bio`,
`profilepicture`, `profilepicture`,
`showBday`, `showBday`,
`showEmail` `showEmail`,
`showProfile`
FROM FROM
`user` `user`
WHERE WHERE
@@ -64,7 +65,8 @@ function updateSettings() {
`birthdate` = :bday, `birthdate` = :bday,
`bio` = :bio, `bio` = :bio,
`showEmail` = :showEmail, `showEmail` = :showEmail,
`showBday` = :showBday `showBday` = :showBday,
`showProfile` = :showProfile
WHERE WHERE
`userID` = :userID `userID` = :userID
"); ");
@@ -79,6 +81,7 @@ function updateSettings() {
$stmt->bindValue(":bio", test_input($_POST["bio"])); $stmt->bindValue(":bio", test_input($_POST["bio"]));
$stmt->bindValue(":showEmail", (array_key_exists("showEmail", $_POST) ? "1" : "0")); $stmt->bindValue(":showEmail", (array_key_exists("showEmail", $_POST) ? "1" : "0"));
$stmt->bindValue(":showBday", (array_key_exists("showBday", $_POST) ? "1" : "0")); $stmt->bindValue(":showBday", (array_key_exists("showBday", $_POST) ? "1" : "0"));
$stmt->bindValue(":showProfile", (array_key_exists("showProfile", $_POST) ? "1" : "0"));
$stmt->bindValue(":userID", $_SESSION["userID"]); $stmt->bindValue(":userID", $_SESSION["userID"]);
$stmt->execute(); $stmt->execute();

View File

@@ -52,6 +52,10 @@ function selectUser($me, $other) {
`username`, `username`,
`birthdate`, `birthdate`,
`location`, `location`,
`showBday`,
`showEmail`,
`showProfile`,
`email`,
IFNULL( IFNULL(
`profilepicture`, `profilepicture`,
'../img/avatar-standard.png' '../img/avatar-standard.png'
@@ -205,7 +209,9 @@ function search20UsersFromNByStatus($n, $keyword, $status) {
return $q; return $q;
} }
function searchSomeUsersByStatus($n, $m, $keyword, $status) { function searchSomeUsersByStatus($n, $m, $search, $status) {
// parentheses not needed in where clause, for clarity as
// role search should override status filter.
$q = prepareQuery(" $q = prepareQuery("
SELECT SELECT
`userID`, `userID`,
@@ -219,8 +225,9 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
FROM FROM
`user` `user`
WHERE WHERE
`username` LIKE :keyword AND (`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses) FIND_IN_SET (`role`, :statuses)) OR
`role` = :search
ORDER BY ORDER BY
`role`, `role`,
`username` `username`
@@ -228,8 +235,9 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
:n, :m :n, :m
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$q->bindParam(':n', $n, PDO::PARAM_INT); $q->bindParam(':n', $n, PDO::PARAM_INT);
$q->bindParam(':m', $m, PDO::PARAM_INT); $q->bindParam(':m', $m, PDO::PARAM_INT);
$statuses = implode(',', $status); $statuses = implode(',', $status);
@@ -238,22 +246,24 @@ function searchSomeUsersByStatus($n, $m, $keyword, $status) {
return $q; return $q;
} }
function countSomeUsersByStatus($keyword, $status) { function countSomeUsersByStatus($search, $status) {
$q = prepareQuery(" $q = prepareQuery("
SELECT SELECT
COUNT(*) COUNT(*)
FROM FROM
`user` `user`
WHERE WHERE
`username` LIKE :keyword AND (`username` LIKE :keyword AND
FIND_IN_SET (`role`, :statuses) FIND_IN_SET (`role`, :statuses)) OR
`role` = :search
ORDER BY ORDER BY
`role`, `role`,
`username` `username`
"); ");
$keyword = "%$keyword%"; $keyword = "%$search%";
$q->bindParam(':keyword', $keyword); $q->bindParam(':keyword', $keyword);
$q->bindParam(':search', $search);
$statuses = implode(',', $status); $statuses = implode(',', $status);
$q->bindParam(':statuses', $statuses); $q->bindParam(':statuses', $statuses);
$q->execute(); $q->execute();
@@ -345,12 +355,13 @@ function searchSomeUsers($n, $m, $search) {
$stmt = prepareQuery(" $stmt = prepareQuery("
SELECT SELECT
`userID`, `userID`,
LEFT(`username`, 12) as `usernameshort`,
`username`, `username`,
IFNULL( IFNULL(
`profilepicture`, `profilepicture`,
'../img/avatar-standard.png' '../img/avatar-standard.png'
) AS profilepicture, ) AS profilepicture,
LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 15) as `fullname`, LEFT(CONCAT(`user`.`fname`, ' ', `user`.`lname`), 12) as `fullname`,
CASE `lastactivity` >= DATE_SUB(NOW(),INTERVAL 15 MINUTE) CASE `lastactivity` >= DATE_SUB(NOW(),INTERVAL 15 MINUTE)
WHEN TRUE THEN 'online' WHEN TRUE THEN 'online'
WHEN FALSE THEN 'offline' WHEN FALSE THEN 'offline'

View File

@@ -1,12 +1,17 @@
<div class="content"> <div class="content">
<div class="profile-box platform"> <div class="user-box">
<img class="left main-picture group-picture" src="<?= $group['picture'] ?>"> <img class="group-picture main-picture" src="<?= $group["picture"] ?>"><br />
<div class="group-button-container"></div> <div class="platform">
<h1 class="profile-username"><?= $group['name'] ?></h1> <div class="status-buttons-container">
<p><?= $group['description'] ?></p> <button disabled class="gray"><?= $group["status"] ?></button>
</div>
<div class="group-button-container"></div>
<div class="profile-info">
<h2><?= $group["name"]?></h2>
<?= $group["description"] ?>
</div>
</div>
</div> </div>
<div class="item-box-full-width platform"> <div class="item-box-full-width platform">
<h2>Leden (<?= $group['members'] ?>)</h2> <h2>Leden (<?= $group['members'] ?>)</h2>
<p> <p>

View File

@@ -1,4 +1,8 @@
<meta charset="utf-8"> <meta charset="UTF-8">
<meta name="description" content="MyHyvesbook+ is het sociaal media voor alle coole mensen.">
<meta name="keywords" content="MyHyvesbookPlus,Myhyvesbook+,sociaal,media">
<meta name="author" content="MyHyvesbookplus corporation">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>MyHyvesbook+</title> <title>MyHyvesbook+</title>
<!-- Add your javascript files here. --> <!-- Add your javascript files here. -->
<script src="js/jquery.js"></script> <script src="js/jquery.js"></script>

View File

@@ -14,7 +14,7 @@
echo "<style>@import url('styles/adminbutton.css'); </style>"; echo "<style>@import url('styles/adminbutton.css'); </style>";
} }
?> ?>
<a href="logout.php" data-title="Admin"><i class="fa fa-sign-out"></i></a> <a href="logout.php" data-title="Uitloggen"><i class="fa fa-sign-out"></i></a>
</section> </section>
<section id="friend-request-section"> <section id="friend-request-section">
<h4> <h4>

View File

@@ -30,7 +30,7 @@ $fullname = $post['fname'] . " " . $post['lname'] . " (" . $post['username'] . "
<form id="newcommentform" onsubmit="return false;"> <form id="newcommentform" onsubmit="return false;">
<input type="hidden" id="newcomment-textarea" name="postID" value="<?= $postID ?>"> <input type="hidden" id="newcomment-textarea" name="postID" value="<?= $postID ?>">
<textarea id="newcomment" name="newcomment-content" placeholder="Laat een reactie achter..." maxlength="1000"></textarea><span></span> <br> <textarea id="newcomment" name="newcomment-content" placeholder="Laat een reactie achter..." maxlength="1000"></textarea><span></span> <br>
<button onclick="postComment('reaction')" name="button" value="reaction">Reageer!</button> <button onclick="postComment('reaction')" name="button" value="reaction" class="green"><i class="fa fa-comment"></i> Reageer!</button>
<button onclick="postComment('nietslecht')" name="button" value="nietslecht" class="nietslecht"> <button onclick="postComment('nietslecht')" name="button" value="nietslecht" class="nietslecht">
<?php <?php
if (checkNietSlecht($postID, $_SESSION["userID"])) { if (checkNietSlecht($postID, $_SESSION["userID"])) {

View File

@@ -1,4 +1,8 @@
<div class="content"> <div class="content">
<div class='platform alertbox' id="alertbox">
<span id="alerttext"></span>
</div>
<div class="user-box"> <div class="user-box">
<img class="profile-picture main-picture <?= $user["onlinestatus"] ?>" src="<?= $user["profilepicture"] ?>"><br /> <img class="profile-picture main-picture <?= $user["onlinestatus"] ?>" src="<?= $user["profilepicture"] ?>"><br />
<div class="platform"> <div class="platform">
@@ -29,7 +33,12 @@
<h3>Informatie</h3> <h3>Informatie</h3>
<p> <p>
<ul> <ul>
<?php if ($user["showBday"]) { ?>
<li>Leeftijd: <?= getAge($user["birthdate"]) ?> jaar</li> <li>Leeftijd: <?= getAge($user["birthdate"]) ?> jaar</li>
<?php } ?>
<?php if ($user["showEmail"]) { ?>
<li>Email: <?= $user["email"] ?></li>
<?php } ?>
<li>Locatie: <?= $user["location"] ?></li> <li>Locatie: <?= $user["location"] ?></li>
<li>Lid sinds: <?= nicetime($user["creationdate"]) ?></li> <li>Lid sinds: <?= nicetime($user["creationdate"]) ?></li>
</ul> </ul>

View File

@@ -48,7 +48,12 @@ $group_n = ($group_currentpage - 1) * $group_perpage;
<label for="filter"> <label for="filter">
Filter: Filter:
</label> </label>
<select name="filter" id="search-filter"> <select name="filter"
id="search-filter"
onchange="$('#user-pagenumber, #group-pagenumber').prop('value', 1);
searchUsers();
searchGroups();
pageNumber();">
<option value="personal" <option value="personal"
<?php if ($filter == "personal") echo "selected";?>> <?php if ($filter == "personal") echo "selected";?>>
Persoonlijk</option> Persoonlijk</option>

View File

@@ -17,6 +17,7 @@ $settings = getSettings();
<input type="text" <input type="text"
name="fname" name="fname"
id="fname" id="fname"
maxlength="63"
placeholder="Voornaam" placeholder="Voornaam"
title="Voornaam" title="Voornaam"
value="<?=$settings["fname"]?>" value="<?=$settings["fname"]?>"
@@ -27,6 +28,7 @@ $settings = getSettings();
<input type="text" <input type="text"
name="lname" name="lname"
id="lname" id="lname"
maxlength="63"
placeholder="Achternaam" placeholder="Achternaam"
value="<?=$settings["lname"]?>" value="<?=$settings["lname"]?>"
> >
@@ -36,6 +38,7 @@ $settings = getSettings();
<input type="text" <input type="text"
name="location" name="location"
id="location" id="location"
maxlength="50"
placeholder="Locatie" placeholder="Locatie"
value="<?=$settings["location"]?>" value="<?=$settings["location"]?>"
> >
@@ -96,6 +99,14 @@ $settings = getSettings();
<?=($settings["showEmail"] ? "checked" : "")?> <?=($settings["showEmail"] ? "checked" : "")?>
> >
</li> </li>
<li>
<label for="showProfile">Publiek profiel</label>
<input type="checkbox"
name="showProfile"
id="showProfile"
<?=($settings["showProfile"] ? "checked" : "")?>
>
</li>
<li> <li>
<label for="bio">Bio</label> <label for="bio">Bio</label>
<textarea name="bio" <textarea name="bio"
@@ -186,6 +197,7 @@ $settings = getSettings();
<label for="email-old">Huidig Email </label> <label for="email-old">Huidig Email </label>
<input type="email" <input type="email"
id="email-old" id="email-old"
maxlength="255"
value="<?=$settings["email"]?>" value="<?=$settings["email"]?>"
disabled disabled
> >
@@ -194,6 +206,7 @@ $settings = getSettings();
<label for="email">Nieuw Email</label> <label for="email">Nieuw Email</label>
<input type="email" <input type="email"
name="email" name="email"
maxlength="255"
id="email" id="email"
placeholder="Nieuw Email" placeholder="Nieuw Email"
> >
@@ -203,14 +216,16 @@ $settings = getSettings();
<input type="email" <input type="email"
name="email-confirm" name="email-confirm"
id="email-confirm" id="email-confirm"
maxlength="255"
placeholder="Bevestig Email" placeholder="Bevestig Email"
> >
</li> </li>
<li> <li>
<button type="submit" <button type="submit"
name="form" name="form"
value="email" value="email">
>Verander Email</button> Verander Email
</button>
</li> </li>
</ul> </ul>
</form> </form>