You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@roller.apache.org by ad...@apache.org on 2020/05/31 13:51:30 UTC

[roller] 02/02: Implemented: logic to apply email validations (ROL-2156) Added method to apply regular expression and added rules to validate email Added error message with internationalised text instead of hard coded text Removed existing custom code to validate inputs

This is an automated email from the ASF dual-hosted git repository.

adityasharma pushed a commit to branch roller-6.0.x
in repository https://gitbox.apache.org/repos/asf/roller.git

commit 46abbd7f52e839cbb2ae8d2fc8e28598e7f8e585
Author: Aditya Sharma <ia...@gmail.com>
AuthorDate: Sun May 31 18:08:42 2020 +0530

    Implemented: logic to apply email validations (ROL-2156)
    Added method to apply regular expression and added rules to validate email
    Added error message with internationalised text instead of hard coded text
    Removed existing custom code to validate inputs
---
 .../main/resources/ApplicationResources.properties |  9 +++---
 .../main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp | 33 ++++------------------
 app/src/main/webapp/theme/scripts/roller.js        | 19 +++++++++++++
 3 files changed, 29 insertions(+), 32 deletions(-)

diff --git a/app/src/main/resources/ApplicationResources.properties b/app/src/main/resources/ApplicationResources.properties
index 2673f6e..0c315a0 100644
--- a/app/src/main/resources/ApplicationResources.properties
+++ b/app/src/main/resources/ApplicationResources.properties
@@ -418,6 +418,7 @@ CreateWeblog.error.descriptionSize=Description cannot be more than 255 character
 CreateWeblog.error.emailAddressNull=Email address is a required field
 CreateWeblog.error.emailAddressSize=Email address cannot be more than 255 characters
 CreateWeblog.error.emailAddressBad=The email address you entered is not properly formatted
+CreateWeblog.error.emailAddressInvalid=Please enter a valid email address
 CreateWeblog.error.localeNull=Locale is a required field
 CreateWeblog.error.localeSize=Locale cannot be more than 8 characters
 CreateWeblog.error.timeZoneNull=Time Zone is a required field
@@ -442,7 +443,7 @@ email.comment.title=Comment
 email.comment.moderate.title=Pending Blog Comment
 email.comment.commentApproved=Comment Approved
 
-#---------------------------------------------------------------- Error messages 
+#---------------------------------------------------------------- Error messages
 
 error.untranslated={0}
 
@@ -537,7 +538,7 @@ can have multiple weblogs and each Roller weblog can have multiple \
 authors.
 index.createWeblogBy=Create your first weblog via the 
 index.createWeblogPage=New Weblog Creation Page
-   
+
 index.setFrontpage=Designate a frontpage weblog
 index.setFrontpageHelp=\
 You must specify a weblog to serve as the front page weblog, you can do this \
@@ -1619,7 +1620,7 @@ Entry.error.categoryNull=Category is required field
 Entry.error.textNull=Content is a required field
 
 
-# -------------------------------------------------------- Weblog entries Pager 
+# -------------------------------------------------------- Weblog entries Pager
 
 weblogEntriesPager.latest.home=Main
 weblogEntriesPager.latest.next=Next page
@@ -1646,7 +1647,7 @@ weblogEntriesPager.month.nextCollection=Next month ({0})
 weblogEntriesPager.month.prevCollection=Previous month ({0})
 weblogEntriesPager.month.dateFormat=MMM yyyy
 
-# ---------------------------------------------------------- Weblog Entry Remove 
+# ---------------------------------------------------------- Weblog Entry Remove
 
 weblogEntryRemove.removeWeblogEntry=Delete Weblog Entry
 weblogEntryRemove.areYouSure=Are you sure you want to delete this Weblog Entry?
diff --git a/app/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp b/app/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp
index 0f8762e..48c4f08 100644
--- a/app/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp
@@ -26,13 +26,13 @@
     <s:hidden name="salt"/>
 
     <s:textfield label="%{getText('generic.name')}"
