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 / admin / views / managewebhook / tmpl / default_details.php
vikappointments / admin / views / managewebhook / tmpl Last commit date
default.php 3 days ago default_details.php 3 days ago default_logs.php 3 days ago default_params.php 3 days ago index.html 3 days ago
default_details.php
192 lines
1 <?php
2 /**
3 * @package VikAppointments
4 * @subpackage core
5 * @author E4J s.r.l.
6 * @copyright Copyright (C) 2021 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 $webhook = $this->webhook;
15
16 $vik = VAPApplication::getInstance();
17
18 ?>
19
20 <!-- NAME - Text -->
21
22 <?php echo $vik->openControl(JText::translate('VAPMANAGESERVICE2') . '*'); ?>
23 <input type="text" name="name" class="input-xxlarge input-large-text required" value="<?php echo $this->escape($webhook->name); ?>" size="40" />
24 <?php echo $vik->closeControl(); ?>
25
26 <!-- ACTION - Select -->
27
28 <?php
29 $found = false;
30
31 $options = array();
32
33 // add blank option
34 $options[] = JHtml::fetch('select.option', '', '');
35
36 // fetch list of supported web hooks to create a dropdown
37 foreach (VAPWebHook::getSupportedHooks() as $hook => $name)
38 {
39 $options[] = JHtml::fetch('select.option', $hook, $name);
40
41 $found = $found || $hook == $webhook->hook;
42 }
43
44 // append custom option at the end of the list
45 $options[] = JHtml::fetch('select.option', 'custom', JText::translate('VAP_CUSTOM_FIELDSET'));
46
47 $help = $vik->createPopover(array(
48 'title' => JText::translate('VAPWEBHOOKACTION'),
49 'content' => JText::translate('VAPWEBHOOKACTION_DESC'),
50 ));
51
52 if ($webhook->hook)
53 {
54 $action = $found && $webhook->hook ? $webhook->hook : 'custom';
55 }
56 else
57 {
58 $action = '';
59 }
60
61 echo $vik->openControl(JText::translate('VAPWEBHOOKACTION') . '*' . $help); ?>
62 <select name="action" id="vap-hook-sel" class="required">
63 <?php echo JHtml::fetch('select.options', $options, 'value', 'text', $action); ?>
64 </select>
65 <?php echo $vik->closeControl(); ?>
66
67 <!-- EVENT NAME - Text -->
68
69 <?php
70 $control = array();
71 $control['style'] = $found || !$webhook->hook ? 'display:none;' : '';
72
73 echo $vik->openControl(JText::translate('VAPWEBHOOKEVENTNAME') . '*', 'hook-event-name', $control); ?>
74 <input type="text" name="hook" value="<?php echo $this->escape($webhook->hook); ?>" class="required" size="30" />
75 <?php echo $vik->closeControl(); ?>
76
77 <!-- URL - Text -->
78
79 <?php
80 $help = $vik->createPopover(array(
81 'title' => JText::translate('VAPWEBHOOKURL'),
82 'content' => JText::translate('VAPWEBHOOKURL_DESC'),
83 ));
84
85 echo $vik->openControl(JText::translate('VAPWEBHOOKURL') . '*' . $help); ?>
86 <input type="text" name="url" value="<?php echo $this->escape($webhook->url); ?>" class="required" size="30" />
87 <?php echo $vik->closeControl(); ?>
88
89 <!-- SECRET - Text -->
90
91 <?php
92 $help = $vik->createPopover(array(
93 'title' => JText::translate('VAPWEBHOOKSECRET'),
94 'content' => JText::translate('VAPWEBHOOKSECRET_DESC'),
95 ));
96
97 echo $vik->openControl(JText::translate('VAPWEBHOOKSECRET') . $help); ?>
98 <input type="text" name="secret" value="<?php echo $this->escape($webhook->secret); ?>" size="30" />
99 <?php echo $vik->closeControl(); ?>
100
101 <!-- PUBLISHED - Checkbox -->
102
103 <?php
104 $yes = $vik->initRadioElement('', '', $webhook->published == 1);
105 $no = $vik->initRadioElement('', '', $webhook->published == 0);
106
107 echo $vik->openControl(JText::translate('VAPMANAGESERVICE6'));
108 echo $vik->radioYesNo('published', $yes, $no, false);
109 echo $vik->closeControl();
110 ?>
111
112 <?php
113 JText::script('JGLOBAL_SELECT_AN_OPTION');
114 ?>
115
116 <script>
117
118 jQuery(function($) {
119 const loadHookParams = (hook) => {
120 // destroy select2
121 $('.vikpayparamdiv select').select2('destroy');
122 // unregister form fields
123 validator.unregisterFields('.vikpayparamdiv .required');
124
125 $('.vikpayparamdiv').html('');
126 $('#vikparamerr').hide();
127
128 UIAjax.do(
129 '<?php echo $vik->ajaxUrl('index.php?option=com_vikappointments&task=webhook.paramsajax'); ?>',
130 {
131 hook: hook,
132 id: <?php echo (int) $webhook->id; ?>,
133 },
134 (html) => {
135 $('.vikpayparamdiv').html(html);
136
137 // render select
138 $('.vikpayparamdiv select').each(function() {
139 $(this).select2({
140 // disable search for select with 3 or lower options
141 minimumResultsForSearch: $(this).find('option').length > 3 ? 0 : -1,
142 allowClear: false,
143 width: '90%',
144 });
145 });
146
147 // register form fields for validation
148 validator.registerFields('.vikpayparamdiv .required');
149
150 // init helpers
151 $('.vikpayparamdiv .vap-quest-popover').popover({sanitize: false, container: 'body', trigger: 'hover', html: true});
152
153 $('.vikpayparamdiv').trigger('payment.load');
154 },
155 (err) => {
156 $('#vikparamerr').show();
157 }
158 );
159 };
160
161 $('#vap-hook-sel').select2({
162 placeholder: Joomla.JText._('JGLOBAL_SELECT_AN_OPTION'),
163 allowClear: false,
164 width: '90%',
165 });
166
167 $('#vap-hook-sel').on('change', function() {
168 const hook = $(this).val();
169
170 if (hook == 'custom') {
171 $('input[name="hook"]').val('');
172 $('.hook-event-name').show();
173 } else {
174 $('.hook-event-name').hide();
175 $('input[name="hook"]').val(hook);
176 }
177
178 loadHookParams(hook);
179 });
180
181 <?php
182 if ($webhook->hook)
183 {
184 ?>
185 loadHookParams('<?php echo addslashes($webhook->hook); ?>');
186 <?php
187 }
188 ?>
189 });
190
191 </script>
192