mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-04 04:04:20 +00:00 
			
		
		
		
	Can refresh the list of events
This commit is contained in:
		@@ -14,29 +14,12 @@ class GroupPresencePage {
 | 
				
			|||||||
    * @param {HTMLElement} target 
 | 
					    * @param {HTMLElement} target 
 | 
				
			||||||
    */
 | 
					    */
 | 
				
			||||||
    static async Show(group, target) {
 | 
					    static async Show(group, target) {
 | 
				
			||||||
        const presence = await ForezPresenceHelper.GetList(group.id);
 | 
					 | 
				
			||||||
        const users = await getUsers([...new Set(presence.map(e => e.userID))]);
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        // Load template
 | 
					        // Load template
 | 
				
			||||||
        const tpl = await Page.loadHTMLTemplate("pages/groups/pages/presence.html");
 | 
					        const tpl = await Page.loadHTMLTemplate("pages/groups/pages/presence.html");
 | 
				
			||||||
        const el = document.createElement("div")
 | 
					        const el = document.createElement("div")
 | 
				
			||||||
        el.innerHTML = tpl;
 | 
					        el.innerHTML = tpl;
 | 
				
			||||||
        target.appendChild(el);
 | 
					        target.appendChild(el);
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        
 | 
					 | 
				
			||||||
        const calEvents = presence.map((e) => {
 | 
					 | 
				
			||||||
            return {
 | 
					 | 
				
			||||||
                title: users.get(e.userID).fullName,
 | 
					 | 
				
			||||||
                start: new Date(e.year, e.month - 1, e.day),
 | 
					 | 
				
			||||||
                backgroundColor: "#0073b7", //Blue
 | 
					 | 
				
			||||||
                borderColor: "#0073b7", //Blue
 | 
					 | 
				
			||||||
                editable: e.userID == userID(),
 | 
					 | 
				
			||||||
                allDay: true,
 | 
					 | 
				
			||||||
                description: users.get(e.userID).fullName
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        })
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        let lastClick = null;
 | 
					        let lastClick = null;
 | 
				
			||||||
        
 | 
					        
 | 
				
			||||||
        const calendarTarget = el.querySelector(".calendar");
 | 
					        const calendarTarget = el.querySelector(".calendar");
 | 
				
			||||||
@@ -47,7 +30,29 @@ class GroupPresencePage {
 | 
				
			|||||||
                right: 'dayGridMonth,listMonth'
 | 
					                right: 'dayGridMonth,listMonth'
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            initialView: 'dayGridMonth',
 | 
					            initialView: 'dayGridMonth',
 | 
				
			||||||
            events: calEvents,
 | 
					
 | 
				
			||||||
 | 
					            // Data source
 | 
				
			||||||
 | 
					            events: async function(info, success, failure) {
 | 
				
			||||||
 | 
					                try {
 | 
				
			||||||
 | 
					                    const presence = await ForezPresenceHelper.GetList(group.id);
 | 
				
			||||||
 | 
					                    const users = await getUsers([...new Set(presence.map(e => e.userID))]);
 | 
				
			||||||
 | 
					                    success(presence.map((e) => {
 | 
				
			||||||
 | 
					                        return {
 | 
				
			||||||
 | 
					                            title: users.get(e.userID).fullName,
 | 
				
			||||||
 | 
					                            start: new Date(e.year, e.month - 1, e.day),
 | 
				
			||||||
 | 
					                            backgroundColor: "#0073b7", //Blue
 | 
				
			||||||
 | 
					                            borderColor: "#0073b7", //Blue
 | 
				
			||||||
 | 
					                            editable: e.userID == userID(),
 | 
				
			||||||
 | 
					                            allDay: true,
 | 
				
			||||||
 | 
					                            description: users.get(e.userID).fullName
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                } catch(e) {
 | 
				
			||||||
 | 
					                    console.error(e);
 | 
				
			||||||
 | 
					                    failure(e);
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // Update events
 | 
					            // Update events
 | 
				
			||||||
            eventResize: async function(info) {
 | 
					            eventResize: async function(info) {
 | 
				
			||||||
@@ -69,6 +74,8 @@ class GroupPresencePage {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
                try {
 | 
					                try {
 | 
				
			||||||
                    await ForezPresenceHelper.AddDay(group.id, info.date.getFullYear(), info.date.getMonth() + 1, info.date.getDate())
 | 
					                    await ForezPresenceHelper.AddDay(group.id, info.date.getFullYear(), info.date.getMonth() + 1, info.date.getDate())
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                    calendar.getEventSources()[0].refetch()
 | 
				
			||||||
                } catch(e) {
 | 
					                } catch(e) {
 | 
				
			||||||
                    console.error(e);
 | 
					                    console.error(e);
 | 
				
			||||||
                    notify(tr("Failed to update presence!"), "danger")
 | 
					                    notify(tr("Failed to update presence!"), "danger")
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user