From 6c1ef5e5813a95ad3727f2419076901b4e35b97d Mon Sep 17 00:00:00 2001 From: Massimiliano Assante Date: Thu, 4 Nov 2021 17:57:17 +0100 Subject: [PATCH] missing only the creation of user --- .../portlets/user/moving/CompileForm.java | 4 +- .../portlets/user/moving/FilledForm.java | 189 +++++++++++++ .../portlets/user/moving/ManageForms.java | 250 ++++++++++++++++++ src/main/webapp/WEB-INF/liferay-display.xml | 1 + src/main/webapp/WEB-INF/liferay-portlet.xml | 10 + src/main/webapp/WEB-INF/portlet.xml | 51 +++- src/main/webapp/css/main.css | 40 +-- src/main/webapp/css/table.css | 42 +++ .../webapp/html/form-compile/form-map.jsp | 2 - src/main/webapp/html/init.jsp | 3 + .../webapp/html/manageforms/manage-forms.jsp | 83 ++++++ .../html/manageforms/show_all_answers.jsp | 39 +++ 12 files changed, 687 insertions(+), 27 deletions(-) create mode 100644 src/main/java/org/gcube/portlets/user/moving/FilledForm.java create mode 100644 src/main/java/org/gcube/portlets/user/moving/ManageForms.java create mode 100644 src/main/webapp/css/table.css create mode 100644 src/main/webapp/html/manageforms/manage-forms.jsp create mode 100644 src/main/webapp/html/manageforms/show_all_answers.jsp diff --git a/src/main/java/org/gcube/portlets/user/moving/CompileForm.java b/src/main/java/org/gcube/portlets/user/moving/CompileForm.java index a895381..79b0dd7 100644 --- a/src/main/java/org/gcube/portlets/user/moving/CompileForm.java +++ b/src/main/java/org/gcube/portlets/user/moving/CompileForm.java @@ -47,7 +47,7 @@ public class CompileForm extends MVCPortlet { 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 MAIL_FROM = "MOVING Gateway "; + protected static final String MAIL_FROM = "MOVING Gateway "; private static final String MAIL_SUBJECT = "MOVING EU Multi-Actor Platform: email confirmation"; private static final String MAIL_SUBJECT_VRE_MANAGER = "MOVING EU Multi-Actor Platform: new form submission notification"; private static final String MAIL_BODY = "Dear Sir/Madam,\n" @@ -63,6 +63,8 @@ public class CompileForm extends MVCPortlet { private String mailServiceHost = "localhost"; private String mailServicePort = "25"; + + @Override public void render(RenderRequest renderRequest, RenderResponse renderResponse) { Connection conn = null; diff --git a/src/main/java/org/gcube/portlets/user/moving/FilledForm.java b/src/main/java/org/gcube/portlets/user/moving/FilledForm.java new file mode 100644 index 0000000..f025920 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/moving/FilledForm.java @@ -0,0 +1,189 @@ +package org.gcube.portlets.user.moving; + +import java.io.Serializable; + +@SuppressWarnings("serial") +public class FilledForm implements Serializable { + + private long id; + private String name; + private String surname; + private String organisation; + private String organisationTyp; + private String emailAddress; + private String areaOfExpertise; + private String country; + private boolean participatedInActivities; + private String mainMotivation; + private String textareaMotivation; + private String elaborated_expertise; + private String degree_of_participation; + private boolean data_management; + private boolean processed_form; + private boolean user_accepted; + + public FilledForm(long id, String name, String surname, String organisation, String organisationTyp, String emailAddress, + String areaOfExpertise, String country, boolean participatedInActivities, String mainMotivation, + String textareaMotivation, String elaborated_expertise, String degree_of_participation, + boolean data_management, boolean processed_form, boolean user_accepted) { + super(); + this.id = id; + this.name = name; + this.surname = surname; + this.organisation = organisation; + this.organisationTyp = organisationTyp; + this.emailAddress = emailAddress; + this.areaOfExpertise = areaOfExpertise; + this.country = country; + this.participatedInActivities = participatedInActivities; + this.mainMotivation = mainMotivation; + this.textareaMotivation = textareaMotivation; + this.elaborated_expertise = elaborated_expertise; + this.degree_of_participation = degree_of_participation; + this.data_management = data_management; + this.processed_form = processed_form; + this.user_accepted = user_accepted; + } + + public long getId() { + return id; + } + + public void setId(long id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getSurname() { + return surname; + } + + public void setSurname(String surname) { + this.surname = surname; + } + + public String getOrganisation() { + return organisation; + } + + public void setOrganisation(String organisation) { + this.organisation = organisation; + } + + public String getOrganisationTyp() { + return organisationTyp; + } + + public void setOrganisationTyp(String organisationTyp) { + this.organisationTyp = organisationTyp; + } + + public String getEmailAddress() { + return emailAddress; + } + + public void setEmailAddress(String emailAddress) { + this.emailAddress = emailAddress; + } + + public String getAreaOfExpertise() { + return areaOfExpertise; + } + + public void setAreaOfExpertise(String areaOfExpertise) { + this.areaOfExpertise = areaOfExpertise; + } + + public String getCountry() { + return country; + } + + public void setCountry(String country) { + this.country = country; + } + + public boolean isParticipatedInActivities() { + return participatedInActivities; + } + + public void setParticipatedInActivities(boolean participatedInActivities) { + this.participatedInActivities = participatedInActivities; + } + + public String getMainMotivation() { + return mainMotivation; + } + + public void setMainMotivation(String mainMotivation) { + this.mainMotivation = mainMotivation; + } + + public String getTextareaMotivation() { + return textareaMotivation; + } + + public void setTextareaMotivation(String textareaMotivation) { + this.textareaMotivation = textareaMotivation; + } + + public String getElaborated_expertise() { + return elaborated_expertise; + } + + public void setElaborated_expertise(String elaborated_expertise) { + this.elaborated_expertise = elaborated_expertise; + } + + public String getDegree_of_participation() { + return degree_of_participation; + } + + public void setDegree_of_participation(String degree_of_participation) { + this.degree_of_participation = degree_of_participation; + } + + public boolean isData_management() { + return data_management; + } + + public void setData_management(boolean data_management) { + this.data_management = data_management; + } + + public boolean isProcessed_form() { + return processed_form; + } + + public void setProcessed_form(boolean processed_form) { + this.processed_form = processed_form; + } + + public boolean isUser_accepted() { + return user_accepted; + } + + public void setUser_accepted(boolean user_accepted) { + this.user_accepted = user_accepted; + } + + @Override + public String toString() { + return "FilledForm [name=" + name + ", surname=" + surname + ", organisation=" + organisation + + ", organisationTyp=" + organisationTyp + ", emailAddress=" + emailAddress + ", areaOfExpertise=" + + areaOfExpertise + ", country=" + country + ", participatedInActivities=" + participatedInActivities + + ", mainMotivation=" + mainMotivation + ", textareaMotivation=" + textareaMotivation + + ", elaborated_expertise=" + elaborated_expertise + ", degree_of_participation=" + + degree_of_participation + ", data_management=" + data_management + ", processed_form=" + + processed_form + ", user_accepted=" + user_accepted + "]"; + } + + + +} diff --git a/src/main/java/org/gcube/portlets/user/moving/ManageForms.java b/src/main/java/org/gcube/portlets/user/moving/ManageForms.java new file mode 100644 index 0000000..85f6185 --- /dev/null +++ b/src/main/java/org/gcube/portlets/user/moving/ManageForms.java @@ -0,0 +1,250 @@ +package org.gcube.portlets.user.moving; + +import java.io.IOException; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; +import java.util.Properties; + +import javax.mail.Message; +import javax.mail.Session; +import javax.mail.Transport; +import javax.mail.internet.InternetAddress; +import javax.mail.internet.MimeMessage; +import javax.portlet.ActionRequest; +import javax.portlet.ActionResponse; +import javax.portlet.PortletException; +import javax.portlet.RenderRequest; +import javax.portlet.RenderResponse; +import javax.portlet.WindowState; + +import org.gcube.common.portal.PortalContext; + +import com.liferay.portal.kernel.log.LogFactoryUtil; +import com.liferay.portal.kernel.util.ParamUtil; +import com.liferay.util.bridges.mvc.MVCPortlet; + +/** + * Portlet implementation class ManageForms + */ +public class ManageForms extends MVCPortlet { + private static com.liferay.portal.kernel.log.Log _log = LogFactoryUtil.getLog(ManageForms.class); + private String mailServiceHost = "localhost"; + private String mailServicePort = "25"; + + private static final String MAIL_SUBJECT = "MOVING EU Multi-Actor Platform: Expression of Interest application feedback"; + + private static final String MAIL_BODY_REJECT = "Dear Sir/Madam,\n" + + "\n" + + "After a careful review and consideration of your expression of interest to join the MOVING EU-level Multi-Actor Platform (MAP), we regret to inform you that your request has not been granted. \n" + + "\n" + + "The MOVING EU MAP aims to form a dynamic and relevant community, ensuring a balanced representation of actors at different levels and covering a diversity of topics and knowledge relevant to the core objective of the project.\n" + + "\n" + + "If you would like to keep up to date with MOVING, please subscribe to our newsletter (https://mailchi.mp/4f25e203112c/movingnewsletter) or follow us online.\n" + + "\n" + + "Thank you for your interest.\n" + + "\n" + + "Best regards,\n" + + "MOVING team\n" + + ""; + + private static final String MAIL_BODY_ACCEPT = "Dear Sir/Madam,\n" + + "\n" + + "After a careful review and consideration of your expression of interest to join the MOVING EU-level Multi-Actor Platform (MAP), we are happy to inform you that your request has been accepted.\n" + + "\n" + + "You will soon receive an email with link to access the EU MAP set up on the Virtual Research Environment (VRE). \n" + + "\n" + + "Best regards,\n" + + "MOVING team\n"; + + @Override + public void render(RenderRequest renderRequest, RenderResponse renderResponse) { + Connection conn = null; + try { + conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection(); + _log.info("Trying getting FORMS from DB"); + List filledForms = getNonProcessedForms(conn); + _log.info("Succesfully got Non Processed Form from DB, forms found: " +filledForms.size()); + renderRequest.setAttribute("filledForms", filledForms); + super.render(renderRequest, renderResponse); + } catch (Exception e) { + _log.error("Something wrong with Databaseconnection or with getting FORMS from DB", e); + } + } + + + public void acceptApplication(ActionRequest request, ActionResponse actionResponse) throws IOException, PortletException { + _log.info("accepting form"); + String formId = ParamUtil.getString(request, "applicationItem"); + Connection conn = null; + try { + conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection(); + FilledForm filledForm = getFormById(conn, formId); + _log.info("filledForm exists Trying UPDATE FORM ON DB"); + boolean user_accepted = true; + setFormProcessedAndStateById(conn, formId, user_accepted); + _log.info("UPDATED FORM ON DB to Accepted, formId="+formId); + + _log.info("Sending email to user"); + 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); + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress(CompileForm.MAIL_FROM)); + message.setRecipients( + Message.RecipientType.TO, InternetAddress.parse(filledForm.getEmailAddress())); + message.setSubject(MAIL_SUBJECT); + message.setText(MAIL_BODY_ACCEPT); + // Send message + Transport.send(message); + _log.info("Sending confirmation email done"); + + } catch (Exception e) { + _log.error("Something wrong with Databaseconnection or with getting FORMS from DB", e); + } + } + + + public void rejectApplication(ActionRequest request, ActionResponse actionResponse) throws IOException, PortletException { + _log.info("rejecting form"); + String formId = ParamUtil.getString(request, "applicationItem"); + Connection conn = null; + try { + conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection(); + FilledForm filledForm = getFormById(conn, formId); + _log.info("filledForm exists Trying UPDATE FORM ON DB"); + boolean user_accepted = false; + setFormProcessedAndStateById(conn, formId, user_accepted); + _log.info("UPDATED FORM ON DB to Rejected, formId="+formId); + + _log.info("Sending email to user"); + 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); + Message message = new MimeMessage(session); + message.setFrom(new InternetAddress(CompileForm.MAIL_FROM)); + message.setRecipients( + Message.RecipientType.TO, InternetAddress.parse(filledForm.getEmailAddress())); + message.setSubject(MAIL_SUBJECT); + message.setText(MAIL_BODY_REJECT); + // Send message + Transport.send(message); + _log.info("Sending confirmation email done"); + + } catch (Exception e) { + _log.error("Something wrong with Databaseconnection or with getting FORMS from DB", e); + } + } + + public void showAnswers(ActionRequest request, ActionResponse response) throws Exception { + String formId = ParamUtil.getString(request, "applicationItem"); + Connection conn = null; + try { + conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection(); + _log.info("Trying getting FORMS from DB"); + FilledForm filledForm = getFormById(conn, formId); + request.setAttribute("filledForm", filledForm); + response.setWindowState(WindowState.MAXIMIZED); + response.setRenderParameter("jspPage", "/html/manageforms/show_all_answers.jsp"); + } catch (Exception e) { + _log.error("Something wrong with Databaseconnection or with getting FORMS from DB", e); + } + + } + + private static List getNonProcessedForms(Connection conn) throws Exception { + _log.debug("getting forms from DB "); + List toReturn = new ArrayList<>(); + String selectSQL = "SELECT * FROM forms WHERE processed_form = false"; + PreparedStatement preparedStatement = conn.prepareStatement(selectSQL); + ResultSet rs = preparedStatement.executeQuery(); + while (rs.next()) { + long id = rs.getLong("id"); + String name= rs.getString("name"); + String surname= rs.getString("surname"); + String organisation= rs.getString("organisation"); + String organisationType = rs.getString("organisation_type"); + String emailAddress = rs.getString("email"); + String areaOfExpertise = rs.getString("area_of_expertise"); + String country= rs.getString("country"); + boolean participatedInActivities = rs.getBoolean("activities_participation"); + String mainMotivation= rs.getString("main_motivation"); + String textareaMotivation = rs.getString("elaborated_motivation"); + String elaborated_expertise = rs.getString("elaborated_expertise"); + String degree_of_participation = rs.getString("degree_of_participation"); + boolean data_management = rs.getBoolean("data_management"); + boolean processed_form = rs.getBoolean("processed_form"); + boolean form_accepted = rs.getBoolean("user_accepted"); + FilledForm toAdd = new FilledForm(id, name, surname, organisation, organisationType, emailAddress, + areaOfExpertise, country, participatedInActivities, mainMotivation, textareaMotivation, + elaborated_expertise, degree_of_participation, data_management, processed_form, form_accepted); + _log.info("Adding non processed form" + toAdd); + toReturn.add(toAdd); + } + return toReturn; + } + + + private boolean setFormProcessedAndStateById(Connection conn, String formId, boolean user_accepted) { + try { + _log.debug("setFormProcessedAndStateById"); + String selectSQL = "UPDATE forms SET processed_form = ?, user_accepted = ? WHERE id = ? "; + PreparedStatement preparedStatement = conn.prepareStatement(selectSQL); + long idToLookFor = Long.parseLong(formId); + preparedStatement.setBoolean(1, true); + preparedStatement.setBoolean(2, user_accepted); + preparedStatement.setLong(3, idToLookFor); + int result = preparedStatement.executeUpdate(); + if (result == 1) + return true; + return false; + } catch (SQLException e) { + e.printStackTrace(); + return false; + } + } + + + + private static FilledForm getFormById(Connection conn, String formId) throws Exception { + _log.debug("getting form by id from DB "); + String selectSQL = "SELECT * FROM forms WHERE id = ? "; + PreparedStatement preparedStatement = conn.prepareStatement(selectSQL); + long idToLookFor = Long.parseLong(formId); + preparedStatement.setLong(1, idToLookFor); + ResultSet rs = preparedStatement.executeQuery(); + while (rs.next()) { + long id = rs.getLong("id"); + String name= rs.getString("name"); + String surname= rs.getString("surname"); + String organisation= rs.getString("organisation"); + String organisationType = rs.getString("organisation_type"); + String emailAddress = rs.getString("email"); + String areaOfExpertise = rs.getString("area_of_expertise"); + String country= rs.getString("country"); + boolean participatedInActivities = rs.getBoolean("activities_participation"); + String mainMotivation= rs.getString("main_motivation"); + String textareaMotivation = rs.getString("elaborated_motivation"); + String elaborated_expertise = rs.getString("elaborated_expertise"); + String degree_of_participation = rs.getString("degree_of_participation"); + boolean data_management = rs.getBoolean("data_management"); + boolean processed_form = rs.getBoolean("processed_form"); + boolean form_accepted = rs.getBoolean("user_accepted"); + FilledForm toAdd = new FilledForm(id, name, surname, organisation, organisationType, emailAddress, + areaOfExpertise, country, participatedInActivities, mainMotivation, textareaMotivation, + elaborated_expertise, degree_of_participation, data_management, processed_form, form_accepted); + _log.info("Adding non processed form" + toAdd); + return toAdd; + } + return null; + } +} diff --git a/src/main/webapp/WEB-INF/liferay-display.xml b/src/main/webapp/WEB-INF/liferay-display.xml index d97fd82..df0f7f3 100644 --- a/src/main/webapp/WEB-INF/liferay-display.xml +++ b/src/main/webapp/WEB-INF/liferay-display.xml @@ -5,5 +5,6 @@ + \ No newline at end of file diff --git a/src/main/webapp/WEB-INF/liferay-portlet.xml b/src/main/webapp/WEB-INF/liferay-portlet.xml index b998216..fc4de2d 100644 --- a/src/main/webapp/WEB-INF/liferay-portlet.xml +++ b/src/main/webapp/WEB-INF/liferay-portlet.xml @@ -13,6 +13,16 @@ form-compile-portlet + + manage-forms + /icon.png + false + /css/table.css + + /js/main.js + + manage-forms-portlet + administrator Administrator diff --git a/src/main/webapp/WEB-INF/portlet.xml b/src/main/webapp/WEB-INF/portlet.xml index 861767b..fb85468 100644 --- a/src/main/webapp/WEB-INF/portlet.xml +++ b/src/main/webapp/WEB-INF/portlet.xml @@ -1,20 +1,22 @@ - - + + moving-form-compile Moving Form Compile - - org.gcube.portlets.user.moving.CompileForm - + org.gcube.portlets.user.moving.CompileForm view-jsp /html/form-compile/form-map.jsp - config-template - /html/form-compile/config.jsp + config-template + /html/form-compile/config.jsp 0 @@ -39,4 +41,39 @@ user + + manage-forms + Manage Forms + org.gcube.portlets.user.moving.ManageForms + + view-template + /html/manageforms/manage-forms.jsp + + + add-process-action-success-action + false + + 0 + + text/html + view + + + Manage Forms + Manage Forms + + + + administrator + + + guest + + + power-user + + + user + + \ No newline at end of file diff --git a/src/main/webapp/css/main.css b/src/main/webapp/css/main.css index d945fe2..d9419af 100644 --- a/src/main/webapp/css/main.css +++ b/src/main/webapp/css/main.css @@ -1,26 +1,32 @@ #wrapper input[type=text] { - height: 25px; + height: 25px; } #wrapper .form-inline .checkbox input[type=checkbox] { - margin-right: 10px; - height: 18px; - } - - -#wrapper label { - min-width: 200px; + margin-right: 10px; + height: 18px; } #wrapper label { - display: inline-block; - max-width: 100%; - margin-bottom: 5px; - margin-top: 15px; - font-weight: 400 !important; - min-width: 220px; - font-size: 16px; - line-height: 1.5; - font-family: "Open Sans", Arial, sans-serif !important; + min-width: 200px; } +#wrapper label { + display: inline-block; + max-width: 100%; + margin-bottom: 5px; + margin-top: 15px; + font-weight: 400 !important; + min-width: 220px; + font-size: 16px; + line-height: 1.5; + font-family: "Open Sans", Arial, sans-serif !important; +} + +.form-display { + margin: 10px 100px; + border: 1px solid #CCC; + font-size: 16px; + line-height: 1.5; + font-family: "Open Sans", Arial, sans-serif !important; +} \ No newline at end of file diff --git a/src/main/webapp/css/table.css b/src/main/webapp/css/table.css new file mode 100644 index 0000000..ceb91e5 --- /dev/null +++ b/src/main/webapp/css/table.css @@ -0,0 +1,42 @@ +table.paleBlueRows { + font-family: Tahoma, Geneva, sans-serif; + border: 1px solid #FFFFFF; + width: 100%; + text-align: left; + border-collapse: collapse; +} +table.paleBlueRows td, table.paleBlueRows th { + border: 1px solid #FFFFFF; + padding: 3px 5px; +} +table.paleBlueRows tbody td { + font-size: 13px; +} +table.paleBlueRows tr:nth-child(even) { + background: #D0E4F5; +} +table.paleBlueRows thead { + background: #0B6FA4; + border-bottom: 5px solid #FFFFFF; +} +table.paleBlueRows thead th { + font-size: 15px; + font-weight: bold; + color: #FFFFFF; + text-align: left; + border-left: 2px solid #FFFFFF; +} +table.paleBlueRows thead th:first-child { + border-left: none; +} + +table.paleBlueRows tfoot { + font-size: 14px; + font-weight: bold; + color: #333333; + background: #D0E4F5; + border-top: 3px solid #444444; +} +table.paleBlueRows tfoot td { + font-size: 14px; +} \ No newline at end of file diff --git a/src/main/webapp/html/form-compile/form-map.jsp b/src/main/webapp/html/form-compile/form-map.jsp index 6a1c6b0..c9ea23a 100644 --- a/src/main/webapp/html/form-compile/form-map.jsp +++ b/src/main/webapp/html/form-compile/form-map.jsp @@ -19,8 +19,6 @@ pageContext.setAttribute("required", "true"); - - diff --git a/src/main/webapp/html/init.jsp b/src/main/webapp/html/init.jsp index a872e53..3ab0b6f 100644 --- a/src/main/webapp/html/init.jsp +++ b/src/main/webapp/html/init.jsp @@ -14,6 +14,9 @@ <%@ page import="javax.portlet.PortletURL" %> <%@ page import="java.util.List" %> <%@ page import="java.util.ArrayList" %> +<%@ page import="org.gcube.portlets.user.moving.FilledForm" %> +<%@ page import="java.lang.StringBuffer" %> + diff --git a/src/main/webapp/html/manageforms/manage-forms.jsp b/src/main/webapp/html/manageforms/manage-forms.jsp new file mode 100644 index 0000000..b1882c2 --- /dev/null +++ b/src/main/webapp/html/manageforms/manage-forms.jsp @@ -0,0 +1,83 @@ +<%@include file="../init.jsp"%> +<%@ taglib uri="http://java.sun.com/portlet_2_0" prefix="portlet"%> + + +<% +List filledForms = (List) renderRequest.getAttribute("filledForms"); +pageContext.setAttribute("filledForms", filledForms); +%> + + + + + + + + + + +
+ +
+ + + + + + + + + + + + + + + + + + + + + +
Sel.Full nameEmailCountryOrganisation
${form.name} + ${form.surname}${form.emailAddress}${form.country}${form.organisation}
+ +
+ + + +
+
+
\ No newline at end of file diff --git a/src/main/webapp/html/manageforms/show_all_answers.jsp b/src/main/webapp/html/manageforms/show_all_answers.jsp new file mode 100644 index 0000000..7299e8e --- /dev/null +++ b/src/main/webapp/html/manageforms/show_all_answers.jsp @@ -0,0 +1,39 @@ +<%@include file="../init.jsp"%> +<% +FilledForm filledForm = (FilledForm) request.getAttribute("filledForm"); + +String copySubmitted = new StringBuffer() +.append("
").append("Name: ") +.append(filledForm.getName()).append(" ").append(filledForm.getSurname()) +.append("
").append("Organisation: ") +.append(filledForm.getOrganisation()) +.append("
").append("Organisation type: ") +.append(filledForm.getOrganisationTyp()) +.append("
").append("emailAddress: ") +.append(filledForm.getEmailAddress()) +.append("
").append("Country: ") +.append(filledForm.getCountry()) +.append("

").append("Have you participated in the activities of any of our MOVING Regional Multi-Actors Platforms? ") +.append(filledForm.isParticipatedInActivities()) +.append("

").append("What is your main motivation for joining the EU MAP of MOVING? ") +.append(filledForm.getMainMotivation()) +.append("

").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("

").append(filledForm.getTextareaMotivation()) +.append("

").append("What is your main area of expertise in relation to mountain sustainability and resilience? ") +.append(filledForm.getAreaOfExpertise()) +.append("

").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("

").append(filledForm.getElaborated_expertise()) +.append("

").append("As a starting point, the degree of participation you commit to is: ") +.append(filledForm.getDegree_of_participation()) +.append("
").append("
").append("Data Management: ") +.append("Agreed").toString(); + + +pageContext.setAttribute("copySubmitted", copySubmitted); + +%> + Back +

${copySubmitted}

+ Back \ No newline at end of file