diff --git a/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java b/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java index d0d5a526e..bceefef72 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/design/AdminDesignAction.java @@ -114,6 +114,8 @@ public class AdminDesignAction extends FessAdminAction implements Serializable { @Execute public HtmlResponse upload(final UploadForm form) { + validate(form, messages -> {}, () -> asListHtml()); + verifyToken(() -> asListHtml()); final String uploadedFileName = form.designFile.getFileName(); String fileName = form.designFileName; if (StringUtil.isBlank(fileName)) { @@ -128,11 +130,11 @@ public class AdminDesignAction extends FessAdminAction implements Serializable { fileName = fileName.substring(pos + 1); } } catch (final Exception e) { - throwValidationError(messages -> messages.addErrorsDesignFileNameIsInvalid(GLOBAL), () -> asListHtml()); + throwValidationError(messages -> messages.addErrorsDesignFileNameIsInvalid("designFile"), () -> asListHtml()); } } if (StringUtil.isBlank(fileName)) { - throwValidationError(messages -> messages.addErrorsDesignFileNameIsNotFound(GLOBAL), () -> asListHtml()); + throwValidationError(messages -> messages.addErrorsDesignFileNameIsNotFound("designFile"), () -> asListHtml()); } String baseDir = null; @@ -147,7 +149,7 @@ public class AdminDesignAction extends FessAdminAction implements Serializable { && checkFileType(uploadedFileName, systemHelper.getSupportedUploadedJSExtentions())) { baseDir = "/js/"; } else { - throwValidationError(messages -> messages.addErrorsDesignFileIsUnsupportedType(GLOBAL), () -> asListHtml()); + throwValidationError(messages -> messages.addErrorsDesignFileIsUnsupportedType("designFileName"), () -> asListHtml()); } final File uploadFile = new File(getServletContext().getRealPath(baseDir + fileName)); @@ -164,8 +166,6 @@ public class AdminDesignAction extends FessAdminAction implements Serializable { logger.error("Failed to write an image file: {}", fileName, e); throwValidationError(messages -> messages.addErrorsFailedToWriteDesignImageFile(GLOBAL), () -> asListHtml()); } - validate(form, messages -> {}, () -> asListHtml()); - verifyToken(() -> asListHtml()); return redirect(getClass()); } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java b/src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java index 4f00bf416..5c87c4328 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/dict/synonym/AdminDictSynonymAction.java @@ -343,10 +343,10 @@ public class AdminDictSynonymAction extends FessAdminAction { protected OptionalEntity createSynonymItem(final CreateForm form, final VaErrorHook hook) { return getEntity(form).map(entity -> { final String[] newInputs = splitLine(form.inputs); - validateSynonymString(newInputs, hook); + validateSynonymString(newInputs, "inputs", hook); entity.setNewInputs(newInputs); final String[] newOutputs = splitLine(form.outputs); - validateSynonymString(newOutputs, hook); + validateSynonymString(newOutputs, "outputs", hook); entity.setNewOutputs(newOutputs); return entity; }); @@ -363,19 +363,19 @@ public class AdminDictSynonymAction extends FessAdminAction { } } - private void validateSynonymString(final String[] values, final VaErrorHook hook) { + private void validateSynonymString(final String[] values, final String propertyName, final VaErrorHook hook) { if (values.length == 0) { return; } for (final String value : values) { if (value.indexOf(',') >= 0) { throwValidationError(messages -> { - messages.addErrorsInvalidStrIsIncluded(GLOBAL, value, ","); + messages.addErrorsInvalidStrIsIncluded(propertyName, value, ","); }, hook); } if (value.indexOf("=>") >= 0) { throwValidationError(messages -> { - messages.addErrorsInvalidStrIsIncluded(GLOBAL, value, "=>"); + messages.addErrorsInvalidStrIsIncluded(propertyName, value, "=>"); }, hook); } } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java b/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java index e78011957..738e29448 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/user/AdminUserAction.java @@ -286,13 +286,13 @@ public class AdminUserAction extends FessAdminAction { if (form.crudMode == CrudMode.CREATE && StringUtil.isBlank(form.password)) { resetPassword(form); throwValidationError(messages -> { - messages.addErrorsBlankPassword(GLOBAL); + messages.addErrorsBlankPassword("password"); }, validationErrorLambda); } if (form.password != null && !form.password.equals(form.confirmPassword)) { resetPassword(form); throwValidationError(messages -> { - messages.addErrorsInvalidConfirmPassword(GLOBAL); + messages.addErrorsInvalidConfirmPassword("confirmPassword"); }, validationErrorLambda); } } diff --git a/src/main/java/org/codelibs/fess/app/web/admin/wizard/CrawlingConfigForm.java b/src/main/java/org/codelibs/fess/app/web/admin/wizard/CrawlingConfigForm.java index dadcb37c0..4db43789c 100644 --- a/src/main/java/org/codelibs/fess/app/web/admin/wizard/CrawlingConfigForm.java +++ b/src/main/java/org/codelibs/fess/app/web/admin/wizard/CrawlingConfigForm.java @@ -17,9 +17,12 @@ package org.codelibs.fess.app.web.admin.wizard; import java.io.Serializable; +import javax.validation.constraints.Max; +import javax.validation.constraints.Min; import javax.validation.constraints.Size; import org.lastaflute.web.validation.Required; +import org.lastaflute.web.validation.theme.conversion.ValidateTypeFailure; public class CrawlingConfigForm implements Serializable { @@ -33,8 +36,14 @@ public class CrawlingConfigForm implements Serializable { @Size(max = 1000) public String crawlingConfigPath; + @Min(value = 0) + @Max(value = 2147483647) + @ValidateTypeFailure public Integer depth; + @Min(value = 0) + @Max(value = 9223372036854775807l) + @ValidateTypeFailure public Long maxAccessCount; } diff --git a/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java b/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java index 6f0faecd6..9dc5b651b 100644 --- a/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java +++ b/src/main/java/org/codelibs/fess/mylasta/action/FessMessages.java @@ -26,16 +26,16 @@ public class FessMessages extends FessLabels { /** The serial version UID for object serialization. (Default) */ private static final long serialVersionUID = 1L; - /** The key of the message: <ul> */ + /** The key of the message: <label class="has-error"> */ public static final String ERRORS_HEADER = "{errors.header}"; - /** The key of the message: </ul> */ + /** The key of the message: </label> */ public static final String ERRORS_FOOTER = "{errors.footer}"; - /** The key of the message: <li> */ + /** The key of the message: <i class="fa fa-times-circle-o"></i> */ public static final String ERRORS_PREFIX = "{errors.prefix}"; - /** The key of the message: </li> */ + /** The key of the message: */ public static final String ERRORS_SUFFIX = "{errors.suffix}"; /** The key of the message: {item} must be false. */ @@ -344,7 +344,7 @@ public class FessMessages extends FessLabels { /** * Add the created action message for the key 'errors.header' with parameters. *
-     * message: <ul>
+     * message: <label class="has-error">
      * comment: ------------
      * 
* @param property The property name for the message. (NotNull) @@ -359,7 +359,7 @@ public class FessMessages extends FessLabels { /** * Add the created action message for the key 'errors.footer' with parameters. *
-     * message: </ul>
+     * message: </label>
      * 
* @param property The property name for the message. (NotNull) * @return this. (NotNull) @@ -373,7 +373,7 @@ public class FessMessages extends FessLabels { /** * Add the created action message for the key 'errors.prefix' with parameters. *
-     * message: <li>
+     * message: <i class="fa fa-times-circle-o"></i>
      * 
* @param property The property name for the message. (NotNull) * @return this. (NotNull) @@ -387,7 +387,7 @@ public class FessMessages extends FessLabels { /** * Add the created action message for the key 'errors.suffix' with parameters. *
-     * message: </li>
+     * message: 
      * 
* @param property The property name for the message. (NotNull) * @return this. (NotNull) diff --git a/src/main/resources/fess_message.properties b/src/main/resources/fess_message.properties index a5338e4bc..b04b8a21c 100644 --- a/src/main/resources/fess_message.properties +++ b/src/main/resources/fess_message.properties @@ -5,10 +5,10 @@ # ---------------------------------------------------------- # Lasta Taglib # ------------ -errors.header= -errors.prefix=
  • -errors.suffix=
  • +errors.header= +errors.prefix= +errors.suffix= # ---------------------------------------------------------- # Javax Validator diff --git a/src/main/webapp/WEB-INF/view/admin/badword/admin_badword_edit.jsp b/src/main/webapp/WEB-INF/view/admin/badword/admin_badword_edit.jsp index 9364707b5..3e92695b8 100644 --- a/src/main/webapp/WEB-INF/view/admin/badword/admin_badword_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/badword/admin_badword_edit.jsp @@ -45,7 +45,6 @@
    box-successbox-warning"> - <%-- Box Header --%>

    @@ -84,18 +83,17 @@

    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/boostdoc/admin_boostdoc_edit.jsp b/src/main/webapp/WEB-INF/view/admin/boostdoc/admin_boostdoc_edit.jsp index d2e633078..ffb0855bf 100644 --- a/src/main/webapp/WEB-INF/view/admin/boostdoc/admin_boostdoc_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/boostdoc/admin_boostdoc_edit.jsp @@ -33,24 +33,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -58,6 +56,7 @@
    +
    @@ -65,6 +64,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_edit.jsp b/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_edit.jsp index 3ce3f76aa..ec30994e5 100644 --- a/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/dataconfig/admin_dataconfig_edit.jsp @@ -39,18 +39,17 @@
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -58,6 +57,7 @@
    +
    +
    @@ -79,6 +80,7 @@
    +
    @@ -87,6 +89,7 @@
    +
    @@ -94,6 +97,7 @@
    + @@ -106,6 +110,7 @@
    + @@ -118,6 +123,7 @@
    + diff --git a/src/main/webapp/WEB-INF/view/admin/design/admin_design.jsp b/src/main/webapp/WEB-INF/view/admin/design/admin_design.jsp index 155b768fb..7a5847d2b 100644 --- a/src/main/webapp/WEB-INF/view/admin/design/admin_design.jsp +++ b/src/main/webapp/WEB-INF/view/admin/design/admin_design.jsp @@ -25,7 +25,7 @@
    ${msg}
    - +
    @@ -38,6 +38,7 @@
    + ${f:h(item)} @@ -49,6 +50,7 @@ @@ -188,6 +193,7 @@ class="col-sm-3 form-control-label">
    +
    @@ -196,6 +202,7 @@ class="col-sm-3 form-control-label">
    +
    @@ -204,6 +211,7 @@ diff --git a/src/main/webapp/WEB-INF/view/admin/design/admin_design_edit.jsp b/src/main/webapp/WEB-INF/view/admin/design/admin_design_edit.jsp index 213490067..ec392ee28 100644 --- a/src/main/webapp/WEB-INF/view/admin/design/admin_design_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/design/admin_design_edit.jsp @@ -13,61 +13,59 @@ -
    - - <%-- Content Header --%>

    -
    -
    ${msg}
    - +
    - <%-- Box Header --%>
    -

    +

    - <%-- Box Body --%> +

    ${f:h(fileName)}

    +
    - <%-- Box Footer --%> + +
    +
    -
    diff --git a/src/main/webapp/WEB-INF/view/admin/dict/kuromoji/admin_dict_kuromoji_edit.jsp b/src/main/webapp/WEB-INF/view/admin/dict/kuromoji/admin_dict_kuromoji_edit.jsp index ea22d6422..1e9c1d04a 100644 --- a/src/main/webapp/WEB-INF/view/admin/dict/kuromoji/admin_dict_kuromoji_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/dict/kuromoji/admin_dict_kuromoji_edit.jsp @@ -46,7 +46,6 @@
    box-successbox-warning"> - <%-- Box Header --%>

    @@ -84,20 +83,19 @@

    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -105,6 +103,7 @@
    +
    @@ -112,6 +111,7 @@
    +
    @@ -119,6 +119,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/dict/synonym/admin_dict_synonym_edit.jsp b/src/main/webapp/WEB-INF/view/admin/dict/synonym/admin_dict_synonym_edit.jsp index 47d836878..e5ce77936 100644 --- a/src/main/webapp/WEB-INF/view/admin/dict/synonym/admin_dict_synonym_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/dict/synonym/admin_dict_synonym_edit.jsp @@ -85,18 +85,17 @@
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -105,6 +104,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/duplicatehost/admin_duplicatehost_edit.jsp b/src/main/webapp/WEB-INF/view/admin/duplicatehost/admin_duplicatehost_edit.jsp index 7e5bc3843..08bfba39b 100644 --- a/src/main/webapp/WEB-INF/view/admin/duplicatehost/admin_duplicatehost_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/duplicatehost/admin_duplicatehost_edit.jsp @@ -34,24 +34,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -59,6 +57,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/elevateword/admin_elevateword_edit.jsp b/src/main/webapp/WEB-INF/view/admin/elevateword/admin_elevateword_edit.jsp index a7b6aa074..bb9235aa0 100644 --- a/src/main/webapp/WEB-INF/view/admin/elevateword/admin_elevateword_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/elevateword/admin_elevateword_edit.jsp @@ -79,18 +79,17 @@
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -98,6 +97,7 @@
    +
    @@ -105,6 +105,7 @@
    +
    @@ -112,6 +113,7 @@
    + @@ -124,6 +126,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/fileauth/admin_fileauth_edit.jsp b/src/main/webapp/WEB-INF/view/admin/fileauth/admin_fileauth_edit.jsp index 83734f48c..a79e8bdec 100644 --- a/src/main/webapp/WEB-INF/view/admin/fileauth/admin_fileauth_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/fileauth/admin_fileauth_edit.jsp @@ -33,24 +33,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -58,6 +56,7 @@
    +
    @@ -65,6 +64,7 @@
    + @@ -77,6 +77,7 @@
    +
    @@ -84,6 +85,7 @@
    +
    @@ -91,6 +93,7 @@
    +
    @@ -99,6 +102,7 @@
    + ${f:h(item.label)} diff --git a/src/main/webapp/WEB-INF/view/admin/fileconfig/admin_fileconfig_edit.jsp b/src/main/webapp/WEB-INF/view/admin/fileconfig/admin_fileconfig_edit.jsp index d74d5de83..f15d0f6b1 100644 --- a/src/main/webapp/WEB-INF/view/admin/fileconfig/admin_fileconfig_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/fileconfig/admin_fileconfig_edit.jsp @@ -39,18 +39,17 @@
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -58,6 +57,7 @@
    +
    @@ -66,6 +66,7 @@
    +
    @@ -74,6 +75,7 @@
    +
    @@ -82,6 +84,7 @@
    +
    @@ -90,6 +93,7 @@
    +
    @@ -98,6 +102,7 @@
    +
    @@ -105,6 +110,7 @@
    +
    @@ -112,6 +118,7 @@
    +
    @@ -119,6 +126,7 @@
    +
    @@ -126,6 +134,7 @@
    +
    @@ -134,6 +143,7 @@
    +
    @@ -141,6 +151,7 @@
    + @@ -153,6 +164,7 @@
    + @@ -165,6 +177,7 @@
    + diff --git a/src/main/webapp/WEB-INF/view/admin/group/admin_group_edit.jsp b/src/main/webapp/WEB-INF/view/admin/group/admin_group_edit.jsp index 4f1e0b766..cafc5aabd 100644 --- a/src/main/webapp/WEB-INF/view/admin/group/admin_group_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/group/admin_group_edit.jsp @@ -31,24 +31,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp b/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp index f5d9ae71c..ce98aad81 100644 --- a/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/keymatch/admin_keymatch_edit.jsp @@ -38,18 +38,17 @@
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -57,6 +56,7 @@
    +
    @@ -64,6 +64,7 @@
    +
    @@ -71,6 +72,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp b/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp index 638fc7ea9..681a2e0ea 100644 --- a/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/labeltype/admin_labeltype_edit.jsp @@ -38,18 +38,17 @@
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -57,6 +56,7 @@
    +
    @@ -64,6 +64,7 @@
    +
    @@ -72,6 +73,7 @@
    +
    @@ -80,6 +82,7 @@
    + @@ -92,6 +95,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/pathmap/admin_pathmap_edit.jsp b/src/main/webapp/WEB-INF/view/admin/pathmap/admin_pathmap_edit.jsp index c15269e68..42d2bb048 100644 --- a/src/main/webapp/WEB-INF/view/admin/pathmap/admin_pathmap_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/pathmap/admin_pathmap_edit.jsp @@ -14,7 +14,6 @@
    - <%-- Content Header --%>

    @@ -34,24 +33,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -59,6 +56,7 @@
    +
    @@ -66,6 +64,7 @@
    + @@ -83,6 +82,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/reqheader/admin_reqheader_edit.jsp b/src/main/webapp/WEB-INF/view/admin/reqheader/admin_reqheader_edit.jsp index ae35cc452..f4176d65d 100644 --- a/src/main/webapp/WEB-INF/view/admin/reqheader/admin_reqheader_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/reqheader/admin_reqheader_edit.jsp @@ -33,24 +33,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -58,6 +56,7 @@
    +
    @@ -65,6 +64,7 @@
    + ${f:h(item.label)} diff --git a/src/main/webapp/WEB-INF/view/admin/role/admin_role_edit.jsp b/src/main/webapp/WEB-INF/view/admin/role/admin_role_edit.jsp index b2b38b041..c6ca4c31e 100644 --- a/src/main/webapp/WEB-INF/view/admin/role/admin_role_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/role/admin_role_edit.jsp @@ -31,24 +31,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/roletype/admin_roletype_edit.jsp b/src/main/webapp/WEB-INF/view/admin/roletype/admin_roletype_edit.jsp index 3d7ce3d4f..92844c553 100644 --- a/src/main/webapp/WEB-INF/view/admin/roletype/admin_roletype_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/roletype/admin_roletype_edit.jsp @@ -34,24 +34,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -59,6 +57,7 @@
    +
    diff --git a/src/main/webapp/WEB-INF/view/admin/scheduler/admin_scheduler_edit.jsp b/src/main/webapp/WEB-INF/view/admin/scheduler/admin_scheduler_edit.jsp index 91c1d053e..108a24330 100644 --- a/src/main/webapp/WEB-INF/view/admin/scheduler/admin_scheduler_edit.jsp +++ b/src/main/webapp/WEB-INF/view/admin/scheduler/admin_scheduler_edit.jsp @@ -33,24 +33,22 @@
    box-successbox-warning"> - <%-- Box Header --%>
    - <%-- Box Body --%> +
    - <%-- Message --%>
    ${msg}
    - +
    - <%-- Form Fields --%>
    +
    @@ -58,6 +56,7 @@
    +
    @@ -65,6 +64,7 @@
    +
    @@ -72,6 +72,7 @@
    +
    @@ -79,6 +80,7 @@
    +
    @@ -87,6 +89,7 @@
    +