Skip to content
Snippets Groups Projects
Unverified Commit f9799faf authored by Fredrik Jonsson's avatar Fredrik Jonsson Committed by GitHub
Browse files

Merge pull request #1455 from OpenTechFund/feature/spam-protect-newsletter-form

Make the spam protect javascript more generic and use it for newslett…
parents 3baf5081 78b791bd
No related branches found
No related tags found
No related merge requests found
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
<h1>{{ page.title }}</h1> <h1>{{ page.title }}</h1>
{{ page.intro|richtext }} {{ page.intro|richtext }}
<p class="wrapper--error message-no-js js-hidden">You must have Javascript enabled to use this form.</p> <p class="wrapper--error message-no-js js-hidden">You must have Javascript enabled to use this form.</p>
<form class="form wagtail-form" action="#" data-pageurl="{% pageurl page %}" method="post" enctype="multipart/form-data"> <form class="form wagtail-form" action="#" data-actionpath="{% pageurl page %}" method="post" enctype="multipart/form-data">
{% csrf_token %} {% csrf_token %}
{{ form.media }} {{ form.media }}
{% for field in form %} {% for field in form %}
...@@ -22,5 +22,5 @@ ...@@ -22,5 +22,5 @@
{% endblock %} {% endblock %}
{% block extra_js %} {% block extra_js %}
<script src="{% static 'js/public/wagtail-form.js' %}"></script> <script src="{% static 'js/public/protect-form.js' %}"></script>
{% endblock %} {% endblock %}
{% load static i18n %}
<h4>Get the latest internet freedom news</h4> <h4>Get the latest internet freedom news</h4>
<form class="form" action="{{ PUBLIC_SITE.root_url }}{% url "newsletter:subscribe" %}" method="post"> <form class="form newsletter-form" action="#" data-actionpath="{{ PUBLIC_SITE.root_url }}{% url "newsletter:subscribe" %}" method="post">
<div> <div>
{% for field in newsletter_form %} {% for field in newsletter_form %}
<label for="{{ field.id_for_label }}"{% if field.field.required %} required{% endif %}> <label for="{{ field.id_for_label }}"{% if field.field.required %} required{% endif %}>
...@@ -11,7 +12,11 @@ ...@@ -11,7 +12,11 @@
{{ field }} {{ field }}
{% endfor %} {% endfor %}
<div class="form-actions form-wrapper"> <div class="form-actions form-wrapper">
<input type="submit" value="Sign up" class="form-submit button button--transparent--wide link--footer-signup"> <button class="form-submit button button--transparent--wide link--footer-signup" type="submit">{% trans 'Sign up' %}</button>
</div> </div>
</div> </div>
</form> </form>
{% block extra_js %}
<script src="{% static 'js/public/protect-form.js' %}"></script>
{% endblock %}
...@@ -2,10 +2,10 @@ ...@@ -2,10 +2,10 @@
'use strict'; 'use strict';
$('.wagtail-form').each(function () { $('.wagtail-form, .newsletter-form').each(function () {
var $wagtail_form = $(this); var $protect_form = $(this);
var $wagtail_form_button = $wagtail_form.find('button[type="submit"]'); var $protect_form_button = $protect_form.find('button[type="submit"]');
var wagtail_form_action = $wagtail_form.data('pageurl'); var protect_form_action = $protect_form.data('actionpath');
// Remove the "no javascript" messages // Remove the "no javascript" messages
$('.message-no-js').detach(); $('.message-no-js').detach();
...@@ -13,23 +13,23 @@ ...@@ -13,23 +13,23 @@
// Wait for a mouse to move, indicating they are human. // Wait for a mouse to move, indicating they are human.
$('body').mousemove(function () { $('body').mousemove(function () {
// Unlock the form. // Unlock the form.
$wagtail_form.attr('action', wagtail_form_action); $protect_form.attr('action', protect_form_action);
$wagtail_form_button.attr('disabled', false); $protect_form_button.attr('disabled', false);
}); });
// Wait for a touch move event, indicating that they are human. // Wait for a touch move event, indicating that they are human.
$('body').on('touchmove', function () { $('body').on('touchmove', function () {
// Unlock the form. // Unlock the form.
$wagtail_form.attr('action', wagtail_form_action); $protect_form.attr('action', protect_form_action);
$wagtail_form_button.attr('disabled', false); $protect_form_button.attr('disabled', false);
}); });
// A tab or enter key pressed can also indicate they are human. // A tab or enter key pressed can also indicate they are human.
$('body').keydown(function (e) { $('body').keydown(function (e) {
if ((e.keyCode === 9) || (e.keyCode === 13)) { if ((e.keyCode === 9) || (e.keyCode === 13)) {
// Unlock the form. // Unlock the form.
$wagtail_form.attr('action', wagtail_form_action); $protect_form.attr('action', protect_form_action);
$wagtail_form_button.attr('disabled', false); $protect_form_button.attr('disabled', false);
} }
}); });
}); });
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment