From d6930a14aa534e7b868ea88ac7bad851261e0c8d Mon Sep 17 00:00:00 2001 From: ANDRIANIRINARISOA Paul Antenaina Louis Francki <franckiantenaina@gmail.com> Date: Tue, 25 Feb 2025 16:23:26 +0300 Subject: [PATCH] Up directory Socket --- assets/js/directory/directorySocket.js | 98 +++++++++++++++++++++++--- 1 file changed, 87 insertions(+), 11 deletions(-) diff --git a/assets/js/directory/directorySocket.js b/assets/js/directory/directorySocket.js index fb9d90c1b..350235a1d 100644 --- a/assets/js/directory/directorySocket.js +++ b/assets/js/directory/directorySocket.js @@ -35,6 +35,12 @@ var directorySocket = { filterGroup.results.$grid.masonry('destroy'); filterGroup.results.$grid.masonry({itemSelector: '.smartgrid-slide-element', 'columnWidth': '.searchEntityContainer.smartgrid-slide-element'}); + targetDiv = document.querySelector(`.msr-id-${_id}`); + let image = targetDiv.querySelectorAll('img.lzy_img'); + image.forEach((v) => { + v.dom = "#content-results-profil"; + imageObserver.observe(v); + }); directory.bindEventAdmin(); if(filterGroup.results.map.active){ filterGroup.mapObj.addElts(datas); @@ -90,12 +96,41 @@ var directorySocket = { window[`kanbanDom${contextData.id}`].kanban('deleteData', { column: "memberof", id:_id, index: indexToDelete }); } }).on("invite_user", function(data){ - + let show = false; if(data.invitedId == userId) { directorySocket.events.invitedMe(); } - if(typeof data.donne != "undefined" && data.donne != null){ + if( + typeof userConnected.roles != "undefined" && typeof userConnected.roles.superAdmin != "undefined" && userConnected.roles.superAdmin + ){ + show = true; + }else if(contextData.type == "organizations"){ + if(typeof userConnected.links.memberOf[contextData.id] != "undefined" + && typeof userConnected.links.memberOf[contextData.id].isAdmin != "undefined" + && userConnected.links.memberOf[contextData.id].isAdmin + && (typeof userConnected.links.memberOf[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.memberOf[contextData.id].isInviting == "undefined") + ){ + show = true; + } + }else if(contextData.type == "projects"){ + if(typeof userConnected.links.projects[contextData.id] != "undefined" + && typeof userConnected.links.projects[contextData.id].isAdmin != "undefined" + && userConnected.links.projects[contextData.id].isAdmin + && (typeof userConnected.links.projects[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.projects[contextData.id].isInviting == "undefined") + ){ + show = true; + } + }else if(contextData.type == "organizations"){ + if(typeof userConnected.links.memberOf[contextData.id] != "undefined" + && typeof userConnected.links.memberOf[contextData.id].isAdmin != "undefined" + && userConnected.links.memberOf[contextData.id].isAdmin + && (typeof userConnected.links.memberOf[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.memberOf[contextData.id].isInviting == "undefined") + ){ + show = true; + } + } + if(typeof data.donne != "undefined" && data.donne != null && show){ let donne = data.donne; let datas = {}; @@ -103,14 +138,18 @@ var directorySocket = { let community = directorySocket.events.communityVariable(donne, data.invitedId); let str = directory.showResultsDirectoryHtml(datas, "", "", community); - directorySocket.events.updateNomberElements(datas, "add"); + var targetDiv = document.querySelector(`.msr-id-${data.invitedId}`); + if (targetDiv) { + targetDiv.parentElement.remove(); + } else { + directorySocket.events.updateNomberElements(datas, "add"); + } filterGroup.results.$grid.prepend(str); filterGroup.results.$grid.masonry('destroy'); filterGroup.results.$grid.masonry({itemSelector: '.smartgrid-slide-element', 'columnWidth': '.searchEntityContainer.smartgrid-slide-element'}); - var targetDiv = document.querySelector(`.msr-id-${data.invitedId}`); - + targetDiv = document.querySelector(`.msr-id-${data.invitedId}`); var newSpan = document.createElement('span'); newSpan.className = 'entityStatusLink italic'; newSpan.textContent = 'Invitation envoyée'; @@ -119,6 +158,12 @@ var directorySocket = { var textWrap = slideHover.querySelector('.text-wrap'); var adminToolBar = slideHover.querySelector('.adminToolBarDirectory'); + let image = targetDiv.querySelectorAll('img.lzy_img'); + image.forEach((v) => { + v.dom = "#content-results-profil"; + imageObserver.observe(v); + }); + directory.bindEventAdmin(); textWrap.insertBefore(newSpan, adminToolBar); } @@ -484,12 +529,42 @@ var directorySocket = { let community = { connectType : "members", - edit : true, links : { "members" : {} } }; + if( + typeof userConnected.roles != "undefined" && typeof userConnected.roles.superAdmin != "undefined" && userConnected.roles.superAdmin + ){ + community.edit = true; + }else if(contextData.type == "organizations"){ + if(typeof userConnected.links.memberOf[contextData.id] != "undefined" + && typeof userConnected.links.memberOf[contextData.id].isAdmin != "undefined" + && userConnected.links.memberOf[contextData.id].isAdmin + && (typeof userConnected.links.memberOf[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.memberOf[contextData.id].isInviting == "undefined") + ){ + community.edit = true; + } + }else if(contextData.type == "projects"){ + if(typeof userConnected.links.projects[contextData.id] != "undefined" + && typeof userConnected.links.projects[contextData.id].isAdmin != "undefined" + && userConnected.links.projects[contextData.id].isAdmin + && (typeof userConnected.links.projects[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.projects[contextData.id].isInviting == "undefined") + ){ + community.edit = true; + } + }else if(contextData.type == "events"){ + if(typeof userConnected.links.events[contextData.id] != "undefined" + && typeof userConnected.links.events[contextData.id].isAdmin != "undefined" + && userConnected.links.events[contextData.id].isAdmin + && (typeof userConnected.links.events[contextData.id].isAdminPending == "undefined" || typeof userConnected.links.events[contextData.id].isInviting == "undefined") + ){ + community.edit = true; + } + } + + community.links["members"][_id] = { type: data.collection, date : data.modified @@ -498,11 +573,12 @@ var directorySocket = { return community; }, updateNomberElements: function(datas, type) { - let aElement = document.querySelector('a[data-type-dir="members"]'); - let badgeElement = aElement.querySelector('.badge'); - let newNbbadge = type == "add" ? Object.keys(datas).length + parseInt(badgeElement.textContent) : parseInt(badgeElement.textContent) - 1; - badgeElement.textContent = newNbbadge; - + if(contextData.type == "organizations" || contextData.type == "projects"){ + let aElement = document.querySelector(`a[data-type-dir="${contextData.type == "organizations" ? "members" : "contributors"}"]`); + let badgeElement = aElement.querySelector('.badge'); + let newNbbadge = type == "add" ? Object.keys(datas).length + parseInt(badgeElement.textContent) : parseInt(badgeElement.textContent) - 1; + badgeElement.textContent = newNbbadge; + } let spanElement = document.querySelector('.count-nbr'); let nbnewdata = type == "add" ? Object.keys(datas).length + parseInt(spanElement.textContent) : parseInt(spanElement.textContent) - 1; spanElement.textContent = nbnewdata; -- GitLab