IMPR: Minor fixtures

This commit is contained in:
Tony Air 2024-03-12 01:32:50 +02:00
parent d65c85a192
commit f2652b48c3
1 changed files with 18 additions and 10 deletions

View File

@ -213,10 +213,7 @@ class AjaxControllerEx extends Extension
); );
$body = $response->getBody(); $body = $response->getBody();
if (self::isFormRequest()) {
if (!$body && self::isFormRequest()) {
// form validation response
/* @var $req \SilverStripe\Control\HTTPRequest */ /* @var $req \SilverStripe\Control\HTTPRequest */
$req = $ctrl->getRequest(); $req = $ctrl->getRequest();
$sess = $req->getSession(); $sess = $req->getSession();
@ -224,7 +221,8 @@ class AjaxControllerEx extends Extension
$formName = $req->requestVar('formid'); $formName = $req->requestVar('formid');
$data = $sess->get('FormInfo'); $data = $sess->get('FormInfo');
if ($formName && $data) { // form validation response
if ($formName && $data && isset($data[$formName]['result'])) {
$sess->clear('FormInfo.'.$formName); $sess->clear('FormInfo.'.$formName);
/* @var $valid \SilverStripe\ORM\ValidationResult */ /* @var $valid \SilverStripe\ORM\ValidationResult */
@ -240,18 +238,28 @@ class AjaxControllerEx extends Extension
$response->removeHeader('Location'); $response->removeHeader('Location');
$response->setStatusCode(200); $response->setStatusCode(200);
$response->setBody($body);
return $response;
} }
} elseif (!$body && $response->isRedirect()) { }
// ajax redirect
// ajax redirect
if ($response->isRedirect()) {
$body = json_encode([ $body = json_encode([
'location' => $response->getHeader('location'), 'location' => $response->getHeader('location'),
'ajax' => true, 'loadAjax' => true,
]); ]);
$response->removeHeader('Location'); $response->removeHeader('Location');
$response->setStatusCode(200); $response->setStatusCode(200);
} elseif (!self::isJson($body)) { $response->setBody($body);
// render page
return $response;
}
// render page
if (!self::isJson($body)) {
$body = json_encode([ $body = json_encode([
'ID' => $record->ID, 'ID' => $record->ID,
'Title' => $record->Title, 'Title' => $record->Title,