mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-30 07:46:28 +00:00
299 lines
6.3 KiB
JavaScript
299 lines
6.3 KiB
JavaScript
/**
|
|
* Profile informations displaying handler
|
|
*
|
|
* Handlers the rendering of informations such as
|
|
* the name of the user, or account informations
|
|
*
|
|
* @author Pierre HUBERT
|
|
*/
|
|
|
|
ComunicWeb.pages.userPage.profileInfos = {
|
|
|
|
/**
|
|
* Display profile informations
|
|
*
|
|
* @param {Object} infos Informations about the user
|
|
* @param {HTMLElement} target The target of the profile informations
|
|
*/
|
|
display: function(infos, target){
|
|
|
|
//Create the main box
|
|
this.createMainBox(infos, target);
|
|
|
|
//About user box
|
|
this.createAboutUserBox(infos, target);
|
|
|
|
},
|
|
|
|
/**
|
|
* Display the main informations about the user
|
|
*
|
|
* @param {Object} infos Informations about the user
|
|
* @param {HTMLElement} target The target of the box
|
|
*/
|
|
createMainBox: function(infos, target){
|
|
|
|
//Create box container
|
|
var boxContainer = createElem2({
|
|
appendTo: target,
|
|
type: "div",
|
|
class: "box box-primary"
|
|
});
|
|
|
|
//Setup box body
|
|
var boxBody = createElem2({
|
|
appendTo: boxContainer,
|
|
type: "div",
|
|
class: "box-body box-profile"
|
|
});
|
|
|
|
//Add user image
|
|
var userImage = createElem2({
|
|
appendTo: boxBody,
|
|
type: "img",
|
|
class: "profile-user-img img-responsive img-circle",
|
|
src: infos.accountImage
|
|
});
|
|
|
|
//Add user name
|
|
var userName = createElem2({
|
|
appendTo: boxBody,
|
|
type: "h3",
|
|
class: "profile-username text-center",
|
|
innerHTML: infos.firstName + " " + infos.lastName
|
|
});
|
|
|
|
|
|
//Add user virtual directory (if any)
|
|
if(infos.virtualDirectory != ""){
|
|
var userTag = createElem2({
|
|
appendTo: boxBody,
|
|
type: "div",
|
|
innerHTML: "@"+ infos.virtualDirectory,
|
|
class: "user-tag-in-profile"
|
|
});
|
|
}
|
|
|
|
|
|
//Show user likes
|
|
var userLikesTarget = createElem2({
|
|
appendTo: boxBody,
|
|
type: "div"
|
|
});
|
|
userLikesTarget.style.textAlign = "center";
|
|
userLikesTarget.style.marginBottom = "10px";
|
|
|
|
//Check wether user is linking or not
|
|
var userLiking = null;
|
|
if(signed_in()){
|
|
userLiking = infos.user_like_page;
|
|
}
|
|
|
|
//Call component
|
|
ComunicWeb.components.like.button.display(
|
|
"user",
|
|
infos.userID,
|
|
infos.pageLikes,
|
|
userLiking,
|
|
userLikesTarget
|
|
);
|
|
|
|
|
|
|
|
//Add a list of informations about user
|
|
var listInfos = createElem2({
|
|
appendTo: boxBody,
|
|
type: "url",
|
|
class: "list-group list-group-unbordered"
|
|
});
|
|
|
|
//Add number of friends
|
|
var friendsLi = createElem2({
|
|
appendTo: listInfos,
|
|
type: "li",
|
|
class: "list-group-item"
|
|
});
|
|
createElem2({
|
|
appendTo: friendsLi,
|
|
type: "b",
|
|
innerHTML: lang("user_page_profile_info_friends_link")
|
|
});
|
|
var friendsListLink = createElem2({
|
|
appendTo: friendsLi,
|
|
type: "a",
|
|
class: "pull-right",
|
|
innerHTML: infos.number_friends
|
|
});
|
|
|
|
//Make the user number lives
|
|
friendsListLink.onclick = function(){
|
|
|
|
ComunicWeb.components.friends.listModal.display(infos.userID);
|
|
|
|
};
|
|
|
|
//Add user status informations (if required)
|
|
if(signed_in()){
|
|
if(userID() != infos.userID){
|
|
|
|
// Get user status
|
|
var userStatus = createElem2({
|
|
appendTo: boxBody,
|
|
type: "div",
|
|
innerHTML: lang("user_page_profile_info_loading"),
|
|
});
|
|
userStatus.style.textAlign = "center";
|
|
ComunicWeb.pages.userPage.friendshipStatus.display(infos.userID, userStatus);
|
|
|
|
//Add separator
|
|
userStatus.style.marginBottom = "5px";
|
|
|
|
//Create conversation button
|
|
var conversationButton = createElem2({
|
|
appendTo: boxBody,
|
|
type: "button",
|
|
class: "btn btn-default btn-block",
|
|
innerHTML: "<i class='fa fa-comments'></i> " + lang("user_page_profile_info_conversation_button")
|
|
});
|
|
|
|
conversationButton.onclick = function(){
|
|
ComunicWeb.components.conversations.manager.openPrivate(infos.userID);
|
|
}
|
|
}
|
|
}
|
|
|
|
},
|
|
|
|
/**
|
|
* Create the about the user box
|
|
*
|
|
* @param {Object} infos Informations about the user
|
|
* @param {HTMLElement} target The target for the box
|
|
*/
|
|
createAboutUserBox: function(infos, target){
|
|
|
|
//Create box root
|
|
var boxRoot = createElem2({
|
|
appendTo: target,
|
|
type: "div",
|
|
class: "box box-primary about-user-box"
|
|
});
|
|
|
|
//Add box header
|
|
var boxHeader = createElem2({
|
|
appendTo: boxRoot,
|
|
type: "div",
|
|
class: "box-header with-border"
|
|
});
|
|
|
|
//Add box title
|
|
createElem2({
|
|
appendTo: boxHeader,
|
|
type: "h3",
|
|
class: "box-title",
|
|
innerHTML: lang("user_page_profile_info_about_box_title", [infos.firstName])
|
|
});
|
|
|
|
//Create box body
|
|
var boxBody = createElem2({
|
|
appendTo: boxRoot,
|
|
type: "div",
|
|
class: "box-body"
|
|
});
|
|
|
|
|
|
//Add user website (if any)
|
|
if(infos.personnalWebsite){
|
|
var userWebsite = createElem2({
|
|
appendTo: boxBody,
|
|
type: "strong"
|
|
});
|
|
createElem2({
|
|
appendTo: userWebsite,
|
|
type: "i",
|
|
class: "fa fa-link margin-r-5"
|
|
});
|
|
createElem2({
|
|
appendTo: userWebsite,
|
|
type: "span",
|
|
innerHTML: lang("user_page_profile_info_website")
|
|
});
|
|
var websiteLinkContainer = createElem2({
|
|
appendTo: boxBody,
|
|
type: "p",
|
|
class: "text-muted",
|
|
});
|
|
createElem2({
|
|
appendTo: websiteLinkContainer,
|
|
type: "a",
|
|
href: infos.personnalWebsite,
|
|
innerHTML: infos.personnalWebsite
|
|
}).target="_blank";
|
|
|
|
//Add separator
|
|
createElem2({
|
|
appendTo: boxBody,
|
|
type: "hr",
|
|
});
|
|
}
|
|
|
|
//Add user public note (if any)
|
|
if(infos.publicNote){
|
|
var userNote = createElem2({
|
|
appendTo: boxBody,
|
|
type: "strong"
|
|
});
|
|
createElem2({
|
|
appendTo: userNote,
|
|
type: "i",
|
|
class: "fa fa-file-text-o margin-r-5"
|
|
});
|
|
createElem2({
|
|
appendTo: userNote,
|
|
type: "span",
|
|
innerHTML: lang("user_page_profile_info_note")
|
|
});
|
|
var publicNotes = createElem2({
|
|
appendTo: boxBody,
|
|
type: "p",
|
|
class: "text-muted",
|
|
innerHTML: infos.publicNote
|
|
});
|
|
|
|
//Parse text
|
|
ComunicWeb.components.textParser.parse({
|
|
element: publicNotes,
|
|
user: infos
|
|
});
|
|
|
|
//Add separator
|
|
createElem2({
|
|
appendTo: boxBody,
|
|
type: "hr",
|
|
});
|
|
}
|
|
|
|
//Add informations about membership
|
|
var membershipInfos = createElem2({
|
|
appendTo: boxBody,
|
|
type: "strong"
|
|
});
|
|
createElem2({
|
|
appendTo: membershipInfos,
|
|
type: "i",
|
|
class: "fa fa-clock-o margin-r-5"
|
|
});
|
|
createElem2({
|
|
appendTo: membershipInfos,
|
|
type: "span",
|
|
innerHTML: lang("user_page_profile_info_membership")
|
|
});
|
|
createElem2({
|
|
appendTo: boxBody,
|
|
type: "p",
|
|
class: "text-muted",
|
|
innerHTML: lang("user_page_profile_info_member_for", [ComunicWeb.common.date.timeDiffToStr(infos.account_creation_time)])
|
|
});
|
|
|
|
},
|
|
}; |