diff options
| author | Marc Alexander <admin@m-a-styles.de> | 2019-09-25 17:13:00 +0200 |
|---|---|---|
| committer | Marc Alexander <admin@m-a-styles.de> | 2019-09-25 17:13:00 +0200 |
| commit | 36614e6f81bf4022694e3886862d184ebf9dee28 (patch) | |
| tree | 7da489e696f9b9ecd65b639f4aaa814c9dd05d2a /phpBB/assets/javascript/core.js | |
| parent | a90f5e6bcc76c06667ca9706de19a5f814a2cbf4 (diff) | |
| parent | 7fac5be2cceff962357c0a6dac900380d2cc603f (diff) | |
| download | forums-36614e6f81bf4022694e3886862d184ebf9dee28.tar forums-36614e6f81bf4022694e3886862d184ebf9dee28.tar.gz forums-36614e6f81bf4022694e3886862d184ebf9dee28.tar.bz2 forums-36614e6f81bf4022694e3886862d184ebf9dee28.tar.xz forums-36614e6f81bf4022694e3886862d184ebf9dee28.zip | |
Merge pull request #5135 from senky/ticket/15564
[ticket/15564] Switch to Invisible reCAPTCHA
Diffstat (limited to 'phpBB/assets/javascript/core.js')
| -rw-r--r-- | phpBB/assets/javascript/core.js | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/phpBB/assets/javascript/core.js b/phpBB/assets/javascript/core.js index 2ce20a3b1a..bb38441622 100644 --- a/phpBB/assets/javascript/core.js +++ b/phpBB/assets/javascript/core.js @@ -1650,6 +1650,50 @@ phpbb.lazyLoadAvatars = function loadAvatars() { }); }; +var recaptchaForm = $('.g-recaptcha').parents('form'); +var submitButton = null; +var programaticallySubmitted = false; + +phpbb.recaptchaOnLoad = function () { + // Listen to submit buttons in order to know which one was pressed + $('input[type="submit"]').each(function () { + $(this).on('click', function () { + submitButton = this; + }); + }); + + recaptchaForm.on('submit', function (e) { + if (!programaticallySubmitted) { + grecaptcha.execute(); + e.preventDefault(); + } + }); +} + +phpbb.recaptchaOnSubmit = function () { + programaticallySubmitted = true; + // If concrete button was clicked (e.g. preview instead of submit), + // let's trigger the same action + if (submitButton) { + submitButton.click(); + } else { + // Rename input[name="submit"] so that we can submit the form + if (typeof recaptchaForm.submit !== 'function') { + recaptchaForm.submit.name = 'submit_btn'; + } + recaptchaForm.submit(); + } +} + +// reCAPTCHA doesn't accept callback functions nested inside objects +// so we need to make this helper functions here +window.phpbbRecaptchaOnLoad = function() { + phpbb.recaptchaOnLoad(); +} +window.phpbbRecaptchaOnSubmit = function() { + phpbb.recaptchaOnSubmit(); +} + $(window).on('load', phpbb.lazyLoadAvatars); /** |
