diff --git a/pom.xml b/pom.xml
index 8a0b623..873d383 100644
--- a/pom.xml
+++ b/pom.xml
@@ -54,6 +54,10 @@
[2.4.1-SNAPSHOT, 3.0.0-SNAPSHOT)
compile
+
+ org.gcube.dvos
+ usermanagement-core
+
org.gcube.common.portal
portal-manager
diff --git a/src/main/java/org/gcube/portlets/user/PortletViewController.java b/src/main/java/org/gcube/portlets/user/cataloguebadge/PortletViewController.java
similarity index 58%
rename from src/main/java/org/gcube/portlets/user/PortletViewController.java
rename to src/main/java/org/gcube/portlets/user/cataloguebadge/PortletViewController.java
index b9222a8..50f01ac 100644
--- a/src/main/java/org/gcube/portlets/user/PortletViewController.java
+++ b/src/main/java/org/gcube/portlets/user/cataloguebadge/PortletViewController.java
@@ -12,25 +12,30 @@
* details.
*/
-package org.gcube.portlets.user;
+package org.gcube.portlets.user.cataloguebadge;
import java.text.DecimalFormat;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
+import javax.servlet.http.HttpServletRequest;
import org.gcube.common.portal.GCubePortalConstants;
import org.gcube.common.portal.PortalContext;
+import org.gcube.datacatalogue.ckanutillibrary.server.ApplicationProfileScopePerUrlReader;
import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueFactory;
import org.gcube.datacatalogue.ckanutillibrary.server.DataCatalogueImpl;
-import org.gcube.datacatalogue.ckanutillibrary.shared.LandingPages;
import org.gcube.datacatalogue.ckanutillibrary.shared.Statistics;
+import org.gcube.vomanagement.usermanagement.GroupManager;
+import org.gcube.vomanagement.usermanagement.impl.LiferayGroupManager;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.portlet.bind.annotation.RenderMapping;
+import com.liferay.portal.kernel.log.Log;
+import com.liferay.portal.kernel.log.LogFactoryUtil;
import com.liferay.portal.kernel.util.ReleaseInfo;
import com.liferay.portal.model.Group;
import com.liferay.portal.service.GroupLocalServiceUtil;
@@ -39,59 +44,83 @@ import com.liferay.portal.util.PortalUtil;
@Controller
@RequestMapping("VIEW")
public class PortletViewController {
+ private static Log _log = LogFactoryUtil.getLog(PortletViewController.class);
private DataCatalogueFactory factory = DataCatalogueFactory.getFactory();
private static final long K = 1000;
private static final long M = K * K;
private static final long G = M * K;
-
+
+ private static GroupManager gm = new LiferayGroupManager();
+
@RenderMapping
public String question(RenderRequest request,RenderResponse response, Model model) {
model.addAttribute("releaseInfo", ReleaseInfo.getReleaseInfo());
try {
+ HttpServletRequest httpServletRequest = PortalUtil.getHttpServletRequest(request);
+
long groupId = PortalUtil.getScopeGroupId(request);
PortalContext pContext = PortalContext.getConfiguration();
String context = pContext.getCurrentScope(""+groupId);
String catalogueURL = getCatalougeFriendlyURL(GroupLocalServiceUtil.getGroup(groupId));
- DataCatalogueImpl utils = factory.getUtilsPerScope(context);
+ DataCatalogueImpl utils = null;
+ if (gm.isRootVO(groupId)) {
+ String gatewaySiteURL = pContext.getGatewayURL(httpServletRequest);
+ if (!gatewaySiteURL.startsWith("https"))
+ gatewaySiteURL = gatewaySiteURL.replaceAll("http:", "https:");
+ String siteLandingPage = pContext.getSiteLandingPagePath(httpServletRequest);
+ String clientURL = gatewaySiteURL+siteLandingPage;
+ System.out.println(clientURL);
+ try {
+ String appPerScopeURL = ApplicationProfileScopePerUrlReader.getScopePerUrl(clientURL);
+ _log.info("Catalogue for this Gateway is in this scope: " + appPerScopeURL);
+ utils = factory.getUtilsPerScope(appPerScopeURL);
+ } catch (Exception e) {
+ _log.warn("Returning default catalogue for the context, could not find the catologue for this Gateway: " + clientURL);
+ utils = factory.getUtilsPerScope(context);
+ }
+ }
+ else {
+ utils = factory.getUtilsPerScope(context);
+ }
Statistics stats = utils.getStatistics();
model.addAttribute("itemsNo", convertToStringRepresentation(stats.getNumItems()));
model.addAttribute("groupsNo", stats.getNumGroups());
model.addAttribute("organisationsNo", stats.getNumOrganizations());
model.addAttribute("typesNo", stats.getNumTypes());
model.addAttribute("catalogueURL", catalogueURL);
-
+
} catch (Exception e) {
- e.printStackTrace();
+ e.printStackTrace();
}
return "Catalogue-badge-portlet/view";
}
public static String convertToStringRepresentation(final long value){
- final long[] dividers = new long[] { G, M, K, 1 };
- final String[] units = new String[] {"Giga", "M", "K", ""};
- if(value < 1)
- throw new IllegalArgumentException("Invalid file size: " + value);
- String result = null;
- for(int i = 0; i < dividers.length; i++){
- final long divider = dividers[i];
- if(value >= divider){
- result = format(value, divider, units[i]);
- break;
- }
- }
- return result;
+ final long[] dividers = new long[] { G, M, K, 1 };
+ final String[] units = new String[] {"Giga", "M", "K", ""};
+ if(value < 1)
+ throw new IllegalArgumentException("Invalid file size: " + value);
+ String result = null;
+ for(int i = 0; i < dividers.length; i++){
+ final long divider = dividers[i];
+ if(value >= divider){
+ result = format(value, divider, units[i]);
+ break;
+ }
+ }
+ return result;
}
private static String format(final long value,
- final long divider,
- final String unit){
- final double result =
- divider > 1 ? (double) value / (double) divider : (double) value;
- return new DecimalFormat("#,##0.#").format(result) + " " + unit;
+ final long divider,
+ final String unit){
+ final double result =
+ divider > 1 ? (double) value / (double) divider : (double) value;
+ return new DecimalFormat("#,##0.#").format(result) + " " + unit;
}
-
+
/**
* @param currentGroup
* @return Returns the friendly u r l of this group.
@@ -103,4 +132,6 @@ public class PortletViewController {
.append(GCubePortalConstants.CATALOGUE_FRIENDLY_URL);
return sb.toString();
}
+
+
}
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/liferay-display.xml b/src/main/webapp/WEB-INF/liferay-display.xml
index 3c84f12..a5285d1 100644
--- a/src/main/webapp/WEB-INF/liferay-display.xml
+++ b/src/main/webapp/WEB-INF/liferay-display.xml
@@ -2,7 +2,7 @@
-
+
\ No newline at end of file
diff --git a/src/main/webapp/WEB-INF/liferay-plugin-package.properties b/src/main/webapp/WEB-INF/liferay-plugin-package.properties
index cd68562..595b623 100644
--- a/src/main/webapp/WEB-INF/liferay-plugin-package.properties
+++ b/src/main/webapp/WEB-INF/liferay-plugin-package.properties
@@ -1,9 +1,9 @@
name=Catalogue-badge-portlet
module-group-id=liferay
-module-incremental-version=1
+module-incremental-version=2
tags=
short-description=
change-log=
-page-url=http://www.liferay.com
-author=Liferay, Inc.
-licenses=LGPL
\ No newline at end of file
+page-url=http://www.gcube-system.org
+author=M. Assante
+licenses=EUPL
diff --git a/src/main/webapp/WEB-INF/portlet.xml b/src/main/webapp/WEB-INF/portlet.xml
index 1159b33..85a6434 100644
--- a/src/main/webapp/WEB-INF/portlet.xml
+++ b/src/main/webapp/WEB-INF/portlet.xml
@@ -15,8 +15,8 @@
Catalogue
- Catalogue-badge-portlet
- Catalogue-badge-portlet
+ Catalogue
+ Catalogue
administrator
diff --git a/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml b/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml
index 73a23d8..d58d2b8 100644
--- a/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml
+++ b/src/main/webapp/WEB-INF/spring-context/portlet/Catalogue-badge-portlet-portlet.xml
@@ -6,5 +6,5 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
>
-
+
\ No newline at end of file