DirtyClass   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 85
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 2
Bugs 0 Features 0
Metric Value
eloc 23
dl 0
loc 85
ccs 15
cts 15
cp 1
rs 10
c 2
b 0
f 0
wmc 4

4 Methods

Rating   Name   Duplication   Size   Complexity  
A canEdit() 0 3 1
A canDelete() 0 3 1
A canCreate() 0 3 1
A getCMSFields() 0 15 1
1
<?php
2
/**
3
 * class DirtyClass|Firesphere\SolrSearch\Models\DirtyClass Store Dirty classes for re-indexing
4
 *
5
 * @package Firesphere\Solr\Search
6
 * @author Simon `Firesphere` Erkelens; Marco `Sheepy` Hermo
7
 * @copyright Copyright (c) 2018 - now() Firesphere & Sheepy
8
 */
9
10
namespace Firesphere\SolrSearch\Models;
11
12
use SilverStripe\Forms\FieldList;
13
use SilverStripe\Forms\ReadonlyField;
14
use SilverStripe\ORM\DataObject;
15
use SilverStripe\Security\Member;
16
17
/**
18
 * Class \Firesphere\SolrSearch\Models\DirtyClass
19
 * Keeping track of Dirty classes in Solr
20
 *
21
 * @package Firesphere\Solr\Search
22
 * @property string $Type
23
 * @property string $Class
24
 * @property string $IDs
25
 */
26
class DirtyClass extends DataObject
27
{
28
    /**
29
     * @var string Table name
30
     */
31
    private static $table_name = 'Solr_DirtyClass';
32
    /**
33
     * @var string Singular name
34
     */
35
    private static $singular_name = 'Dirty class';
36
    /**
37
     * @var string Plural name
38
     */
39
    private static $plural_name = 'Dirty classes';
40
    /**
41
     * @var array Database fields
42
     */
43
    private static $db = [
44
        'Type'  => 'Varchar(6)',
45
        'Class' => 'Varchar(512)',
46
        'IDs'   => 'Varchar(255)',
47
    ];
48
    /**
49
     * @var array Summary fields in CMS
50
     */
51
    private static $summary_fields = [
52
        'Class',
53
        'Type',
54
        'IDs',
55
    ];
56
57
    /**
58
     * Make the CMS fields readable
59
     *
60
     * @return FieldList
61
     */
62 1
    public function getCMSFields()
63
    {
64 1
        $fields = parent::getCMSFields();
65 1
        $fields->removeByName(['Class', 'IDs']);
66
67 1
        $class = singleton($this->Class)->plural_name();
68
69 1
        $IDs = json_decode($this->IDs, true);
70
71 1
        $fields->addFieldsToTab('Root.Main', [
72 1
            ReadonlyField::create('Class', 'Class', $class),
73 1
            ReadonlyField::create('IDs', _t(self::class . '.DIRTYIDS', 'Dirty IDs'), $IDs),
74
        ]);
75
76 1
        return $fields;
77
    }
78
79
    /**
80
     * Nope, can't delete these
81
     *
82
     * @param null|Member $member
83
     * @return bool
84
     */
85 1
    public function canDelete($member = null)
86
    {
87 1
        return false;
88
    }
89
90
    /**
91
     * Nope, can't edit these
92
     *
93
     * @param null|Member $member
94
     * @return bool
95
     */
96 1
    public function canEdit($member = null)
97
    {
98 1
        return false;
99
    }
100
101
    /**
102
     * Nope, can't create these
103
     *
104
     * @param null|Member $member
105
     * @param array $context
106
     * @return bool
107
     */
108 1
    public function canCreate($member = null, $context = [])
109
    {
110 1
        return false;
111
    }
112
}
113