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 |