2016-10-14 03:30:05 +02:00
|
|
|
<?php
|
|
|
|
|
|
|
|
namespace SilverStripe\Control\Tests\RequestHandlingTest;
|
|
|
|
|
|
|
|
use SilverStripe\Control\Controller;
|
|
|
|
use SilverStripe\Dev\TestOnly;
|
|
|
|
use SilverStripe\Forms\FieldList;
|
|
|
|
use SilverStripe\Forms\Form;
|
|
|
|
use SilverStripe\Forms\FormAction;
|
|
|
|
use SilverStripe\Forms\TextField;
|
|
|
|
use SilverStripe\View\SSViewer;
|
|
|
|
|
|
|
|
class FormActionController extends Controller implements TestOnly
|
|
|
|
{
|
2016-12-16 05:34:21 +01:00
|
|
|
protected $template = 'BlankPage';
|
2016-10-14 03:30:05 +02:00
|
|
|
|
2017-03-02 03:24:38 +01:00
|
|
|
private static $url_segment = 'FormActionController';
|
|
|
|
|
2020-04-20 19:58:09 +02:00
|
|
|
private static $allowed_actions = [
|
2016-12-16 05:34:21 +01:00
|
|
|
'controlleraction',
|
|
|
|
'Form',
|
|
|
|
'formactionInAllowedActions'
|
|
|
|
//'formaction', // left out, implicitly allowed through form action
|
2020-04-20 19:58:09 +02:00
|
|
|
];
|
2016-10-14 03:30:05 +02:00
|
|
|
|
2016-12-16 05:34:21 +01:00
|
|
|
public function controlleraction($request)
|
|
|
|
{
|
|
|
|
return 'controlleraction';
|
|
|
|
}
|
2016-10-14 03:30:05 +02:00
|
|
|
|
2016-12-16 05:34:21 +01:00
|
|
|
public function disallowedcontrollermethod()
|
|
|
|
{
|
|
|
|
return 'disallowedcontrollermethod';
|
|
|
|
}
|
2016-10-14 03:30:05 +02:00
|
|
|
|
2016-12-16 05:34:21 +01:00
|
|
|
/**
|
2017-03-02 03:24:38 +01:00
|
|
|
* @skipUpgrade
|
|
|
|
*/
|
2016-12-16 05:34:21 +01:00
|
|
|
public function Form()
|
|
|
|
{
|
|
|
|
return new Form(
|
|
|
|
$this,
|
|
|
|
"Form",
|
|
|
|
new FieldList(
|
|
|
|
new TextField("MyField")
|
|
|
|
),
|
|
|
|
new FieldList(
|
|
|
|
new FormAction("formaction"),
|
|
|
|
new FormAction('formactionInAllowedActions')
|
|
|
|
)
|
|
|
|
);
|
|
|
|
}
|
2016-10-14 03:30:05 +02:00
|
|
|
|
2016-12-16 05:34:21 +01:00
|
|
|
/**
|
|
|
|
* @param array $data
|
|
|
|
* @param Form $form Made optional to simulate error behaviour in "live" environment (missing arguments don't throw a fatal error there)
|
|
|
|
* (missing arguments don't throw a fatal error there)
|
|
|
|
* @return string
|
|
|
|
*/
|
|
|
|
public function formaction($data, $form = null)
|
|
|
|
{
|
|
|
|
return 'formaction';
|
|
|
|
}
|
2016-10-14 03:30:05 +02:00
|
|
|
|
2016-12-16 05:34:21 +01:00
|
|
|
public function formactionInAllowedActions($data, $form = null)
|
|
|
|
{
|
|
|
|
return 'formactionInAllowedActions';
|
|
|
|
}
|
2016-10-14 03:30:05 +02:00
|
|
|
|
2016-12-16 05:34:21 +01:00
|
|
|
public function getViewer($action = null)
|
|
|
|
{
|
|
|
|
return new SSViewer('BlankPage');
|
|
|
|
}
|
2016-10-14 03:30:05 +02:00
|
|
|
}
|