From 1402a3ea07e6310d680172e16650f3624cc50454 Mon Sep 17 00:00:00 2001 From: "K. Nobel" Date: Wed, 25 Jan 2017 11:19:24 +0100 Subject: [PATCH 1/4] Fixed query for image tags --- website/queries/user.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/website/queries/user.php b/website/queries/user.php index ddd972d..9904eee 100644 --- a/website/queries/user.php +++ b/website/queries/user.php @@ -108,7 +108,7 @@ function selectAllUserPosts($userID) { `postID`, `author`, `title`, - CASE LENGTH(`content`) >= 150 + CASE LENGTH(`content`) >= 150 AND `content` NOT LIKE ' Date: Wed, 25 Jan 2017 15:06:37 +0100 Subject: [PATCH 2/4] Changed friendship buttons. We now use AJAX, changed button style and added FA icons. --- website/public/API/editFriendship.php | 28 ++++++++++++++ website/public/API/getFriendshipStatus.php | 18 +++++++++ website/public/profile.php | 45 ++++++++++++++++++++++ website/public/styles/main.css | 9 +++++ website/public/styles/profile.css | 7 ++-- website/queries/friendship.php | 23 ++++++++--- website/views/profile.php | 18 ++------- 7 files changed, 124 insertions(+), 24 deletions(-) create mode 100644 website/public/API/editFriendship.php create mode 100644 website/public/API/getFriendshipStatus.php diff --git a/website/public/API/editFriendship.php b/website/public/API/editFriendship.php new file mode 100644 index 0000000..721bf90 --- /dev/null +++ b/website/public/API/editFriendship.php @@ -0,0 +1,28 @@ + + + + diff --git a/website/public/styles/main.css b/website/public/styles/main.css index 8c50b19..b8f39ee 100644 --- a/website/public/styles/main.css +++ b/website/public/styles/main.css @@ -175,6 +175,15 @@ textarea:focus, input:focus, select:focus { } /* All buttons */ +button.red { + background-color: firebrick; +} + +button.green { + background-color: forestgreen; +} + + button, input[type="submit"], input[type="reset"] { diff --git a/website/public/styles/profile.css b/website/public/styles/profile.css index fbd8775..85b2db5 100644 --- a/website/public/styles/profile.css +++ b/website/public/styles/profile.css @@ -78,17 +78,16 @@ div.posts .post form textarea.newpost { font-size: 0.8em; } -input.profile-button { +button.friend-button { float: right; height: auto; padding: 10px; + margin-left: 10px; border-radius: 5px; - background-color: #4CAF50; - color: #FFFFFF; transition-duration: 250ms; cursor: pointer; } -.profile-button:hover { +button.friend-button:hover { box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23); } \ No newline at end of file diff --git a/website/queries/friendship.php b/website/queries/friendship.php index d0279c9..f69522e 100644 --- a/website/queries/friendship.php +++ b/website/queries/friendship.php @@ -67,6 +67,16 @@ function selectAllFriendRequests() { } function getFriendshipStatus($userID) { + # -2: Query failed. + # -1: user1 and 2 are the same user + # 0 : no record found + # 1 : confirmed + # 2 : user1 sent request (you) + # 3 : user2 sent request (other) + if($_SESSION["userID"] == $userID) { + return -1; + } + $stmt = $GLOBALS["db"]->prepare(" SELECT CASE `status` IS NULL @@ -93,8 +103,10 @@ function getFriendshipStatus($userID) { $stmt->bindParam(':me', $_SESSION["userID"], PDO::PARAM_INT); $stmt->bindParam(':other', $userID, PDO::PARAM_INT); - $stmt->execute(); - return $stmt->fetch()["friend_state"]; + if(!$stmt->execute()) { + return -2; + } + return intval($stmt->fetch()["friend_state"]); } function requestFriendship($userID) { @@ -105,7 +117,7 @@ function requestFriendship($userID) { $stmt->bindParam(':user1', $_SESSION["userID"], PDO::PARAM_INT); $stmt->bindParam(':user2', $userID, PDO::PARAM_INT); - $stmt->execute(); + return $stmt->execute(); } function removeFriendship($userID) { @@ -116,11 +128,12 @@ function removeFriendship($userID) { `user2ID` = :user2 OR `user1ID` = :user2 AND `user2ID` = :user1 + LIMIT 1 "); $stmt->bindParam(':user1', $_SESSION["userID"], PDO::PARAM_INT); $stmt->bindParam(':user2', $userID, PDO::PARAM_INT); - $stmt->execute(); + return $stmt->execute(); } function acceptFriendship($userID) { @@ -135,7 +148,7 @@ function acceptFriendship($userID) { $stmt->bindParam(':user1', $userID, PDO::PARAM_INT); $stmt->bindParam(':user2', $_SESSION["userID"], PDO::PARAM_INT); - $stmt->execute(); + return $stmt->execute(); } function setLastVisited($friend) { diff --git a/website/views/profile.php b/website/views/profile.php index 0b2f4f2..d74f999 100644 --- a/website/views/profile.php +++ b/website/views/profile.php @@ -2,21 +2,9 @@
"> -
- - "; - } else if($user["friend_status"] == 1) { - echo ""; - } else if($user["friend_status"] == 2) { - echo ""; - echo ""; - } else if($user["friend_status"] == 3) { - echo ""; - } - ?> -
+
+ +

From 6a43402c661cc53d33607981291f8bf3282368f2 Mon Sep 17 00:00:00 2001 From: "K. Nobel" Date: Wed, 25 Jan 2017 15:14:00 +0100 Subject: [PATCH 3/4] Added comment in getFriendshipStatus for Lars. --- website/public/API/getFriendshipStatus.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/website/public/API/getFriendshipStatus.php b/website/public/API/getFriendshipStatus.php index 5c2f36c..a893331 100644 --- a/website/public/API/getFriendshipStatus.php +++ b/website/public/API/getFriendshipStatus.php @@ -1,5 +1,12 @@ Date: Wed, 25 Jan 2017 15:42:28 +0100 Subject: [PATCH 4/4] Made small improvements to friendship buttons and corresponding API files. --- website/public/API/editFriendship.php | 1 - website/public/API/getFriendshipStatus.php | 1 - website/public/js/friendButtons.js | 27 ++++++++++++++++++ website/public/profile.php | 32 +--------------------- 4 files changed, 28 insertions(+), 33 deletions(-) create mode 100644 website/public/js/friendButtons.js diff --git a/website/public/API/editFriendship.php b/website/public/API/editFriendship.php index 721bf90..0518733 100644 --- a/website/public/API/editFriendship.php +++ b/website/public/API/editFriendship.php @@ -2,7 +2,6 @@ session_start(); -require_once ("../../queries/connect.php"); require_once ("../../queries/friendship.php"); if(empty($_POST["usr"]) OR empty($_POST["action"]) OR !in_array($_POST["action"], array("request", "accept", "delete"))) { diff --git a/website/public/API/getFriendshipStatus.php b/website/public/API/getFriendshipStatus.php index a893331..01bd6c4 100644 --- a/website/public/API/getFriendshipStatus.php +++ b/website/public/API/getFriendshipStatus.php @@ -9,7 +9,6 @@ session_start(); -require_once ("../../queries/connect.php"); require_once ("../../queries/friendship.php"); if(empty($_POST["usr"])) { diff --git a/website/public/js/friendButtons.js b/website/public/js/friendButtons.js new file mode 100644 index 0000000..94d6093 --- /dev/null +++ b/website/public/js/friendButtons.js @@ -0,0 +1,27 @@ +function placeFriendButtons() { + $.post("API/getFriendshipStatus.php", { usr: userID }) + .done(function(data) { + friendshipStatus = data; + $buttonContainer = $("div.friend-button-container"); + $buttonContainer.children().remove(); + if (friendshipStatus == -1) { + return; + } else if(friendshipStatus == 0) { + $buttonContainer.append($("")); + } else if(friendshipStatus == 1) { + $buttonContainer.append($("")); + } else if(friendshipStatus == 2) { + $buttonContainer.append($("")); + } else if(friendshipStatus == 3) { + $buttonContainer.append($("")); + $buttonContainer.append($("")); + } + + $buttonContainer.children().click(function() { + $.post("API/editFriendship.php", { usr: userID, action: this.value }) + .done(function() { + placeFriendButtons(); + }); + }); + }); +} \ No newline at end of file diff --git a/website/public/profile.php b/website/public/profile.php index aeea68b..6e188c4 100644 --- a/website/public/profile.php +++ b/website/public/profile.php @@ -44,42 +44,12 @@ include("../views/profile.php"); include("../views/footer.php"); ?> - +