CampaignAdminList   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 63
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
eloc 33
c 2
b 0
f 0
dl 0
loc 63
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A FieldHolder() 0 3 1
A getSchemaDataDefaults() 0 46 2
1
<?php
2
3
4
namespace SilverStripe\CampaignAdmin;
5
6
use SilverStripe\Forms\FormField;
7
use SilverStripe\Versioned\ChangeSet;
8
9
/**
10
 * Warning: Volatile API as placeholder for standard "GridField"
11
 * @skipUpgrade
12
 */
13
class CampaignAdminList extends FormField
14
{
15
    protected $schemaDataType = FormField::SCHEMA_DATA_TYPE_CUSTOM;
16
17
    protected $schemaComponent = 'GridField';
18
19
    /**
20
     * Placeholder for react-only custom form field
21
     *
22
     * @param array $properties
23
     * @return string
24
     */
25
    public function FieldHolder($properties = [])
26
    {
27
        return '';
28
    }
29
30
    public function getSchemaDataDefaults()
31
    {
32
        $data = parent::getSchemaDataDefaults();
33
34
        // Get endpoints from admin
35
        $admin = CampaignAdmin::singleton();
36
        $data['data']['recordType'] = $admin->config()->uninherited('tree_class');
37
        $oneSetAction = $admin->Link("set") . "/:id";
38
        $setsAction = $admin->Link("sets");
39
        $schemaEndpoint = $admin->Link("schema") . "/DetailEditForm";
40
41
        // Merge custom endpoints
42
        $data['data']['collectionReadEndpoint'] = [
43
            "url" => $setsAction,
44
            "method" => "GET",
45
        ];
46
        $data['data']['itemReadEndpoint'] = [
47
            "url" => $oneSetAction,
48
            "method" => "GET",
49
        ];
50
        $data['data']['itemUpdateEndpoint'] = [
51
            "url" => $oneSetAction,
52
            "method" => "PUT"
53
        ];
54
        $data['data']['itemCreateEndpoint'] = [
55
            "url" => $oneSetAction,
56
            "method" => "POST"
57
        ];
58
        $data['data']["itemDeleteEndpoint"] = [
59
            "url" => $oneSetAction,
60
            "method" => "DELETE"
61
        ];
62
        $data['data']['editFormSchemaEndpoint'] =  $schemaEndpoint;
63
64
        // Set summary columns
65
        $columns = [];
66
        foreach (ChangeSet::singleton()->summaryFields() as $field => $label) {
67
            $columns[] = [
68
                'field' => $field,
69
                'name' => $label,
70
            ];
71
        }
72
        $data['data']['columns'] = $columns;
73
74
        // Return
75
        return $data;
76
    }
77
}
78