diff --git a/.classpath b/.classpath
index cd156eb..061d6eb 100644
--- a/.classpath
+++ b/.classpath
@@ -1,12 +1,12 @@
-
+
-
+
@@ -39,5 +39,5 @@
-
+
diff --git a/pom.xml b/pom.xml
index 89f8155..5c405ea 100644
--- a/pom.xml
+++ b/pom.xml
@@ -13,7 +13,7 @@
org.gcube.portlets.user
join-vre
war
- 3.4.0-SNAPSHOT
+ 3.5.0-SNAPSHOT
gCube Join VRE Portlet
Display the available VRE to Join
diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/JoinService.java b/src/main/java/org/gcube/portlets/user/joinvre/client/JoinService.java
index 6e0241b..0026a81 100644
--- a/src/main/java/org/gcube/portlets/user/joinvre/client/JoinService.java
+++ b/src/main/java/org/gcube/portlets/user/joinvre/client/JoinService.java
@@ -17,8 +17,20 @@ import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
@RemoteServiceRelativePath("JoinService")
public interface JoinService extends RemoteService {
+ Boolean isTabbedPanel();
+
LinkedHashMap> getVREs();
+ LinkedHashMap> getPortalSitesMappedToVRE(String tabName);
+
+ LinkedHashMap> getVREsByOrganisation(String organisationName);
+
+ LinkedHashMap> getVREsByCategory(String categoryName);
+
+ ArrayList getAllOrganisations();
+
+ ArrayList getAllCategories();
+
String joinVRE(Long vreId);
VRE getSelectedVRE(Long vreId);
diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/JoinServiceAsync.java b/src/main/java/org/gcube/portlets/user/joinvre/client/JoinServiceAsync.java
index d866062..e63908b 100644
--- a/src/main/java/org/gcube/portlets/user/joinvre/client/JoinServiceAsync.java
+++ b/src/main/java/org/gcube/portlets/user/joinvre/client/JoinServiceAsync.java
@@ -31,4 +31,17 @@ public interface JoinServiceAsync {
void readInvite(String inviteId, long siteId, AsyncCallback callback);
void getTermsOfUse(long siteId, AsyncCallback callback);
+
+ void isTabbedPanel(AsyncCallback callback);
+
+ void getPortalSitesMappedToVRE(String tabName, AsyncCallback>> callback);
+
+ void getVREsByOrganisation(String organisationName,
+ AsyncCallback>> callback);
+
+ void getAllOrganisations(AsyncCallback> callback);
+
+ void getAllCategories(AsyncCallback> callback);
+
+ void getVREsByCategory(String categoryName, AsyncCallback>> callback);
}
diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/JoinVRE.java b/src/main/java/org/gcube/portlets/user/joinvre/client/JoinVRE.java
index 95365f8..795d0db 100644
--- a/src/main/java/org/gcube/portlets/user/joinvre/client/JoinVRE.java
+++ b/src/main/java/org/gcube/portlets/user/joinvre/client/JoinVRE.java
@@ -1,17 +1,27 @@
package org.gcube.portlets.user.joinvre.client;
+import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;
import org.gcube.portlets.user.joinvre.client.responsive.ResponsivePanel;
+import org.gcube.portlets.user.joinvre.client.ui.LoadingPanel;
import org.gcube.portlets.user.joinvre.shared.VRE;
+import org.gcube.portlets.user.joinvre.shared.VRECategory;
+import com.github.gwtbootstrap.client.ui.DropdownTab;
+import com.github.gwtbootstrap.client.ui.Tab;
+import com.github.gwtbootstrap.client.ui.TabPanel;
+import com.github.gwtbootstrap.client.ui.resources.Bootstrap.Tabs;
import com.google.gwt.core.client.EntryPoint;
import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.Window.Location;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.RootPanel;
+import com.google.gwt.user.client.ui.VerticalPanel;
/**
* @author Massimiliano Assante, ISTI-CNR - massimiliano.assante@isti.cnr.it
@@ -19,8 +29,20 @@ import com.google.gwt.user.client.ui.RootPanel;
public class JoinVRE implements EntryPoint {
Logger logger = Logger.getLogger(JoinVRE.class.getName());
public static final String GET_OID_PARAMETER = "siteId";
+ public static final String ORGANISATIONS_LABEL = "Organisations";
+ public static final String CATEGORIES_LABEL = "Categories";
+
private final JoinServiceAsync joinService = GWT.create(JoinService.class);
+
+ private VerticalPanel mainPanel = new VerticalPanel();
+
+ private TabPanel mainTabPanel = new TabPanel(Tabs.ABOVE);
+ private Tab productsPane = new Tab();
+ private Tab portfolioPane = new Tab();
+
+ private boolean portfolioLoaded = false;
+
public void onModuleLoad() {
checkIsReferral();
}
@@ -79,10 +101,88 @@ public class JoinVRE implements EntryPoint {
}
}
private ResponsivePanel displayVREs() {
- ResponsivePanel toReturn = new ResponsivePanel();
- RootPanel.get("JoinVRE-Container").add(toReturn);
+ final ResponsivePanel toReturn = new ResponsivePanel();
+ mainPanel.setWidth("100%");
+ mainPanel.add(toReturn);
+ joinService.isTabbedPanel(new AsyncCallback() {
+ @Override
+ public void onFailure(Throwable caught) {}
+
+ @Override
+ public void onSuccess(Boolean result) {
+ if (result) {
+ GWT.log("TabbedPanel");
+ showTabs(toReturn);
+ }
+
+ }
+ });
+ RootPanel.get("JoinVRE-Container").add(mainPanel);
return toReturn;
+
}
+
+ private void showTabs(ResponsivePanel rp) {
+
+ productsPane.setHeading("Products");
+ productsPane.add(rp);
+ productsPane.setActive(true);
+
+ portfolioPane.setHeading("Portfolio");
+ portfolioPane.add(new LoadingPanel());
+
+ mainTabPanel.add(productsPane);
+ mainTabPanel.add(portfolioPane);
+
+ mainTabPanel.selectTab(0);
+ mainPanel.clear();
+ mainPanel.add(mainTabPanel);
+
+ addCategoriesTab(mainTabPanel);
+
+ portfolioPane.addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ if (!portfolioLoaded) {
+ final ResponsivePanel rpPort = new ResponsivePanel("Portfolio");
+ portfolioPane.clear();
+ portfolioPane.add(rpPort);
+ portfolioLoaded = true;
+ }
+ }
+ });
+ }
+
+ private void addCategoriesTab(final TabPanel mainTabPanel) {
+ joinService.getAllCategories(new AsyncCallback>() {
+ @Override
+ public void onFailure(Throwable caught) {
+ }
+ @Override
+ public void onSuccess(ArrayList result) {
+ if (result.size() > 0) {
+ final DropdownTab dropdownCategoriesTab = new DropdownTab(CATEGORIES_LABEL);
+ for (String catName : result) {
+ final String categoryName = catName;
+
+ final Tab tab2Add = new Tab();
+ tab2Add.setHeading(categoryName);
+ dropdownCategoriesTab.add(tab2Add);
+
+ tab2Add.addClickHandler(new ClickHandler() {
+ @Override
+ public void onClick(ClickEvent event) {
+ tab2Add.clear();
+ tab2Add.add(new ResponsivePanel(new VRECategory(1L, categoryName, "")));
+ }
+ });
+ }
+ mainTabPanel.add(dropdownCategoriesTab);
+ }
+ }
+ });
+ }
+
/**
* check if it has to show just one feed
* @return
diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/responsive/ResponsivePanel.java b/src/main/java/org/gcube/portlets/user/joinvre/client/responsive/ResponsivePanel.java
index 34f82b8..2b89b78 100644
--- a/src/main/java/org/gcube/portlets/user/joinvre/client/responsive/ResponsivePanel.java
+++ b/src/main/java/org/gcube/portlets/user/joinvre/client/responsive/ResponsivePanel.java
@@ -24,7 +24,6 @@ public class ResponsivePanel extends Composite {
private final JoinServiceAsync joinService = GWT.create(JoinService.class);
public static final String loading = GWT.getModuleBaseURL() + "../images/vre-loader.gif";
-
private Row mainPanel = new Row();
private ArrayList myThumbnails = new ArrayList();
public ResponsivePanel() {
@@ -32,36 +31,69 @@ public class ResponsivePanel extends Composite {
joinService.getVREs(new AsyncCallback>>() {
@Override
public void onSuccess(LinkedHashMap> categories) {
- mainPanel.clear();
- if (categories == null || categories.isEmpty()) {
- showError("Ops, something went wrong");
- }
- else {
- for (VRECategory cat : categories.keySet()) {
- GWT.log("cat: " + cat.getName());
- PageHeader header = new PageHeader();
- header.setText(cat.getName());
- if (cat.getDescription() == null || cat.getDescription().compareTo("") == 0 || cat.getDescription().compareTo("empty") == 0 )
- header.setSubtext("");
- else
- header.setSubtext(cat.getDescription());
- mainPanel.add(header);
- mainPanel.add(getVREThumbnails(categories, cat));
-
- }
- }
+ populatePanel(categories);
}
-
@Override
public void onFailure(Throwable caught) {
showError("Sorry, looks like something is broken with the server connection");
-
}
-
});
initWidget(mainPanel);
}
+ public ResponsivePanel(String tabName) {
+ GWT.log("ResponsivePanel()");
+ joinService.getPortalSitesMappedToVRE(tabName, new AsyncCallback>>() {
+ @Override
+ public void onSuccess(LinkedHashMap> categories) {
+ populatePanel(categories);
+ }
+ @Override
+ public void onFailure(Throwable caught) {
+ showError("Sorry, looks like something is broken with the server connection");
+ }
+ });
+ initWidget(mainPanel);
+ }
+
+ public ResponsivePanel(VRECategory category) {
+ GWT.log("ResponsivePanel()");
+ joinService.getVREsByCategory(category.getName(), new AsyncCallback>>() {
+ @Override
+ public void onSuccess(LinkedHashMap> categories) {
+ populatePanel(categories);
+ }
+ @Override
+ public void onFailure(Throwable caught) {
+ showError("Sorry, looks like something is broken with the server connection");
+ }
+ });
+ initWidget(mainPanel);
+ }
+
+ private void populatePanel(LinkedHashMap> categories) {
+ mainPanel.clear();
+ if (categories == null || categories.isEmpty()) {
+ showError("Ops, something went wrong");
+ }
+ else {
+ for (VRECategory cat : categories.keySet()) {
+ GWT.log("cat: " + cat.getName());
+ PageHeader header = new PageHeader();
+ header.setText(cat.getName());
+ if (cat.getDescription() == null || cat.getDescription().compareTo("") == 0 || cat.getDescription().compareTo("empty") == 0 )
+ header.setSubtext("");
+ else
+ header.setSubtext(cat.getDescription());
+ if (categories.get(cat).size() > 0) {
+ mainPanel.add(header);
+ mainPanel.add(getVREThumbnails(categories, cat));
+ }
+ }
+ }
+ }
+
+
private Thumbnails getVREThumbnails(LinkedHashMap> categories, VRECategory category) {
ArrayList vres = categories.get(category);
Thumbnails toReturn = new Thumbnails();
@@ -105,6 +137,7 @@ public class ResponsivePanel extends Composite {
}
}
}
+
}
diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/LoadingPanel.java b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/LoadingPanel.java
new file mode 100644
index 0000000..436fe2b
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/LoadingPanel.java
@@ -0,0 +1,19 @@
+package org.gcube.portlets.user.joinvre.client.ui;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+
+public class LoadingPanel extends Composite {
+
+ private static LoadingPanelUiBinder uiBinder = GWT.create(LoadingPanelUiBinder.class);
+
+ interface LoadingPanelUiBinder extends UiBinder {
+ }
+
+ public LoadingPanel() {
+ initWidget(uiBinder.createAndBindUi(this));
+ }
+
+}
diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/LoadingPanel.ui.xml b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/LoadingPanel.ui.xml
new file mode 100644
index 0000000..509337b
--- /dev/null
+++ b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/LoadingPanel.ui.xml
@@ -0,0 +1,14 @@
+
+
+
+ .center {
+ text-align: center;
+ color: #999;
+ }
+
+
+ Loading, just a moment ...
+
+
+
\ No newline at end of file
diff --git a/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java b/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java
index 0bf469a..666a8f9 100644
--- a/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java
+++ b/src/main/java/org/gcube/portlets/user/joinvre/server/JoinServiceImpl.java
@@ -60,6 +60,17 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
private static Log _log = LogFactoryUtil.getLog(JoinServiceImpl.class);
private static DatabookStore store;
public static final String PREFIX_PUBLIC_URL = "/web";
+ //tell whether the
+ public static final String TABBED_LAYOUT_ATTRIBUTE = "TabbedLayout";
+ public static final String TAB_NAMES_ATTRIBUTE = "TabName";
+
+ public static final String ALLVRES_SESSION_ATTRIBUTE = "ALLVRES_SESSION";
+
+ private static GroupManager groupsManager;
+
+ public void init() {
+ groupsManager = new LiferayGroupManager();
+ }
/**
*
* @return true if you're running into the portal, false if in development
@@ -110,7 +121,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
TermsOfUse tou = new TermsOfUseImpl();
try {
- long groupId = new LiferayGroupManager().getGroup(siteId).getGroupId();
+ long groupId = groupsManager.getGroup(siteId).getGroupId();
ToU terms = tou.getToUGroup(groupId);
return terms.getContent();
}
@@ -123,28 +134,172 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
return null;
}
}
+ public Boolean isTabbedPanel() {
+ if (isWithinPortal()) {
+ _log.info("check if isTabbedPanel ");
+ Object tabbedLayoutObj = null;
+ try {
+ long currentSiteGroupId = getSiteFromServletRequest(getThreadLocalRequest()).getGroupId();
+ tabbedLayoutObj = groupsManager.readCustomAttr(currentSiteGroupId, TABBED_LAYOUT_ATTRIBUTE);
+
+ getTabNames();
+
+ } catch (Exception e1) {
+ e1.printStackTrace();
+ return false;
+ }
+ Boolean isTabbedLayout = false;
+ if (tabbedLayoutObj != null) {
+ isTabbedLayout = (Boolean) tabbedLayoutObj;
+ }
+ return isTabbedLayout;
+ }
+ else
+ return true;
+ }
/**
*
- * @param session the Asl Session
- * @param withinPortal true when is on Liferay portal
- * @return the users belonging to the current organization (scope)
+ * @return the list containing the names of the Tabs to show in the correct order.
+ * @throws Exception
*/
+ private List getTabNames() throws Exception {
+ List toReturn = new ArrayList();
+ long currentSiteGroupId = getSiteFromServletRequest(getThreadLocalRequest()).getGroupId();
+ Group site = GroupLocalServiceUtil.getGroup(currentSiteGroupId);
+ String[] values = (String[]) site.getExpandoBridge().getAttributeDefault(TAB_NAMES_ATTRIBUTE);
+ for (int i = 0; i < values.length; i++) {
+ toReturn.add(values[i]);
+ }
+ return toReturn;
+ }
+
+ //first method called to get VREs and their categories
@Override
public LinkedHashMap> getVREs() {
LinkedHashMap> toReturn = new LinkedHashMap>();
-
- try {
+ try {
if (isWithinPortal()) {
- toReturn = getPortalSitesMappedToVRE();
+ if (isTabbedPanel()) {
+ String firstTabName = getTabNames().get(0);
+ _log.debug("\n\n ****isTabbedLayout isTabbedLayout, first TabName= "+firstTabName);
+ return getPortalSitesMappedToVRE(firstTabName);
+ } else {
+ toReturn = getPortalSitesMappedToVRE();
+ setVREsInSession(toReturn);
+ }
} else {
- toReturn = getFakePortalVREs(); }
+ toReturn = getFakePortalVREs();
+ }
} catch (Exception e) {
_log.error("Error getting VREs", e);
}
-
-
return toReturn;
}
+
+ /**
+ *
+ * @param tabName
+ * @return the list of VREs given a tabName
+ */
+ @Override
+ public LinkedHashMap> getPortalSitesMappedToVRE(String tabName) {
+ LinkedHashMap> tabVREs = new LinkedHashMap>();
+ try {
+ LinkedHashMap> allVREs = getPortalSitesMappedToVRE();
+ setVREsInSession(allVREs);
+
+ for (VRECategory cat : allVREs.keySet()) {
+ ArrayList toAdd = new ArrayList();
+ tabVREs.put(cat, toAdd);
+ for (VRE vre : allVREs.get(cat)) {
+ String[] vreTabNames = (String[]) groupsManager.readCustomAttr(vre.getId(), TAB_NAMES_ATTRIBUTE);
+ String vreTabName = vreTabNames[0];
+ if (tabName.equals(vreTabName)) {
+ toAdd.add(vre);
+ _log.debug("Added " + vre.getName() + " as it belongs to " + vreTabName);
+ }
+ }
+ }
+ }
+ catch (Exception e) {
+ _log.error("Error getting VREs", e);
+ }
+ return tabVREs;
+ }
+ /**
+ * @param organisationName
+ * @return the list of VREs given a organisation Name
+ */
+ @Override
+ public LinkedHashMap> getVREsByOrganisation(String organisationName) {
+
+ //TODO:
+ LinkedHashMap> toReturn = new LinkedHashMap>();
+ return toReturn;
+ }
+
+ /**
+ * @param categoryName
+ * @return the list of VREs given a category Name
+ */
+ @Override
+ public LinkedHashMap> getVREsByCategory(String categoryName) {
+ _log.debug("getVREsByCategory: " + categoryName);
+ LinkedHashMap> toReturn = new LinkedHashMap>();
+ try {
+ LinkedHashMap> temp = null;
+ if (getVREsFromSession() == null) {
+ temp = getPortalSitesMappedToVRE();
+ setVREsInSession(temp);
+ _log.debug("getVREsByCategory looking in session not successful, asking to DB ... " + categoryName);
+ } else {
+ temp = getVREsFromSession();
+ _log.debug("getVREsByCategory looking in session " + categoryName);
+ }
+ for (VRECategory cat : temp.keySet()) {
+ if (cat.getName().equals(categoryName)) {
+ toReturn.put(cat, temp.get(cat));
+ _log.debug("getVREsByCategory foudn match, returning " + cat.getName());
+ return toReturn;
+ }
+ }
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ return toReturn;
+ }
+
+ @Override
+ public ArrayList getAllOrganisations() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ @Override
+ public ArrayList getAllCategories() {
+ ArrayList toReturn = new ArrayList<>();
+ if (isWithinPortal()) {
+ try {
+ long currentSiteGroupId = getSiteFromServletRequest(getThreadLocalRequest()).getGroupId();
+ List currentSiteVGroups = groupsManager.getVirtualGroups(currentSiteGroupId);
+
+ for (VirtualGroup vg : currentSiteVGroups) {
+ toReturn.add(vg.getName());
+ }
+ } catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+ else {
+ LinkedHashMap> fakes = getFakePortalVREs();
+ for (VRECategory cat : fakes.keySet()) {
+ toReturn.add(cat.getName());
+ }
+ }
+ return toReturn;
+ }
+
/**
*
* @return the Virtual groups with their VREs in the order estabilished in the LR Control Panel
@@ -152,11 +307,10 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
* @throws PortalException
*/
public LinkedHashMap> getPortalSitesMappedToVRE() throws Exception {
- GroupManager gm = new LiferayGroupManager();
LinkedHashMap> toReturn = new LinkedHashMap>();
long currentSiteGroupId = getSiteFromServletRequest(getThreadLocalRequest()).getGroupId();
- List currentSiteVGroups = gm.getVirtualGroups(currentSiteGroupId);
+ List currentSiteVGroups = groupsManager.getVirtualGroups(currentSiteGroupId);
for (VirtualGroup vg : currentSiteVGroups) {
ArrayList toCreate = new ArrayList();
@@ -164,7 +318,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
toReturn.put(cat, toCreate);
}
- GCubeGroup rootGroupVO = gm.getRootVO();
+ GCubeGroup rootGroupVO = groupsManager.getRootVO();
try {
_log.debug("root: " + rootGroupVO.getGroupName() );
@@ -177,7 +331,7 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
List currUserGroups = new ArrayList();
GCubeUser currUser = pContext.getCurrentUser(getThreadLocalRequest());
if (currUser != null) {
- currUserGroups = gm.listGroupsByUser(currUser.getUserId());
+ currUserGroups = groupsManager.listGroupsByUser(currUser.getUserId());
}
//for each root sub organizations (VO)
@@ -188,11 +342,11 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
String vreDescription = vreSite.getDescription();
long logoId = vreSite.getLogoId();
- String vreLogoURL = gm.getGroupLogoURL(logoId);
- String groupName = gm.getInfrastructureScope(vreSite.getGroupId());
+ String vreLogoURL = groupsManager.getGroupLogoURL(logoId);
+ String groupName = groupsManager.getInfrastructureScope(vreSite.getGroupId());
String friendlyURL = GCubePortalConstants.PREFIX_GROUP_URL+vreSite.getFriendlyURL();
- List vreGroups = gm.getVirtualGroups(vreID);
+ List vreGroups = groupsManager.getVirtualGroups(vreID);
for (VirtualGroup vreGroup : vreGroups) {
for (VRECategory vre : toReturn.keySet()) {
if (vre.getName().compareTo(vreGroup.getName())==0) {
@@ -284,6 +438,9 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
vres.add(new VRE(1, "devVRE7", "devVRE VRE description", "", "http://placehold.it/200x200", "/group/devVRE", UserBelonging.NOT_BELONGING, VreMembershipType.PRIVATE));
vres.add(new VRE(2, "devmod76", "devmode VRE description", "", "http://placehold.it/200x200", "/group/devmode", UserBelonging.NOT_BELONGING));
toReturn.put(devsecCategory, vres);
+
+ setVREsInSession(toReturn);
+
return toReturn;
}
@@ -491,4 +648,16 @@ public class JoinServiceImpl extends RemoteServiceServlet implements JoinService
return null;
}
+ @SuppressWarnings("unchecked")
+ private LinkedHashMap> getVREsFromSession() {
+ if (getThreadLocalRequest().getSession().getAttribute(ALLVRES_SESSION_ATTRIBUTE) == null)
+ return null;
+ else
+ return (LinkedHashMap>) getThreadLocalRequest().getSession().getAttribute(ALLVRES_SESSION_ATTRIBUTE);
+ }
+ @SuppressWarnings("unchecked")
+ private void setVREsInSession(LinkedHashMap> allVREs) {
+ getThreadLocalRequest().getSession().setAttribute(ALLVRES_SESSION_ATTRIBUTE, allVREs);
+ }
+
}
diff --git a/src/main/resources/org/gcube/portlets/user/joinvre/JoinVRE.gwt.xml b/src/main/resources/org/gcube/portlets/user/joinvre/JoinVRE.gwt.xml
index bcecc3d..ff2d6c4 100644
--- a/src/main/resources/org/gcube/portlets/user/joinvre/JoinVRE.gwt.xml
+++ b/src/main/resources/org/gcube/portlets/user/joinvre/JoinVRE.gwt.xml
@@ -1,17 +1,15 @@
-
-
-
+
+
-
diff --git a/src/main/webapp/explore.css b/src/main/webapp/explore.css
index 85c5175..c0bdbd9 100644
--- a/src/main/webapp/explore.css
+++ b/src/main/webapp/explore.css
@@ -2,6 +2,15 @@ body {
border: 5px solid white;
}
+ul.dropdown-menu > li {
+ font-size: 1.1em !important;
+}
+
+.nav-tabs > li > a {
+ font-size: 2em !important;
+ padding-left: 10px;
+}
+
@media only screen and (min-width: 800px) {
.aui .row-fluid .span3 {
width: 19% !important;