diff --git a/.settings/org.eclipse.wst.common.component b/.settings/org.eclipse.wst.common.component index a5a5269..c8abd95 100644 --- a/.settings/org.eclipse.wst.common.component +++ b/.settings/org.eclipse.wst.common.component @@ -10,7 +10,6 @@ - uses 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 16a0a98..d3ef626 100644 --- a/src/main/java/org/gcube/portlets/user/moving/CompileForm.java +++ b/src/main/java/org/gcube/portlets/user/moving/CompileForm.java @@ -20,6 +20,7 @@ import javax.mail.internet.MimeMessage; import javax.portlet.ActionRequest; import javax.portlet.ActionResponse; import javax.portlet.PortletException; +import javax.portlet.PortletSession; import javax.portlet.RenderRequest; import javax.portlet.RenderResponse; import javax.servlet.http.HttpServletRequest; @@ -36,6 +37,7 @@ import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.GetterUtil; import com.liferay.portal.kernel.util.StringPool; +import com.liferay.portal.kernel.util.StringUtil; import com.liferay.portal.service.GroupLocalServiceUtil; import com.liferay.portal.util.PortalUtil; import com.liferay.util.bridges.mvc.MVCPortlet; @@ -80,6 +82,7 @@ public class CompileForm extends MVCPortlet { renderRequest.setAttribute("main_motivations", main_motivations); renderRequest.setAttribute("areas_of_expertise", areas_of_expertise); renderRequest.setAttribute("degrees_of_participation", degrees_of_participation); + super.render(renderRequest, renderResponse); } catch (Exception e) { _log.error("Something wrong with Databaseconnection or with queries while getting combo types", e); @@ -93,19 +96,13 @@ public class CompileForm extends MVCPortlet { String organisation = actionRequest.getParameter("organisation"); String organisationType = actionRequest.getParameter("organisationType"); String emailAddress = actionRequest.getParameter("emailAddress"); - String[] itemsAreaOfExpertiseSelectValues = actionRequest.getParameterValues("areaOfExpertiseSelect"); - String areaOfExpertise = ""; - for (int i = 0; i < itemsAreaOfExpertiseSelectValues.length; i++) { - areaOfExpertise += itemsAreaOfExpertiseSelectValues[i]; - areaOfExpertise += "; "; - } + String country = actionRequest.getParameter("country"); String participatedInActivitiesString = (String) actionRequest.getParameter("participatedInActivities"); boolean participatedInActivities = Boolean.parseBoolean(participatedInActivitiesString); - String mainMotivation = actionRequest.getParameter("mainMotivation"); String textareaMotivation = actionRequest.getParameter("textareaMotivation"); String elaborated_expertise = actionRequest.getParameter("textareaExperience"); - String degree_of_participation = actionRequest.getParameter("commitment"); + _log.debug("name:" + name); _log.debug("surname:" + surname); @@ -114,87 +111,128 @@ public class CompileForm extends MVCPortlet { _log.debug("email:" + emailAddress); _log.debug("country:" + country); _log.debug("participatedInActivities:" + participatedInActivities); - _log.debug("mainMotivation:" + mainMotivation); _log.debug("textareaMotivation:\n" + textareaMotivation+"\n"); - _log.debug("itemsAreaOfExpertise (Multi):\n"); - for (int i = 0; i < itemsAreaOfExpertiseSelectValues.length; i++) { - _log.debug(itemsAreaOfExpertiseSelectValues[i]); - } - _log.debug("textareaExperience:\n" + elaborated_expertise+"\n"); - _log.debug("degrees_of_participation: "+ degree_of_participation); - _log.info("Got form compiled, inserting in DB."); + _log.info("itemsAreaOfExpertise (Multi):\n"); + + Connection conn; try { - Connection conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection(); - 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,?,?)"; + conn = DatabaseConnection.getInstance("/"+PortalContext.getConfiguration().getInfrastructureName()).getConnection(); + + String[] mainMotivationValues = actionRequest.getParameterValues("mainMotivation"); + List list = getMainMotivations(conn); + String[] main_motivations = list.toArray(new String[0]); + String mainMotivation = ""; + + for (int i = 0; i < mainMotivationValues.length; i++) { + System.out.println(i+"mainMotivationValues[i]="+mainMotivationValues[i]); + boolean valueTrue = Boolean.parseBoolean(mainMotivationValues[i]); + if (valueTrue) + mainMotivation += main_motivations[i-1]+"; "; //0 is a placeholder always false + } + + System.out.println("mainMotivation="+mainMotivation); + + String[] itemsAreaOfExpertiseSelectValues = actionRequest.getParameterValues("areaOfExpertiseSelect"); + list = getAreasOfExpertise(conn); + String[] areas_of_expertise = list.toArray(new String[0]); + String areaOfExpertise = ""; + + for (int i = 0; i < itemsAreaOfExpertiseSelectValues.length; i++) { + boolean valueTrue = Boolean.parseBoolean(itemsAreaOfExpertiseSelectValues[i]); + if (valueTrue) + areaOfExpertise += areas_of_expertise[i-1]+"; "; + } + + System.out.println("areaOfExpertise="+areaOfExpertise); + + String[] degree_of_participationValues = actionRequest.getParameterValues("commitment"); + list = getDgreesOfParticipation(conn); + String[] degrees_of_participation = list.toArray(new String[0]); + String degree_of_participation = ""; + + for (int i = 0; i < degree_of_participationValues.length; i++) { + boolean valueTrue = Boolean.parseBoolean(degree_of_participationValues[i]); + if (valueTrue) + degree_of_participation += 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"); - 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"); - } + _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, 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) { _log.error("Some error while trying to insert form"); diff --git a/src/main/webapp/css/main.css b/src/main/webapp/css/main.css index d9419af..6a44849 100644 --- a/src/main/webapp/css/main.css +++ b/src/main/webapp/css/main.css @@ -3,10 +3,14 @@ } #wrapper .form-inline .checkbox input[type=checkbox] { - margin-right: 10px; + margin: 0 25px; height: 18px; } +.aui .control-group { + margin-bottom: 0 !important; +} + #wrapper label { min-width: 200px; } @@ -23,10 +27,23 @@ font-family: "Open Sans", Arial, sans-serif !important; } +#wrapper label.checkbox { + margin-bottom: 0; + margin-top: 5px; + display: block; +} .form-display { margin: 10px 100px; border: 1px solid #CCC; font-size: 16px; line-height: 1.5; font-family: "Open Sans", Arial, sans-serif !important; +} + +div.form-validator-stack.help-inline { + display: block; +} + +.first-checkbox-hidden { + display: none; } \ 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 c9ea23a..826d896 100644 --- a/src/main/webapp/html/form-compile/form-map.jsp +++ b/src/main/webapp/html/form-compile/form-map.jsp @@ -13,7 +13,7 @@ pageContext.setAttribute("main_motivations", main_motivations); pageContext.setAttribute("areas_of_expertise", areas_of_expertise); pageContext.setAttribute("degrees_of_participation", degrees_of_participation); -pageContext.setAttribute("required", "true"); +pageContext.setAttribute("required", "false"); %> @@ -24,7 +24,8 @@ pageContext.setAttribute("required", "true");

Expression of Interest for the EU Multi-Actor Platform

- + @@ -32,11 +33,11 @@ pageContext.setAttribute("required", "true"); required="${required}" style="width:300px;" /> - - ${type} @@ -52,49 +53,67 @@ pageContext.setAttribute("required", "true"); - - - - ${type} - - + label=" Have you participated in the activities of any of our MOVING Regional Multi-Actors Platforms?" + required="${required}" /> + + + +
+ + + + + + + +
+ + + - - - ${type} - - - + +
+ + + + + + + +
+ + - - - - ${type} - - + +
+ + + + + + + +
+

Data Management

@@ -104,10 +123,8 @@ pageContext.setAttribute("required", "true"); Protection Regulation (EU) 2016/679 of 27 April 2016 (GDPR) and other applicable rules, for the management of the activity and to send other electronic communications of content related to it. Read more - in our - Privacy Policy - . + in our Privacy Policy .

@@ -116,31 +133,78 @@ pageContext.setAttribute("required", "true"); Submit Button -->
-
-
+ + +
+
- + + + AUI().use('aui-form-validator', 'aui-overlay-context-panel', function(A) { + + // Extending Alloy Default values for FormValidator RULES + var DEFAULTS_FORM_VALIDATOR = A.config.FormValidator; + A.mix( + DEFAULTS_FORM_VALIDATOR.RULES, + { + requiredCheckbox:function (val, fieldNode, ruleValue) { + var counter = 0; + var nodeName = fieldNode.attr('name'); + var checkBoxes = A.all("input[name='" + nodeName + "']").val(); + for (var i = 0, len = checkBoxes.length; i < len; i++ ) { + if (checkBoxes[i] == 'true') { + counter++; + }; + } + console.log('counter='+counter); + return counter >= ruleValue; + }, + }, + true + ); + + // Extending Alloy Default values for FormValidator STRINGS + A.mix( + DEFAULTS_FORM_VALIDATOR.STRINGS, + { + requiredCheckbox: '' + }, + true + ); + + // Specify the form validation rules to be applied on this form + var rules = { + areaOfExpertiseSelect: { + requiredCheckbox: 1 + }, + mainMotivation: { + requiredCheckbox: 1 + }, + commitment: { + requiredCheckbox: 1 + } + }; + + // filedStrings to override the standard error msgs + var fieldStrings = { + }; + + new A.FormValidator( + { + boundingBox: '#fm', + fieldStrings: fieldStrings, + rules: rules, + showAllMessages: true + } + ); + }); + + +