mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-04 04:04:20 +00:00 
			
		
		
		
	Can respond to group invitations.
This commit is contained in:
		
							
								
								
									
										9
									
								
								assets/css/pages/groups/sections/membershipBlock.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								assets/css/pages/groups/sections/membershipBlock.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Membership block stylesheet
 | 
			
		||||
 *
 | 
			
		||||
 * @author Pierre HUBERT
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
.reject-group-invitation-link {
 | 
			
		||||
    color: #f56954;
 | 
			
		||||
}
 | 
			
		||||
@@ -112,4 +112,22 @@ ComunicWeb.components.groups.interface = {
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Respond to a group invitation
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Number} id The ID of the target group
 | 
			
		||||
     * @param {Boolean} accept Specify whether the invitation was
 | 
			
		||||
     * accepted or not
 | 
			
		||||
     * @param {Function} callback
 | 
			
		||||
     */
 | 
			
		||||
    respondInvitation: function(id, accept, callback) {
 | 
			
		||||
        //Perform the request over the API
 | 
			
		||||
        var apiURI = "groups/respond_invitation";
 | 
			
		||||
        var params = {
 | 
			
		||||
            id: id,
 | 
			
		||||
            accept: accept
 | 
			
		||||
        };
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
@@ -96,6 +96,6 @@ ComunicWeb.pages.groups.pages.forbidden = {
 | 
			
		||||
 | 
			
		||||
        //Append membership block (if the user is signed in)
 | 
			
		||||
        if(signed_in())
 | 
			
		||||
            ComunicWeb.pages.groups.sections.membershipBlock.display(result);
 | 
			
		||||
            ComunicWeb.pages.groups.sections.membershipBlock.display(result, boxBody);
 | 
			
		||||
    },
 | 
			
		||||
}
 | 
			
		||||
@@ -6,42 +6,118 @@
 | 
			
		||||
 | 
			
		||||
