From d56a2e660083aad97b8435702aee47c4d157af24 Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Mon, 3 Jan 2022 15:29:26 +0100 Subject: [PATCH] Make the "motivation" mandatory when someone asks to join a VRE --- CHANGELOG.md | 10 +-- pom.xml | 4 +- .../client/ui/RequestMembershipDialog.java | 68 ++++++++++--------- .../client/ui/RequestMembershipDialog.ui.xml | 2 +- 4 files changed, 46 insertions(+), 38 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a950838..fc60fba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,15 +4,17 @@ All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [v3.7.3-SNAPSHOT] - 2022-01-03 + +- Make the "motivation" mandatory when someone asks to join a VRE + ## [v3.7.2] - 2021-04-30 -Removed a forgotten sysout in the code :( +- Removed a forgotten sysout in the code :( ## [v3.7.1] - 2020-10-16 -Enhacements - -No need to retrieve the user membership request status if the VRE Access policy is Open +- No need to retrieve the user membership request status if the VRE Access policy is Open ## [v3.7.0] - 2020-06-03 diff --git a/pom.xml b/pom.xml index 119f461..2742d62 100644 --- a/pom.xml +++ b/pom.xml @@ -14,7 +14,7 @@ org.gcube.portlets.user join-vre war - 3.7.2 + 3.7.3-SNAPSHOT gCube Join VRE Portlet Display the available VRE to Join @@ -38,7 +38,7 @@ org.gcube.distribution maven-portal-bom - 3.6.3 + 3.6.3-SNAPSHOT pom import diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java index 4841b0c..dacde96 100644 --- a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java +++ b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.java @@ -17,6 +17,7 @@ import com.google.gwt.event.dom.client.ClickHandler; import com.google.gwt.uibinder.client.UiBinder; import com.google.gwt.uibinder.client.UiField; import com.google.gwt.uibinder.client.UiHandler; +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.Composite; @@ -24,11 +25,11 @@ import com.google.gwt.user.client.ui.HTML; import com.google.gwt.user.client.ui.Widget; public class RequestMembershipDialog extends Composite { - - private static final String OPTIONAL_COMMENT_TEXT = "You can add an optional comment here, it will be attached to your request and read by this VRE Moderators."; + + private static final String MANDATORY_MOTIVATION_TEXT = "Please state your motivation here, it will be attached to your request and read by this VRE Moderators (Mandatory field)."; private final JoinServiceAsync joinService = GWT.create(JoinService.class); - + private static RequestAccessModalUiBinder uiBinder = GWT .create(RequestAccessModalUiBinder.class); @@ -38,12 +39,12 @@ public class RequestMembershipDialog extends Composite { @UiField Modal m; @UiField Button close; @UiField Button confirmRequest; - @UiField TextArea optionalText; + @UiField TextArea mandatoryMotivation; @UiField HelpBlock helpBlock; @UiField Icon loading; private VRE myVRE = null; private ResponsivePanel responsivePanel; - + @UiField HelpBlock touGatewayBlock; @UiField HTML touText; @@ -51,8 +52,8 @@ public class RequestMembershipDialog extends Composite { initWidget(uiBinder.createAndBindUi(this)); this.myVRE = myVRE; this.responsivePanel = responsivePanel; - optionalText.setWidth("95%"); - optionalText.setPlaceholder(OPTIONAL_COMMENT_TEXT); + mandatoryMotivation.setWidth("95%"); + mandatoryMotivation.setPlaceholder(MANDATORY_MOTIVATION_TEXT); } public void show() { @@ -85,12 +86,12 @@ public class RequestMembershipDialog extends Composite { ((Element)m.getElement().getChildNodes().getItem(1)).addClassName("modal-body-custom"); touText.setHTML(result); } - + m.show(); } }); - + m.show(); } @@ -100,27 +101,32 @@ public class RequestMembershipDialog extends Composite { } @UiHandler("confirmRequest") void confirm(ClickEvent e) { - String text = optionalText.getText(); - confirmRequest.setEnabled(false); - joinService.addMembershipRequest(myVRE, text, new AsyncCallback() { - @Override - public void onSuccess(Void result) { - confirmRequest.removeFromParent(); - optionalText.removeFromParent(); - m.setTitle("Thank you, your request has been sent successfully"); - helpBlock.setText("You will receive an email as soon as your request will be processed."); - responsivePanel.setPending(myVRE); - confirmRequest.setEnabled(false); - touText.removeFromParent(); - } - @Override - public void onFailure(Throwable caught) { - confirmRequest.removeFromParent(); - optionalText.removeFromParent(); - m.setTitle("An error occurred! Your request has not been sent"); - helpBlock.setText("An email with the cause of the error has been sent to the support team, we'll be back to you shortly."); - touText.removeFromParent(); - } - }); + String text = mandatoryMotivation.getText(); + if (text.isEmpty() || text.length() < 8) { + Window.alert("The motivation is mandatory, please state your motivation appropriately."); + } + else { + confirmRequest.setEnabled(false); + joinService.addMembershipRequest(myVRE, text, new AsyncCallback() { + @Override + public void onSuccess(Void result) { + confirmRequest.removeFromParent(); + mandatoryMotivation.removeFromParent(); + m.setTitle("Thank you, your request has been sent successfully"); + helpBlock.setText("You will receive an email as soon as your request will be processed."); + responsivePanel.setPending(myVRE); + confirmRequest.setEnabled(false); + touText.removeFromParent(); + } + @Override + public void onFailure(Throwable caught) { + confirmRequest.removeFromParent(); + mandatoryMotivation.removeFromParent(); + m.setTitle("An error occurred! Your request has not been sent"); + helpBlock.setText("An email with the cause of the error has been sent to the support team, we'll be back to you shortly."); + touText.removeFromParent(); + } + }); + } } } diff --git a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.ui.xml b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.ui.xml index 43e507e..e201461 100644 --- a/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.ui.xml +++ b/src/main/java/org/gcube/portlets/user/joinvre/client/ui/RequestMembershipDialog.ui.xml @@ -8,7 +8,7 @@ visible="false" /> - + Your request will be reviewed by this VRE moderators, you will be notified via email about the result as soon as possible (tipically within a few hours). By asking access to this VRE you agree to the terms indicated in