validateCaptcha.coffee 606 B

123456789101112131415161718192021222324
  1. define [
  2. "base"
  3. ], (App) ->
  4. App.factory "validateCaptcha", () ->
  5. _recaptchaCallbacks = []
  6. onRecaptchaSubmit = (token) ->
  7. for cb in _recaptchaCallbacks
  8. cb(token)
  9. _recaptchaCallbacks = []
  10. recaptchaId = null
  11. validateCaptcha = (callback = (response) ->) =>
  12. if !grecaptcha?
  13. return callback()
  14. reset = () ->
  15. grecaptcha.reset()
  16. _recaptchaCallbacks.push callback
  17. _recaptchaCallbacks.push reset
  18. if !recaptchaId?
  19. el = $('#recaptcha')[0]
  20. recaptchaId = grecaptcha.render(el, {callback: onRecaptchaSubmit})
  21. grecaptcha.execute(recaptchaId)
  22. return validateCaptcha