mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-03 19:54:14 +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