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.InsertMetadataEventHandler;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.NotifyLogoutEvent;
|
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.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.ShowHomeEvent;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowHomeEventHandler;
|
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.ShowManageProductWidgetEvent;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowManageProductWidgetEventHandler;
|
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.ShowStatisticsEvent;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowStatisticsEventHandler;
|
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.ui.ManageProductWidget;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.view.GCubeCkanDataCatalogPanel;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.shared.CkanConnectorAccessPoint;
|
||||||
|
@ -117,35 +117,48 @@ public class CkanEventHandlerManager {
|
||||||
|
|
||||||
// show datasets event
|
// show datasets event
|
||||||
eventBus.addHandler(
|
eventBus.addHandler(
|
||||||
ShowUserDatasetsEvent.TYPE, new ShowUserDatasetsEventHandler() {
|
ShowDatasetsEvent.TYPE, new ShowDatasetsEventHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShowDatasets(
|
public void onShowDatasets(
|
||||||
ShowUserDatasetsEvent showUserDatasetsEvent) {
|
ShowDatasetsEvent showUserDatasetsEvent) {
|
||||||
String request = getCkanRequest("/dashboard/datasets", null);
|
String request = null;
|
||||||
|
if(showUserDatasetsEvent.isOwnOnly())
|
||||||
|
request = getCkanRequest("/dashboard/datasets", null);
|
||||||
|
else
|
||||||
|
request = getCkanRequest("/dataset", null);
|
||||||
panel.instanceCkanFrame(request);
|
panel.instanceCkanFrame(request);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
eventBus.addHandler(
|
eventBus.addHandler(
|
||||||
ShowUserOrganizationsEvent.TYPE,
|
ShowOrganizationsEvent.TYPE,
|
||||||
new ShowUserOrganizationsEventHandler() {
|
new ShowOrganizationsEventHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShowOrganizations(
|
public void onShowOrganizations(
|
||||||
ShowUserOrganizationsEvent showUserDatasetsEvent) {
|
ShowOrganizationsEvent showUserDatasetsEvent) {
|
||||||
|
|
||||||
panel.showOrganizations();
|
|
||||||
|
|
||||||
|
if(showUserDatasetsEvent.isOwnOnly())
|
||||||
|
panel.showOrganizations();
|
||||||
|
else{
|
||||||
|
String request = getCkanRequest("/organization", null);
|
||||||
|
panel.instanceCkanFrame(request);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
eventBus.addHandler(
|
eventBus.addHandler(
|
||||||
ShowUserGroupsEvent.TYPE, new ShowUserGroupsEventHandler() {
|
ShowGroupsEvent.TYPE, new ShowGroupsEventHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onShowGroups(ShowUserGroupsEvent showUserDatasetsEvent) {
|
public void onShowGroups(ShowGroupsEvent showGroupsEvent) {
|
||||||
//String request = getCkanRequest("/dashboard/groups", null);
|
//String request = getCkanRequest("/dashboard/groups", null);
|
||||||
//panel.instanceCkanFrame(request);
|
//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
|
@Override
|
||||||
public void onShowManageProductWidget(ShowManageProductWidgetEvent event) {
|
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.
|
* Raised when the user wants to see his datasets.
|
||||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
* @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.
|
* Instantiates a new show user datasets event.
|
||||||
*/
|
*/
|
||||||
public ShowUserDatasetsEvent() {
|
public ShowDatasetsEvent(boolean ownOnly) {
|
||||||
|
|
||||||
|
this.ownOnly = ownOnly;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOwnOnly() {
|
||||||
|
return ownOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Type<ShowUserDatasetsEventHandler> getAssociatedType() {
|
public Type<ShowDatasetsEventHandler> getAssociatedType() {
|
||||||
return TYPE;
|
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)
|
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void dispatch(ShowUserDatasetsEventHandler handler) {
|
protected void dispatch(ShowDatasetsEventHandler handler) {
|
||||||
handler.onShowDatasets(this);
|
handler.onShowDatasets(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,12 @@ import com.google.gwt.event.shared.EventHandler;
|
||||||
* Event handler for the ShowUserDatasetsEvent
|
* Event handler for the ShowUserDatasetsEvent
|
||||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||||
*/
|
*/
|
||||||
public interface ShowUserDatasetsEventHandler extends EventHandler {
|
public interface ShowDatasetsEventHandler extends EventHandler {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param showUserDatasetsEvent
|
* @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
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
* Jun 23, 2016
|
* 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.
|
* Instantiates a new show user organizations event.
|
||||||
*/
|
*/
|
||||||
public ShowUserGroupsEvent() {
|
public ShowGroupsEvent(boolean ownOnly) {
|
||||||
|
this.ownOnly = ownOnly;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOwnOnly() {
|
||||||
|
return ownOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Type<ShowUserGroupsEventHandler> getAssociatedType() {
|
public Type<ShowGroupsEventHandler> getAssociatedType() {
|
||||||
return TYPE;
|
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)
|
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void dispatch(ShowUserGroupsEventHandler handler) {
|
protected void dispatch(ShowGroupsEventHandler handler) {
|
||||||
handler.onShowGroups(this);
|
handler.onShowGroups(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,7 @@ import com.google.gwt.event.shared.EventHandler;
|
||||||
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it
|
||||||
* Jun 23, 2016
|
* 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
|
* @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.
|
* Raised when the user wants to see his organizations.
|
||||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
* @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.
|
* Instantiates a new show user organizations event.
|
||||||
*/
|
*/
|
||||||
public ShowUserOrganizationsEvent() {
|
public ShowOrganizationsEvent(boolean ownOnly) {
|
||||||
|
this.ownOnly = ownOnly;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isOwnOnly() {
|
||||||
|
return ownOnly;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* (non-Javadoc)
|
/* (non-Javadoc)
|
||||||
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
* @see com.google.gwt.event.shared.GwtEvent#getAssociatedType()
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Type<ShowUserOrganizationsEventHandler> getAssociatedType() {
|
public Type<ShowOrganizationsEventHandler> getAssociatedType() {
|
||||||
return TYPE;
|
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)
|
* @see com.google.gwt.event.shared.GwtEvent#dispatch(com.google.gwt.event.shared.EventHandler)
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
protected void dispatch(ShowUserOrganizationsEventHandler handler) {
|
protected void dispatch(ShowOrganizationsEventHandler handler) {
|
||||||
handler.onShowOrganizations(this);
|
handler.onShowOrganizations(this);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,12 +6,12 @@ import com.google.gwt.event.shared.EventHandler;
|
||||||
* Event handler for the ShowUserOrganizationsEvent
|
* Event handler for the ShowUserOrganizationsEvent
|
||||||
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
* @author Costantino Perciante at ISTI-CNR (costantino.perciante@isti.cnr.it)
|
||||||
*/
|
*/
|
||||||
public interface ShowUserOrganizationsEventHandler extends EventHandler {
|
public interface ShowOrganizationsEventHandler extends EventHandler {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param showUserDatasetsEvent
|
* @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.EditMetadataEvent;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.InsertMetadataEvent;
|
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.ShowHomeEvent;
|
||||||
import org.gcube.portlets.gcubeckan.gcubeckandatacatalog.client.event.ShowManageProductWidgetEvent;
|
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.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.AlertBlock;
|
||||||
import com.github.gwtbootstrap.client.ui.Button;
|
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.dom.client.ClickHandler;
|
||||||
import com.google.gwt.event.shared.HandlerManager;
|
import com.google.gwt.event.shared.HandlerManager;
|
||||||
import com.google.gwt.user.client.ui.FlowPanel;
|
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{
|
public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
|
|
||||||
private AlertBlock nav = new AlertBlock();
|
private AlertBlock nav = new AlertBlock();
|
||||||
|
|
||||||
|
// generic
|
||||||
private Button home = new Button("Home");
|
private Button home = new Button("Home");
|
||||||
private Button insertMeta = new Button("Publish Product");
|
private Button organizations = new Button("Organizations");
|
||||||
private Button editMeta = new Button("Edit Product");
|
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 myDatasets = new Button("My Products");
|
||||||
private Button myOrganizations = new Button("My Organizations");
|
private Button myOrganizations = new Button("My Organizations");
|
||||||
private Button myGroups = new Button("My Groups");
|
private Button myGroups = new Button("My Groups");
|
||||||
|
|
||||||
|
// statistics
|
||||||
private Button statistics = new Button("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 Button manageProduct = new Button("Manage Product");
|
||||||
private HandlerManager eventBus;
|
private HandlerManager eventBus;
|
||||||
|
|
||||||
|
@ -56,17 +69,26 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
|
|
||||||
// set link style buttons
|
// set link style buttons
|
||||||
home.setType(ButtonType.LINK);
|
home.setType(ButtonType.LINK);
|
||||||
|
organizations.setType(ButtonType.LINK);
|
||||||
|
groups.setType(ButtonType.LINK);
|
||||||
|
products.setType(ButtonType.LINK);
|
||||||
|
|
||||||
myDatasets.setType(ButtonType.LINK);
|
myDatasets.setType(ButtonType.LINK);
|
||||||
myOrganizations.setType(ButtonType.LINK);
|
myOrganizations.setType(ButtonType.LINK);
|
||||||
myGroups.setType(ButtonType.LINK);
|
myGroups.setType(ButtonType.LINK);
|
||||||
|
|
||||||
|
statistics.setType(ButtonType.LINK);
|
||||||
|
|
||||||
insertMeta.setType(ButtonType.LINK);
|
insertMeta.setType(ButtonType.LINK);
|
||||||
editMeta.setType(ButtonType.LINK);
|
editMeta.setType(ButtonType.LINK);
|
||||||
statistics.setType(ButtonType.LINK);
|
|
||||||
manageProduct.setType(ButtonType.LINK);
|
manageProduct.setType(ButtonType.LINK);
|
||||||
manageProduct.getElement().getStyle().setFloat(Float.RIGHT);
|
manageProduct.getElement().getStyle().setFloat(Float.RIGHT);
|
||||||
|
|
||||||
// set icons
|
// set icons
|
||||||
home.setIcon(IconType.HOME);
|
home.setIcon(IconType.HOME);
|
||||||
|
organizations.setIcon(IconType.BUILDING);
|
||||||
|
groups.setIcon(IconType.GROUP);
|
||||||
|
products.setIcon(IconType.SITEMAP);
|
||||||
myDatasets.setIcon(IconType.SITEMAP);
|
myDatasets.setIcon(IconType.SITEMAP);
|
||||||
myOrganizations.setIcon(IconType.BUILDING);
|
myOrganizations.setIcon(IconType.BUILDING);
|
||||||
myGroups.setIcon(IconType.GROUP);
|
myGroups.setIcon(IconType.GROUP);
|
||||||
|
@ -74,7 +96,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
editMeta.setIcon(IconType.EDIT_SIGN);
|
editMeta.setIcon(IconType.EDIT_SIGN);
|
||||||
statistics.setIcon(IconType.BAR_CHART);
|
statistics.setIcon(IconType.BAR_CHART);
|
||||||
manageProduct.setIcon(IconType.CHECK_SIGN);
|
manageProduct.setIcon(IconType.CHECK_SIGN);
|
||||||
|
|
||||||
// hide edit and insert
|
// hide edit and insert
|
||||||
editMeta.setVisible(false);
|
editMeta.setVisible(false);
|
||||||
insertMeta.setVisible(false);
|
insertMeta.setVisible(false);
|
||||||
|
@ -83,10 +105,17 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
|
|
||||||
// add to navigation bar
|
// add to navigation bar
|
||||||
nav.add(home);
|
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(myDatasets);
|
||||||
nav.add(myOrganizations);
|
nav.add(myOrganizations);
|
||||||
nav.add(myGroups);
|
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(insertMeta);
|
||||||
nav.add(editMeta);
|
nav.add(editMeta);
|
||||||
nav.add(manageProduct);
|
nav.add(manageProduct);
|
||||||
|
@ -101,7 +130,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
private void addHandlers() {
|
private void addHandlers() {
|
||||||
|
|
||||||
home.addClickHandler(new ClickHandler() {
|
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() {
|
insertMeta.addClickHandler(new ClickHandler() {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -136,7 +195,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
|
|
||||||
eventBus.fireEvent(new ShowUserDatasetsEvent());
|
eventBus.fireEvent(new ShowDatasetsEvent(true));
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -146,7 +205,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
public void onClick(ClickEvent event) {
|
||||||
|
|
||||||
eventBus.fireEvent(new ShowUserOrganizationsEvent());
|
eventBus.fireEvent(new ShowOrganizationsEvent(true));
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -157,7 +216,7 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
@Override
|
@Override
|
||||||
public void onClick(ClickEvent event) {
|
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){
|
public void showInsertAndEditProductButtons(boolean show){
|
||||||
|
|
||||||
//editMeta.setVisible(show); TODO
|
//editMeta.setVisible(show); TODO
|
||||||
|
separatorAdminButtons.setVisible(show);
|
||||||
insertMeta.setVisible(show);
|
insertMeta.setVisible(show);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -211,14 +271,14 @@ public class CkanMetadataManagementPanel extends FlowPanel{
|
||||||
public void showManageProductButton(boolean value){
|
public void showManageProductButton(boolean value){
|
||||||
manageProduct.setVisible(value);
|
manageProduct.setVisible(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Enable or disable the manage product button
|
* Enable or disable the manage product button
|
||||||
*/
|
*/
|
||||||
public void enableManageProductButton(boolean value){
|
public void enableManageProductButton(boolean value){
|
||||||
manageProduct.setEnabled(value);
|
manageProduct.setEnabled(value);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Show only home/statistics buttons
|
* Show only home/statistics buttons
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -38,6 +38,7 @@ import eu.trentorise.opendata.jackan.model.CkanOrganization;
|
||||||
public class UserUtil {
|
public class UserUtil {
|
||||||
|
|
||||||
private static Logger logger = LoggerFactory.getLogger(UserUtil.class);
|
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.
|
* Gets the list vre for user.
|
||||||
|
@ -59,16 +60,24 @@ public class UserUtil {
|
||||||
List<GCubeGroup> listOfGroups = groupManager.listGroupsByUser(user.getUserId());
|
List<GCubeGroup> listOfGroups = groupManager.listGroupsByUser(user.getUserId());
|
||||||
logger.info("List of VREs for "+userEMail+ " is/are: "+listOfGroups.size());
|
logger.info("List of VREs for "+userEMail+ " is/are: "+listOfGroups.size());
|
||||||
List<String> vreNames = new ArrayList<String>(listOfGroups.size());
|
List<String> vreNames = new ArrayList<String>(listOfGroups.size());
|
||||||
|
|
||||||
|
boolean containsSoBigDataVRE = false;
|
||||||
for (GCubeGroup gCubeGroup : listOfGroups) {
|
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());
|
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);
|
logger.debug("Returning VRE names: "+vreNames);
|
||||||
return vreNames;
|
return vreNames;
|
||||||
}catch (UserManagementSystemException | UserRetrievalFault | GroupRetrievalFault e) {
|
}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
|
* 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
|
* @param currentScope the current scope
|
||||||
|
|
Loading…
Reference in New Issue