PluginProbe
VikBooking Hotel Booking Engine & PMS / 1.8.9
VikBooking Hotel Booking Engine & PMS v1.8.9
1.8.16 1.8.15 1.8.14 1.8.13 1.8.12 1.8.11 1.8.10 1.8.9 1.8.6 1.8.7 1.8.8 trunk 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 All 37 releases
vikbooking / admin / layouts / taskmanager / areas / managearea.php

managearea.php in VikBooking Hotel Booking Engine & PMS 1.8.9, at admin/layouts/taskmanager/areas/managearea.php

196 lines 9.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * @package VikBooking
4 * @subpackage core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2025 E4J s.r.l. All Rights Reserved.
7 * @license http://www.gnu.org/licenses/gpl-2.0.html GNU/GPL
8 * @link https://vikwp.com
9 */
10
11 // No direct access
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 /**
15 * Obtain vars from arguments received in the layout file.
16 *
17 * @var array $data The data for rendering the area management form.
18 */
19 extract($displayData);
20
21 // access the task manager object
22 $taskManager = VBOFactory::getTaskManager();
23
24 // get all task driver names
25 $taskDrivers = $taskManager->getDriverNames();
26
27 // access the current area object, if any
28 $currentArea = !empty($data['id']) ? VBOTaskModelArea::getInstance()->getItem($data['id']) : null;
29
30 // attempt to get the current task area object
31 $taskArea = $currentArea ? VBOTaskArea::getInstance((array) $currentArea) : null;
32
33 ?>
34
35 <form method="post" action="#" id="<?php echo $data['form_id'] ?? 'vbo-tm-area-manage-form'; ?>">
36 <div class="vbo-admin-container vbo-admin-container-full vbo-admin-container-compact">
37 <div class="vbo-params-wrap">
38 <div class="vbo-params-container">
39
40 <div class="vbo-params-block vbo-params-block-full-setting">
41
42 <div class="vbo-param-container">
43 <div class="vbo-param-label"><?php echo JText::translate('VBPSHOWSEASONSTHREE'); ?></div>
44 <div class="vbo-param-setting">
45 <?php
46 if (!$currentArea) {
47 ?>
48 <select name="area[instanceof]" id="vbo-tm-area-instanceof">
49 <option value=""></option>
50 <?php
51 foreach ($taskDrivers as $driverId => $driverName) {
52 ?>
53 <option value="<?php echo JHtml::fetch('esc_attr', $driverId); ?>"><?php echo $driverName; ?></option>
54 <?php
55 }
56 ?>
57 </select>
58 <?php
59 } else {
60 ?>
61 <span class="label label-info"><?php echo $taskDrivers[$currentArea->instanceof] ?? $currentArea->instanceof; ?></span>
62 <input type="hidden" name="area[id]" value="<?php echo (int) $currentArea->id; ?>" />
63 <input type="hidden" name="area[instanceof]" value="<?php echo JHtml::fetch('esc_attr', $currentArea->instanceof); ?>" />
64 <?php
65 }
66 ?>
67 </div>
68 </div>
69
70 <div class="vbo-param-container">
71 <div class="vbo-param-label"><?php echo JText::translate('VBPVIEWROOMONE'); ?></div>
72 <div class="vbo-param-setting">
73 <input type="text" name="area[name]" value="<?php echo $currentArea ? JHtml::fetch('esc_attr', $currentArea->name) : ''; ?>" />
74 </div>
75 </div>
76
77 <div class="vbo-param-container">
78 <div class="vbo-param-label"><?php echo JText::translate('VBO_TAGS'); ?></div>
79 <div class="vbo-param-setting">
80 <div class="vbo-multiselect-inline-elems-wrap vbo-tagcolors-elems-wrap">
81 <?php
82 echo VikBooking::getVboApplication()->renderTagsDropDown([
83 'id' => 'vbo-tm-editarea-tags',
84 'placeholder' => JText::translate('VBO_TAGS_PLACEHOLDER'),
85 'allow_clear' => false,
86 'attributes' => [
87 'name' => 'area[tags][]',
88 'multiple' => 'multiple',
89 ],
90 'selected_values' => ($taskArea ? $taskArea->getTags() : []),
91 'colors' => $taskManager->getTagColors(true),
92 ], $taskManager->getColorTags());
93 ?>
94 </div>
95 <span class="vbo-param-setting-comment"><?php echo JText::translate('VBO_TASK_TAGS_DESC'); ?></span>
96 </div>
97 </div>
98
99 <div class="vbo-param-container">
100 <div class="vbo-param-label"><?php echo JText::translate('VBO_TASK_STATUSES'); ?></div>
101 <div class="vbo-param-setting">
102 <div class="vbo-multiselect-inline-elems-wrap vbo-tagcolors-elems-wrap vbo-statuscolors-elems-wrap">
103 <?php
104 echo VikBooking::getVboApplication()->renderTagsDropDown([
105 'id' => 'vbo-tm-editarea-statuses',
106 'allow_clear' => false,
107 'allow_tags' => false,
108 'attributes' => [
109 'name' => 'area[status_enums][]',
110 'multiple' => 'multiple',
111 ],
112 'selected_values' => ($taskArea ? $taskArea->getStatuses() : $taskManager->getStatusTypes(true)),
113 ], [], $taskManager->getStatusGroupElements());
114 ?>
115 </div>
116 <span class="vbo-param-setting-comment"><?php echo JText::translate('VBO_TASK_STATUSES_DESC'); ?></span>
117 </div>
118 </div>
119
120 <div class="vbo-param-container">
121 <div class="vbo-param-label"><?php echo JText::translate('VBPVIEWOPTIONALSTWO'); ?></div>
122 <div class="vbo-param-setting">
123 <textarea name="area[comments]"><?php echo $taskArea ? JHtml::fetch('esc_textarea', $taskArea->get('comments', '')) : ''; ?></textarea>
124 </div>
125 </div>
126
127 </div>
128
129 <?php
130 if (!$currentArea) {
131 // display setting blocks for each task driver
132 foreach ($taskDrivers as $driverId => $driverName) {
133 ?>
134 <div class="vbo-params-block vbo-params-block-full-setting vbo-tm-area-mng-settings" data-area-settings="<?php echo JHtml::fetch('esc_attr', $driverId); ?>" style="display: none;">
135 <?php
136 $taskDriver = $taskManager->getDriverInstance($driverId);
137
138 echo VBOParamsRendering::getInstance(
139 $taskDriver->getParams(),
140 $taskDriver->getSettings()
141 )->setInputName('area_settings[' . $driverId . ']')->getHtml();
142 ?>
143 </div>
144 <?php
145 }
146 } else {
147 // display current area's task driver settings
148 $taskDriver = $taskManager->getDriverInstance($currentArea->instanceof, [$taskArea]);
149 ?>
150 <div class="vbo-params-block vbo-params-block-full-setting vbo-tm-area-mng-settings" data-area-settings="<?php echo JHtml::fetch('esc_attr', $currentArea->instanceof); ?>" style="<?php echo !$taskDriver->getParams() ? 'display: none;' : ''; ?>">
151 <?php
152 echo VBOParamsRendering::getInstance(
153 $taskDriver->getParams(),
154 $taskDriver->getSettings()
155 )->setInputName('area_settings[' . $currentArea->instanceof . ']')->getHtml();
156 ?>
157 </div>
158 <?php
159 }
160 ?>
161
162 </div>
163 </div>
164 </div>
165 </form>
166
167 <script type="text/javascript">
168 jQuery(function() {
169
170 /**
171 * Handle driver instance type change event.
172 */
173 let driverInstanceType = document.querySelector('#vbo-tm-area-instanceof');
174 if (driverInstanceType) {
175 driverInstanceType.addEventListener('change', () => {
176 // get current value
177 let currentType = driverInstanceType.value;
178
179 // scan all settings and display only the selected block type
180 document.querySelectorAll('.vbo-tm-area-mng-settings').forEach((settings) => {
181 if (settings.getAttribute('data-area-settings') == currentType) {
182 if (settings.querySelector('div')) {
183 // show element when settings are available
184 settings.style.display = '';
185 }
186 } else {
187 // hide element
188 settings.style.display = 'none';
189 }
190 });
191 });
192 }
193
194 });
195 </script>
196