Passed
Push — master ( d75da7...effb68 )
by Ferry
03:08
created

DefaultOption::validation()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 11
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 5
dl 0
loc 11
c 0
b 0
f 0
rs 10
cc 1
nc 1
nop 2
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: User
5
 * Date: 1/26/2019
6
 * Time: 6:00 PM
7
 */
8
9
namespace crocodicstudio\crudbooster\controllers\scaffolding\traits;
10
11
use crocodicstudio\crudbooster\models\ColumnModel;
12
13
trait DefaultOption
14
{
15
    private $index;
16
17
    public function __construct($index = null)
18
    {
19
        $this->index = $index;
20
    }
21
22
    public function visible($boolean = true)
23
    {
24
        /** @var ColumnModel $data */
25
        $data = ColumnSingleton()->getColumn($this->index);
26
        $data->setVisible($boolean);
27
28
        // Save back
29
        columnSingleton()->setColumn($this->index, $data);
30
31
        return $this;
32
    }
33
34
    public function defaultValue($value)
35
    {
36
        /** @var ColumnModel $data */
37
        $data = ColumnSingleton()->getColumn($this->index);
38
        $data->setDefaultValue($value);
39
40
        // Save Back
41
        columnSingleton()->setColumn($this->index, $data);
42
43
        return $this;
44
    }
45
46
    /**
47
     * @param callable $transform
48
     */
49
    public function indexDisplayTransform(callable $transform) {
50
        $data = columnSingleton()->getColumn($this->index);
51
        /** @var ColumnModel $data */
52
        $data->setIndexDisplayTransform($transform);
53
        columnSingleton()->setColumn($this->index, $data);
54
        return $this;
55
    }
56
57
    /**
58
     * @param callable $transform
59
     */
60
    public function detailDisplayTransform(callable $transform) {
61
        $data = columnSingleton()->getColumn($this->index);
62
        /** @var ColumnModel $data */
63
        $data->setDetailDisplayTransform($transform);
64
        columnSingleton()->setColumn($this->index, $data);
65
        return $this;
66
    }
67
68
    public function inputWidth($width)
69
    {
70
        /** @var ColumnModel $data */
71
        $data = columnSingleton()->getColumn($this->index);
72
        $data->setInputWidth($width);
73
74
        // Save back
75
        columnSingleton()->setColumn($this->index, $data);
76
77
        return $this;
78
    }
79
80
    public function columnWidth($width)
81
    {
82
        /** @var ColumnModel $data */
83
        $data = ColumnSingleton()->getColumn($this->index);
84
        $data->setColumnWidth($width);
85
86
        // Save back
87
        columnSingleton()->setColumn($this->index, $data);
88
89
        return $this;
90
    }
91
92
    public function required($boolean = true)
93
    {
94
        /** @var ColumnModel $data */
95
        $data = ColumnSingleton()->getColumn($this->index);
96
        $data->setRequired($boolean);
97
98
        // Save back
99
        columnSingleton()->setColumn($this->index, $data);
100
101
        return $this;
102
    }
103
104
    public function help($helpText = null)
105
    {
106
        /** @var ColumnModel $data */
107
        $data = ColumnSingleton()->getColumn($this->index);
108
        $data->setHelp($helpText);
109
110
        // Save back
111
        columnSingleton()->setColumn($this->index, $data);
112
113
        return $this;
114
    }
115
116
    public function placeholder($placeholderText = null)
117
    {
118
        /** @var ColumnModel $data */
119
        $data = ColumnSingleton()->getColumn($this->index);
120
        $data->setPlaceholder($placeholderText);
121
122
        // Save back
123
        columnSingleton()->setColumn($this->index, $data);
124
125
        return $this;
126
    }
127
128
    public function validation($rule = null, $custom_messages = [])
129
    {
130
        /** @var ColumnModel $data */
131
        $data = ColumnSingleton()->getColumn($this->index);
132
        $data->setValidation($rule);
133
        $data->setValidationMessages($custom_messages);
134
135
        // Save back
136
        columnSingleton()->setColumn($this->index, $data);
137
138
        return $this;
139
    }
140
141
    public function showIndex($show = true)
142
    {
143
        /** @var ColumnModel $data */
144
        $data = ColumnSingleton()->getColumn($this->index);
145
        $data->setShowIndex($show);
146
147
        // Save back
148
        columnSingleton()->setColumn($this->index, $data);
149
150
        return $this;
151
    }
152
153
    public function showEdit($show = true)
154
    {
155
        /** @var ColumnModel $data */
156
        $data = ColumnSingleton()->getColumn($this->index);
157
        $data->setShowEdit($show);
158
159
        // Save back
160
        columnSingleton()->setColumn($this->index, $data);
161
162
        return $this;
163
    }
164
165
    public function showAdd($show = true)
166
    {
167
        /** @var ColumnModel $data */
168
        $data = ColumnSingleton()->getColumn($this->index);
169
        $data->setShowAdd($show);
170
171
        // Save back
172
        columnSingleton()->setColumn($this->index, $data);
173
174
        return $this;
175
    }
176
177
    public function showDetail($show = true)
178
    {
179
        /** @var ColumnModel $data */
180
        $data = ColumnSingleton()->getColumn($this->index);
181
        $data->setShowDetail($show);
182
183
        // Save back
184
        columnSingleton()->setColumn($this->index, $data);
185
186
        return $this;
187
    }
188
189
}