|
37 | 37 | use Toolbox; |
38 | 38 | use Session; |
39 | 39 | use PluginFormcreatorQuestionRange; |
| 40 | +use Glpi\Application\View\TemplateRenderer; |
40 | 41 |
|
41 | 42 | class CheckboxesField extends PluginFormcreatorAbstractField |
42 | 43 | { |
43 | 44 | public function isPrerequisites(): bool { |
44 | 45 | return true; |
45 | 46 | } |
46 | 47 |
|
47 | | - public function getDesignSpecializationField(): array { |
48 | | - $rand = mt_rand(); |
49 | | - |
50 | | - $label = ''; |
51 | | - $field = ''; |
52 | | - |
53 | | - $additions = '<tr class="plugin_formcreator_question_specific">'; |
54 | | - $additions .= '<td>'; |
55 | | - $additions .= '<label for="default_values' . $rand . '">'; |
56 | | - $additions .= __('Default values'); |
57 | | - $additions .= '<small>(' . __('One per line', 'formcreator') . ')</small>'; |
58 | | - $additions .= '</label>'; |
59 | | - $additions .= '</td>'; |
60 | | - $additions .= '<td>'; |
61 | | - $additions .= Html::textarea([ |
62 | | - 'name' => 'default_values', |
63 | | - 'id' => 'default_values', |
64 | | - 'value' => Html::entities_deep($this->getValueForDesign()), |
65 | | - 'cols' => '50', |
66 | | - 'display' => false, |
67 | | - ]); |
68 | | - $additions .= '</td>'; |
69 | | - $additions .= '<td>'; |
70 | | - $additions .= '<label for="values' . $rand . '">'; |
71 | | - $additions .= __('Values'); |
72 | | - $additions .= '<small>(' . __('One per line', 'formcreator') . ')</small>'; |
73 | | - $additions .= '</label>'; |
74 | | - $additions .= '</td>'; |
75 | | - $additions .= '<td>'; |
76 | | - $value = json_decode($this->question->fields['values']); |
77 | | - if ($value === null) { |
78 | | - $value = []; |
79 | | - } |
80 | | - $additions .= Html::textarea([ |
81 | | - 'name' => 'values', |
82 | | - 'id' => 'values', |
83 | | - 'value' => implode("\r\n", $value), |
84 | | - 'cols' => '50', |
85 | | - 'display' => false, |
86 | | - ]); |
87 | | - $additions .= '</td>'; |
88 | | - $additions .= '</tr>'; |
89 | 48 |
|
90 | | - $common = parent::getDesignSpecializationField(); |
91 | | - $additions .= $common['additions']; |
| 49 | + public function showForm(array $options): void { |
| 50 | + $template = '@formcreator/field/' . $this->question->fields['fieldtype'] . 'field.html.twig'; |
92 | 51 |
|
93 | | - return [ |
94 | | - 'label' => $label, |
95 | | - 'field' => $field, |
96 | | - 'additions' => $additions, |
97 | | - 'may_be_empty' => false, |
98 | | - 'may_be_required' => static::canRequire(), |
99 | | - ]; |
| 52 | + $this->question->fields['values'] = json_decode($this->question->fields['values']); |
| 53 | + $this->question->fields['values'] = is_array($this->question->fields['values']) ? $this->question->fields['values'] : []; |
| 54 | + $this->question->fields['values'] = implode("\r\n", $this->question->fields['values']); |
| 55 | + $this->question->fields['default_values'] = Html::entities_deep($this->getValueForDesign()); |
| 56 | + $this->deserializeValue($this->question->fields['default_values']); |
| 57 | + |
| 58 | + $parameters = $this->getParameters(); |
| 59 | + TemplateRenderer::getInstance()->display($template, [ |
| 60 | + 'item' => $this->question, |
| 61 | + 'question_params' => $parameters, |
| 62 | + 'params' => $options, |
| 63 | + ]); |
100 | 64 | } |
101 | 65 |
|
102 | 66 | public function getRenderedHtml($domain, $canEdit = true): string { |
@@ -322,7 +286,10 @@ public function getEmptyParameters(): array { |
322 | 286 | $range = new PluginFormcreatorQuestionRange(); |
323 | 287 | $range->setField($this, [ |
324 | 288 | 'fieldName' => 'range', |
325 | | - 'label' => __('Range', 'formcreator'), |
| 289 | + 'label' => [ |
| 290 | + __('Range min', 'formcreator'), |
| 291 | + __('Range max', 'formcreator'), |
| 292 | + ], |
326 | 293 | 'fieldType' => ['text'], |
327 | 294 | ]); |
328 | 295 | return [ |
|
0 commit comments