PluginProbe
VikBooking Hotel Booking Engine & PMS / trunk
VikBooking Hotel Booking Engine & PMS vtrunk
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 1.7.3 All 36 releases
vikbooking / admin / views / importbftpp / tmpl / default.php

default.php in VikBooking Hotel Booking Engine & PMS trunk, at admin/views/importbftpp/tmpl/default.php

308 lines 13.5 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 com_vikbooking
5 * @author Alessio Gaggii - e4j - Extensionsforjoomla.com
6 * @copyright Copyright (C) 2018 e4j - Extensionsforjoomla.com. All rights reserved.
7 * @license GNU General Public License version 2 or later; see LICENSE
8 * @link https://vikwp.com
9 */
10
11 defined('ABSPATH') or die('No script kiddies please!');
12
13 $vbo_app = VikBooking::getVboApplication();
14 $vbo_app->loadSelect2();
15
16 if (!$this->setup_completed) {
17 // no rooms in VBO
18 ?>
19 <p class="warn"><?php echo JText::translate('VBO_IMPBFTPP_NOVBOROOMS'); ?></p>
20 <form action="index.php?option=com_vikbooking" method="post" name="adminForm" id="adminForm">
21 <input type="hidden" name="task" value="" />
22 <input type="hidden" name="option" value="com_vikbooking" />
23 </form>
24 <?php
25 } else {
26 ?>
27 <p class="info vbo-importbftpp-disclaimer"><?php echo JText::translate('VBO_IMPBFTPP_DISCLAIMER'); ?></p>
28 <form action="index.php?option=com_vikbooking&view=importbftpp" method="post" name="adminForm" id="adminForm" class="vbo-list-form" onsubmit="return vboImportbftppSubmit();">
29 <?php
30 if (!is_array($this->plugins) || !count($this->plugins)) {
31 ?>
32 <p class="err"><?php echo JText::translate('VBO_IMPBFTPP_NOPLUGINS'); ?></p>
33 <a class="btn btn-primary" href="index.php?option=com_vikbooking"><?php echo JText::translate('VBBACK'); ?></a>
34 <?php
35 } else {
36 ?>
37 <div class="vbo-importbftpp-plugins-list">
38 <div class="vbo-importbftpp-plugins-list-inner">
39 <label for="vbo-importbftpp-plugins-sel"><?php echo JText::translate('VBO_IMPBFTPP_AVAILPLUGINS'); ?></label>
40 <select name="tpp" id="vbo-importbftpp-plugins-sel">
41 <option value="">------</option>
42 <?php
43 foreach ($this->plugins as $k => $v) {
44 ?>
45 <option value="<?php echo $k; ?>"<?php echo $this->tpp == $k ? ' selected="selected"' : ''; ?>><?php echo $v; ?></option>
46 <?php
47 }
48 ?>
49 </select>
50 </div>
51 <div class="vbo-importbftpp-plugins-list-bottom">
52 <span class="vbo-btn-label"><?php echo JText::translate('VBO_IMPBFTPP_READBFROMP'); ?></span>
53 <button type="submit" class="btn btn-primary"><?php VikBookingIcons::e('search'); ?> <?php echo JText::translate('VBO_IMPBFTPP_READBFROMP_SHORT'); ?></button>
54 </div>
55 </div>
56 <?php
57 if (count($this->tprooms) && count($this->tpbookings)) {
58 // render rooms mapping and all bookings
59 $must_map_rooms = array();
60 foreach ($this->tpbookings as $tpbooking) {
61 foreach ($tpbooking['room_ids'] as $tprid) {
62 if (!in_array($tprid, $must_map_rooms)) {
63 // push room ID required for mapping
64 array_push($must_map_rooms, $tprid);
65 }
66 }
67 }
68 ?>
69 <h3 class="vbo-importbftpp-title"><?php echo JText::sprintf('VBO_IMPBFTPP_TOTRESFOUND', count($this->tpbookings)); ?></h3>
70 <div class="vbo-importbftpp-roomsmapping-wrap">
71 <p class="info vbo-importbftpp-roomsmapping-info"><?php echo JText::translate('VBO_IMPBFTPP_MAKERMAPPING'); ?></p>
72 <h4 class="vbo-importbftpp-subtitle">1. <?php echo JText::translate('VBO_IMPBFTPP_MAKERMAPPING_SHORT'); ?></h4>
73 <div class="vbo-importbftpp-roomsmapping-inner">
74 <?php
75 foreach ($must_map_rooms as $tprid) {
76 ?>
77 <div class="vbo-importbftpp-roomsmapping-block">
78 <div class="vbo-importbftpp-roomsmapping-block-thirdparty">
79 <label for="vbo-importbftpp-tpproom<?php echo $tprid; ?>"><?php echo JText::translate('VBO_IMPBFTPP_SELTPPROOM'); ?></label>
80 <select name="tpp_rooms[]" id="vbo-importbftpp-tpproom<?php echo $tprid; ?>" class="vbo-importbftpp-mapsel vbo-importbftpp-mapsel-tpp">
81 <option value="<?php echo $tprid; ?>"><?php echo $this->tprooms[$tprid]; ?></option>
82 </select>
83 </div>
84 <div class="vbo-importbftpp-roomsmapping-block-vbo">
85 <label for="vbo-importbftpp-vboroom<?php echo $tprid; ?>"><?php echo JText::translate('VBO_IMPBFTPP_SELVBOROOM'); ?></label>
86 <select name="vbo_rooms[]" id="vbo-importbftpp-vboroom<?php echo $tprid; ?>" class="vbo-importbftpp-mapsel vbo-importbftpp-mapsel-vbo" onchange="vboToggleResEligible('<?php echo $tprid; ?>', this.value);">
87 <option value="">------</option>
88 <?php
89 foreach ($this->vbo_rooms as $vborid => $vborname) {
90 ?>
91 <option value="<?php echo $vborid; ?>"><?php echo $vborname; ?></option>
92 <?php
93 }
94 ?>
95 </select>
96 </div>
97 </div>
98 <?php
99 }
100 ?>
101 </div>
102 </div>
103 <h4 class="vbo-importbftpp-subtitle">2. <?php echo JText::translate('VBO_IMPBFTPP_SELRES_SHORT'); ?></h4>
104 <div class="vbo-importbftpp-reservations-wrap">
105 <div class="vbo-importbftpp-reservations-btns" style="display: none;">
106 <span class="vbo-importbftpp-reservations-btn">
107 <button type="button" class="btn btn-success" onclick="vboToggleAllResImport(true);"><?php echo JText::translate('VBINVSELECTALL'); ?></button>
108 </span>
109 <span class="vbo-importbftpp-reservations-btn">
110 <button type="button" class="btn btn-danger" onclick="vboToggleAllResImport(false);"><?php echo JText::translate('VBINVDESELECTALL'); ?></button>
111 </span>
112 </div>
113 <div class="vbo-importbftpp-reservations-inner">
114 <?php
115 foreach ($this->tpbookings as $tpbid => $tpbdata) {
116 $booking_status_class = array();
117 if (stripos($tpbdata['status'], 'confirmed') !== false) {
118 array_push($booking_status_class, 'label-success');
119 } elseif (stripos($tpbdata['status'], 'pending') !== false) {
120 array_push($booking_status_class, 'label-warning');
121 } elseif (stripos($tpbdata['status'], 'cancelled') !== false || $tpbdata['status'] == 'abandoned') {
122 array_push($booking_status_class, 'label-error');
123 }
124 ?>
125 <div class="vbo-importbftpp-reservation-block">
126 <div class="vbo-importbftpp-reservation-inner vbo-importbftpp-reservation-noteligible" data-tprooms="<?php echo implode(';', $tpbdata['room_ids']); ?>">
127 <div class="vbo-importbftpp-reservation-details">
128 <div class="vbo-importbftpp-reservation-detail">
129 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBDASHBOOKINGID'); ?></span>
130 <span class="label vbo-importbftpp-reservation-detail-val"><?php echo '#' . $tpbid . ' (' . $tpbdata['dt'] . ')'; ?></span>
131 </div>
132 <div class="vbo-importbftpp-reservation-detail">
133 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBSTATUS'); ?></span>
134 <span class="label<?php echo count($booking_status_class) ? ' ' . implode(' ', $booking_status_class) : ''; ?> vbo-importbftpp-reservation-detail-val"><?php echo ucfirst($tpbdata['status']); ?></span>
135 </div>
136 <?php
137 if (!empty($tpbdata['last_import'])) {
138 ?>
139 <div class="vbo-importbftpp-reservation-detail vbo-importbftpp-reservation-already-imported">
140 <span class="vbo-importbftpp-reservation-detail-lbl">&nbsp;</span>
141 <span class="vbo-importbftpp-reservation-detail-val label label-error"><?php echo JText::sprintf('VBO_IMPBFTPP_ALREADY_IMPORTED', $tpbdata['last_import']); ?></span>
142 </div>
143 <?php
144 }
145 if (!empty($tpbdata['infos']['first_name'])) {
146 ?>
147 <div class="vbo-importbftpp-reservation-detail">
148 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBCUSTOMERFIRSTNAME'); ?></span>
149 <span class="vbo-importbftpp-reservation-detail-val"><?php echo $tpbdata['infos']['first_name']; ?></span>
150 </div>
151 <?php
152 }
153 if (!empty($tpbdata['infos']['last_name'])) {
154 ?>
155 <div class="vbo-importbftpp-reservation-detail">
156 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBCUSTOMERLASTNAME'); ?></span>
157 <span class="vbo-importbftpp-reservation-detail-val"><?php echo $tpbdata['infos']['last_name']; ?></span>
158 </div>
159 <?php
160 }
161 if (!empty($tpbdata['infos']['email'])) {
162 ?>
163 <div class="vbo-importbftpp-reservation-detail">
164 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBCUSTOMEREMAIL'); ?></span>
165 <span class="vbo-importbftpp-reservation-detail-val"><?php echo $tpbdata['infos']['email']; ?></span>
166 </div>
167 <?php
168 }
169 if (!empty($tpbdata['infos']['checkin'])) {
170 ?>
171 <div class="vbo-importbftpp-reservation-detail">
172 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBPICKUPAT'); ?></span>
173 <span class="vbo-importbftpp-reservation-detail-val"><?php echo $tpbdata['infos']['checkin']; ?></span>
174 </div>
175 <?php
176 }
177 if (!empty($tpbdata['infos']['checkout'])) {
178 ?>
179 <div class="vbo-importbftpp-reservation-detail">
180 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBRELEASEAT'); ?></span>
181 <span class="vbo-importbftpp-reservation-detail-val"><?php echo $tpbdata['infos']['checkout']; ?></span>
182 </div>
183 <?php
184 }
185 ?>
186 </div>
187 <div class="vbo-importbftpp-reservation-import">
188 <div class="vbo-importbftpp-reservation-import-toggle" style="display: none;">
189 <?php echo $vbo_app->printYesNoButtons("tpp_bids[{$tpbid}]", JText::translate('VBYES'), JText::translate('VBNO'), 0, 1, 0); ?>
190 </div>
191 <div class="vbo-importbftpp-reservation-import-rooms">
192 <span class="vbo-importbftpp-reservation-detail-lbl"><?php echo JText::translate('VBPVIEWORDERSTHREE'); ?></span>
193 <span class="vbo-importbftpp-reservation-detail-val">------</span>
194 </div>
195 </div>
196 </div>
197 </div>
198 <?php
199 }
200 ?>
201 </div>
202 </div>
203 <div class="vbo-importbftpp-confirm-wrap">
204 <span class="vbo-btn-label"><?php echo JText::translate('VBO_IMPBFTPP_DOIMPORT'); ?></span>
205 <button type="submit" class="btn btn-large btn-success" onclick="return vboConfirmImport();"><?php VikBookingIcons::e('download'); ?> <?php echo JText::translate('VBO_IMPBFTPP_DOIMPORT_SHORT'); ?></button>
206 </div>
207 <?php
208 // echo 'Debug<pre>' . print_r($this->tprooms, true) . '</pre>';
209 // echo 'Debug<pre>' . print_r($this->tpbookings, true) . '</pre>';
210 // echo 'Debug<pre>' . print_r($must_map_rooms, true) . '</pre>';
211 } elseif (!empty($this->tpp)) {
212 // no bookings found in third party plugin
213 ?>
214 <p class="err"><?php echo JText::translate('VBO_IMPBFTPP_NORESINTPP'); ?></p>
215 <a class="btn btn-primary" href="index.php?option=com_vikbooking"><?php echo JText::translate('VBBACK'); ?></a>
216 <?php
217 }
218 }
219 ?>
220 <input type="hidden" name="option" value="com_vikbooking" />
221 <input type="hidden" name="view" value="importbftpp" />
222 </form>
223 <script type="text/javascript">
224 function vboImportbftppSubmit() {
225 if (!jQuery('#vbo-importbftpp-plugins-sel').length || !jQuery('#vbo-importbftpp-plugins-sel').val().length) {
226 alert('Please select one third party plugin from the list');
227 return false;
228 }
229 return true;
230 }
231
232 function vboConfirmImport() {
233 if (confirm('<?php echo addslashes(JText::translate('VBO_IMPBFTPP_DOIMPORT_CONF')); ?>')) {
234 if (!jQuery('#adminForm').find('#do_import').length) {
235 jQuery('#adminForm').append('<input id="do_import" type="hidden" name="do_import" value="1" />');
236 }
237 return true;
238 }
239 return false;
240 }
241
242 function vboToggleResEligible(tprid, vborid) {
243 if (!tprid || !tprid.length) {
244 return;
245 }
246 jQuery('.vbo-importbftpp-reservation-inner').each(function() {
247 var tprids = jQuery(this).attr('data-tprooms').split(';');
248 if (tprids.indexOf(tprid) < 0) {
249 // this booking is not interested into this room
250 return;
251 }
252 if (!vborid || !vborid.length) {
253 // unset made for corresponding room, make the block not-eligible
254 jQuery(this).removeClass('vbo-importbftpp-reservation-eligible').addClass('vbo-importbftpp-reservation-noteligible');
255 jQuery(this).find('.vbo-importbftpp-reservation-import-toggle').hide().find('input[type="checkbox"]').prop('checked', false);
256 jQuery(this).find('.vbo-importbftpp-reservation-import-rooms').find('.vbo-importbftpp-reservation-detail-val').html('------');
257 } else {
258 // make the block eligible
259 jQuery(this).removeClass('vbo-importbftpp-reservation-noteligible').addClass('vbo-importbftpp-reservation-eligible');
260 jQuery(this).find('.vbo-importbftpp-reservation-import-toggle').show().find('input[type="checkbox"]').prop('checked', true);
261 jQuery(this).find('.vbo-importbftpp-reservation-import-rooms').find('.vbo-importbftpp-reservation-detail-val').html(tprids.length);
262 // if this booking was already imported, do not set the checkbox to checked
263 if (jQuery(this).find('.vbo-importbftpp-reservation-already-imported').length) {
264 jQuery(this).find('.vbo-importbftpp-reservation-import-toggle').find('input[type="checkbox"]').prop('checked', false);
265 }
266 }
267 });
268 // check whether all required rooms have been mapped to display the toggle reservation buttons
269 var all_rooms_mapped = true;
270 jQuery('.vbo-importbftpp-mapsel-vbo').each(function() {
271 if (!jQuery(this).val().length) {
272 all_rooms_mapped = false;
273 return false;
274 }
275 });
276 if (all_rooms_mapped) {
277 jQuery('.vbo-importbftpp-reservations-btns').show();
278 } else {
279 jQuery('.vbo-importbftpp-reservations-btns').hide();
280 }
281 }
282
283 function vboToggleAllResImport(doimport) {
284 jQuery('.vbo-importbftpp-reservation-inner').each(function() {
285 if (!jQuery(this).hasClass('vbo-importbftpp-reservation-eligible')) {
286 // a corresponding room type must be selected first
287 return;
288 }
289 if (doimport) {
290 jQuery(this).find('.vbo-importbftpp-reservation-import-toggle').find('input[type="checkbox"]').prop('checked', true);
291 } else {
292 jQuery(this).find('.vbo-importbftpp-reservation-import-toggle').find('input[type="checkbox"]').prop('checked', false);
293 }
294 });
295 }
296
297 jQuery(function() {
298 if (jQuery('#vbo-importbftpp-plugins-sel').length) {
299 jQuery('#vbo-importbftpp-plugins-sel').select2();
300 }
301 if (jQuery('.vbo-importbftpp-mapsel').length) {
302 jQuery('.vbo-importbftpp-mapsel').select2();
303 }
304 });
305 </script>
306 <?php
307 }
308