Fix form handling for user feedback
issue was noticed on demo site, but possibly existed elsewhere? also not 100% sure about this fix, but it's believed to be okay...
This commit is contained in:
parent
287464362e
commit
fda7230bce
|
@ -918,16 +918,13 @@ class Form(object):
|
||||||
if self.request.method != 'POST':
|
if self.request.method != 'POST':
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# we assume data is in the form of POST params
|
# use POST or JSON body, whichever is present
|
||||||
controls = self.request.POST.items()
|
# TODO: per docs, some JS libraries may not set this flag?
|
||||||
|
# https://docs.pylonsproject.org/projects/pyramid/en/latest/api/request.html#pyramid.request.Request.is_xhr
|
||||||
# but if not, we can try to parse request body as JSON
|
if self.request.is_xhr:
|
||||||
if not controls:
|
|
||||||
try:
|
|
||||||
controls = self.request.json_body.items()
|
controls = self.request.json_body.items()
|
||||||
except ValueError:
|
else:
|
||||||
# not a valid JSON body, so no data
|
controls = self.request.POST.items()
|
||||||
controls = []
|
|
||||||
|
|
||||||
dform = self.make_deform_form()
|
dform = self.make_deform_form()
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -27,8 +27,13 @@ let FeedbackForm = {
|
||||||
}
|
}
|
||||||
|
|
||||||
this.$http.post(this.action, params, {headers: headers}).then(({ data }) => {
|
this.$http.post(this.action, params, {headers: headers}).then(({ data }) => {
|
||||||
this.showDialog = false
|
if (data.ok) {
|
||||||
alert("Message successfully sent.\n\nThank you for your feedback.")
|
alert("Message successfully sent.\n\nThank you for your feedback.")
|
||||||
|
this.showDialog = false
|
||||||
|
} else {
|
||||||
|
alert("Sorry! Your message could not be sent.\n\n"
|
||||||
|
+ "Please try to contact the site admin some other way.")
|
||||||
|
}
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue