diff --git a/src/apis/forceValidation.js b/src/apis/forceValidation.js new file mode 100644 index 0000000..20173dc --- /dev/null +++ b/src/apis/forceValidation.js @@ -0,0 +1,56 @@ + +let forceValidation = (notUgly, smart, groupsToValidate, element) => { //force validation has to return true or false + var areThereErrors = false; + let validMeTask = {}; + if (!window.validMeReact) { + areThereErrors = true; + } else { + let validMeManager = window.validMeReact.validMeManager; + if (notUgly) { + if (validMeManager.validMeQueue.forEach != undefined) { + + for (var i = 0; i < validMeManager.validMeQueue.length; i++) { + validMeTask = {}; + validMeTask = validMeManager.validMeQueue[i]; + validMeManager.validationTask(validMeTask, true); + } + } + } else if (smart) { + for (var i = 0; i < validMeManager.validMeQueue.length; i++) { + function timer(id) { + var _this = this; + this.id = id; + this.execute = function () { + var validMeTask = validMeManager.validMeQueue[_this.id]; + if (isHidden(validMeTask.element)) { + validMeManager.validationTask(validMeTask, true); + } + } + } + setTimeout(new timer(i).execute, 100) + } + } else if (groupsToValidate != undefined) { + let showErrorsIfNeeded = true; + areThereErrors = groupValidation(groupsToValidate, showErrorsIfNeeded); + } else if (element != undefined) { + + for (var i = 0; i < validMeManager.validMeQueue.length; i++) { + validMeTask = {}; + validMeTask = validMeManager.validMeQueue[i]; + if (validMeTask.props.ngModel != undefined) { + if (validMeTask.props.ngModel.split(".name").join("") == element.attr("modelBind")) { + validMeManager.validationTask(validMeTask, true); + } else if (validMeTask.props.ngModel.split(".name").join("") == element.attr("ng-model")) { + validMeManager.validationTask(validMeTask, true); + } else if (validMeTask.props.ngModel.split(".name").join("") == element.attr("ngmodel")) { + validMeManager.validationTask(validMeTask, true); + } + } + } + } + } + return areThereErrors; +} +module.exports = { + forceValidation : forceValidation +} diff --git a/src/helper.js b/src/helper.js new file mode 100644 index 0000000..5c54194 --- /dev/null +++ b/src/helper.js @@ -0,0 +1,49 @@ +let isHidden = (el) => { + return (el.offsetParent === null) +} + +let isVisible = (el) => { + return !isHidden(el); +} + +let enableActionButton = (group) => { + $('[data-group*="' + group + '"]').toggleClass('disable', false) +} +let disableActionButton = (group) => { + $('[data-group*="' + group + '"]').toggleClass('disable', true) +} + + +let groupValidation = (groupsName, showErrorsIfNeeded) => { + let errors = false; + if (groupsName.split('&').length > 1) { + + groupsName.split('&').forEach((o, i) => { + if (groupValidationLoop(o, showErrorsIfNeeded)) { + if (groupsName.toLowerCase().indexOf('mandatory') < 0) { //if it is not mandatory to pass all validations + disableActionButton(o); + } + errors = true; + return false; + } else + enableActionButton(o); + } + ) + if (errors) { + //TODO CONTINUE WORK HERE + } + } else { + if (groupValidationLoop(groupsName, showErrorsIfNeeded)) { + disableActionButton(groupsName); + errors = true; + } else + enableActionButton(groupsName); + } + return errors; +} + +module.exports= { + isHidden, + isVisible, + groupValidation +}