ComunicWeb.pages.groups.sections.membershipBlock = {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Display membership block
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Object} info Information about the membership
 | 
			
		||||
     * @param {HTMLElement} target The target where the block will be applied
 | 
			
		||||
     */
 | 
			
		||||
    display: function(info, target){
 | 
			
		||||
	/**
 | 
			
		||||
	 * Display membership block
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Object} info Information about the membership (= basic info about the group)
 | 
			
		||||
	 * @param {HTMLElement} target The target where the block will be applied
 | 
			
		||||
	 */
 | 
			
		||||
	display: function(info, target){
 | 
			
		||||
		
 | 
			
		||||
        //Membership container
 | 
			
		||||
        var container = createElem2({
 | 
			
		||||
            appendTo: target, 
 | 
			
		||||
            type: "div"
 | 
			
		||||
        });
 | 
			
		||||
		//Membership container
 | 
			
		||||
		var container = createElem2({
 | 
			
		||||
			appendTo: target, 
 | 
			
		||||
			type: "div"
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
        //Check if the user is an administrator / moderator / member
 | 
			
		||||
        if(info.membership == "administrator")
 | 
			
		||||
            return createElem2({
 | 
			
		||||
                appendTo: container,
 | 
			
		||||
                type: "span",
 | 
			
		||||
                innerHTML: "<i class='fa fa-check'></i> Administrator"
 | 
			
		||||
            });
 | 
			
		||||
		//Check if the user is an administrator / moderator / member
 | 
			
		||||
		if(info.membership == "administrator")
 | 
			
		||||
			return createElem2({
 | 
			
		||||
				appendTo: container,
 | 
			
		||||
				type: "span",
 | 
			
		||||
				innerHTML: "<i class='fa fa-check'></i> Administrator"
 | 
			
		||||
			});
 | 
			
		||||
		
 | 
			
		||||
        if(info.membership == "moderator")
 | 
			
		||||
            return createElem2({
 | 
			
		||||
                appendTo: container,
 | 
			
		||||
                type: "span",
 | 
			
		||||
                innerHTML: "<i class='fa fa-check'></i> Moderator"
 | 
			
		||||
            });
 | 
			
		||||
		if(info.membership == "moderator")
 | 
			
		||||
			return createElem2({
 | 
			
		||||
				appendTo: container,
 | 
			
		||||
				type: "span",
 | 
			
		||||
				innerHTML: "<i class='fa fa-check'></i> Moderator"
 | 
			
		||||
			});
 | 
			
		||||
		
 | 
			
		||||
        if(info.membership == "member")
 | 
			
		||||
            return createElem2({
 | 
			
		||||
                appendTo: container,
 | 
			
		||||
                type: "span",
 | 
			
		||||
                innerHTML: "<i class='fa fa-check'></i> Member"
 | 
			
		||||
            });
 | 
			
		||||
		if(info.membership == "member")
 | 
			
		||||
			return createElem2({
 | 
			
		||||
				appendTo: container,
 | 
			
		||||
				type: "span",
 | 
			
		||||
				innerHTML: "<i class='fa fa-check'></i> Member"
 | 
			
		||||
			});
 | 
			
		||||
		
 | 
			
		||||
    }
 | 
			
		||||
		//Check if the user has been invited
 | 
			
		||||
		if(info.membership == "invited"){
 | 
			
		||||
			var invitedContainer = createElem2({
 | 
			
		||||
				appendTo: container,
 | 
			
		||||
				type: "span",
 | 
			
		||||
				innerHTML: "<i class='fa fa-question'></i> Invited "
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			//Offer the user to accept the invitation
 | 
			
		||||
			var acceptInvitation = createElem2({
 | 
			
		||||
				appendTo: invitedContainer,
 | 
			
		||||
				type: "span",
 | 
			
		||||
				class: "a",
 | 
			
		||||
				innerHTML: "Accept"
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			add_space(invitedContainer);
 | 
			
		||||
 | 
			
		||||
			//Offer the user to reject
 | 
			
		||||
			var rejectInvitation = createElem2({
 | 
			
		||||
				appendTo: invitedContainer, 
 | 
			
		||||
				type: "span",
 | 
			
		||||
				class: "a reject-group-invitation-link",
 | 
			
		||||
				innerHTML: "Reject"
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			/**
 | 
			
		||||
			 * Respond to a group invitation
 | 
			
		||||
			 * 
 | 
			
		||||
			 * @param {Boolean} accept Set whether the invation was accepted or not
 | 
			
		||||
			 */
 | 
			
		||||
			var respondInvitation = function(accept){
 | 
			
		||||
 | 
			
		||||
				//Perform the request over the server
 | 
			
		||||
				ComunicWeb.components.groups.interface.respondInvitation(info.id, accept, function(result){
 | 
			
		||||
 | 
			
		||||
					//Check for errors
 | 
			
		||||
					if(result.error)
 | 
			
		||||
						notify("An error occurred while trying to respond to the invitation!", "danger");
 | 
			
		||||
					
 | 
			
		||||
					//Refresh the component
 | 
			
		||||
					emptyElem(container);
 | 
			
		||||
					ComunicWeb.components.groups.interface.getInfo(info.id, function(result){
 | 
			
		||||
 | 
			
		||||
						//Check for errors
 | 
			
		||||
						if(result.error)
 | 
			
		||||
							return notify("Could not refresh membership information!", "danger");
 | 
			
		||||
						
 | 
			
		||||
						//Display the component again
 | 
			
		||||
						ComunicWeb.pages.groups.sections.membershipBlock.display(result, container);
 | 
			
		||||
 | 
			
		||||
					});
 | 
			
		||||
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			//Accept invitation
 | 
			
		||||
			acceptInvitation.addEventListener("click", function(e){
 | 
			
		||||
				//Accept the invitation
 | 
			
		||||
				respondInvitation(true);
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			//Reject invitation
 | 
			
		||||
			rejectInvitation.addEventListener("click", function(e){
 | 
			
		||||
 | 
			
		||||
				ComunicWeb.common.messages.confirm("Do you really want to reject this invitation ?", function(r){
 | 
			
		||||
					if(!r) return;
 | 
			
		||||
 | 
			
		||||
					//Reject the invitation
 | 
			
		||||
					respondInvitation(false);
 | 
			
		||||
				})
 | 
			
		||||
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
@@ -226,6 +226,7 @@ class Dev {
 | 
			
		||||
 | 
			
		||||
				//Groups sections
 | 
			
		||||
				"css/pages/groups/sections/header.css",
 | 
			
		||||
				"css/pages/groups/sections/membershipBlock.css",
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
			//Settings page
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user