From 59a16651ce1ee59925c75ad2b5fdf882872702b9 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Thu, 15 Sep 2022 17:58:04 +0200 Subject: [PATCH] Integrated the roles defined in the UCD with the ActionDefinitions --- .../client/GeoPortalDataEntryApp.java | 9 +-- .../client/ui/GeonaMainTabPanel.java | 17 ++++- .../client/ui/action/ActionDefButton.java | 25 ++++++++ .../client/ui/action/ActionListPanel.java | 43 +++++++++---- .../client/ui/utils/HTMLUtil.java | 64 +++++++++++++++++++ .../server/GeoportalDataEntryServiceImpl.java | 2 +- 6 files changed, 134 insertions(+), 26 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionDefButton.java diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java index 7a34374..2cb5252 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/GeoPortalDataEntryApp.java @@ -250,14 +250,7 @@ public class GeoPortalDataEntryApp implements EntryPoint { myRights = gNADataEntryConfig.getUserRights(); initGUI(); GcubeUserRole userRole = myRights.getRoleRights().getUserRole(); - String msg = "Logged in as "; - if (userRole != null && userRole.getName() != null) { - msg += userRole.getName().substring(userRole.getName().indexOf("-") + 1, - userRole.getName().length()); - } else - msg += "Member"; - - mainTabPanel.setRoleLabel(msg); + mainTabPanel.setRole(userRole); RoleRights roleRights = myRights.getRoleRights(); boolean canCreateNewItem = roleRights.getListPermessions().keySet() diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.java index 9468977..da70745 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/GeonaMainTabPanel.java @@ -10,6 +10,7 @@ import org.gcube.application.geoportalcommon.shared.SearchingFilter; import org.gcube.application.geoportalcommon.shared.SearchingFilter.LOGICAL_OP; import org.gcube.application.geoportalcommon.shared.SearchingFilter.ORDER; import org.gcube.application.geoportalcommon.shared.WhereClause; +import org.gcube.application.geoportalcommon.shared.config.GcubeUserRole; import org.gcube.application.geoportalcommon.shared.config.OPERATION_ON_ITEM; import org.gcube.application.geoportalcommon.shared.geoportal.ConfigurationDV; import org.gcube.application.geoportalcommon.shared.geoportal.DocumentDV; @@ -180,6 +181,8 @@ public class GeonaMainTabPanel extends Composite { private CacheSearchingFilterParametersFromConfig cacheSearchingFilterParameters; + private GcubeUserRole userRole; + /** * Instantiates a new geona main tab panel. * @@ -440,9 +443,17 @@ public class GeonaMainTabPanel extends Composite { /** * Sets the role label. * - * @param msg the new role label + * @param userRole the user role + * @param roleTitle the role title */ - public void setRoleLabel(String msg) { + public void setRole(GcubeUserRole userRole) { + this.userRole = userRole; + String msg = "Logged in as "; + if (userRole != null && userRole.getName() != null) { + msg += userRole.getName().substring(userRole.getName().indexOf("-") + 1, + userRole.getName().length()); + } else + msg += "Member"; roleLabel.setText(msg); } @@ -739,7 +750,7 @@ public class GeonaMainTabPanel extends Composite { public void showActionsOnSelected(List selectItems) { - actionListPanel.showActionsOnSelected(selectItems); + actionListPanel.showActionsOnSelected(selectItems, userRole); } /** diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionDefButton.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionDefButton.java new file mode 100644 index 0000000..e6a18a5 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionDefButton.java @@ -0,0 +1,25 @@ +package org.gcube.portlets.user.geoportaldataentry.client.ui.action; + +import org.gcube.application.geoportalcommon.shared.geoportal.config.ActionDefinitionDV; + +import com.github.gwtbootstrap.client.ui.Button; + +public class ActionDefButton { + + private ActionDefinitionDV actionDefinitionDV; + private Button button; + + public ActionDefButton(ActionDefinitionDV actionDefinitionDV, Button button) { + this.actionDefinitionDV = actionDefinitionDV; + this.button = button; + } + + public ActionDefinitionDV getActionDefinitionDV() { + return actionDefinitionDV; + } + + public Button getButton() { + return button; + } + +} diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionListPanel.java b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionListPanel.java index 89b5285..3b29feb 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionListPanel.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataentry/client/ui/action/ActionListPanel.java @@ -5,7 +5,9 @@ import java.util.Iterator; import java.util.LinkedHashMap; import java.util.List; import java.util.Map; +import java.util.Set; +import org.gcube.application.geoportalcommon.shared.config.GcubeUserRole; import org.gcube.application.geoportalcommon.shared.geoportal.ResultDocumentDV; import org.gcube.application.geoportalcommon.shared.geoportal.config.ActionDefinitionDV; import org.gcube.portlets.user.geoportaldataentry.client.events.WorkflowActionOnSelectedItemEvent; @@ -52,7 +54,7 @@ public class ActionListPanel extends Composite { @UiField HTMLPanel actionListBasePanel; - private Map> mapPhaseListButtons; + private Map> mapPhaseListButtons; private void initActions(List listActionDef) { @@ -62,7 +64,7 @@ public class ActionListPanel extends Composite { ButtonGroup buttonGroup = new ButtonGroup(); buttonGroup.getElement().addClassName("actions-button-group"); - mapPhaseListButtons = new LinkedHashMap>(); + mapPhaseListButtons = new LinkedHashMap>(); for (ActionDefinitionDV actionDefinitionDV : listActionDef) { Button butt = new Button(); @@ -82,11 +84,11 @@ public class ActionListPanel extends Composite { String[] displayOnPhases = actionDefinitionDV.getDisplayOnPhase(); for (String displayOnPhase : displayOnPhases) { - List