diff --git a/.travis.yml b/.travis.yml index a9433db17..f85e0a113 100644 --- a/.travis.yml +++ b/.travis.yml @@ -28,7 +28,7 @@ before_script: - composer self-update || true - git clone git://github.com/silverstripe-labs/silverstripe-travis-support.git ~/travis-support - "if [ \"$BEHAT_TEST\" = \"\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss; fi" - - "if [ \"$BEHAT_TEST\" = \"1\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss --require silverstripe/behat-extension,silverstripe/cms; fi" + - "if [ \"$BEHAT_TEST\" = \"1\" ]; then php ~/travis-support/travis_setup.php --source `pwd` --target ~/builds/ss --require silverstripe/behat-extension:~2,silverstripe/cms; fi" - cd ~/builds/ss - php ~/travis-support/travis_setup_selenium.php --if-env BEHAT_TEST - php ~/travis-support/travis_setup_php54_webserver.php --if-env BEHAT_TEST diff --git a/code/controller/SiteConfigLeftAndMain.php b/code/controller/SiteConfigLeftAndMain.php index 7f4a33038..e18f31087 100644 --- a/code/controller/SiteConfigLeftAndMain.php +++ b/code/controller/SiteConfigLeftAndMain.php @@ -63,10 +63,24 @@ public function getEditForm($id = null, $fields = null) } $actions = $siteConfig->getCMSActions(); - $form = CMSForm::create( + $negotiator = $this->getResponseNegotiator(); + /** @var Form $form */ + $form = Form::create( $this, 'EditForm', $fields, $actions, $validator )->setHTMLID('Form_EditForm'); - $form->setResponseNegotiator($this->getResponseNegotiator()); + $form->setValidationResponseCallback(function() use ($negotiator, $form) { + $request = $this->getRequest(); + if($request->isAjax() && $negotiator) { + $form->setupFormErrors(); + $result = $form->forTemplate(); + + return $negotiator->respond($request, array( + 'CurrentForm' => function() use($result) { + return $result; + } + )); + } + }); $form->addExtraClass('cms-content center cms-edit-form'); $form->setAttribute('data-pjax-fragment', 'CurrentForm');