-                 tooltip="%{getText('createWebsite.tip.name')}" onkeyup="formChanged()"
-                 name="bean.name" size="30" maxlength="30" requiredLabel="Name is a required field" required="required"/>
+                 tooltip="%{getText('createWebsite.tip.name')}"
+                 name="bean.name" size="30" maxlength="30" data-msg-required="%{getText('CreateWeblog.error.nameNull')}" required="required"/>
 
     <s:textfield label="%{getText('createWebsite.handle')}"
                  tooltip="%{getText('createWebsite.tip.handle')}"
                  name="bean.handle" size="30" maxlength="30"
-                 onkeyup="handlePreview(this)" requiredLabel="Handle is a required field" required="required"/>
+                 onkeyup="handlePreview(this)" data-msg-required="%{getText('CreateWeblog.error.handleNull')}" required="required"/>
 
     <div class="form-group">
         <label class="col-sm-3"></label>
@@ -47,8 +47,8 @@
         </div>
     </div>
 
-    <s:textfield label="%{getText('createWebsite.emailAddress')}"
-                 tooltip="%{getText('createWebsite.tip.email')}" onkeyup="formChanged()"
+    <s:textfield label="%{getText('createWebsite.emailAddress')}" cssClass="validate-email" data-msg="%{getText('CreateWeblog.error.emailAddressInvalid')}"
+                 tooltip="%{getText('createWebsite.tip.email')}" data-msg-required="%{getText('CreateWeblog.error.emailAddressNull')}" required="required"
                  name="bean.emailAddress" size="40" maxlength="50"/>
 
     <s:select label="%{getText('createWebsite.locale')}"
@@ -99,29 +99,8 @@
         previewImage('<s:property value="bean.theme"/>');
         </s:else>
 
-        // TODO Remove custom validation code
-        // formChanged()
     });
 
-    function formChanged() {
-        // TODO Remove custom validation code
-        /*var valid = false;
-
-        var name   = $("#createWeblog_bean_name:first").val();
-        var handle = $("#createWeblog_bean_handle:first").val();
-        var email  = $("#createWeblog_bean_emailAddress:first").val();
-
-        valid = !!(name && name.trim().length > 0
-            && handle && handle.trim().length > 0
-            && email && email.trim().length > 0 && validateEmail(email));
-
-        if ( valid ) {
-            saveButton.attr("disabled", false);
-        } else {
-            saveButton.attr("disabled", true);
-        }*/
-    }
-
     function handlePreview(handle) {
         previewSpan = document.getElementById("handlePreview");
         var n1 = previewSpan.childNodes[0];
@@ -140,8 +119,6 @@
                 $('#themeThumbnail').attr('src','<s:property value="siteURL" />' + data.previewPath);
             }
         });
-        formChanged();
     }
 
 </script>
-
diff --git a/app/src/main/webapp/theme/scripts/roller.js b/app/src/main/webapp/theme/scripts/roller.js
index a85adcf..298a799 100644
--- a/app/src/main/webapp/theme/scripts/roller.js
+++ b/app/src/main/webapp/theme/scripts/roller.js
@@ -212,4 +212,23 @@ function validateEmail(email) {
 }
 $(document).ready(function () {
     jQuery("form.validate-form").validate();
+    // Added method to check valid email address and add a custom error message
+    jQuery.validator.addMethod(
+        "regex",
+        function(value, element, regexp)  {
+            if (regexp && regexp.constructor != RegExp) {
+                regexp = new RegExp(regexp);
+            } else if (regexp.global) {
+                regexp.lastIndex = 0;
+            }
+            return this.optional(element) || regexp.test(value);
+        }
+    );
+    // Applied email rules to field with class name validate-email
+    jQuery( ".validate-email" ).rules( "add", {
+        minlength: 3,
+        maxlength: 255,
+        email: true,
+        regex: /^\b[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b$/i
+    });
 });