Skip to content

Commit bad4429

Browse files
committed
Add redirect after submission action
1 parent 1c4c288 commit bad4429

File tree

3 files changed

+34
-4
lines changed

3 files changed

+34
-4
lines changed

djangocms_form_builder/actions.py

Lines changed: 27 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import hashlib
22

33
from django import forms
4+
from django.apps import apps
45
from django.core.exceptions import ImproperlyConfigured
56
from django.core.mail import mail_admins, send_mail
67
from django.core.validators import EmailValidator
@@ -223,8 +224,8 @@ def execute(self, form, request):
223224

224225

225226
@register
226-
class SubmitMessageAction(FormAction):
227-
verbose_name = _("Submit message")
227+
class SuccessMessageAction(FormAction):
228+
verbose_name = _("Success message")
228229

229230
class Meta:
230231
entangled_fields = {
@@ -244,3 +245,27 @@ def execute(self, form, request):
244245
form.get_success_context = lambda *args, **kwargs: {"message": message}
245246
form.Meta.options["render_success"] = "djangocms_form_builder/actions/submit_message.html"
246247
form.Meta.options["redirect"] = None
248+
249+
250+
if apps.is_installed("djangocms_link"):
251+
from djangocms_link.fields import LinkFormField
252+
from djangocms_link.helpers import get_link
253+
254+
@register
255+
class RedirectAction(FormAction):
256+
verbose_name = _("Redirect after submission")
257+
258+
class Meta:
259+
entangled_fields = {
260+
"action_parameters": [
261+
"redirect_link",
262+
]
263+
}
264+
265+
redirect_link = LinkFormField(
266+
label=_("Link"),
267+
required=True,
268+
)
269+
270+
def execute(self, form, request):
271+
form.Meta.options["redirect"] = get_link(self.get_parameter(form, "redirect_link"))
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
1-
fieldset.action-hide {
1+
fieldset.action-hide, fieldset.empty {
22
display: none;
33
}

djangocms_form_builder/static/djangocms_form_builder/js/actions_form.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
$(function () {
2+
'use strict';
23
$('fieldset.action-auto-hide input[type="checkbox"][name="form_actions"]').each(function (index, element) {
4+
const target = $('.' + $(element).attr("value"));
35
if (element.checked) {
4-
$("."+$(element).attr("value")).removeClass("action-hide");
6+
target.removeClass("action-hide");
7+
}
8+
if (!target.find('.form-row:not(.hidden)').length) {
9+
target.addClass("empty");
510
}
611
$(element).on("change", function (event) {
712
var element = event.target;

0 commit comments

Comments
 (0)