1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace ByTIC\Models\SmartProperties\Properties\AbstractProperty; |
4
|
|
|
|
5
|
|
|
use ByTIC\Models\SmartProperties\Workflow\State; |
6
|
|
|
use Symfony\Component\Workflow\Definition; |
7
|
|
|
use Symfony\Component\Workflow\Event\AnnounceEvent; |
8
|
|
|
use Symfony\Component\Workflow\Marking; |
9
|
|
|
use Symfony\Component\Workflow\Transition; |
10
|
|
|
use Symfony\Component\Workflow\Workflow; |
11
|
|
|
|
12
|
|
|
/** |
13
|
|
|
* Class Generic |
14
|
|
|
* @package ByTIC\Models\SmartProperties\Properties\AbstractProperty |
15
|
|
|
*/ |
16
|
|
|
abstract class Generic extends State |
17
|
|
|
{ |
18
|
|
|
use Traits\HasItemTrait; |
19
|
|
|
use Traits\HasManagerTrait; |
20
|
|
|
use Traits\HasNameTrait; |
21
|
|
|
use Traits\HasTranslationTrait; |
22
|
|
|
|
23
|
|
|
/** |
24
|
|
|
* @var null|string |
25
|
|
|
*/ |
26
|
|
|
protected $field; |
27
|
|
|
|
28
|
|
|
/** |
29
|
|
|
* @param $name |
30
|
|
|
* @return null |
31
|
|
|
*/ |
32
|
|
|
public function __get($name) |
33
|
|
|
{ |
34
|
|
|
$method = 'get' . ucfirst($name); |
35
|
|
|
if (method_exists($this, $method)) { |
36
|
|
|
return $this->$method(); |
37
|
|
|
} |
38
|
|
|
|
39
|
|
|
return null; |
40
|
|
|
} |
41
|
|
|
|
42
|
|
|
/** |
43
|
|
|
* @param bool $short |
44
|
|
|
* @return string |
45
|
|
|
*/ |
46
|
|
|
public function getLabelHTML($short = false) |
47
|
|
|
{ |
48
|
|
|
return '<span class="' . $this->getLabelClasses() . '" rel="tooltip" title="' . $this->getLabel() . '" |
|
|
|
|
49
|
|
|
style="' . $this->getColorCSS() . '"> |
50
|
|
|
' . $this->getIconHTML() . ' |
51
|
|
|
' . $this->getLabel($short) . ' |
|
|
|
|
52
|
|
|
</span>'; |
53
|
|
|
} |
54
|
|
|
|
55
|
|
|
/** |
56
|
|
|
* get the label class name |
57
|
|
|
* |
58
|
|
|
* @return string |
59
|
|
|
*/ |
60
|
|
|
public function getLabelClasses(): string |
61
|
|
|
{ |
62
|
|
|
return 'badge bg-' . $this->getColorClass() . ' badge-' . $this->getColorClass() . ' label label-' . $this->getColorClass(); |
63
|
|
|
} |
64
|
|
|
|
65
|
|
|
/** |
66
|
|
|
* Get the color class |
67
|
|
|
* |
68
|
|
|
* @return string |
69
|
|
|
*/ |
70
|
|
|
public function getColorClass() |
71
|
|
|
{ |
72
|
|
|
return 'dark'; |
73
|
|
|
} |
74
|
|
|
|
75
|
|
|
|
76
|
|
|
/** |
77
|
|
|
* @return string |
78
|
|
|
*/ |
79
|
|
|
abstract protected function getLabelSlug(); |
80
|
|
|
|
81
|
|
|
/** |
82
|
|
|
* @return boolean |
83
|
|
|
*/ |
84
|
|
|
protected function hasShortLabel() |
85
|
|
|
{ |
86
|
|
|
return true; |
87
|
|
|
} |
88
|
|
|
|
89
|
|
|
/** |
90
|
|
|
* @return string |
91
|
|
|
*/ |
92
|
|
|
public function getColorCSS() |
93
|
|
|
{ |
94
|
|
|
$css = []; |
95
|
|
|
if ($this->getBGColor()) { |
96
|
|
|
$css[] = 'background-color: ' . $this->getBGColor().' !important'; |
97
|
|
|
} |
98
|
|
|
if ($this->getFGColor()) { |
99
|
|
|
$css[] = 'color: ' . $this->getFGColor().' !important'; |
100
|
|
|
} |
101
|
|
|
|
102
|
|
|
return implode(';', $css); |
103
|
|
|
} |
104
|
|
|
|
105
|
|
|
/** |
106
|
|
|
* @return bool|string |
107
|
|
|
*/ |
108
|
|
|
public function getBGColor() |
109
|
|
|
{ |
110
|
|
|
return false; |
111
|
|
|
} |
112
|
|
|
|
113
|
|
|
/** |
114
|
|
|
* @return bool|string |
115
|
|
|
*/ |
116
|
|
|
public function getFGColor() |
117
|
|
|
{ |
118
|
|
|
return false; |
119
|
|
|
} |
120
|
|
|
|
121
|
|
|
/** |
122
|
|
|
* @return string |
123
|
|
|
*/ |
124
|
|
|
public function getIconHTML(): string |
125
|
|
|
{ |
126
|
|
|
$icon = $this->getIcon(); |
127
|
|
|
if (strpos($icon, 'glyphicon') !== false) { |
|
|
|
|
128
|
|
|
return '<span class="glyphicon glyphicon-white ' . $icon . '"></span> '; |
|
|
|
|
129
|
|
|
} |
130
|
|
|
if (strpos($icon, 'fas') === 0 || strpos($icon, 'far') === 0) { |
131
|
|
|
return '<i class="' . $icon . '"></i>'; |
132
|
|
|
} |
133
|
|
|
if (strpos($icon, 'fa') === 0) { |
134
|
|
|
return '<i class="fas ' . $icon . '"></i>'; |
135
|
|
|
} |
136
|
|
|
|
137
|
|
|
return ''; |
138
|
|
|
} |
139
|
|
|
|
140
|
|
|
/** |
141
|
|
|
* @return bool|string |
142
|
|
|
*/ |
143
|
|
|
public function getIcon() |
144
|
|
|
{ |
145
|
|
|
return false; |
146
|
|
|
} |
147
|
|
|
|
148
|
|
|
/** |
149
|
|
|
* @return bool|mixed |
150
|
|
|
*/ |
151
|
|
|
public function update() |
152
|
|
|
{ |
153
|
|
|
$item = $this->getItem(); |
154
|
|
|
if (!is_object($item)) { |
155
|
|
|
return false; |
156
|
|
|
} |
157
|
|
|
$this->preValueChange(); |
158
|
|
|
|
159
|
|
|
$fromState = (string) $item->{$this->getField()}; |
160
|
|
|
$toState = $this->getName(); |
161
|
|
|
/** @noinspection PhpUndefinedFieldInspection */ |
162
|
|
|
$item->{$this->getField()} = $toState; |
163
|
|
|
$this->preUpdate(); |
164
|
|
|
$return = $item->saveRecord(); |
|
|
|
|
165
|
|
|
$this->postUpdate(); |
166
|
|
|
|
167
|
|
|
$marking = new Marking(); |
168
|
|
|
$initialTransition = new Transition('generic_transition', [$fromState], [$toState]); |
169
|
|
|
$workflow = new Workflow(new Definition([], [])); |
170
|
|
|
$event = new AnnounceEvent($item, $marking, $initialTransition, $workflow, []); |
171
|
|
|
|
172
|
|
|
event($event); |
173
|
|
|
return $return; |
174
|
|
|
} |
175
|
|
|
|
176
|
|
|
public function preValueChange() |
177
|
|
|
{ |
178
|
|
|
} |
179
|
|
|
|
180
|
|
|
/** |
181
|
|
|
* @return null|string |
182
|
|
|
*/ |
183
|
|
|
public function getField() |
184
|
|
|
{ |
185
|
1 |
|
return $this->field; |
186
|
|
|
} |
187
|
1 |
|
|
188
|
1 |
|
/** |
189
|
1 |
|
* @param null|string $field |
190
|
|
|
*/ |
191
|
1 |
|
public function setField($field) |
192
|
1 |
|
{ |
193
|
1 |
|
$this->field = $field; |
194
|
1 |
|
} |
195
|
|
|
|
196
|
1 |
|
public function preUpdate() |
197
|
|
|
{ |
198
|
|
|
} |
199
|
|
|
|
200
|
|
|
public function postUpdate() |
201
|
|
|
{ |
202
|
|
|
} |
203
|
|
|
|
204
|
|
|
/** |
205
|
1 |
|
* @return string |
206
|
|
|
*/ |
207
|
1 |
|
public function getMessageType() |
208
|
|
|
{ |
209
|
|
|
return 'info'; |
210
|
|
|
} |
211
|
|
|
|
212
|
|
|
} |
213
|
|
|
|
This check looks for function or method calls that always return null and whose return value is used.
The method
getObject()
can return nothing but null, so it makes no sense to use the return value.The reason is most likely that a function or method is imcomplete or has been reduced for debug purposes.