diff --git a/assets/css/components/sidebar.css b/assets/css/components/sidebar.css index fc2ad351..f1e5dd41 100644 --- a/assets/css/components/sidebar.css +++ b/assets/css/components/sidebar.css @@ -104,6 +104,17 @@ body.sidebar-collapse .main-sidebar .memberships-list li:hover .subinfo { } +.main-sidebar .memberships-list .btn-xs { + padding-top: 0px; + padding-bottom: 0px; + height: 1.35em; + width: 3em; + line-height: 1; + display: inline-flex; + align-items: center; + justify-content: center; +} + /** * Conversations entries */ diff --git a/assets/js/components/groups/interface.js b/assets/js/components/groups/interface.js index 65bb1344..7ca30c31 100644 --- a/assets/js/components/groups/interface.js +++ b/assets/js/components/groups/interface.js @@ -4,7 +4,7 @@ * @author Pierre HUBERT */ -ComunicWeb.components.groups.interface = { +const GroupsInterface = { /** * Create a group @@ -373,4 +373,6 @@ ComunicWeb.components.groups.interface = { }; ComunicWeb.common.api.makeAPIrequest(apiURI, params, true, callback); } -}; \ No newline at end of file +}; + +ComunicWeb.components.groups.interface = GroupsInterface; \ No newline at end of file diff --git a/assets/js/components/sidebar/main.js b/assets/js/components/sidebar/main.js index 48865dab..7ef15dad 100644 --- a/assets/js/components/sidebar/main.js +++ b/assets/js/components/sidebar/main.js @@ -519,8 +519,32 @@ const SidebarMain = { else if(group.membership == "invited") { // Show invited state - subInfoEl.innerHTML = " Invited"; + subInfoEl.innerHTML = " Invited "; + const respondRequest = (accept) => { + GroupsInterface.respondInvitation(group.id, accept); + + subInfoEl.innerHTML = accept ? tr("Accepted") : tr("Rejected"); + }; + + // Offer the user to accept or reject the invitation + createElem2({ + appendTo: subInfoEl, + type: "span", + class: "btn btn-success btn-xs", + innerHTML: "", + onclick: (e) => respondRequest(true) + }); + + add_space(subInfoEl); + + createElem2({ + appendTo: subInfoEl, + type: "span", + class: "btn btn-danger btn-xs", + innerHTML: "", + onclick: (e) => respondRequest(false) + }); } else // Group last activity