added patch for #6171 (sobigdata). Added more tabs to the portlet to let user perform catalogue navigation more easily
git-svn-id: http://svn.d4science-ii.research-infrastructures.eu/gcube/trunk/portlets/user/gcube-ckan-datacatalog@139913 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
ca4f796b72
commit
a3c3dd2070
|
@ -9,18 +9,18 @@ import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMeta
|
|||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowDatasetsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowDatasetsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowGroupsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowGroupsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowManageProductWidgetEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowManageProductWidgetEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowOrganizationsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowOrganizationsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDatasetsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDatasetsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEventHandler;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.ui.ManageProductWidget;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
||||
|
@ -117,35 +117,48 @@ public class CkanEventHandlerManager {
|
|||
|
||||
// show datasets event
|
||||
eventBus.addHandler(
|
||||
ShowUserDatasetsEvent.TYPE, new ShowUserDatasetsEventHandler() {
|
||||
ShowDatasetsEvent.TYPE, new ShowDatasetsEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onShowDatasets(
|
||||
ShowUserDatasetsEvent showUserDatasetsEvent) {
|
||||
String request = getCkanRequest("/dashboard/datasets", null);
|
||||
ShowDatasetsEvent showUserDatasetsEvent) {
|
||||
String request = null;
|
||||
if(showUserDatasetsEvent.isOwnOnly())
|
||||
request = getCkanRequest("/dashboard/datasets", null);
|
||||
else
|
||||
request = getCkanRequest("/dataset", null);
|
||||
panel.instanceCkanFrame(request);
|
||||
}
|
||||
});
|
||||
eventBus.addHandler(
|
||||
ShowUserOrganizationsEvent.TYPE,
|
||||
new ShowUserOrganizationsEventHandler() {
|
||||
ShowOrganizationsEvent.TYPE,
|
||||
new ShowOrganizationsEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onShowOrganizations(
|
||||
ShowUserOrganizationsEvent showUserDatasetsEvent) {
|
||||
|
||||
panel.showOrganizations();
|
||||
ShowOrganizationsEvent showUserDatasetsEvent) {
|
||||
|
||||
if(showUserDatasetsEvent.isOwnOnly())
|
||||
panel.showOrganizations();
|
||||
else{
|
||||
String request = getCkanRequest("/organization", null);
|
||||
panel.instanceCkanFrame(request);
|
||||
}
|
||||
}
|
||||
});
|
||||
eventBus.addHandler(
|
||||
ShowUserGroupsEvent.TYPE, new ShowUserGroupsEventHandler() {
|
||||
ShowGroupsEvent.TYPE, new ShowGroupsEventHandler() {
|
||||
|
||||
@Override
|
||||
public void onShowGroups(ShowUserGroupsEvent showUserDatasetsEvent) {
|
||||
public void onShowGroups(ShowGroupsEvent showGroupsEvent) {
|
||||
//String request = getCkanRequest("/dashboard/groups", null);
|
||||
//panel.instanceCkanFrame(request);
|
||||
panel.showGroups();
|
||||
if(showGroupsEvent.isOwnOnly())
|
||||
panel.showGroups();
|
||||
else{
|
||||
String request = getCkanRequest("/group", null);
|
||||
panel.instanceCkanFrame(request);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
@ -187,8 +200,8 @@ public class CkanEventHandlerManager {
|
|||
@Override
|
||||
public void onShowManageProductWidget(ShowManageProductWidgetEvent event) {
|
||||
|
||||
|
||||
new ManageProductWidget(event.getProductIdentifier());
|
||||
|
||||
new ManageProductWidget(event.getProductIdentifier());
|
||||
|
||||
}
|
||||
});
|
||||
|
|
|
@ -6,21 +6,30 @@ import com.google.gwt.event.shared.GwtEvent;
|
|||
* Raised when the user wants to see his datasets.
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
*/
|
||||
public class ShowUserDatasetsEvent extends GwtEvent<ShowUserDatasetsEventHandler>{
|
||||
public class ShowDatasetsEvent extends GwtEvent<ShowDatasetsEventHandler>{
|
||||
|
||||
public static Type<ShowUserDatasetsEventHandler> TYPE = new Type<ShowUserDatasetsEventHandler>();
|
||||
public static Type<ShowDatasetsEventHandler> TYPE = new Type<ShowDatasetsEventHandler>();
|
||||
|
||||
private boolean ownOnly;
|
||||
|
||||
/**
|
||||
* Instantiates a new show user datasets event.
|
||||
*/
|
||||
public ShowUserDatasetsEvent() {
|
||||
public ShowDatasetsEvent(boolean ownOnly) {
|
||||
|
||||
this.ownOnly = ownOnly;
|
||||
|
||||
}
|
||||
|
||||
public boolean isOwnOnly() {
|
||||
return ownOnly;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
||||
*/
|
||||
@Override
|
||||
public Type<ShowUserDatasetsEventHandler> getAssociatedType() {
|
||||
public Type<ShowDatasetsEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
|
@ -28,7 +37,7 @@ public class ShowUserDatasetsEvent extends GwtEvent<ShowUserDatasetsEventHandler
|
|||
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
|
||||
*/
|
||||
@Override
|
||||
protected void dispatch(ShowUserDatasetsEventHandler handler) {
|
||||
protected void dispatch(ShowDatasetsEventHandler handler) {
|
||||
handler.onShowDatasets(this);
|
||||
}
|
||||
|
|
@ -6,12 +6,12 @@ import com.google.gwt.event.shared.EventHandler;
|
|||
* Event handler for the ShowUserDatasetsEvent
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
*/
|
||||
public interface ShowUserDatasetsEventHandler extends EventHandler {
|
||||
public interface ShowDatasetsEventHandler extends EventHandler {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param showUserDatasetsEvent
|
||||
*/
|
||||
void onShowDatasets(ShowUserDatasetsEvent showUserDatasetsEvent);
|
||||
void onShowDatasets(ShowDatasetsEvent showUserDatasetsEvent);
|
||||
|
||||
}
|
|
@ -9,21 +9,28 @@ import com.google.gwt.event.shared.GwtEvent;
|
|||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Jun 23, 2016
|
||||
*/
|
||||
public class ShowUserGroupsEvent extends GwtEvent<ShowUserGroupsEventHandler>{
|
||||
public class ShowGroupsEvent extends GwtEvent<ShowGroupsEventHandler>{
|
||||
|
||||
public static Type<ShowUserGroupsEventHandler> TYPE = new Type<ShowUserGroupsEventHandler>();
|
||||
public static Type<ShowGroupsEventHandler> TYPE = new Type<ShowGroupsEventHandler>();
|
||||
|
||||
private boolean ownOnly;
|
||||
|
||||
/**
|
||||
* Instantiates a new show user organizations event.
|
||||
*/
|
||||
public ShowUserGroupsEvent() {
|
||||
public ShowGroupsEvent(boolean ownOnly) {
|
||||
this.ownOnly = ownOnly;
|
||||
}
|
||||
|
||||
public boolean isOwnOnly() {
|
||||
return ownOnly;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
||||
*/
|
||||
@Override
|
||||
public Type<ShowUserGroupsEventHandler> getAssociatedType() {
|
||||
public Type<ShowGroupsEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
|
@ -31,7 +38,7 @@ public class ShowUserGroupsEvent extends GwtEvent<ShowUserGroupsEventHandler>{
|
|||
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
|
||||
*/
|
||||
@Override
|
||||
protected void dispatch(ShowUserGroupsEventHandler handler) {
|
||||
protected void dispatch(ShowGroupsEventHandler handler) {
|
||||
handler.onShowGroups(this);
|
||||
}
|
||||
|
|
@ -9,7 +9,7 @@ import com.google.gwt.event.shared.EventHandler;
|
|||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||
* Jun 23, 2016
|
||||
*/
|
||||
public interface ShowUserGroupsEventHandler extends EventHandler {
|
||||
public interface ShowGroupsEventHandler extends EventHandler {
|
||||
|
||||
|
||||
/**
|
||||
|
@ -17,6 +17,6 @@ public interface ShowUserGroupsEventHandler extends EventHandler {
|
|||
*
|
||||
* @param showUserDatasetsEvent the show user datasets event
|
||||
*/
|
||||
void onShowGroups(ShowUserGroupsEvent showUserDatasetsEvent);
|
||||
void onShowGroups(ShowGroupsEvent showUserDatasetsEvent);
|
||||
|
||||
}
|
|
@ -6,21 +6,27 @@ import com.google.gwt.event.shared.GwtEvent;
|
|||
* Raised when the user wants to see his organizations.
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
*/
|
||||
public class ShowUserOrganizationsEvent extends GwtEvent<ShowUserOrganizationsEventHandler>{
|
||||
public class ShowOrganizationsEvent extends GwtEvent<ShowOrganizationsEventHandler>{
|
||||
|
||||
public static Type<ShowUserOrganizationsEventHandler> TYPE = new Type<ShowUserOrganizationsEventHandler>();
|
||||
public static Type<ShowOrganizationsEventHandler> TYPE = new Type<ShowOrganizationsEventHandler>();
|
||||
private boolean ownOnly;
|
||||
|
||||
/**
|
||||
* Instantiates a new show user organizations event.
|
||||
*/
|
||||
public ShowUserOrganizationsEvent() {
|
||||
public ShowOrganizationsEvent(boolean ownOnly) {
|
||||
this.ownOnly = ownOnly;
|
||||
}
|
||||
|
||||
public boolean isOwnOnly() {
|
||||
return ownOnly;
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
||||
*/
|
||||
@Override
|
||||
public Type<ShowUserOrganizationsEventHandler> getAssociatedType() {
|
||||
public Type<ShowOrganizationsEventHandler> getAssociatedType() {
|
||||
return TYPE;
|
||||
}
|
||||
|
||||
|
@ -28,7 +34,7 @@ public class ShowUserOrganizationsEvent extends GwtEvent<ShowUserOrganizationsEv
|
|||
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
|
||||
*/
|
||||
@Override
|
||||
protected void dispatch(ShowUserOrganizationsEventHandler handler) {
|
||||
protected void dispatch(ShowOrganizationsEventHandler handler) {
|
||||
handler.onShowOrganizations(this);
|
||||
}
|
||||
|
|
@ -6,12 +6,12 @@ import com.google.gwt.event.shared.EventHandler;
|
|||
* Event handler for the ShowUserOrganizationsEvent
|
||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||
*/
|
||||
public interface ShowUserOrganizationsEventHandler extends EventHandler {
|
||||
public interface ShowOrganizationsEventHandler extends EventHandler {
|
||||
|
||||
/**
|
||||
*
|
||||
* @param showUserDatasetsEvent
|
||||
*/
|
||||
void onShowOrganizations(ShowUserOrganizationsEvent showUserDatasetsEvent);
|
||||
void onShowOrganizations(ShowOrganizationsEvent showUserDatasetsEvent);
|
||||
|
||||
}
|
|
@ -5,12 +5,12 @@ package org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view;
|
|||
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.EditMetadataEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowDatasetsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowGroupsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowManageProductWidgetEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowOrganizationsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserDatasetsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserGroupsEvent;
|
||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowUserOrganizationsEvent;
|
||||
|
||||
import com.github.gwtbootstrap.client.ui.AlertBlock;
|
||||
import com.github.gwtbootstrap.client.ui.Button;
|
||||
|
@ -23,6 +23,7 @@ import com.google.gwt.event.dom.client.ClickEvent;
|
|||
import com.google.gwt.event.dom.client.ClickHandler;
|
||||
import com.google.gwt.event.shared.HandlerManager;
|
||||
import com.google.gwt.user.client.ui.FlowPanel;
|
||||
import com.google.gwt.user.client.ui.InlineHTML;
|
||||
|
||||
|
||||
/**
|
||||
|
@ -35,13 +36,25 @@ import com.google.gwt.user.client.ui.FlowPanel;
|
|||
public class CkanMetadataManagementPanel extends FlowPanel{
|
||||
|
||||
private AlertBlock nav = new AlertBlock();
|
||||
|
||||
// generic
|
||||
private Button home = new Button("Home");
|
||||
private Button insertMeta = new Button("Publish Product");
|
||||
private Button editMeta = new Button("Edit Product");
|
||||
private Button organizations = new Button("Organizations");
|
||||
private Button groups = new Button("Groups");
|
||||
private Button products = new Button("Products");
|
||||
|
||||
// user's own
|
||||
private InlineHTML separatorAdminButtons = null;
|
||||
private Button myDatasets = new Button("My Products");
|
||||
private Button myOrganizations = new Button("My Organizations");
|
||||
private Button myGroups = new Button("My Groups");
|
||||
|
||||
// statistics
|
||||
private Button statistics = new Button("Statistics");
|
||||
|
||||
// other stuff
|
||||
private Button insertMeta = new Button("Publish Product");
|
||||
private Button editMeta = new Button("Edit Product");
|
||||
private Button manageProduct = new Button("Manage Product");
|
||||
private HandlerManager eventBus;
|
||||
|
||||
|
@ -56,17 +69,26 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
|
||||
// set link style buttons
|
||||
home.setType(ButtonType.LINK);
|
||||
organizations.setType(ButtonType.LINK);
|
||||
groups.setType(ButtonType.LINK);
|
||||
products.setType(ButtonType.LINK);
|
||||
|
||||
myDatasets.setType(ButtonType.LINK);
|
||||
myOrganizations.setType(ButtonType.LINK);
|
||||
myGroups.setType(ButtonType.LINK);
|
||||
|
||||
statistics.setType(ButtonType.LINK);
|
||||
|
||||
insertMeta.setType(ButtonType.LINK);
|
||||
editMeta.setType(ButtonType.LINK);
|
||||
statistics.setType(ButtonType.LINK);
|
||||
manageProduct.setType(ButtonType.LINK);
|
||||
manageProduct.getElement().getStyle().setFloat(Float.RIGHT);
|
||||
|
||||
// set icons
|
||||
home.setIcon(IconType.HOME);
|
||||
organizations.setIcon(IconType.BUILDING);
|
||||
groups.setIcon(IconType.GROUP);
|
||||
products.setIcon(IconType.SITEMAP);
|
||||
myDatasets.setIcon(IconType.SITEMAP);
|
||||
myOrganizations.setIcon(IconType.BUILDING);
|
||||
myGroups.setIcon(IconType.GROUP);
|
||||
|
@ -74,7 +96,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
editMeta.setIcon(IconType.EDIT_SIGN);
|
||||
statistics.setIcon(IconType.BAR_CHART);
|
||||
manageProduct.setIcon(IconType.CHECK_SIGN);
|
||||
|
||||
|
||||
// hide edit and insert
|
||||
editMeta.setVisible(false);
|
||||
insertMeta.setVisible(false);
|
||||
|
@ -83,10 +105,17 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
|
||||
// add to navigation bar
|
||||
nav.add(home);
|
||||
nav.add(organizations);
|
||||
nav.add(groups);
|
||||
nav.add(products);
|
||||
nav.add(statistics);
|
||||
nav.add(new InlineHTML("<span style=\"font-weight:bold;vertical-alignment:middle;\">|</span>"));
|
||||
nav.add(myDatasets);
|
||||
nav.add(myOrganizations);
|
||||
nav.add(myGroups);
|
||||
nav.add(statistics);
|
||||
separatorAdminButtons = new InlineHTML("<span style=\"font-weight:bold;vertical-alignment:middle;\">|</span>");
|
||||
separatorAdminButtons.setVisible(false);
|
||||
nav.add(separatorAdminButtons);
|
||||
nav.add(insertMeta);
|
||||
nav.add(editMeta);
|
||||
nav.add(manageProduct);
|
||||
|
@ -101,7 +130,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
/**
|
||||
*
|
||||
*/
|
||||
private void addHandlers() {
|
||||
private void addHandlers() {
|
||||
|
||||
home.addClickHandler(new ClickHandler() {
|
||||
|
||||
|
@ -113,6 +142,36 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
}
|
||||
});
|
||||
|
||||
organizations.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
eventBus.fireEvent(new ShowOrganizationsEvent(false));
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
groups.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
eventBus.fireEvent(new ShowGroupsEvent(false));
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
products.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
eventBus.fireEvent(new ShowDatasetsEvent(false));
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
insertMeta.addClickHandler(new ClickHandler() {
|
||||
|
||||
@Override
|
||||
|
@ -136,7 +195,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
eventBus.fireEvent(new ShowUserDatasetsEvent());
|
||||
eventBus.fireEvent(new ShowDatasetsEvent(true));
|
||||
|
||||
}
|
||||
});
|
||||
|
@ -146,7 +205,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
eventBus.fireEvent(new ShowUserOrganizationsEvent());
|
||||
eventBus.fireEvent(new ShowOrganizationsEvent(true));
|
||||
|
||||
}
|
||||
});
|
||||
|
@ -157,7 +216,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
@Override
|
||||
public void onClick(ClickEvent event) {
|
||||
|
||||
eventBus.fireEvent(new ShowUserGroupsEvent());
|
||||
eventBus.fireEvent(new ShowGroupsEvent(true));
|
||||
|
||||
}
|
||||
});
|
||||
|
@ -199,6 +258,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
public void showInsertAndEditProductButtons(boolean show){
|
||||
|
||||
//editMeta.setVisible(show); TODO
|
||||
separatorAdminButtons.setVisible(show);
|
||||
insertMeta.setVisible(show);
|
||||
|
||||
}
|
||||
|
@ -211,14 +271,14 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
|||
public void showManageProductButton(boolean value){
|
||||
manageProduct.setVisible(value);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Enable or disable the manage product button
|
||||
*/
|
||||
public void enableManageProductButton(boolean value){
|
||||
manageProduct.setEnabled(value);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Show only home/statistics buttons
|
||||
*/
|
||||
|
|
|
@ -38,6 +38,7 @@ import eu.trentorise.opendata.jackan.model.CkanOrganization;
|
|||
public class UserUtil {
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(UserUtil.class);
|
||||
private static final String SOBIGDATA_VO_CONTEXT = "/d4science.research-infrastructures.eu/SoBigData";
|
||||
|
||||
/**
|
||||
* Gets the list vre for user.
|
||||
|
@ -59,16 +60,24 @@ public class UserUtil {
|
|||
List<GCubeGroup> listOfGroups = groupManager.listGroupsByUser(user.getUserId());
|
||||
logger.info("List of VREs for "+userEMail+ " is/are: "+listOfGroups.size());
|
||||
List<String> vreNames = new ArrayList<String>(listOfGroups.size());
|
||||
|
||||
boolean containsSoBigDataVRE = false;
|
||||
for (GCubeGroup gCubeGroup : listOfGroups) {
|
||||
|
||||
// TODO: why only the VRES??...however check for the production root vo
|
||||
// if(gCubeGroup.getGroupName().equals(CKanUtilsImpl.PRODUCTION_LIFERAY_ORGNAME_ROOT))
|
||||
// vreNames.add(CKanUtilsImpl.PRODUCTION_CKAN_ORGNAME_ROOT);
|
||||
|
||||
//if(groupManager.isVRE(gCubeGroup.getGroupId())) //Is it a VRE?
|
||||
// else
|
||||
vreNames.add(gCubeGroup.getGroupName());
|
||||
|
||||
// in case of sobigdata vres (under the SoBigData VO) we need to let users access all the sobigdata organizations in ckan
|
||||
// The VO scope is "/d4science.research-infrastructures.eu/SoBigData"
|
||||
// This code will work only if all the sobigdata organizations are on the same ckan, of course
|
||||
if(!containsSoBigDataVRE)
|
||||
if(gCubeGroup.getParentGroupId() != -1 && SOBIGDATA_VO_CONTEXT.equals(groupManager.getInfrastructureScope(gCubeGroup.getParentGroupId())))
|
||||
containsSoBigDataVRE = true;
|
||||
|
||||
}
|
||||
|
||||
// check if we need to add also sobigdata vres
|
||||
if(containsSoBigDataVRE)
|
||||
addSoBigDataVREs(groupManager, vreNames);
|
||||
|
||||
logger.debug("Returning VRE names: "+vreNames);
|
||||
return vreNames;
|
||||
}catch (UserManagementSystemException | UserRetrievalFault | GroupRetrievalFault e) {
|
||||
|
@ -77,6 +86,26 @@ public class UserUtil {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Fetch (if needed) the groups' names of the vres under sobigdata
|
||||
* @param groupManager
|
||||
* @param vreNames
|
||||
*/
|
||||
private static void addSoBigDataVREs(GroupManager groupManager, List<String> vreNames){
|
||||
|
||||
try{
|
||||
// fetch all sobigdata contexts
|
||||
GCubeGroup sobigdataVO = groupManager.getGroup(groupManager.getGroupIdFromInfrastructureScope(SOBIGDATA_VO_CONTEXT));
|
||||
List<GCubeGroup> children = sobigdataVO.getChildren();
|
||||
|
||||
for (GCubeGroup gcubeSobigDataChild : children) {
|
||||
vreNames.add(gcubeSobigDataChild.getGroupName());
|
||||
}
|
||||
}catch(Exception e){
|
||||
logger.error("Unable to retrieve SoBigData vres", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the highest ckan role the user has and also retrieve the list of organizations (scopes) in which the user has the ckan-admin or ckan-editor role
|
||||
* @param currentScope the current scope
|
||||
|
|
Loading…
Reference in New Issue