From 2c04f6f67013afd94d93efb48423e972a25c4df6 Mon Sep 17 00:00:00 2001 From: Felix Hamann Date: Sun, 7 Apr 2019 13:48:58 +0200 Subject: [PATCH] refactor reactive submit button JS utility --- src/Foundation.hs | 2 +- static/js/utils/form.js | 151 ++++++++++++++++++++++++++++------------ 2 files changed, 109 insertions(+), 44 deletions(-) diff --git a/src/Foundation.hs b/src/Foundation.hs index 047a69955..3692aa39c 100644 --- a/src/Foundation.hs +++ b/src/Foundation.hs @@ -1075,8 +1075,8 @@ siteLayout' headingOverride widget = do -- addScript $ StaticR js_utils_asyncTableFilter_js -- addScript $ StaticR js_utils_checkAll_js -- addScript $ StaticR js_utils_httpClient_js - -- addScript $ StaticR js_utils_form_js -- JavaScript utils + addScript $ StaticR js_utils_form_js addScript $ StaticR js_utils_inputs_js addScript $ StaticR js_utils_modal_js addScript $ StaticR js_utils_poc_js diff --git a/static/js/utils/form.js b/static/js/utils/form.js index 77437a3e1..ffb6e5f5c 100644 --- a/static/js/utils/form.js +++ b/static/js/utils/form.js @@ -3,25 +3,15 @@ window.utils = window.utils || {}; + var formUtilities = []; + var JS_INITIALIZED = 'js-form-initialized'; - var SUBMIT_BUTTON_SELECTOR = '[type="submit"]:not([formnovalidate])'; var AUTOSUBMIT_BUTTON_SELECTOR = '[type="submit"][data-autosubmit]'; var AJAX_SUBMIT_FLAG = 'ajaxSubmit'; var FORM_GROUP_CLASS = 'form-group'; var FORM_GROUP_WITH_ERRORS_CLASS = 'form-group--has-error'; - function formValidator(inputs) { - var done = true; - inputs.forEach(function(inp) { - var len = inp.value.trim().length; - if (done && len === 0) { - done = false; - } - }); - return done; - } - window.utils.form = function(form, options) { options = options || {}; @@ -77,50 +67,119 @@ }; }; - // registers input-listener for each element in (array) and - // enables