<%-- /** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ --%> <%@ include file="/init.jsp" %> <% String title = LocalizationUtil.getPreferencesValue(portletPreferences, "title", themeDisplay.getLanguageId()); String description = LocalizationUtil.getPreferencesValue(portletPreferences, "description", themeDisplay.getLanguageId()); boolean requireCaptcha = GetterUtil.getBoolean(portletPreferences.getValue("requireCaptcha", StringPool.BLANK)); String successURL = portletPreferences.getValue("successURL", StringPool.BLANK); %>

<%= HtmlUtil.escape(description) %>

<% int i = 1; String fieldName = "field" + i; String fieldLabel = LocalizationUtil.getPreferencesValue(portletPreferences, "fieldLabel" + i, themeDisplay.getLanguageId()); boolean fieldOptional = PrefsParamUtil.getBoolean(portletPreferences, request, "fieldOptional" + i, false); String fieldValue = ParamUtil.getString(request, fieldName); while ((i == 1) || Validator.isNotNull(fieldLabel)) { String fieldType = portletPreferences.getValue("fieldType" + i, "text"); String fieldOptions = LocalizationUtil.getPreferencesValue(portletPreferences, "fieldOptions" + i, themeDisplay.getLanguageId()); String fieldValidationScript = portletPreferences.getValue("fieldValidationScript" + i, StringPool.BLANK); String fieldValidationErrorMessage = portletPreferences.getValue("fieldValidationErrorMessage" + i, StringPool.BLANK); %>
<%= fieldValidationErrorMessage %>

<%= HtmlUtil.escape(fieldOptions) %>

<% for (String fieldOptionValue : WebFormUtil.split(fieldOptions)) { %> <% } %> <% for (String fieldOptionValue : WebFormUtil.split(fieldOptions)) { %> <%= HtmlUtil.escape(fieldOptionValue) %> <% } %>
<% i++; fieldName = "field" + i; fieldLabel = LocalizationUtil.getPreferencesValue(portletPreferences, "fieldLabel" + i, themeDisplay.getLanguageId()); fieldOptional = PrefsParamUtil.getBoolean(portletPreferences, request, "fieldOptional" + i, false); fieldValue = ParamUtil.getString(request, fieldName); } %>
var form = A.one('#fm'); if (form) { form.on( 'submit', function(event) { var keys = []; var fieldLabels = {}; var fieldOptional = {}; var fieldValidationErrorMessages = {}; var fieldValidationFunctions = {}; var fieldsMap = {}; <% int i = 1; String fieldName = "field" + i; String fieldLabel = portletPreferences.getValue("fieldLabel" + i, StringPool.BLANK); while ((i == 1) || Validator.isNotNull(fieldLabel)) { boolean fieldOptional = PrefsParamUtil.getBoolean(portletPreferences, request, "fieldOptional" + i, false); String fieldType = portletPreferences.getValue("fieldType" + i, "text"); String fieldValidationScript = portletPreferences.getValue("fieldValidationScript" + i, StringPool.BLANK); String fieldValidationErrorMessage = portletPreferences.getValue("fieldValidationErrorMessage" + i, StringPool.BLANK); %> var key = '<%= fieldName %>'; keys[<%= i %>] = key; fieldLabels[key] = '<%= HtmlUtil.escape(fieldLabel) %>'; fieldValidationErrorMessages[key] = '<%= fieldValidationErrorMessage %>'; function fieldValidationFunction<%= i %>(currentFieldValue, fieldsMap) { <%= fieldValidationScript %> return true; }; fieldOptional[key] = <%= fieldOptional %>; fieldValidationFunctions[key] = fieldValidationFunction<%= i %>; var radioButton = A.one('input[name=field<%= i %>]:checked'); fieldsMap[key] = ''; if (radioButton) { fieldsMap[key] = radioButton.val(); } var inputField = A.one('#field<%= i %>'); fieldsMap[key] = (inputField && inputField.val()) || ''; <% i++; fieldName = "field" + i; fieldLabel = portletPreferences.getValue("fieldLabel" + i, ""); } %> var validationErrors = false; for (var i = 1; i < keys.length; i++) { var key = keys [i]; var currentFieldValue = fieldsMap[key]; var optionalFieldError = A.one('#fieldOptionalError' + key); var validationError = A.one('#validationError' + key); if (!fieldOptional[key] && currentFieldValue.match(/^\s*$/)) { validationErrors = true; A.all('.alert-success').hide(); if (optionalFieldError) { optionalFieldError.show(); } } else if (!fieldValidationFunctions[key](currentFieldValue, fieldsMap)) { validationErrors = true; A.all('.alert-success').hide(); if (optionalFieldError) { optionalFieldError.hide(); } if (validationError) { validationError.show(); } } else { if (optionalFieldError) { optionalFieldError.hide(); } if (validationError) { validationError.hide(); } } } if (validationErrors) { event.halt(); event.stopImmediatePropagation(); } } ); }