From fb882657270ed0c142b817cd5dde43a092ed9b5f Mon Sep 17 00:00:00 2001 From: Pierre Date: Wed, 20 Dec 2017 19:18:18 +0100 Subject: [PATCH] Created friendship request buttons --- assets/js/common/functionsSchema.js | 14 ++++ assets/js/components/friends/friendsList.js | 19 +++++ assets/js/pages/userPage/accessForbidden.js | 10 ++- assets/js/pages/userPage/friendshipStatus.js | 88 ++++++++++++++++++++ corePage/config/dev.config.php | 1 + 5 files changed, 131 insertions(+), 1 deletion(-) create mode 100644 assets/js/pages/userPage/friendshipStatus.js diff --git a/assets/js/common/functionsSchema.js b/assets/js/common/functionsSchema.js index fc3f8851..6e5a7aca 100644 --- a/assets/js/common/functionsSchema.js +++ b/assets/js/common/functionsSchema.js @@ -696,6 +696,20 @@ var ComunicWeb = { }, + /** + * Handle the rendering of the friendship status + */ + friendshipStatus: { + + /** + * Display the friendship status + */ + display: function(userID, target){}, + + //TODO : implement + + }, + }, /** diff --git a/assets/js/components/friends/friendsList.js b/assets/js/components/friends/friendsList.js index 2767c12d..52e78fc6 100644 --- a/assets/js/components/friends/friendsList.js +++ b/assets/js/components/friends/friendsList.js @@ -90,6 +90,25 @@ ComunicWeb.components.friends.list = { return true; }, + /** + * Get the current status of a friendship relation + * + * @param {Integer} friendID The ID of the target friend + * @param {Function} callback What to do once we get the response + */ + getStatus: function(friendID, callback){ + + //Prepare the API request + var apiURI = "friends/getStatus"; + var params = { + "friendID": friendID + }; + + //Process request + ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); + + }, + /** * Empty friends cache list * diff --git a/assets/js/pages/userPage/accessForbidden.js b/assets/js/pages/userPage/accessForbidden.js index faf9af0b..997fb240 100644 --- a/assets/js/pages/userPage/accessForbidden.js +++ b/assets/js/pages/userPage/accessForbidden.js @@ -110,7 +110,15 @@ ComunicWeb.pages.userPage.accessForbidden = { }); //Add friendship request message - + var requestArea = createElem2({ + appendTo: boxBody, + type: "div", + class: "text-center", + innerHTML: "Loading..." + }); + + //Load friendship infos + ComunicWeb.pages.userPage.friendshipStatus.display(userInfos.userID, requestArea); } } \ No newline at end of file diff --git a/assets/js/pages/userPage/friendshipStatus.js b/assets/js/pages/userPage/friendshipStatus.js new file mode 100644 index 00000000..16379adf --- /dev/null +++ b/assets/js/pages/userPage/friendshipStatus.js @@ -0,0 +1,88 @@ +/** + * Handle the update of the friendship status + * + * @author Pierre HUBERT + */ + +ComunicWeb.pages.userPage.friendshipStatus = { + + /** + * Display the friendship status + * + * @param {Integer} userID The ID of the target user + * @param {HTMLElement} target The target element + */ + display: function(userID, target){ + + //Get the current status of the friendship + ComunicWeb.components.friends.list.getStatus(userID, function(response){ + + //Empty the target area + emptyElem(target); + target.innerHTML = ""; + + //Check for errors + if(response.error){ + message = ComunicWeb.common.messages.createCalloutElem("Error", "Couldn't load friendship informations !", "danger"); + target.appendChild(message); + return; + } + + //Check if the user has received a friendship request + if(response.received_request){ + + //Offer the user to reject a frienship request + createElem2({ + appendTo: target, + type: "button", + class: "btn btn-xs btn-danger", + innerHTML: "Reject request" + }); + + createElem2({ + appendTo: target, + type: "span", + innerHTML: " ", + }) + + //Offer the user to accept a frienship request + createElem2({ + appendTo: target, + type: "button", + class: "btn btn-xs btn-success", + innerHTML: "Accept request" + }); + + } + + //Check if user has sent a friendship request + else if(response.sent_request){ + + //Offer the user to cancel a frienship request + createElem2({ + appendTo: target, + type: "button", + class: "btn btn-xs btn-danger", + innerHTML: "Cancel request" + }); + + } + + //Display default message + else { + + //Offer the user to send a frienship request + createElem2({ + appendTo: target, + type: "button", + class: "btn btn-xs btn-primary", + innerHTML: "Send request" + }); + + } + + }); + + } + +} \ No newline at end of file diff --git a/corePage/config/dev.config.php b/corePage/config/dev.config.php index fa49a18f..bd81ccdd 100644 --- a/corePage/config/dev.config.php +++ b/corePage/config/dev.config.php @@ -175,6 +175,7 @@ $config['JSfiles'] = array( //User page "%PATH_ASSETS%js/pages/userPage/main.js", "%PATH_ASSETS%js/pages/userPage/accessForbidden.js", + "%PATH_ASSETS%js/pages/userPage/friendshipStatus.js", //Login page "%PATH_ASSETS%js/pages/login.js",