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:28 UTC

[roller] branch roller-6.0.x updated (b610398 -> 46abbd7)

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

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


    from b610398  Removed notice for build time dependencies downloaded via Maven Refer https://markmail.org/message/o4fagzrjhbuqt2ce
     new bd164d6  Implemented: validation using the jquery validation plugin (ROL-2156) Used validation on the Create weblog page
     new 46abbd7  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

The 2 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 app/pom.xml                                        |  5 ++++
 .../main/resources/ApplicationResources.properties |  9 +++---
 .../main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp | 33 ++++------------------
 app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp    |  2 ++
 app/src/main/webapp/theme/scripts/roller.js        | 22 +++++++++++++++
 5 files changed, 40 insertions(+), 31 deletions(-)


[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

Posted by ad...@apache.org.
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
+    });
 });


[roller] 01/02: Implemented: validation using the jquery validation plugin (ROL-2156) Used validation on the Create weblog page

Posted by ad...@apache.org.
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 bd164d6df9679a7f546b4bf8bd8da5cc2cf1fbfb
Author: Aditya Sharma <ia...@gmail.com>
AuthorDate: Mon May 11 19:45:14 2020 +0530

    Implemented: validation using the jquery validation plugin (ROL-2156)
    Used validation on the Create weblog page
---
 app/pom.xml                                            |  5 +++++
 app/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp | 14 ++++++++------
 app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp        |  2 ++
 app/src/main/webapp/theme/scripts/roller.js            |  3 +++
 4 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/app/pom.xml b/app/pom.xml
index 5cfc229..64a2a45 100644
--- a/app/pom.xml
+++ b/app/pom.xml
@@ -260,6 +260,11 @@ limitations under the License.
         </dependency>
 
         <dependency>
+            <groupId>org.webjars</groupId>
+            <artifactId>jquery-validation</artifactId>
+            <version>1.19.0</version>
+        </dependency>
+        <dependency>
             <groupId>org.apache.lucene</groupId>
             <artifactId>lucene-analyzers-common</artifactId>
             <scope>compile</scope>
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 ebc9d34..0f8762e 100644
--- a/app/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/core/CreateWeblog.jsp
@@ -21,18 +21,18 @@
 
 <br/>
 
-<s:form action="createWeblog!save" theme="bootstrap" cssClass="form-horizontal">
+<s:form action="createWeblog!save" theme="bootstrap" cssClass="form-horizontal validate-form">
 
     <s:hidden name="salt"/>
 
     <s:textfield label="%{getText('generic.name')}"
                  tooltip="%{getText('createWebsite.tip.name')}" onkeyup="formChanged()"
-                 name="bean.name" size="30" maxlength="30"/>
+                 name="bean.name" size="30" maxlength="30" requiredLabel="Name is a required field" required="required"/>
 
     <s:textfield label="%{getText('createWebsite.handle')}"
                  tooltip="%{getText('createWebsite.tip.handle')}"
                  name="bean.handle" size="30" maxlength="30"
-                 onkeyup="handlePreview(this)"/>
+                 onkeyup="handlePreview(this)" requiredLabel="Handle is a required field" required="required"/>
 
     <div class="form-group">
         <label class="col-sm-3"></label>
@@ -99,11 +99,13 @@
         previewImage('<s:property value="bean.theme"/>');
         </s:else>
 
-        formChanged()
+        // TODO Remove custom validation code
+        // formChanged()
     });
 
     function formChanged() {
-        var valid = false;
+        // TODO Remove custom validation code
+        /*var valid = false;
 
         var name   = $("#createWeblog_bean_name:first").val();
         var handle = $("#createWeblog_bean_handle:first").val();
@@ -117,7 +119,7 @@
             saveButton.attr("disabled", false);
         } else {
             saveButton.attr("disabled", true);
-        }
+        }*/
     }
 
     function handlePreview(handle) {
diff --git a/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp b/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp
index 8d10e2d..8a31d67 100644
--- a/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp
+++ b/app/src/main/webapp/WEB-INF/jsps/tiles/head.jsp
@@ -10,6 +10,8 @@ You can override it with your own file via WEB-INF/tiles-def.xml
 <script src="<s:url value='/webjars/jquery-ui/1.12.1/jquery-ui.min.js' />"></script>
 <link href="<s:url value='/webjars/jquery-ui/1.12.1/jquery-ui.css' />" rel="stylesheet" />
 
+<script src="<s:url value='/webjars/jquery-validation/1.19.0/jquery.validate.min.js' />"></script>
+
 <link href="<s:url value='/webjars/bootstrap/3.3.7/css/bootstrap.min.css' />" rel="stylesheet" />
 <link href="<s:url value='/webjars/bootstrap/3.3.7/css/bootstrap-theme.min.css' />" rel="stylesheet" />
 <script src="<s:url value='/webjars/bootstrap/3.3.7/js/bootstrap.min.js' />"></script>
diff --git a/app/src/main/webapp/theme/scripts/roller.js b/app/src/main/webapp/theme/scripts/roller.js
index 1ec4976..a85adcf 100644
--- a/app/src/main/webapp/theme/scripts/roller.js
+++ b/app/src/main/webapp/theme/scripts/roller.js
@@ -210,3 +210,6 @@ function validateEmail(email) {
     var re = /^(([^<>()\[\]\\.,;:\s@"]+(\.[^<>()\[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
     return re.test(email);
 }
+$(document).ready(function () {
+    jQuery("form.validate-form").validate();
+});