mirror of
				https://github.com/pierre42100/ComunicWeb
				synced 2025-11-03 19:54:14 +00:00 
			
		
		
		
	Send a request to the server to cancel membership request.
This commit is contained in:
		@@ -6,128 +6,143 @@
 | 
			
		||||
 | 
			
		||||
ComunicWeb.components.groups.interface = {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Create a group
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {String} name The name of the group to create
 | 
			
		||||
     * @param {Function} callback
 | 
			
		||||
     */
 | 
			
		||||
    create: function(name, callback){
 | 
			
		||||
	/**
 | 
			
		||||
	 * Create a group
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {String} name The name of the group to create
 | 
			
		||||
	 * @param {Function} callback
 | 
			
		||||
	 */
 | 
			
		||||
	create: function(name, callback){
 | 
			
		||||
 | 
			
		||||
        //Perform a request over the API
 | 
			
		||||
        var apiURI = "groups/create";
 | 
			
		||||
        var params = {
 | 
			
		||||
            name: name
 | 
			
		||||
        };
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
		//Perform a request over the API
 | 
			
		||||
		var apiURI = "groups/create";
 | 
			
		||||
		var params = {
 | 
			
		||||
			name: name
 | 
			
		||||
		};
 | 
			
		||||
		ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get information about a group
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Number} id The ID of the target group
 | 
			
		||||
     * @param {Function} callback Callback
 | 
			
		||||
     */
 | 
			
		||||
    getInfo: function(id, callback){
 | 
			
		||||
        //Perform the request over the API
 | 
			
		||||
        var apiURI = "groups/get_info";
 | 
			
		||||
        var params = {
 | 
			
		||||
            id: id
 | 
			
		||||
        };
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get information about a group
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the target group
 | 
			
		||||
	 * @param {Function} callback Callback
 | 
			
		||||
	 */
 | 
			
		||||
	getInfo: function(id, callback){
 | 
			
		||||
		//Perform the request over the API
 | 
			
		||||
		var apiURI = "groups/get_info";
 | 
			
		||||
		var params = {
 | 
			
		||||
			id: id
 | 
			
		||||
		};
 | 
			
		||||
		ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get advanced information about a group
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Number} id The ID of the target group
 | 
			
		||||
     * @param {Function} callback Callback
 | 
			
		||||
     */
 | 
			
		||||
    getAdvancedInfo: function(id, callback){
 | 
			
		||||
        //Perform the request over the API
 | 
			
		||||
        var apiURI = "groups/get_advanced_info";
 | 
			
		||||
        var params = {
 | 
			
		||||
            id: id
 | 
			
		||||
        };
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get advanced information about a group
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the target group
 | 
			
		||||
	 * @param {Function} callback Callback
 | 
			
		||||
	 */
 | 
			
		||||
	getAdvancedInfo: function(id, callback){
 | 
			
		||||
		//Perform the request over the API
 | 
			
		||||
		var apiURI = "groups/get_advanced_info";
 | 
			
		||||
		var params = {
 | 
			
		||||
			id: id
 | 
			
		||||
		};
 | 
			
		||||
		ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Get the settings of a group
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Number} id The ID of the target group
 | 
			
		||||
     * @param {Function} callback
 | 
			
		||||
     */
 | 
			
		||||
    getSettings: function(id, callback){
 | 
			
		||||
        //Perform the request over the API
 | 
			
		||||
        var apiURI = "groups/get_settings";
 | 
			
		||||
        var params = {
 | 
			
		||||
            id: id
 | 
			
		||||
        };
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
	/**
 | 
			
		||||
	 * Get the settings of a group
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the target group
 | 
			
		||||
	 * @param {Function} callback
 | 
			
		||||
	 */
 | 
			
		||||
	getSettings: function(id, callback){
 | 
			
		||||
		//Perform the request over the API
 | 
			
		||||
		var apiURI = "groups/get_settings";
 | 
			
		||||
		var params = {
 | 
			
		||||
			id: id
 | 
			
		||||
		};
 | 
			
		||||
		ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Set (update) the settings of a group
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Number} id The ID of the target group
 | 
			
		||||
     * @param {Object} settings The new settings to apply to 
 | 
			
		||||
     * the group
 | 
			
		||||
     * @param {Function} callback
 | 
			
		||||
     */
 | 
			
		||||
    setSettings: function(id, settings, callback){
 | 
			
		||||
        //Perform the request over the API
 | 
			
		||||
        var apiURI = "groups/set_settings";
 | 
			
		||||
        settings.id = id;
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, settings, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
	/**
 | 
			
		||||
	 * Set (update) the settings of a group
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the target group
 | 
			
		||||
	 * @param {Object} settings The new settings to apply to 
 | 
			
		||||
	 * the group
 | 
			
		||||
	 * @param {Function} callback
 | 
			
		||||
	 */
 | 
			
		||||
	setSettings: function(id, settings, callback){
 | 
			
		||||
		//Perform the request over the API
 | 
			
		||||
		var apiURI = "groups/set_settings";
 | 
			
		||||
		settings.id = id;
 | 
			
		||||
		ComunicWeb.common.api.makeAPIrequest(apiURI, settings, true, callback);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Upload a new group logo
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Number} id The ID of the target group
 | 
			
		||||
     * @param {FormData} data The form data that contains the
 | 
			
		||||
     * new logo (parameter name : logo)
 | 
			
		||||
     * @param {Function} callback
 | 
			
		||||
     */
 | 
			
		||||
    uploadLogo: function(id, data, callback){
 | 
			
		||||
        //Perform the request over the API
 | 
			
		||||
        var apiURI = "groups/upload_logo";
 | 
			
		||||
        data.append("id", id);
 | 
			
		||||
        ComunicWeb.common.api.makeFormDatarequest(apiURI, data, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
	/**
 | 
			
		||||
	 * Upload a new group logo
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the target group
 | 
			
		||||
	 * @param {FormData} data The form data that contains the
 | 
			
		||||
	 * new logo (parameter name : logo)
 | 
			
		||||
	 * @param {Function} callback
 | 
			
		||||
	 */
 | 
			
		||||
	uploadLogo: function(id, data, callback){
 | 
			
		||||
		//Perform the request over the API
 | 
			
		||||
		var apiURI = "groups/upload_logo";
 | 
			
		||||
		data.append("id", id);
 | 
			
		||||
		ComunicWeb.common.api.makeFormDatarequest(apiURI, data, true, callback);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Delete user logo
 | 
			
		||||
     * 
 | 
			
		||||
     * @param {Number} id The ID of the target group
 | 
			
		||||
     * @param {Function} callback
 | 
			
		||||
     */
 | 
			
		||||
    deleteLogo: function(id, callback){
 | 
			
		||||
        //Perform the request over the API
 | 
			
		||||
        var apiURI = "groups/delete_logo";
 | 
			
		||||
        var params = {
 | 
			
		||||
            id: id
 | 
			
		||||
        };
 | 
			
		||||
        ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
    },
 | 
			
		||||
	/**
 | 
			
		||||
	 * Delete user logo
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the target group
 | 
			
		||||
	 * @param {Function} callback
 | 
			
		||||
	 */
 | 
			
		||||
	deleteLogo: function(id, callback){
 | 
			
		||||
		//Perform the request over the API
 | 
			
		||||
		var apiURI = "groups/delete_logo";
 | 
			
		||||
		var params = {
 | 
			
		||||
			id: id
 | 
			
		||||
		};
 | 
			
		||||
		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);
 | 
			
		||||
    },
 | 
			
		||||
	/**
 | 
			
		||||
	 * 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);
 | 
			
		||||
	},
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Cancel a membership request
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param {Number} id The ID of the target group
 | 
			
		||||
	 * @param {Function} callback
 | 
			
		||||
	 */
 | 
			
		||||
	cancelRequest: function(id, callback){
 | 
			
		||||
		//Perform the request over the API
 | 
			
		||||
		var apiURI = "groups/cancel_request";
 | 
			
		||||
		var params = {
 | 
			
		||||
			id: id
 | 
			
		||||
		};
 | 
			
		||||
		ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback);
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
@@ -20,6 +20,24 @@ ComunicWeb.pages.groups.sections.membershipBlock = {
 | 
			
		||||
			type: "div"
 | 
			
		||||
		});
 | 
			
		||||
 | 
			
		||||
		/**
 | 
			
		||||
		 * Refresh current component information
 | 
			
		||||
		 */
 | 
			
		||||
		refresh_component = function(){
 | 
			
		||||
			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);
 | 
			
		||||
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Check if the user is an administrator / moderator / member
 | 
			
		||||
		if(info.membership == "administrator")
 | 
			
		||||
			return createElem2({
 | 
			
		||||
@@ -75,6 +93,10 @@ ComunicWeb.pages.groups.sections.membershipBlock = {
 | 
			
		||||
			 */
 | 
			
		||||
			var respondInvitation = function(accept){
 | 
			
		||||
 | 
			
		||||
				//Hide the buttons
 | 
			
		||||
				acceptInvitation.style.visibility = "hidden";
 | 
			
		||||
				rejectInvitation.style.visibility = "hidden";
 | 
			
		||||
 | 
			
		||||
				//Perform the request over the server
 | 
			
		||||
				ComunicWeb.components.groups.interface.respondInvitation(info.id, accept, function(result){
 | 
			
		||||
 | 
			
		||||
@@ -83,18 +105,7 @@ ComunicWeb.pages.groups.sections.membershipBlock = {
 | 
			
		||||
						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);
 | 
			
		||||
 | 
			
		||||
					});
 | 
			
		||||
 | 
			
		||||
					refresh_component();
 | 
			
		||||
				});
 | 
			
		||||
 | 
			
		||||
			}
 | 
			
		||||
@@ -118,6 +129,40 @@ ComunicWeb.pages.groups.sections.membershipBlock = {
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Check if the user send a membership request
 | 
			
		||||
		if(info.membership == "pending"){
 | 
			
		||||
 | 
			
		||||
			var requestedContainer = createElem2({
 | 
			
		||||
				appendTo: container,
 | 
			
		||||
				type: "span",
 | 
			
		||||
				innerHTML: "<i class='fa fa-clock-o'></i> Requested "
 | 
			
		||||
			});
 | 
			
		||||
			add_space(container);
 | 
			
		||||
 | 
			
		||||
			//Add a link to cancel the request
 | 
			
		||||
			var cancelLink = createElem2({
 | 
			
		||||
				appendTo: requestedContainer,
 | 
			
		||||
				type: "span",
 | 
			
		||||
				class: "a",
 | 
			
		||||
				innerHTML: "Cancel"
 | 
			
		||||
			});
 | 
			
		||||
 | 
			
		||||
			cancelLink.addEventListener("click", function(e){
 | 
			
		||||
				cancelLink.style.visibility = "hidden";
 | 
			
		||||
 | 
			
		||||
				//Cancel the request
 | 
			
		||||
				ComunicWeb.components.groups.interface.cancelRequest(info.id, function(result){
 | 
			
		||||
 | 
			
		||||
					if(result.error)
 | 
			
		||||
						notify("An error occurred while trying to cancel membership request!", "danger");
 | 
			
		||||
					
 | 
			
		||||
					refresh_component();
 | 
			
		||||
 | 
			
		||||
				});
 | 
			
		||||
				
 | 
			
		||||
			})
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
};
 | 
			
		||||
		Reference in New Issue
	
	Block a user