for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace SilverStripe\Admin;
use SilverStripe\Forms\FormField;
use SilverStripe\ORM\Versioning\ChangeSet;
/**
* Warning: Volatile API as placeholder for standard "GridField"
*/
class CampaignAdminList extends FormField
{
protected $schemaDataType = FormField::SCHEMA_DATA_TYPE_CUSTOM;
protected $schemaComponent = 'GridField';
public function getSchemaDataDefaults()
$data = parent::getSchemaDataDefaults();
// Get endpoints from admin
$admin = CampaignAdmin::singleton();
$data['data']['recordType'] = $admin->config()->get('tree_class');
$oneSetAction = $admin->Link("set") . "/:id";
$setsAction = $admin->Link("sets");
$schemaEndpoint = $admin->Link("schema") . "/DetailEditForm";
// Merge custom endpoints
$data['data']['collectionReadEndpoint'] = [
"url" => $setsAction,
"method" => "GET",
];
$data['data']['itemReadEndpoint'] = [
"url" => $oneSetAction,
$data['data']['itemUpdateEndpoint'] = [
"method" => "PUT"
$data['data']['itemCreateEndpoint'] = [
"method" => "POST"
$data['data']["itemDeleteEndpoint"] = [
"method" => "DELETE"
$data['data']['editFormSchemaEndpoint'] = $schemaEndpoint;
// Set summary columns
$columns = [];
foreach(ChangeSet::singleton()->summaryFields() as $field => $label) {
$columns[] = [
'field' => $field,
'name' => $label,
}
$data['data']['columns'] = $columns;
// Return
return $data;