diff --git a/assets/css/pages/groups/pages/settings.css b/assets/css/pages/groups/pages/settings.css index db01b751..7574d8fa 100644 --- a/assets/css/pages/groups/pages/settings.css +++ b/assets/css/pages/groups/pages/settings.css @@ -35,4 +35,13 @@ margin: auto; margin-bottom: 10px; display: block; +} + +.group-settings-container .delete-group-link-container { + text-align: center; + padding: 20px; +} + +.group-settings-container .delete-group-link-container a { + color: black; } \ No newline at end of file diff --git a/assets/js/components/groups/interface.js b/assets/js/components/groups/interface.js index 3d72a108..dd5d630c 100644 --- a/assets/js/components/groups/interface.js +++ b/assets/js/components/groups/interface.js @@ -337,5 +337,22 @@ ComunicWeb.components.groups.interface = { follow: follow }; ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); + }, + + /** + * Delete a group + * + * @param {Number} groupID The ID of the group to delete + * @param {String} password The password of the user, for security + * @param {Function} callback + */ + deleteGroup: function(groupID, password, callback){ + //Perform the request over the API + var apiURI = "groups/delete"; + var params = { + groupID: groupID, + password: password + }; + ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); } }; \ No newline at end of file diff --git a/assets/js/pages/groups/pages/settings.js b/assets/js/pages/groups/pages/settings.js index 0e83dab5..cc8ea5c6 100644 --- a/assets/js/pages/groups/pages/settings.js +++ b/assets/js/pages/groups/pages/settings.js @@ -523,5 +523,56 @@ ComunicWeb.pages.groups.pages.settings = { }); }); + + + + + /** + * Delete group link + */ + var deleteLinkContainer = createElem2({ + appendTo: formContainer, + type: "div", + class: "delete-group-link-container", + }); + + var deleteLink = createElem2({ + appendTo: deleteLinkContainer, + type: "a", + innerHTML: "Delete the group" + }); + + deleteLink.addEventListener("click", function(){ + ComunicWeb.pages.groups.pages.settings.confirm_delete_group(id); + }); }, + + /** + * Confirm groups deletion + * + * @param {number} groupID Target group ID + */ + confirm_delete_group: function(groupID){ + + ComunicWeb.common.messages.confirm("Do you really want to delete this group? The operation can not be reverted!", function(r){ + + if(!r) return; + + ComunicWeb.common.messages.promptPassword({callback: function(password){ + if(!password) return; + + ComunicWeb.components.groups.interface.deleteGroup(groupID, password, function(result){ + + if(result.error) + return notify("Could not delete the group! (maybe your password was incorrect...)", "danger"); + + notify("The group was successfully deleted!", "success"); + openPage("groups"); + + }); + }}); + + }); + + } } \ No newline at end of file