mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-04 04:04:20 +00:00 
			
		
		
		
	Start to show presence
This commit is contained in:
		@@ -17,6 +17,76 @@ class GroupPresencePage {
 | 
				
			|||||||
        const presence = await ForezPresenceHelper.GetList(group.id);
 | 
					        const presence = await ForezPresenceHelper.GetList(group.id);
 | 
				
			||||||
        const users = await getUsers([...new Set(presence.map(e => e.userID))]);
 | 
					        const users = await getUsers([...new Set(presence.map(e => e.userID))]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        console.error(presence, users)
 | 
					        // Load template
 | 
				
			||||||
 | 
							const tpl = await Page.loadHTMLTemplate("pages/groups/pages/presence.html");
 | 
				
			||||||
 | 
							const el = document.createElement("div")
 | 
				
			||||||
 | 
							el.innerHTML = tpl;
 | 
				
			||||||
 | 
							target.appendChild(el);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Vue.createApp({
 | 
				
			||||||
 | 
					            
 | 
				
			||||||
 | 
					            data: () => {
 | 
				
			||||||
 | 
					                return {
 | 
				
			||||||
 | 
					                   
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            methods: {
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }).mount(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: false,
 | 
				
			||||||
 | 
					                allDay: true
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        $(el.getElementsByClassName("calendar")).fullCalendar({
 | 
				
			||||||
 | 
					            header: {
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            buttonText: {
 | 
				
			||||||
 | 
					              today: 'today',
 | 
				
			||||||
 | 
					              month: 'month',
 | 
				
			||||||
 | 
					              week: 'week',
 | 
				
			||||||
 | 
					              day: 'day'
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
 | 
					            //Random default events
 | 
				
			||||||
 | 
					            events: calEvents,
 | 
				
			||||||
 | 
					            editable: true,
 | 
				
			||||||
 | 
					            droppable: true, // this allows things to be dropped onto the calendar !!!
 | 
				
			||||||
 | 
					            drop: function (date, allDay) { // this function is called when something is dropped
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					              // retrieve the dropped element's stored Event Object
 | 
				
			||||||
 | 
					              var originalEventObject = $(this).data('eventObject');
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					              // we need to copy it, so that multiple events don't have a reference to the same object
 | 
				
			||||||
 | 
					              var copiedEventObject = $.extend({}, originalEventObject);
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					              // assign it the date that was reported
 | 
				
			||||||
 | 
					              copiedEventObject.start = date;
 | 
				
			||||||
 | 
					              copiedEventObject.allDay = allDay;
 | 
				
			||||||
 | 
					              copiedEventObject.backgroundColor = $(this).css("background-color");
 | 
				
			||||||
 | 
					              copiedEventObject.borderColor = $(this).css("border-color");
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					              // render the event on the calendar
 | 
				
			||||||
 | 
					              // the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)
 | 
				
			||||||
 | 
					              $('#calendar').fullCalendar('renderEvent', copiedEventObject, true);
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					              // is the "remove after drop" checkbox checked?
 | 
				
			||||||
 | 
					              if ($('#drop-remove').is(':checked')) {
 | 
				
			||||||
 | 
					                // if so, remove the element from the "Draggable Events" list
 | 
				
			||||||
 | 
					                $(this).remove();
 | 
				
			||||||
 | 
					              }
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					          });
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
							
								
								
									
										15
									
								
								assets/templates/pages/groups/pages/presence.html
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								assets/templates/pages/groups/pages/presence.html
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					<!-- Groups presence page -->
 | 
				
			||||||
 | 
					<div class="row group-page about-group-page">
 | 
				
			||||||
 | 
					    <div class="col-md-6">
 | 
				
			||||||
 | 
					        <div class="box box-primary">
 | 
				
			||||||
 | 
					            <div class="box-header">
 | 
				
			||||||
 | 
					                <h3 class="box-title">tr("Presence in Forez")</h3>
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					            <div class="box-body">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                <div class="calendar"></div>
 | 
				
			||||||
 | 
					                
 | 
				
			||||||
 | 
					            </div>
 | 
				
			||||||
 | 
					        </div>
 | 
				
			||||||
 | 
					    </div>
 | 
				
			||||||
 | 
					</div>
 | 
				
			||||||
@@ -78,6 +78,9 @@ class Dev {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		// Color picker
 | 
							// Color picker
 | 
				
			||||||
		"3rdparty/adminLTE/plugins/colorpicker/bootstrap-colorpicker.min.css",
 | 
							"3rdparty/adminLTE/plugins/colorpicker/bootstrap-colorpicker.min.css",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Calendar
 | 
				
			||||||
 | 
							"3rdparty/adminLTE/plugins/fullcalendar/fullcalendar.min.css",
 | 
				
			||||||
	);
 | 
						);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
@@ -176,6 +179,10 @@ class Dev {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
		// Color picker
 | 
							// Color picker
 | 
				
			||||||
		"3rdparty/adminLTE/plugins/colorpicker/bootstrap-colorpicker.min.js",
 | 
							"3rdparty/adminLTE/plugins/colorpicker/bootstrap-colorpicker.min.js",
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							// Calendar
 | 
				
			||||||
 | 
							"3rdparty/adminLTE/plugins/moment.js/moment.min.js",
 | 
				
			||||||
 | 
							"3rdparty/adminLTE/plugins/fullcalendar/fullcalendar.min.js",
 | 
				
			||||||
	);
 | 
						);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/**
 | 
						/**
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user