Completed
Push — master ( 2846af...322d3e )
by Ingo
12:00
created

CampaignAdminList::getSchemaDataDefaults()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 47
Code Lines 30

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 30
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 47
rs 9.0303
1
<?php
2
3
4
namespace SilverStripe\Admin;
5
6
use SilverStripe\Forms\FormField;
7
use SilverStripe\ORM\Versioning\ChangeSet;
8
9
/**
10
 * Warning: Volatile API as placeholder for standard "GridField"
11
 */
12
class CampaignAdminList extends FormField
13
{
14
    protected $schemaDataType = FormField::SCHEMA_DATA_TYPE_CUSTOM;
15
16
    protected $schemaComponent = 'GridField';
17
18
    public function getSchemaDataDefaults()
19
    {
20
        $data = parent::getSchemaDataDefaults();
21
22
        // Get endpoints from admin
23
        $admin = CampaignAdmin::singleton();
24
        $data['data']['recordType'] = $admin->config()->get('tree_class');
25
        $oneSetAction = $admin->Link("set") . "/:id";
26
        $setsAction = $admin->Link("sets");
27
        $schemaEndpoint = $admin->Link("schema") . "/DetailEditForm";
28
29
        // Merge custom endpoints
30
        $data['data']['collectionReadEndpoint'] = [
31
            "url" => $setsAction,
32
            "method" => "GET",
33
        ];
34
        $data['data']['itemReadEndpoint'] = [
35
            "url" => $oneSetAction,
36
            "method" => "GET",
37
        ];
38
        $data['data']['itemUpdateEndpoint'] = [
39
            "url" => $oneSetAction,
40
            "method" => "PUT"
41
        ];
42
		$data['data']['itemCreateEndpoint'] = [
43
            "url" => $oneSetAction,
44
            "method" => "POST"
45
        ];
46
		$data['data']["itemDeleteEndpoint"] = [
47
            "url" => $oneSetAction,
48
            "method" => "DELETE"
49
        ];
50
        $data['data']['editFormSchemaEndpoint'] =  $schemaEndpoint;
51
52
        // Set summary columns
53
        $columns = [];
54
        foreach(ChangeSet::singleton()->summaryFields() as $field => $label) {
55
            $columns[] = [
56
                'field' => $field,
57
                'name' => $label,
58
            ];
59
        }
60
        $data['data']['columns'] = $columns;
61
62
        // Return
63
        return $data;
64
    }
65
}
66