Skip to content
Snippets Groups Projects
Commit cd6c6dc2 authored by Jan-Hendrik Willms's avatar Jan-Hendrik Willms Committed by David Siegfried
Browse files

fixes #3678

Closes #3678

Merge request studip/studip!2575
parent c46e214e
No related branches found
No related tags found
No related merge requests found
<?php <?php
use Studip\Forms\Form;
class RegistrationController extends AuthenticatedController class RegistrationController extends AuthenticatedController
{ {
protected $allow_nobody = true; protected $allow_nobody = true;
...@@ -14,7 +17,7 @@ class RegistrationController extends AuthenticatedController ...@@ -14,7 +17,7 @@ class RegistrationController extends AuthenticatedController
{ {
$new_user = new User(); $new_user = new User();
$this->registrationform = \Studip\Forms\Form::fromSORM( $this->registrationform = Form::fromSORM(
$new_user, $new_user,
[ [
'legend' => _('Herzlich willkommen!'), 'legend' => _('Herzlich willkommen!'),
...@@ -108,7 +111,7 @@ class RegistrationController extends AuthenticatedController ...@@ -108,7 +111,7 @@ class RegistrationController extends AuthenticatedController
$this->registrationform->setCancelButtonName(URLHelper::getURL('index.php?cancel_login=1')); $this->registrationform->setCancelButtonName(URLHelper::getURL('index.php?cancel_login=1'));
$this->registrationform->addStoreCallback( $this->registrationform->addStoreCallback(
function ($form) { function (Form $form) {
$new_user = $form->getLastPart()->getContextObject(); $new_user = $form->getLastPart()->getContextObject();
$GLOBALS['sess']->regenerate_session_id(['auth']); $GLOBALS['sess']->regenerate_session_id(['auth']);
......
...@@ -318,6 +318,7 @@ class Form extends Part ...@@ -318,6 +318,7 @@ class Form extends Part
} }
} }
} }
header('Content-Type: application/json');
echo json_encode($output); echo json_encode($output);
page_close(); page_close();
die(); die();
......
...@@ -323,11 +323,10 @@ STUDIP.ready(function () { ...@@ -323,11 +323,10 @@ STUDIP.ready(function () {
let v = this; let v = this;
this.STUDIPFORM_VALIDATIONNOTES = []; this.STUDIPFORM_VALIDATIONNOTES = [];
let validation_promise = new Promise(function (resolve, reject) { return new Promise((resolve, reject) => {
let validated = v.$el.checkValidity(); let validated = v.$el.checkValidity();
$(v.$el).find('input, select, textarea').each(function () { $(v.$el).find('input, select, textarea').each(function () {
let name = $(this).attr('name');
if (!this.validity.valid) { if (!this.validity.valid) {
let note = { let note = {
name: this.name, name: this.name,
...@@ -362,35 +361,30 @@ STUDIP.ready(function () { ...@@ -362,35 +361,30 @@ STUDIP.ready(function () {
v.STUDIPFORM_VALIDATIONNOTES.push(note); v.STUDIPFORM_VALIDATIONNOTES.push(note);
} }
}); });
if (v.STUDIPFORM_SERVERVALIDATION) {
if (v.STUDIPFORM_SERVERVALIDATION) {
let params = v.getFormValues(); let params = v.getFormValues();
if (v.STUDIPFORM_AUTOSAVEURL) {
params.STUDIPFORM_AUTOSTORE = 1;
}
params.STUDIPFORM_SERVERVALIDATION = 1; params.STUDIPFORM_SERVERVALIDATION = 1;
$.ajax({ $.post(v.STUDIPFORM_VALIDATION_URL, params).done((output) => {
url: v.STUDIPFORM_VALIDATION_URL, for (let i in output) {
data: params, v.STUDIPFORM_VALIDATIONNOTES.push({
type: 'post', name: output[i].name,
dataType: 'json', label: output[i].label,
success(output) { description: output[i].error,
for (let i in output) { describedby: null
let note = { });
name: output[i].name,
label: output[i].label,
description: output[i].error,
describedby: null
};
v.STUDIPFORM_VALIDATIONNOTES.push(note);
}
validated = v.STUDIPFORM_VALIDATIONNOTES.length < 1;
resolve(validated);
} }
validated = v.STUDIPFORM_VALIDATIONNOTES.length < 1;
resolve(validated);
}); });
} else { } else {
resolve(validated); resolve(validated);
} }
}); });
return validation_promise;
}, },
setInputs(inputs) { setInputs(inputs) {
for (const [key, value] of Object.entries(inputs)) { for (const [key, value] of Object.entries(inputs)) {
......
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