mirror of
https://github.com/pierre42100/ComunicWeb
synced 2024-11-22 20:19:21 +00:00
Display notifications
This commit is contained in:
parent
4c915b3dee
commit
10cd3b1da4
13
assets/css/components/notifications/ui.css
Normal file
13
assets/css/components/notifications/ui.css
Normal file
@ -0,0 +1,13 @@
|
|||||||
|
/**
|
||||||
|
* Notifications UI
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
|
||||||
|
.notification-contener p {
|
||||||
|
white-space: normal;
|
||||||
|
}
|
||||||
|
|
||||||
|
.notification-contener .notification-creation-time {
|
||||||
|
color: #888888;
|
||||||
|
}
|
@ -17,7 +17,7 @@ ComunicWeb.components.notifications.dropdown = {
|
|||||||
var dropdown = createElem2({
|
var dropdown = createElem2({
|
||||||
appendTo: target,
|
appendTo: target,
|
||||||
type: "li",
|
type: "li",
|
||||||
class: "dropdown notifications-menu"
|
class: "dropdown messages-menu"
|
||||||
});
|
});
|
||||||
|
|
||||||
//Add dropdown toggle
|
//Add dropdown toggle
|
||||||
@ -54,8 +54,12 @@ ComunicWeb.components.notifications.dropdown = {
|
|||||||
});
|
});
|
||||||
|
|
||||||
//Add notifications list
|
//Add notifications list
|
||||||
var notificationsList = createElem2({
|
var notificationsListContener = createElem2({
|
||||||
appendTo: dropdownMenu,
|
appendTo: dropdownMenu,
|
||||||
|
type: "li"
|
||||||
|
});
|
||||||
|
var notificationsList = createElem2({
|
||||||
|
appendTo: notificationsListContener,
|
||||||
type: "ul",
|
type: "ul",
|
||||||
class: "menu"
|
class: "menu"
|
||||||
});
|
});
|
||||||
@ -93,7 +97,35 @@ ComunicWeb.components.notifications.dropdown = {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//Get the list of required users informations
|
||||||
|
var users_id = ComunicWeb.components.notifications.utils.get_users_id(result);
|
||||||
|
|
||||||
|
//Get informations about the users
|
||||||
|
ComunicWeb.user.userInfos.getMultipleUsersInfos(users_id, function(users){
|
||||||
|
|
||||||
|
//Check for errors
|
||||||
|
if(users.error){
|
||||||
|
ComunicWeb.common.notificationSystem.showNotification("An error occured while trying to retrieve users informations for the notifications !", "danger");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//Empty the target list
|
||||||
|
list.innerHTML = "";
|
||||||
|
|
||||||
|
//Process the list of notifications
|
||||||
|
for (let i = 0; i < result.length; i++) {
|
||||||
|
const notification = result[i];
|
||||||
|
|
||||||
|
//Display the notification
|
||||||
|
ComunicWeb.components.notifications.ui.display_notification(notification, list, users);
|
||||||
|
}
|
||||||
|
|
||||||
|
}, false);
|
||||||
|
|
||||||
|
|
||||||
});
|
});
|
||||||
|
|
||||||
},
|
},
|
||||||
|
|
||||||
}
|
}
|
99
assets/js/components/notifications/ui.js
Normal file
99
assets/js/components/notifications/ui.js
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
/**
|
||||||
|
* Notifications UI script
|
||||||
|
*
|
||||||
|
* @author Pierre HUBERT
|
||||||
|
*/
|
||||||
|
|
||||||
|
ComunicWeb.components.notifications.ui = {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display a single notification
|
||||||
|
*
|
||||||
|
* @param {Object} data Informations about the notification
|
||||||
|
* @param {HTMLElement} target The target of the notification
|
||||||
|
* @param {Object} users Informations about users that might be required
|
||||||
|
* to display the notification
|
||||||
|
*/
|
||||||
|
display_notification: function(data, target, users){
|
||||||
|
|
||||||
|
//Generate the informations about the notifications
|
||||||
|
var from_user = users["user-"+data.from_user_id];
|
||||||
|
|
||||||
|
//Generate the appropriate string
|
||||||
|
|
||||||
|
//Notification author
|
||||||
|
var message = userFullName(from_user) + " ";
|
||||||
|
|
||||||
|
//Notification action
|
||||||
|
if(data.type == "comment_created")
|
||||||
|
message += "posted a comment";
|
||||||
|
|
||||||
|
if(data.type == "elem_created"){
|
||||||
|
|
||||||
|
if(data.on_elem_type == "post")
|
||||||
|
message += "created a new post";
|
||||||
|
|
||||||
|
}
|
||||||
|
message += " ";
|
||||||
|
|
||||||
|
//Notification target
|
||||||
|
if(data.from_container_type == "user_page"){
|
||||||
|
|
||||||
|
if(data.from_container_type == "user_page"){
|
||||||
|
|
||||||
|
if(data.from_user_id == data.from_container_id)
|
||||||
|
message += "on his / her page";
|
||||||
|
else
|
||||||
|
message += "on "+userFullName(users["user-"+data.from_container_id])+"'s page";
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//Create the notification object
|
||||||
|
var notificationContener = createElem2({
|
||||||
|
appendTo: target,
|
||||||
|
type: "li",
|
||||||
|
class: "notification-contener"
|
||||||
|
});
|
||||||
|
|
||||||
|
//Create notification link
|
||||||
|
var notificationLink = createElem2({
|
||||||
|
appendTo: notificationContener,
|
||||||
|
type: "a"
|
||||||
|
});
|
||||||
|
|
||||||
|
//Add notification left content
|
||||||
|
var notificationLeftContent = createElem2({
|
||||||
|
appendTo: notificationLink,
|
||||||
|
type: "div",
|
||||||
|
class: "pull-left"
|
||||||
|
});
|
||||||
|
|
||||||
|
//Add user image
|
||||||
|
var userImage = createElem2({
|
||||||
|
appendTo: notificationLeftContent,
|
||||||
|
type: "img",
|
||||||
|
src: from_user.accountImage,
|
||||||
|
class: "img-circle"
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
//Add the notification message
|
||||||
|
var notificationMessage = createElem2({
|
||||||
|
appendTo: notificationLink,
|
||||||
|
type: "p",
|
||||||
|
innerHTML: message
|
||||||
|
});
|
||||||
|
|
||||||
|
//Add notification date
|
||||||
|
var notificationCreationTime = createElem2({
|
||||||
|
appendTo: notificationLink,
|
||||||
|
type: "small",
|
||||||
|
class: "notification-creation-time",
|
||||||
|
innerHTML: '<i class="fa fa-clock-o"></i> ' + ComunicWeb.common.date.timeDiffToStr(data.time_create) + " ago"
|
||||||
|
});
|
||||||
|
},
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -146,6 +146,9 @@ class Dev {
|
|||||||
"css/components/comments/ui.css",
|
"css/components/comments/ui.css",
|
||||||
"css/components/comments/form.css",
|
"css/components/comments/form.css",
|
||||||
|
|
||||||
|
//Notifications component
|
||||||
|
"css/components/notifications/ui.css",
|
||||||
|
|
||||||
//Pages stylesheets
|
//Pages stylesheets
|
||||||
//User Page
|
//User Page
|
||||||
"css/pages/userPage/main.css",
|
"css/pages/userPage/main.css",
|
||||||
|
Loading…
Reference in New Issue
Block a user