From ad5aeb083fa5d6f625f6aec15c844b4214442d14 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Szubert?= Date: Tue, 30 Aug 2016 08:46:18 +0200 Subject: [PATCH 1/2] Checkout agreements fix, not only first input required --- .../web/js/model/agreement-validator.js | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js b/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js index 3d030a62eb425..952dbd37d11f2 100644 --- a/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js +++ b/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js @@ -23,26 +23,33 @@ define( * @returns {boolean} */ validate: function() { - if (!agreementsConfig.isEnabled) { - return true; + var noError = true; + if (!agreementsConfig.isEnabled || $(agreementsInputPath).length == 0) { + return noError; } - if ($(agreementsInputPath).length == 0) { - return true; - } + $(agreementsInputPath).each(function() { + var name = $(this).attr('name'); - return $('#co-payment-form').validate({ - errorClass: 'mage-error', - errorElement: 'div', - meta: 'validate', - errorPlacement: function (error, element) { - var errorPlacement = element; - if (element.is(':checkbox') || element.is(':radio')) { - errorPlacement = element.siblings('label').last(); + var result = $('#co-payment-form').validate({ + errorClass: 'mage-error', + errorElement: 'div', + meta: 'validate', + errorPlacement: function (error, element) { + var errorPlacement = element; + if (element.is(':checkbox') || element.is(':radio')) { + errorPlacement = element.siblings('label').last(); + } + errorPlacement.after(error); } - errorPlacement.after(error); + }).element(agreementsInputPath + '[name="' + name + '"]'); + + if (!result) { + noError = false; } - }).element(agreementsInputPath); + }); + + return noError; } } } From 71f98a4b1df415695d7cc3c16cee8371a3ba59f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bart=C5=82omiej=20Szubert?= Date: Tue, 30 Aug 2016 09:33:34 +0200 Subject: [PATCH 2/2] Fix for #6224, uncheck other payments agreements before validation --- .../view/frontend/web/js/model/agreement-validator.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js b/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js index 952dbd37d11f2..3c15506150a7b 100644 --- a/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js +++ b/app/code/Magento/CheckoutAgreements/view/frontend/web/js/model/agreement-validator.js @@ -28,6 +28,11 @@ define( return noError; } + $('.payment-method:not(._active) div.checkout-agreements input') + .prop('checked', false) + .removeClass('mage-error') + .siblings('.mage-error[generated="true"]').remove(); + $(agreementsInputPath).each(function() { var name = $(this).attr('name');