ready to alpha test

This commit is contained in:
Massimiliano Assante 2021-11-10 11:13:03 +01:00
parent 8f16a1daba
commit beb35222ca
3 changed files with 163 additions and 139 deletions

View File

@ -47,7 +47,7 @@ import com.liferay.util.bridges.mvc.MVCPortlet;
*/ */
public class CompileForm extends MVCPortlet { public class CompileForm extends MVCPortlet {
private static com.liferay.portal.kernel.log.Log _log = LogFactoryUtil.getLog(CompileForm.class); private static com.liferay.portal.kernel.log.Log _log = LogFactoryUtil.getLog(CompileForm.class);
private static final String MANAGE_USERS_REQUESTS_FRIENDLY_URL = "/manage-expression-of-interest"; private static final String MANAGE_USERS_REQUESTS_FRIENDLY_URL = "/manage-expression-of-interest";
protected static final String MAIL_FROM = "MOVING Gateway <moving@d4science.org>"; protected static final String MAIL_FROM = "MOVING Gateway <moving@d4science.org>";
private static final String MAIL_SUBJECT = "MOVING EU Multi-Actor Platform: email confirmation"; private static final String MAIL_SUBJECT = "MOVING EU Multi-Actor Platform: email confirmation";
@ -58,15 +58,15 @@ public class CompileForm extends MVCPortlet {
+ "\n" + "\n"
+ "Best regards,\n" + "Best regards,\n"
+ "MOVING team\n"; + "MOVING team\n";
private static final String MAIL_BODY_VRE_MANAGER = "Dear MOVING EU-MAP Manager,\n" private static final String MAIL_BODY_VRE_MANAGER = "Dear MOVING EU-MAP Manager,\n"
+ "A new request to join the MOVING EU-level Multi-Actor Platform (MAP) has been submitted.\n" + "A new request to join the MOVING EU-level Multi-Actor Platform (MAP) has been submitted.\n"
+ "\nPlease manage this request:\n"; + "\nPlease manage this request:\n";
private String mailServiceHost = "localhost"; private String mailServiceHost = "localhost";
private String mailServicePort = "25"; private String mailServicePort = "25";
@Override @Override
public void render(RenderRequest renderRequest, RenderResponse renderResponse) { public void render(RenderRequest renderRequest, RenderResponse renderResponse) {
Connection conn = null; Connection conn = null;
@ -82,7 +82,7 @@ public class CompileForm extends MVCPortlet {
renderRequest.setAttribute("main_motivations", main_motivations); renderRequest.setAttribute("main_motivations", main_motivations);
renderRequest.setAttribute("areas_of_expertise", areas_of_expertise); renderRequest.setAttribute("areas_of_expertise", areas_of_expertise);
renderRequest.setAttribute("degrees_of_participation", degrees_of_participation); renderRequest.setAttribute("degrees_of_participation", degrees_of_participation);
super.render(renderRequest, renderResponse); super.render(renderRequest, renderResponse);
} catch (Exception e) { } catch (Exception e) {
_log.error("Something wrong with Databaseconnection or with queries while getting combo types", e); _log.error("Something wrong with Databaseconnection or with queries while getting combo types", e);
@ -96,144 +96,141 @@ public class CompileForm extends MVCPortlet {
String organisation = actionRequest.getParameter("organisation"); String organisation = actionRequest.getParameter("organisation");
String organisationType = actionRequest.getParameter("organisationType"); String organisationType = actionRequest.getParameter("organisationType");
String emailAddress = actionRequest.getParameter("emailAddress"); String emailAddress = actionRequest.getParameter("emailAddress");
String country = actionRequest.getParameter("country"); String country = actionRequest.getParameter("country");
String participatedInActivitiesString = (String) actionRequest.getParameter("participatedInActivities"); String participatedInActivitiesString = (String) actionRequest.getParameter("participatedInActivities");
boolean participatedInActivities = Boolean.parseBoolean(participatedInActivitiesString); boolean participatedInActivities = Boolean.parseBoolean(participatedInActivitiesString);
String textareaMotivation = actionRequest.getParameter("textareaMotivation"); String textareaMotivation = actionRequest.getParameter("textareaMotivation");
String elaborated_expertise = actionRequest.getParameter("textareaExperience"); String elaborated_expertise = actionRequest.getParameter("textareaExperience");
_log.debug("name:" + name); _log.debug("name:" + name);
_log.debug("surname:" + surname); _log.debug("surname:" + surname);
_log.debug("organisation:" + organisation); _log.debug("organisation:" + organisation);
_log.debug("organisationType:" + organisationType); _log.debug("organisationType:" + organisationType);
_log.debug("email:" + emailAddress); _log.debug("email:" + emailAddress);
_log.debug("country:" + country); _log.debug("country:" + country);
_log.debug("participatedInActivities:" + participatedInActivities); _log.info("participatedInActivities:" + participatedInActivities);
_log.debug("textareaMotivation:\n" + textareaMotivation+"\n");
_log.info("itemsAreaOfExpertise (Multi):\n");
Connection conn; Connection conn;
try { try {
conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection(); conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection();
String[] mainMotivationValues = actionRequest.getParameterValues("mainMotivation"); String[] mainMotivationValues = actionRequest.getParameterValues("mainMotivation");
List<String> list = getMainMotivations(conn); List<String> list = getMainMotivations(conn);
String[] main_motivations = list.toArray(new String[0]); String[] main_motivations = list.toArray(new String[0]);
String mainMotivation = ""; String mainMotivation = "";
for (int i = 0; i < mainMotivationValues.length; i++) { for (int i = 0; i < mainMotivationValues.length; i++) {
System.out.println(i+"mainMotivationValues[i]="+mainMotivationValues[i]);
boolean valueTrue = Boolean.parseBoolean(mainMotivationValues[i]); boolean valueTrue = Boolean.parseBoolean(mainMotivationValues[i]);
if (valueTrue) if (valueTrue && i > 0)
mainMotivation += main_motivations[i-1]+"; "; //0 is a placeholder always false mainMotivation += main_motivations[i-1]+"; "; //0 is a placeholder always false
} }
System.out.println("mainMotivation="+mainMotivation); System.out.println("mainMotivation="+mainMotivation);
String[] itemsAreaOfExpertiseSelectValues = actionRequest.getParameterValues("areaOfExpertiseSelect"); String[] itemsAreaOfExpertiseSelectValues = actionRequest.getParameterValues("areaOfExpertiseSelect");
list = getAreasOfExpertise(conn); list = getAreasOfExpertise(conn);
String[] areas_of_expertise = list.toArray(new String[0]); String[] areas_of_expertise = list.toArray(new String[0]);
String areaOfExpertise = ""; String areaOfExpertise = "";
for (int i = 0; i < itemsAreaOfExpertiseSelectValues.length; i++) { for (int i = 0; i < itemsAreaOfExpertiseSelectValues.length; i++) {
boolean valueTrue = Boolean.parseBoolean(itemsAreaOfExpertiseSelectValues[i]); boolean valueTrue = Boolean.parseBoolean(itemsAreaOfExpertiseSelectValues[i]);
if (valueTrue) if (valueTrue && i > 0)
areaOfExpertise += areas_of_expertise[i-1]+"; "; areaOfExpertise += areas_of_expertise[i-1]+"; ";
} }
System.out.println("areaOfExpertise="+areaOfExpertise); System.out.println("areaOfExpertise="+areaOfExpertise);
String[] degree_of_participationValues = actionRequest.getParameterValues("commitment"); String[] degree_of_participationValues = actionRequest.getParameterValues("commitment");
list = getDgreesOfParticipation(conn); list = getDgreesOfParticipation(conn);
String[] degrees_of_participation = list.toArray(new String[0]); String[] degrees_of_participation = list.toArray(new String[0]);
String degree_of_participation = ""; String degreeOfParticipation = "";
for (int i = 0; i < degree_of_participationValues.length; i++) { for (int i = 0; i < degree_of_participationValues.length; i++) {
boolean valueTrue = Boolean.parseBoolean(degree_of_participationValues[i]); boolean valueTrue = Boolean.parseBoolean(degree_of_participationValues[i]);
if (valueTrue) if (valueTrue && i > 0)
degree_of_participation += degrees_of_participation[i-1]+"; "; //0 is a placeholder always false degreeOfParticipation += degrees_of_participation[i-1]+"; "; //0 is a placeholder always false
} }
System.out.println("degree_of_participation="+degree_of_participation);
_log.debug("textareaExperience:\n" + elaborated_expertise+"\n");
_log.info("Got form compiled, inserting in DB."); System.out.println("degree_of_participation="+degreeOfParticipation);
_log.debug("textareaExperience:\n" + elaborated_expertise+"\n");
_log.info("Got form compiled, inserting in DB.");
String insertTableSQL = "INSERT INTO forms(name, surname, organisation, organisation_type, email, "
+ "country, activities_participation, main_motivation, elaborated_motivation, area_of_expertise, "
+ "elaborated_expertise, degree_of_participation, data_management, datecreated, processed_form, user_accepted) "
+ "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,current_timestamp,?,?)";
PreparedStatement preparedStatement = conn.prepareStatement(insertTableSQL);
preparedStatement.setString(1, name);
preparedStatement.setString(2, surname);
preparedStatement.setString(3, organisation);
preparedStatement.setString(4, organisationType);
preparedStatement.setString(5, emailAddress);
preparedStatement.setString(6, country);
preparedStatement.setBoolean(7, participatedInActivities);
preparedStatement.setString(8, mainMotivation);
preparedStatement.setString(9, textareaMotivation);
preparedStatement.setString(10, areaOfExpertise);
preparedStatement.setString(11, elaborated_expertise);
preparedStatement.setString(12, degreeOfParticipation);
preparedStatement.setBoolean(13, true); //data_management
preparedStatement.setBoolean(14, false); //processed_form
preparedStatement.setBoolean(15, false); //user_accepted
// execute insert SQL stetement
preparedStatement .executeUpdate();
_log.info("Inserting in DB done, sending confirmation to user and notification to managers via email");
String copySubmitted = new StringBuffer("\n\n\nCOPY OF INFORMATION SUBMITTED\n\n")
.append("\n").append("Name: ")
.append(name).append(" ").append(surname)
.append("\n").append("Organisation: ")
.append(organisation)
.append("\n").append("Organisation type: ")
.append(organisationType)
.append("\n").append("emailAddress: ")
.append("*** hidden on purpose ***")
.append("\n").append("Country: ")
.append(country)
.append("\n\n").append("Have you participated in the activities of any of our MOVING Regional Multi-Actors Platforms? ")
.append(participatedInActivities)
.append("\n\n").append("What is your main motivation for joining the EU MAP of MOVING? ")
.append(mainMotivation)
.append("\n\n").append("Please elaborate on your motivation expressed above so that we understand better your interest, and form a dynamic and relevant community. Vague explanations of the motivation might not be taken into consideration. ")
.append("\n\n").append(textareaMotivation).append("\n")
.append("\n\n").append("What is your main area of expertise in relation to mountain sustainability and resilience? (Multiple choice): ")
.append(areaOfExpertise)
.append("\n\n").append("Please elaborate on the relevant experience you can bring to mountain value chains and the resilience of these areas, so that we have more detailed information to be able to form a dynamic and relevant community: ")
.append("\n\n").append(elaborated_expertise)
.append("\n\n").append("As a starting point, the degree of participation you commit to is: ")
.append(degreeOfParticipation)
.append("\n").append("\n").append("Data Management: ")
.append("Agreed")
.append("\n\nEND COPY OF INFORMATION SUBMITTED\n\n").toString();
Properties props = System.getProperties();
Session session = null;
props.put("mail.smtp.host", mailServiceHost);
props.put("mail.smtp.port", mailServicePort);
//use localhost (probaly postfix instance)
session = Session.getDefaultInstance(props);
sendEmailConfirmationToUser(props, session, emailAddress, copySubmitted);
String groupIdVREforManagers = GetterUtil.getString(actionRequest.getPreferences().getValue("VREGroupId", StringPool.BLANK));
if (groupIdVREforManagers != null && groupIdVREforManagers.compareTo("") != 0) {
HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(actionRequest);
sendEmailNotificationToVREManagers(httpRequest, props, session, groupIdVREforManagers, copySubmitted);
}
else {
_log.warn("WARNING, non config found for groupId, no email will be send to VRE Managers");
}
// String insertTableSQL = "INSERT INTO forms(name, surname, organisation, organisation_type, email, "
// + "country, activities_participation, main_motivation, elaborated_motivation, area_of_expertise, "
// + "elaborated_expertise, degree_of_participation, data_management, datecreated, processed_form, user_accepted) "
// + "VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,current_timestamp,?,?)";
//
// PreparedStatement preparedStatement = conn.prepareStatement(insertTableSQL);
// preparedStatement.setString(1, name);
// preparedStatement.setString(2, surname);
// preparedStatement.setString(3, organisation);
// preparedStatement.setString(4, organisationType);
// preparedStatement.setString(5, emailAddress);
// preparedStatement.setString(6, country);
// preparedStatement.setBoolean(7, participatedInActivities);
// preparedStatement.setString(8, mainMotivation);
// preparedStatement.setString(9, textareaMotivation);
// preparedStatement.setString(10, areaOfExpertise);
// preparedStatement.setString(11, elaborated_expertise);
// preparedStatement.setString(12, degree_of_participation);
// preparedStatement.setBoolean(13, true); //data_management
// preparedStatement.setBoolean(14, false); //processed_form
// preparedStatement.setBoolean(15, false); //user_accepted
// // execute insert SQL stetement
// preparedStatement .executeUpdate();
// _log.info("Inserting in DB done, sending confirmation to user and notification to managers via email");
//
// String copySubmitted = new StringBuffer("\n\n\nCOPY OF INFORMATION SUBMITTED\n\n")
// .append("\n").append("Name: ")
// .append(name).append(" ").append(surname)
// .append("\n").append("Organisation: ")
// .append(organisation)
// .append("\n").append("Organisation type: ")
// .append(organisationType)
// .append("\n").append("emailAddress: ")
// .append("*** hidden on purpose ***")
// .append("\n").append("Country: ")
// .append(country)
// .append("\n\n").append("Have you participated in the activities of any of our MOVING Regional Multi-Actors Platforms? ")
// .append(participatedInActivities)
// .append("\n\n").append("What is your main motivation for joining the EU MAP of MOVING? ")
// .append(mainMotivation)
// .append("\n\n").append("Please elaborate on your motivation expressed above so that we understand better your interest, and form a dynamic and relevant community. Vague explanations of the motivation might not be taken into consideration. ")
// .append("\n\n").append(textareaMotivation).append("\n")
// .append("\n\n").append("What is your main area of expertise in relation to mountain sustainability and resilience? (Multiple choice): ")
// .append(areaOfExpertise)
// .append("\n\n").append("Please elaborate on the relevant experience you can bring to mountain value chains and the resilience of these areas, so that we have more detailed information to be able to form a dynamic and relevant community: ")
// .append("\n\n").append(elaborated_expertise)
// .append("\n\n").append("As a starting point, the degree of participation you commit to is: ")
// .append(degree_of_participation)
// .append("\n").append("\n").append("Data Management: ")
// .append("Agreed")
// .append("\n\nEND COPY OF INFORMATION SUBMITTED\n\n").toString();
//
//
// Properties props = System.getProperties();
// Session session = null;
// props.put("mail.smtp.host", mailServiceHost);
// props.put("mail.smtp.port", mailServicePort);
// //use localhost (probaly postfix instance)
// session = Session.getDefaultInstance(props);
//
// sendEmailConfirmationToUser(props, session, emailAddress, copySubmitted);
//
// String groupIdVREforManagers = GetterUtil.getString(actionRequest.getPreferences().getValue("VREGroupId", StringPool.BLANK));
// if (groupIdVREforManagers != null && groupIdVREforManagers.compareTo("") != 0) {
// HttpServletRequest httpRequest = PortalUtil.getHttpServletRequest(actionRequest);
// sendEmailNotificationToVREManagers(httpRequest, props, session, groupIdVREforManagers, copySubmitted);
// }
// else {
// _log.warn("WARNING, non config found for groupId, no email will be send to VRE Managers");
// }
} catch (Exception e) { } catch (Exception e) {
_log.error("Some error while trying to insert form"); _log.error("Some error while trying to insert form");
e.printStackTrace(); e.printStackTrace();
@ -252,14 +249,14 @@ public class CompileForm extends MVCPortlet {
Message message = new MimeMessage(session); Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(MAIL_FROM)); message.setFrom(new InternetAddress(MAIL_FROM));
message.setRecipients( message.setRecipients(
Message.RecipientType.TO, InternetAddress.parse(emailadress)); Message.RecipientType.TO, InternetAddress.parse(emailadress));
message.setSubject(MAIL_SUBJECT); message.setSubject(MAIL_SUBJECT);
message.setText(MAIL_BODY+copySubmitted); message.setText(MAIL_BODY+copySubmitted);
// Send message // Send message
Transport.send(message); Transport.send(message);
_log.info("Sending confirmation email done"); _log.info("Sending confirmation email done");
} }
/** /**
* *
* @param props * @param props
@ -271,7 +268,7 @@ public class CompileForm extends MVCPortlet {
* @throws PortalException * @throws PortalException
*/ */
private void sendEmailNotificationToVREManagers(HttpServletRequest httprequest , Properties props, Session session, String groupIdString, String copySubmitted) throws AddressException, MessagingException, PortalException, SystemException { private void sendEmailNotificationToVREManagers(HttpServletRequest httprequest , Properties props, Session session, String groupIdString, String copySubmitted) throws AddressException, MessagingException, PortalException, SystemException {
_log.info("Sending notification email to VRE-Managers"); _log.info("Sending notification email to VRE-Managers");
long groupId = Long.parseLong(groupIdString); long groupId = Long.parseLong(groupIdString);
List<String> vreManagersEmails = getAdministratorsEmails(groupId); List<String> vreManagersEmails = getAdministratorsEmails(groupId);
for (String emailadress : vreManagersEmails) { for (String emailadress : vreManagersEmails) {
@ -279,7 +276,7 @@ public class CompileForm extends MVCPortlet {
Message message = new MimeMessage(session); Message message = new MimeMessage(session);
message.setFrom(new InternetAddress(MAIL_FROM)); message.setFrom(new InternetAddress(MAIL_FROM));
message.setRecipients( message.setRecipients(
Message.RecipientType.TO, InternetAddress.parse(emailadress)); Message.RecipientType.TO, InternetAddress.parse(emailadress));
message.setSubject(MAIL_SUBJECT_VRE_MANAGER); message.setSubject(MAIL_SUBJECT_VRE_MANAGER);
String vreName = GroupLocalServiceUtil.getGroup(groupId).getName(); String vreName = GroupLocalServiceUtil.getGroup(groupId).getName();
String gatewayURL = PortalContext.getConfiguration().getGatewayURL(httprequest); String gatewayURL = PortalContext.getConfiguration().getGatewayURL(httprequest);
@ -287,11 +284,11 @@ public class CompileForm extends MVCPortlet {
.append(GCubePortalConstants.PREFIX_GROUP_URL) .append(GCubePortalConstants.PREFIX_GROUP_URL)
.append("/").append(vreName.toLowerCase()) .append("/").append(vreName.toLowerCase())
.append(MANAGE_USERS_REQUESTS_FRIENDLY_URL).toString(); .append(MANAGE_USERS_REQUESTS_FRIENDLY_URL).toString();
message.setText(MAIL_BODY_VRE_MANAGER+manageRequestURL+copySubmitted); message.setText(MAIL_BODY_VRE_MANAGER+manageRequestURL+copySubmitted);
// Send message // Send message
Transport.send(message); Transport.send(message);
_log.info("Sending notification email to VRE-Managers done"); _log.info("Sending notification email to VRE-Managers done");
} }
} }
/** /**
@ -323,7 +320,7 @@ public class CompileForm extends MVCPortlet {
return adminEmailsList; return adminEmailsList;
} }
private static List<String> getOrganisationTypes(Connection conn) throws Exception { private static List<String> getOrganisationTypes(Connection conn) throws Exception {
_log.debug("getting organisation_types "); _log.debug("getting organisation_types ");
List<String> toReturn = new ArrayList<>(); List<String> toReturn = new ArrayList<>();

View File

@ -16,7 +16,7 @@
} }
#wrapper label { #wrapper label {
display: inline-block; display: block;
max-width: 100%; max-width: 100%;
margin-bottom: 5px; margin-bottom: 5px;
margin-top: 15px; margin-top: 15px;
@ -27,9 +27,10 @@
font-family: "Open Sans", Arial, sans-serif !important; font-family: "Open Sans", Arial, sans-serif !important;
} }
#wrapper label.checkbox { #wrapper label.checkbox, #wrapper label.radio {
margin-bottom: 0; margin-bottom: 0;
margin-top: 5px; margin-top: 5px;
margin-left: 20px;
display: block; display: block;
} }
.form-display { .form-display {

View File

@ -13,7 +13,7 @@ pageContext.setAttribute("main_motivations", main_motivations);
pageContext.setAttribute("areas_of_expertise", areas_of_expertise); pageContext.setAttribute("areas_of_expertise", areas_of_expertise);
pageContext.setAttribute("degrees_of_participation", degrees_of_participation); pageContext.setAttribute("degrees_of_participation", degrees_of_participation);
pageContext.setAttribute("required", "false"); pageContext.setAttribute("required", "true");
%> %>
<portlet:defineObjects /> <portlet:defineObjects />
<script src="https://www.google.com/recaptcha/api.js" async defer></script> <script src="https://www.google.com/recaptcha/api.js" async defer></script>
@ -32,11 +32,11 @@ pageContext.setAttribute("required", "false");
<aui:input label="Surname" name="surname" type="text" <aui:input label="Surname" name="surname" type="text"
required="${required}" style="width:300px;" /> required="${required}" style="width:300px;" />
<aui:input label="Organisation" name="organisation" type="text" <aui:input label="Organisation" name="organisation" type="text"
required="${required}" style="width:300px;" /> required="false" style="width:300px;" />
<!-- <!--
SELECT SELECT
--> -->
<aui:select label="Type of Organisation / Stakeholder" <aui:select label="Type of Organisation/Stakeholder "
name="organisationType" required="${required}" showEmptyOption="true" name="organisationType" required="${required}" showEmptyOption="true"
style="width:800px;"> style="width:800px;">
<c:forEach var="type" items="${organisation_types}"> <c:forEach var="type" items="${organisation_types}">
@ -51,27 +51,32 @@ pageContext.setAttribute("required", "false");
required="${required}" style="width:300px;" /> required="${required}" style="width:300px;" />
</aui:fieldset> </aui:fieldset>
<aui:fieldset> <aui:fieldset>
<aui:input id="participatedInActivities " type="checkbox"
name="participatedInActivities"
label=" Have you participated in the activities of any of our MOVING Regional Multi-Actors Platforms?"
required="${required}" />
<aui:field-wrapper name="participatedInActivitiesWrapper"
label=" Have you participated in the activities of any of our MOVING Regional Multi-Actors Platforms? (Required)">
<div class="control-group input-text-wrapper">
<aui:input label="Yes" name="participatedInActivities" type="radio"
value="true" />
<aui:input label="No" name="participatedInActivities" type="radio"
value="false" checked="true" />
</div>
</aui:field-wrapper>
<div class="control-group input-text-wrapper"> <div class="control-group input-text-wrapper">
<aui:field-wrapper name="mainMotivation" <aui:field-wrapper name="mainMotivation"
label="What is your main motivation for joining the EU MAP of MOVING? (Required)"> label="What is your main motivation for joining the EU MAP of MOVING? (Required)">
<!-- the first is needed as placeholder otherwise the validator does not work, make sure you take into account in the server part --> <!-- the first is needed as placeholder otherwise the validator does not work, make sure you take into account in the server part -->
<aui:input id="mainMotivation" type="checkbox" <aui:input id="mainMotivation" type="checkbox" name="mainMotivation"
name="mainMotivation" cssClass="first-checkbox-hidden" label=""/> cssClass="first-checkbox-hidden" label="" />
<c:forEach var="type" items="${main_motivations}"> <c:forEach var="type" items="${main_motivations}">
<aui:input id="mainMotivation" type="checkbox" <aui:input id="mainMotivation" type="checkbox"
name="mainMotivation" label="${type}"/> name="mainMotivation" label="${type}" />
</c:forEach> </c:forEach>
</aui:field-wrapper> </aui:field-wrapper>
</div> </div>
<aui:spacer></aui:spacer> <aui:spacer></aui:spacer>
<aui:input <aui:input
label="Please elaborate on your motivation expressed above so that we understand better your interest, and form a dynamic and relevant community. Vague explanations of the motivation might not be taken into consideration." label="Please elaborate on your motivation expressed above so that we understand better your interest, and form a dynamic and relevant community. Vague explanations of the motivation might not be taken into consideration."
name="textareaMotivation" type="textarea" style="width:800px;" name="textareaMotivation" type="textarea" style="width:800px;"
@ -87,10 +92,12 @@ pageContext.setAttribute("required", "false");
mountain sustainability and resilience? (Required)"> mountain sustainability and resilience? (Required)">
<!-- the first is needed as placeholder otherwise the validator does not work, make sure you take into account in the server part --> <!-- the first is needed as placeholder otherwise the validator does not work, make sure you take into account in the server part -->
<aui:input id="areaOfExpertiseSelect" type="checkbox" <aui:input id="areaOfExpertiseSelect" type="checkbox"
name="areaOfExpertiseSelect" cssClass="first-checkbox-hidden" label=""/> name="areaOfExpertiseSelect" cssClass="first-checkbox-hidden"
label="" />
<c:forEach var="type" items="${areas_of_expertise}"> <c:forEach var="type" items="${areas_of_expertise}">
<aui:input id="areaOfExpertiseSelect" type="checkbox" <aui:input id="areaOfExpertiseSelect" type="checkbox"
name="areaOfExpertiseSelect" label="${type}" showRequiredLabel="false"/> name="areaOfExpertiseSelect" label="${type}"
showRequiredLabel="false" />
</c:forEach> </c:forEach>
</aui:field-wrapper> </aui:field-wrapper>
</div> </div>
@ -105,8 +112,8 @@ pageContext.setAttribute("required", "false");
<aui:field-wrapper name="commitment" <aui:field-wrapper name="commitment"
label="As a starting point, the degree of participation you commit to is: (Required)"> label="As a starting point, the degree of participation you commit to is: (Required)">
<!-- the first is needed as placeholder otherwise the validator does not work, make sure you take into account in the server part --> <!-- the first is needed as placeholder otherwise the validator does not work, make sure you take into account in the server part -->
<aui:input id="commitment" type="checkbox" <aui:input id="commitment" type="checkbox" name="commitment"
name="commitment" cssClass="first-checkbox-hidden" label=""/> cssClass="first-checkbox-hidden" label="" />
<c:forEach var="type" items="${degrees_of_participation}"> <c:forEach var="type" items="${degrees_of_participation}">
<aui:input id="commitment" type="checkbox" name="commitment" <aui:input id="commitment" type="checkbox" name="commitment"
label="${type}" /> label="${type}" />
@ -114,7 +121,7 @@ pageContext.setAttribute("required", "false");
</aui:field-wrapper> </aui:field-wrapper>
</div> </div>
<aui:spacer></aui:spacer> <div style="margin-top: 20px;">&nbsp;</div>
<p class="lead">Data Management</p> <p class="lead">Data Management</p>
<p> <p>
MOVING is responsible for the processing of the personal data MOVING is responsible for the processing of the personal data
@ -133,9 +140,9 @@ pageContext.setAttribute("required", "false");
Submit Button Submit Button
--> -->
<div style="width: 100%; text-align: center;"> <div style="width: 100%; text-align: center;">
<!-- <div class="g-recaptcha" --> <div class="g-recaptcha"
<!-- data-sitekey="6Ld0hfYZAAAAAKlIHde1v3QE4NyY4AniN6j-U9SP"></div> --> data-sitekey="6Ld0hfYZAAAAAKlIHde1v3QE4NyY4AniN6j-U9SP"></div>
<!-- <br /> --> <br />
<aui:button-row> <aui:button-row>
<aui:button value="Submit your application" type="submit" <aui:button value="Submit your application" type="submit"
cssClass="btn-large btn-fill" /> cssClass="btn-large btn-fill" />
@ -145,6 +152,25 @@ pageContext.setAttribute("required", "false");
</aui:form> </aui:form>
<!-- Validate the captcha -->
<script type="text/javascript">
AUI().use('aui-tooltip', 'aui-base', 'selector-css3', function(A) {
var form = A.one('#<portlet:namespace />fm');
if (form) {
form.on('submit', function(event) {
if (grecaptcha.getResponse() === '') {
event.halt();
event.stopImmediatePropagation();
alert('Please prove you are not a robot');
}
});
}
});
</script>
<!-- Validate the checkboxes, the number of min oprtions is configurable -->
<aui:script> <aui:script>
AUI().use('aui-form-validator', 'aui-overlay-context-panel', function(A) { AUI().use('aui-form-validator', 'aui-overlay-context-panel', function(A) {