mirror of
https://github.com/pierre42100/ComunicWeb
synced 2025-06-19 04:15:17 +00:00
Load users presence
This commit is contained in:
32
assets/js/components/presence/PresenceHelper.js
Normal file
32
assets/js/components/presence/PresenceHelper.js
Normal file
@ -0,0 +1,32 @@
|
||||
/**
|
||||
* Forez Presence Helper
|
||||
*
|
||||
* @author Pierre Hubert
|
||||
*/
|
||||
|
||||
class Presence {
|
||||
constructor(userID, year, month, day) {
|
||||
this.userID = userID;
|
||||
this.year = year;
|
||||
this.month = month;
|
||||
this.day = day;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class ForezPresenceHelper {
|
||||
/**
|
||||
* Load the list of presence
|
||||
*
|
||||
* @param {number} groupID Target group ID
|
||||
* @returns {Promise<Presence[]>}
|
||||
*/
|
||||
static async GetList(groupID) {
|
||||
const list = await ws("forez_presence/list", {group: groupID});
|
||||
|
||||
return list.map(el => {
|
||||
const infos = el.split(",").map(e => Number(e));
|
||||
return new Presence(...infos)
|
||||
});
|
||||
}
|
||||
}
|
@ -119,6 +119,12 @@ const GroupsPage = {
|
||||
GroupConversationPage.show(conv, target)
|
||||
return;
|
||||
}
|
||||
|
||||
case "presence":
|
||||
if (group.is_forez_group) {
|
||||
await GroupPresencePage.Show(group, target)
|
||||
return;
|
||||
}
|
||||
|
||||
default:
|
||||
ComunicWeb.common.error.pageNotFound(null, target);
|
||||
|
22
assets/js/pages/groups/pages/presence.js
Normal file
22
assets/js/pages/groups/pages/presence.js
Normal file
@ -0,0 +1,22 @@
|
||||
/**
|
||||
* Group presence tab
|
||||
*
|
||||
* This is a Forez feature
|
||||
*
|
||||
* @author Pierre Hubert
|
||||
*/
|
||||
|
||||
class GroupPresencePage {
|
||||
/**
|
||||
* Show the page
|
||||
*
|
||||
* @param {AdvancedGroupInfo} group
|
||||
* @param {HTMLElement} target
|
||||
*/
|
||||
static async Show(group, target) {
|
||||
const presence = await ForezPresenceHelper.GetList(group.id);
|
||||
const users = await getUsers([...new Set(presence.map(e => e.userID))]);
|
||||
|
||||
console.error(presence, users)
|
||||
}
|
||||
}
|
@ -28,6 +28,7 @@ const GroupTabs = {
|
||||
activePage: activePage,
|
||||
firstArgument: firstArgument,
|
||||
conversations: group.conversations,
|
||||
is_forez: group.is_forez_group
|
||||
}
|
||||
},
|
||||
|
||||
|
Reference in New Issue
Block a user