Upgraded request.

This commit is contained in:
Pierre HUBERT 2018-09-02 14:14:21 +02:00
parent e8df43351f
commit 4860ee6623

View File

@ -38,23 +38,43 @@ ComunicWeb.pages.groups.pages.main = {
"info"); "info");
pageContainer.appendChild(message); pageContainer.appendChild(message);
//Get the list of groups of the user /**
ComunicWeb.components.groups.interface.getListUser(function(list){ * This function is used if an error occurs while retrieving the list
* of groups of the user
*/
var getListError = function(){
message.remove(); message.remove();
pageContainer.appendChild(
ComunicWeb.common.messages.createCalloutElem(
"Error",
"An error occurred while retrieving the list of groups of the user!",
"danger"
)
);
}
//Get the list of groups of the user
ComunicWeb.components.groups.interface.getListUser(function(list){
//Check for errors //Check for errors
if(list.error) if(list.error)
return pageContainer.appendChild( return getListError();
ComunicWeb.common.messages.createCalloutElem(
"Error", //Get information about the groups
"An error occurred while retrieving the list of groups of the user!", getInfoMultipleGroups(list, function(info){
"danger"
) if(info.error)
); return getListError();
message.remove();
//Display the list of the groups of the user
ComunicWeb.pages.groups.pages.main._display_list(pageContainer, info);
}, true);
//Display the list of the groups of the user
ComunicWeb.pages.groups.pages.main._display_list(pageContainer, list);
}); });
}, },
@ -66,69 +86,83 @@ ComunicWeb.pages.groups.pages.main = {
*/ */
_display_list: function(target, list){ _display_list: function(target, list){
//Process the list of groups for (const i in list) {
list.forEach(function(group){ if (list.hasOwnProperty(i)) {
const group = list[i];
//Create group item ComunicWeb.pages.groups.pages.main._display_group(group, target);
var groupItem = createElem2({ }
appendTo: target, }
type: "div",
class: "group-item"
});
//Display group information },
createElem2({
appendTo: groupItem,
type: "img",
class: "group-icon",
src: group.icon_url
});
var groupName = createElem2({ /**
appendTo: groupItem, * Display single group entry
type: "div", *
class: "group-name a", * @param {Object} group Information about the group
innerHTML: group.name * @param {HTMLElement} target The target to display
}); * information about the group
*/
_display_group: function(group, target){
groupName.addEventListener("click", function(e){ //Create group item
openGroupPage(group); var groupItem = createElem2({
}); appendTo: target,
type: "div",
//Offer the user to delete its membership class: "group-item"
var deleteButton = createElem2({
appendTo: groupItem,
type: "div",
class: "buttons-area a",
innerHTML: "<i class='fa fa-trash'></i>"
});
deleteButton.addEventListener("click", function(e){
//Ask user confirmation
ComunicWeb.common.messages.confirm("Do you really want to delete your membership of this group ?", function(r){
if(!r) return;
groupItem.style.visibility = "hidden";
ComunicWeb.components.groups.interface.removeMembership(group.id, function(result){
groupItem.style.visibility = "visible";
if(result.error)
return notify("Could not delete your membership to this group!", "error");
groupItem.remove();
});
});
});
//Display membership status
ComunicWeb.pages.groups.sections.membershipBlock.display(group, groupItem);
}); });
//Display group information
createElem2({
appendTo: groupItem,
type: "img",
class: "group-icon",
src: group.icon_url
});
var groupName = createElem2({
appendTo: groupItem,
type: "div",
class: "group-name a",
innerHTML: group.name
});
groupName.addEventListener("click", function(e){
openGroupPage(group);
});
//Offer the user to delete its membership
var deleteButton = createElem2({
appendTo: groupItem,
type: "div",
class: "buttons-area a",
innerHTML: "<i class='fa fa-trash'></i>"
});
deleteButton.addEventListener("click", function(e){
//Ask user confirmation
ComunicWeb.common.messages.confirm("Do you really want to delete your membership of this group ?", function(r){
if(!r) return;
groupItem.style.visibility = "hidden";
ComunicWeb.components.groups.interface.removeMembership(group.id, function(result){
groupItem.style.visibility = "visible";
if(result.error)
return notify("Could not delete your membership to this group!", "error");
groupItem.remove();
});
});
});
//Display membership status
ComunicWeb.pages.groups.sections.membershipBlock.display(group, groupItem);
} }
} }