You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@unomi.apache.org by jk...@apache.org on 2022/09/15 16:32:05 UTC

[unomi-tracker] branch UNOMI-668-form-event-building created (now 96c274d)

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

jkevan pushed a change to branch UNOMI-668-form-event-building
in repository https://gitbox.apache.org/repos/asf/unomi-tracker.git


      at 96c274d  UNOMI-668: add a small improvement to form event building to automatically extract form fields

This branch includes the following new commits:

     new 96c274d  UNOMI-668: add a small improvement to form event building to automatically extract form fields

The 1 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.



[unomi-tracker] 01/01: UNOMI-668: add a small improvement to form event building to automatically extract form fields

Posted by jk...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

jkevan pushed a commit to branch UNOMI-668-form-event-building
in repository https://gitbox.apache.org/repos/asf/unomi-tracker.git

commit 96c274d0fee5021deb8a371aea598fb8e197f501
Author: Kevan <ke...@jahia.com>
AuthorDate: Thu Sep 15 18:31:44 2022 +0200

    UNOMI-668: add a small improvement to form event building to automatically extract form fields
---
 dist/apache-unomi-tracker.cjs.js | 15 ++++++++-------
 dist/apache-unomi-tracker.esm.js | 15 ++++++++-------
 dist/apache-unomi-tracker.umd.js | 15 ++++++++-------
 src/tracker/tracker.js           | 17 ++++++++---------
 4 files changed, 32 insertions(+), 30 deletions(-)

diff --git a/dist/apache-unomi-tracker.cjs.js b/dist/apache-unomi-tracker.cjs.js
index facc450..6b3f80a 100644
--- a/dist/apache-unomi-tracker.cjs.js
+++ b/dist/apache-unomi-tracker.cjs.js
@@ -529,10 +529,16 @@ var newTracker = function newTracker() {
      * This function return an event of type form
      *
      * @param {string} formName The HTML name of id of the form to use in the target of the event
+     * @param {HTMLFormElement} form optional HTML form element, if provided will be used to extract the form fields and populate the form event
      * @returns {object} the form event
      */
     buildFormEvent: function buildFormEvent(formName) {
-      return wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+      var form = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
+      var formEvent = wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+      formEvent.flattenedProperties = {
+        fields: form ? wem._extractFormData(form) : {}
+      };
+      return formEvent;
     },
 
     /**
@@ -1331,12 +1337,7 @@ var newTracker = function newTracker() {
         eventCopy.initEvent('submit', event.bubbles, event.cancelable);
         event.stopImmediatePropagation();
         event.preventDefault();
-        var formEvent = wem.buildFormEvent(formName); // merge form properties with event properties
-
-        formEvent.flattenedProperties = {
-          fields: wem._extractFormData(form)
-        };
-        wem.collectEvent(formEvent, function () {
+        wem.collectEvent(wem.buildFormEvent(formName, form), function () {
           form.removeEventListener('submit', wem._formSubmitEventListener, true);
           form.dispatchEvent(eventCopy);
 
diff --git a/dist/apache-unomi-tracker.esm.js b/dist/apache-unomi-tracker.esm.js
index 00c6ef6..36249a3 100644
--- a/dist/apache-unomi-tracker.esm.js
+++ b/dist/apache-unomi-tracker.esm.js
@@ -521,10 +521,16 @@ var newTracker = function newTracker() {
      * This function return an event of type form
      *
      * @param {string} formName The HTML name of id of the form to use in the target of the event
+     * @param {HTMLFormElement} form optional HTML form element, if provided will be used to extract the form fields and populate the form event
      * @returns {object} the form event
      */
     buildFormEvent: function buildFormEvent(formName) {
-      return wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+      var form = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
+      var formEvent = wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+      formEvent.flattenedProperties = {
+        fields: form ? wem._extractFormData(form) : {}
+      };
+      return formEvent;
     },
 
     /**
@@ -1323,12 +1329,7 @@ var newTracker = function newTracker() {
         eventCopy.initEvent('submit', event.bubbles, event.cancelable);
         event.stopImmediatePropagation();
         event.preventDefault();
-        var formEvent = wem.buildFormEvent(formName); // merge form properties with event properties
-
-        formEvent.flattenedProperties = {
-          fields: wem._extractFormData(form)
-        };
-        wem.collectEvent(formEvent, function () {
+        wem.collectEvent(wem.buildFormEvent(formName, form), function () {
           form.removeEventListener('submit', wem._formSubmitEventListener, true);
           form.dispatchEvent(eventCopy);
 
diff --git a/dist/apache-unomi-tracker.umd.js b/dist/apache-unomi-tracker.umd.js
index d4e3b88..10862f3 100644
--- a/dist/apache-unomi-tracker.umd.js
+++ b/dist/apache-unomi-tracker.umd.js
@@ -2176,10 +2176,16 @@
        * This function return an event of type form
        *
        * @param {string} formName The HTML name of id of the form to use in the target of the event
+       * @param {HTMLFormElement} form optional HTML form element, if provided will be used to extract the form fields and populate the form event
        * @returns {object} the form event
        */
       buildFormEvent: function buildFormEvent(formName) {
-        return wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+        var form = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : undefined;
+        var formEvent = wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+        formEvent.flattenedProperties = {
+          fields: form ? wem._extractFormData(form) : {}
+        };
+        return formEvent;
       },
 
       /**
@@ -2978,12 +2984,7 @@
           eventCopy.initEvent('submit', event.bubbles, event.cancelable);
           event.stopImmediatePropagation();
           event.preventDefault();
-          var formEvent = wem.buildFormEvent(formName); // merge form properties with event properties
-
-          formEvent.flattenedProperties = {
-            fields: wem._extractFormData(form)
-          };
-          wem.collectEvent(formEvent, function () {
+          wem.collectEvent(wem.buildFormEvent(formName, form), function () {
             form.removeEventListener('submit', wem._formSubmitEventListener, true);
             form.dispatchEvent(eventCopy);
 
diff --git a/src/tracker/tracker.js b/src/tracker/tracker.js
index 1ffbf7b..5d481d0 100644
--- a/src/tracker/tracker.js
+++ b/src/tracker/tracker.js
@@ -503,10 +503,15 @@ export const newTracker = () => {
          * This function return an event of type form
          *
          * @param {string} formName The HTML name of id of the form to use in the target of the event
+         * @param {HTMLFormElement} form optional HTML form element, if provided will be used to extract the form fields and populate the form event
          * @returns {object} the form event
          */
-        buildFormEvent: function (formName) {
-            return wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+        buildFormEvent: function (formName, form = undefined) {
+            const formEvent = wem.buildEvent('form', wem.buildTarget(formName, 'form'), wem.buildSourcePage());
+            formEvent.flattenedProperties = {
+                fields: form ? wem._extractFormData(form) : {}
+            };
+            return formEvent;
         },
 
         /**
@@ -1221,13 +1226,7 @@ export const newTracker = () => {
                 event.stopImmediatePropagation();
                 event.preventDefault();
 
-                var formEvent = wem.buildFormEvent(formName);
-                // merge form properties with event properties
-                formEvent.flattenedProperties = {
-                    fields: wem._extractFormData(form)
-                };
-
-                wem.collectEvent(formEvent,
+                wem.collectEvent(wem.buildFormEvent(formName, form),
                     function () {
                         form.removeEventListener('submit', wem._formSubmitEventListener, true);
                         form.dispatchEvent(eventCopy);