PluginProbe ʕ •ᴥ•ʔ
VikAppointments Services Booking Calendar / 1.2.21
VikAppointments Services Booking Calendar v1.2.21
1.2.21 1.2.20 trunk 1.2.17 1.2.18 1.2.19
vikappointments / modules / mod_vikappointments_zip / tmpl / default.php
vikappointments / modules / mod_vikappointments_zip / tmpl Last commit date
default.php 1 week ago index.html 1 week ago
default.php
189 lines
1 <?php
2 /**
3 * @package VikAppointments
4 * @subpackage mod_vikappointments_zip
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2023 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 to this file
12 defined('ABSPATH') or die('No script kiddies please!');
13
14 $itemid = $params->get('itemid', null);
15
16 ?>
17
18 <div class="vapmainzipmod">
19
20 <div class="vapzipfieldsetmod">
21
22 <div class="vap-zipmod-item">
23
24 <div class="vap-zipmod-item-label">
25 <?php echo JText::translate('VAPSERVICE'); ?>
26 </div>
27
28 <div class="vap-zipmod-item-input">
29 <select name="id_ser" id="vapserselzipmod<?php echo $module_id; ?>">
30 <?php
31 foreach ($services as $group)
32 {
33 if (!empty($group['id']))
34 {
35 ?>
36 <optgroup label="<?php echo htmlspecialchars($group['name']); ?>">
37 <?php
38 }
39
40 foreach ($group['list'] as $s)
41 {
42 ?>
43 <option value="<?php echo (int) $s['id']; ?>"><?php echo $s['name']; ?></option>
44 <?php
45 }
46
47 if (!empty($group['id']))
48 {
49 ?>
50 </optgroup>
51 <?php
52 }
53 }
54 ?>
55 </select>
56 </div>
57
58 </div>
59
60 <div class="vap-zipmod-item" id="vapempzipblock<?php echo $module_id; ?>" style="<?php echo $employees ? '' : 'display: none;'; ?>">
61
62 <div class="vap-zipmod-item-label">
63 <?php echo JText::translate('VAPEMPLOYEE'); ?>
64 </div>
65
66 <div class="vap-zipmod-item-input">
67 <select name="id_emp" id="vapempselzipmod<?php echo $module_id; ?>">
68 <?php
69 foreach ($employees as $e)
70 {
71 ?>
72 <option value="<?php echo (int) $e['id']; ?>"><?php echo $e['nickname']; ?></option>
73 <?php
74 }
75 ?>
76 </select>
77 </div>
78
79 </div>
80
81 <div class="vap-zipmod-item">
82
83 <div class="vap-zipmod-item-label">
84 <?php echo JText::translate('VAPZIP'); ?>
85 </div>
86
87 <div class="vap-zipmod-item-input">
88 <input type="text" value="" id="vapziptextinput<?php echo $module_id; ?>" />
89 </div>
90
91 </div>
92
93 <div class="vapzipresponsediv">
94
95 </div>
96
97 <div class="vap-zipmod-search">
98 <button type="button" class="vap-btn blue vap-zipmod-submit" id="vapzipsearch<?php echo $module_id; ?>">
99 <?php echo JText::translate('VAPFINDBUTTON'); ?>
100 </button>
101 </div>
102
103 </div>
104
105 </div>
106
107 <?php
108 JText::script('VAPZIPVALID0');
109 JText::script('VAPZIPVALID1');
110 ?>
111
112 <script>
113
114 (function($) {
115 'use strict';
116
117 $(function() {
118 $('.vapzipfieldsetmod select').select2({
119 allowClear: false,
120 width: '100%'
121 });
122
123 $('#vapserselzipmod<?php echo $module_id; ?>').on('change', function() {
124 $('#vapempselzipmod<?php echo $module_id; ?>').prop('disabled', true);
125
126 UIAjax.do(
127 '<?php echo $vik->ajaxUrl('index.php?option=com_vikappointments&task=modules.serviceemployees'); ?>',
128 {
129 id_ser: $(this).val(),
130 },
131 (resp) => {
132 if (resp) {
133 let options = [];
134
135 resp.forEach((emp) => {
136 options.push(
137 $('<option></option>').val(emp.id).text(emp.nickname)
138 );
139 });
140
141 $('#vapempselzipmod<?php echo $module_id; ?>').html(options).attr('disabled', false);
142 $('#vapempselzipmod<?php echo $module_id; ?>').trigger('change.select2');
143
144 $('#vapempzipblock<?php echo $module_id; ?>').show();
145 } else {
146 $('#vapempzipblock<?php echo $module_id; ?>').hide();
147 $('#vapempselzipmod<?php echo $module_id; ?>').html('');
148 }
149 }
150 );
151 });
152
153 $('#vapzipsearch<?php echo $module_id; ?>').on('click', function() {
154 const data = {
155 id_ser: $('#vapserselzipmod<?php echo $module_id; ?>').val(),
156 id_emp: $('#vapempselzipmod<?php echo $module_id; ?>').val(),
157 zip: $('#vapziptextinput<?php echo $module_id; ?>').val(),
158 };
159
160 $('.vapzipresponsediv').html('')
161 .removeClass('vapzipresponseok')
162 .removeClass('vapzipresponseno');
163
164 if (!data.zip) {
165 return;
166 }
167
168 UIAjax.do(
169 '<?php echo $vik->ajaxUrl('index.php?option=com_vikappointments&task=modules.validatezip'); ?>',
170 data,
171 (resp) => {
172 if (resp) {
173 $('.vapzipresponsediv').html(Joomla.JText._('VAPZIPVALID1'))
174 .addClass('vapzipresponseok')
175 .removeClass('vapzipresponseno');
176 } else {
177 $('.vapzipresponsediv').html(Joomla.JText._('VAPZIPVALID0'))
178 .addClass('vapzipresponseno')
179 .removeClass('vapzipresponseok');
180 }
181 }
182 );
183 });
184 });
185
186 })(jQuery);
187
188 </script>
189