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':
|
||||
return False
|
||||
|
||||
# we assume data is in the form of POST params
|
||||
controls = self.request.POST.items()
|
||||
|
||||
# but if not, we can try to parse request body as JSON
|
||||
if not controls:
|
||||
try:
|
||||
# use POST or JSON body, whichever is present
|
||||
# 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
|
||||
if self.request.is_xhr:
|
||||
controls = self.request.json_body.items()
|
||||
except ValueError:
|
||||
# not a valid JSON body, so no data
|
||||
controls = []
|
||||
else:
|
||||
controls = self.request.POST.items()
|
||||
|
||||
dform = self.make_deform_form()
|
||||
try:
|
||||
|
|
|
@ -27,8 +27,13 @@ let FeedbackForm = {
|
|||
}
|
||||
|
||||
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.")
|
||||
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