diff --git a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/ExternalVisioProvider.java b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/ExternalVisioProvider.java index cf0a0a4..d173686 100644 --- a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/ExternalVisioProvider.java +++ b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/ExternalVisioProvider.java @@ -16,6 +16,7 @@ */ package org.exoplatform.webconferencing.externalvisio; +import org.exoplatform.social.core.identity.model.Identity; import org.exoplatform.webconferencing.ActiveCallProvider; import org.exoplatform.webconferencing.CallProvider; import org.exoplatform.webconferencing.CallProviderException; @@ -77,17 +78,9 @@ public UserInfo.IMInfo getIMInfo(String imId) throws CallProviderException { } @Override - public List getActiveProvidersForSpace() { - List externalVisioConnectors = externalVisioConnectorService.getActiveExternalVisioConnectorsForSpace(); - - return externalVisioConnectors.stream().map(externalVisioConnector -> { - return new ActiveCallProvider(externalVisioConnector.getId().toString(), externalVisioConnector.getName(), null, false); - }).toList(); - } - @Override - public List getActiveProvidersForUser() { - List externalVisioConnectors = externalVisioConnectorService.getActiveExternalVisioConnectorsForUser(); - + public List getActiveProviders(Identity identity) { + List externalVisioConnectors = + externalVisioConnectorService.getActiveExternalVisioConnectors(identity); return externalVisioConnectors.stream().map(externalVisioConnector -> { return new ActiveCallProvider(externalVisioConnector.getId().toString(), externalVisioConnector.getName(), null, false); }).toList(); diff --git a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/dao/ExternalVisioConnectorDAO.java b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/dao/ExternalVisioConnectorDAO.java index ca63d3f..61fd85b 100644 --- a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/dao/ExternalVisioConnectorDAO.java +++ b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/dao/ExternalVisioConnectorDAO.java @@ -18,6 +18,8 @@ import javax.persistence.TypedQuery; import javax.persistence.NoResultException; + +import org.exoplatform.social.core.identity.model.Identity; import org.exoplatform.webconferencing.externalvisio.entity.ExternalVisioConnectorEntity; import org.exoplatform.commons.persistence.impl.GenericDAOJPAImpl; @@ -39,26 +41,19 @@ public List getExternalVisioConnectors(boolean ena } } - public List getActiveExternalVisioConnectorsForSpace() { - TypedQuery query = - getEntityManager().createNamedQuery("ExternalVisioConnector.getActiveExternalVisioConnectorsForSpaces", - ExternalVisioConnectorEntity.class); - try { - return query.getResultList(); - } catch (NoResultException e) { - return Collections.emptyList(); + public List getActiveExternalVisioConnectors(Identity identity) { + TypedQuery query = null; + if (identity.isSpace()) { + query = getEntityManager().createNamedQuery("ExternalVisioConnector.getActiveExternalVisioConnectorsForSpaces", + ExternalVisioConnectorEntity.class); + } else if (identity.isUser()) { + query = getEntityManager().createNamedQuery("ExternalVisioConnector.getActiveExternalVisioConnectorsForUser", + ExternalVisioConnectorEntity.class); } - - } - public List getActiveExternalVisioConnectorsForUser() { - TypedQuery query = - getEntityManager().createNamedQuery("ExternalVisioConnector.getActiveExternalVisioConnectorsForUser", - ExternalVisioConnectorEntity.class); try { return query.getResultList(); } catch (NoResultException e) { return Collections.emptyList(); } - } } diff --git a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/ExternalVisioConnectorService.java b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/ExternalVisioConnectorService.java index 921a6e4..e9c0cb7 100644 --- a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/ExternalVisioConnectorService.java +++ b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/ExternalVisioConnectorService.java @@ -18,6 +18,7 @@ import org.exoplatform.commons.ObjectAlreadyExistsException; import org.exoplatform.commons.exception.ObjectNotFoundException; +import org.exoplatform.social.core.identity.model.Identity; import org.exoplatform.webconferencing.externalvisio.entity.ExternalVisioConnectorEntity; import org.exoplatform.webconferencing.externalvisio.rest.model.ExternalVisioConnector; import org.exoplatform.webconferencing.externalvisio.rest.model.ExternalVisioConnectors; @@ -34,8 +35,5 @@ public interface ExternalVisioConnectorService { ExternalVisioConnector updateExternalVisioConnector(ExternalVisioConnectorEntity externalVisioConnectorEntity) throws ObjectNotFoundException; - List getActiveExternalVisioConnectorsForSpace(); - - List getActiveExternalVisioConnectorsForUser(); - + List getActiveExternalVisioConnectors(Identity identity); } diff --git a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/impl/ExternalVisioConnectorServiceImpl.java b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/impl/ExternalVisioConnectorServiceImpl.java index c0c215e..b6bcdbf 100644 --- a/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/impl/ExternalVisioConnectorServiceImpl.java +++ b/services/src/main/java/org/exoplatform/webconferencing/externalvisio/service/impl/ExternalVisioConnectorServiceImpl.java @@ -21,6 +21,7 @@ import org.exoplatform.commons.exception.ObjectNotFoundException; import org.exoplatform.services.log.ExoLogger; import org.exoplatform.services.log.Log; +import org.exoplatform.social.core.identity.model.Identity; import org.exoplatform.social.core.profileproperty.ProfilePropertyService; import org.exoplatform.social.core.profileproperty.model.ProfilePropertySetting; import org.exoplatform.webconferencing.externalvisio.dao.ExternalVisioConnectorDAO; @@ -117,14 +118,9 @@ public ExternalVisioConnector updateExternalVisioConnector(ExternalVisioConnecto } @Override - public List getActiveExternalVisioConnectorsForSpace() { - List activeVisioConnectorEntityList = externalVisioConnectorDAO.getActiveExternalVisioConnectorsForSpace(); - return activeVisioConnectorEntityList.stream().map(EntityBuilder::fromEntity).toList(); - } - - @Override - public List getActiveExternalVisioConnectorsForUser() { - List activeVisioConnectorEntityList = externalVisioConnectorDAO.getActiveExternalVisioConnectorsForUser(); + public List getActiveExternalVisioConnectors(Identity identity) { + List activeVisioConnectorEntityList = + externalVisioConnectorDAO.getActiveExternalVisioConnectors(identity); return activeVisioConnectorEntityList.stream().map(EntityBuilder::fromEntity).toList(); } diff --git a/webapp/src/main/webapp/js/webconferencing-externalvisio.js b/webapp/src/main/webapp/js/webconferencing-externalvisio.js index 7ac5f4d..a0e1cb3 100644 --- a/webapp/src/main/webapp/js/webconferencing-externalvisio.js +++ b/webapp/src/main/webapp/js/webconferencing-externalvisio.js @@ -80,10 +80,11 @@ } }; - var getActiveProviders = function(identityId, isUser, isSpace) { + var getActiveProviders = function(identityId) { const formData = new FormData(); - formData.append('isUser', isUser); - formData.append('isSpace', isSpace); + formData.append('integratedConnector', false); + formData.append('configuredConnector', true); + const params = new URLSearchParams(formData).toString(); return fetch(`${eXo.env.portal.context}/${eXo.env.portal.rest}/webconferencing/${identityId}/providers?${params}`, { credentials: 'include', @@ -109,9 +110,9 @@ callSettings.isIntegratedConnector = false; let activeButtons = []; const identityId = context.isSpace ? context.spaceId : context.userId; - getActiveProviders(identityId, context.isUser, context.isSpace) + getActiveProviders(identityId) .then((activeProviders) => { - activeButtons = activeProviders.filter(provider => !provider.integratedConnector && provider.url); + activeButtons = activeProviders; const buttonComponents = []; // Créer une liste pour stocker les composants Vue activeButtons.forEach(p => {