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 / libraries / mvc / admin / views / shortcode / tmpl / default.php
vikappointments / libraries / mvc / admin / views / shortcode / tmpl Last commit date
default.php 4 days ago
default.php
179 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 JHtml::fetch('formbehavior.chosen', 'form#adminForm');
15
16 $sel = $this->shortcode;
17 $views = $this->views;
18
19 $vik = VAPApplication::getInstance();
20
21 ?>
22
23 <form action="admin.php?page=vikappointments&view=shortcode" method="post" name="adminForm" id="adminForm">
24
25 <div id="poststuff">
26
27 <?php echo $vik->openFieldset(JText::translate('JSHORTCODE')); ?>
28
29 <!-- NAME -->
30
31 <?php echo $vik->openControl(JText::translate('JNAME') . '*', '', array('id' => 'vik-name')); ?>
32 <input type="text" id="vik-name" name="name" class="required" value="<?php echo $this->escape($sel['name']); ?>" size="40" />
33 <?php echo $vik->closeControl(); ?>
34
35 <!-- TYPE -->
36
37 <?php echo $vik->openControl(JText::translate('JTYPE') . '*', '', array('id' => 'vik-type')); ?>
38 <select name="type" id="vik-type" class="required">
39 <option data-desc="" value=""><?php echo JText::translate('JGLOBAL_SELECT_AN_OPTION'); ?></option>
40
41 <?php
42 foreach ($this->views as $k => $v)
43 {
44 ?>
45 <option data-desc="<?php echo $this->escape(JText::translate($v['desc'])); ?>" value="<?php echo $this->escape($k); ?>" <?php echo $k == $sel['type'] ? 'selected="selected"' : ''; ?>>
46 <?php echo JText::translate($v['name']); ?>
47 </option>
48 <?php
49 }
50 ?>
51 </select>
52 <?php echo $vik->closeControl(); ?>
53
54 <!-- PARENT -->
55
56 <?php echo $vik->openControl(JText::translate('VAP_SHORTCODE_PARENT_FIELD'), '', array('id' => 'vik-parent')); ?>
57 <select name="parent_id" id="vik-parent">
58 <option value="">--</option>
59
60 <?php
61 foreach ($this->shortcodesList as $item)
62 {
63 if ($item->id === $sel['id'])
64 {
65 // exclude self
66 continue;
67 }
68
69 ?>
70 <option value="<?php echo $this->escape($item->id); ?>" <?php echo $item->id == $sel['parent_id'] ? 'selected="selected"' : ''; ?>>
71 <?php echo $item->name; ?>
72 </option>
73 <?php
74 }
75 ?>
76 </select>
77 <?php echo $vik->closeControl(); ?>
78
79 <!-- LANGUAGE -->
80
81 <?php echo $vik->openControl(JText::translate('JLANGUAGE'), '', array('id' => 'vik-lang')); ?>
82 <select name="lang" id="vik-lang">
83 <option value="*"><?php echo JText::translate('JALL'); ?></option>
84
85 <?php
86 foreach (JLanguage::getKnownLanguages() as $tag => $lang)
87 {
88 ?>
89 <option value="<?php echo $this->escape($tag); ?>" <?php echo $tag == $sel['lang'] ? 'selected="selected"' : ''; ?>>
90 <?php echo $lang['nativeName']; ?>
91 </option>
92 <?php
93 }
94 ?>
95 </select>
96 <?php echo $vik->closeControl(); ?>
97
98 <!-- DESCRIPTION -->
99
100 <div class="control">
101 <div id="vik-type-desc"></div>
102 </div>
103
104 <?php echo $vik->closeFieldset(); ?>
105
106 <!-- PARAMETERS -->
107
108 <div class="shortcode-params">
109 <?php
110 /**
111 * Immediately render the form fields of the selected shortcode.
112 *
113 * @since 1.2
114 */
115 if ($this->form)
116 {
117 echo $this->form->renderForm(json_decode($sel['json']));
118 }
119 ?>
120 </div>
121
122 </div>
123
124 <?php echo JHtml::fetch('form.token'); ?>
125
126 <input type="hidden" name="id" value="<?php echo (int) $sel['id']; ?>" />
127 <input type="hidden" name="option" value="com_vikappointments" />
128 <input type="hidden" name="task" value="" />
129 <input type="hidden" name="return" value="<?php echo $this->escape($this->returnLink); ?>" />
130
131 </form>
132
133 <script>
134
135 let formValidator = null;
136
137 (function($) {
138 'use strict';
139
140 formValidator = new JFormValidator('#adminForm');
141
142 const typeSelect = $('select[name="type"]');
143
144 typeSelect.on('change', function() {
145 formValidator.unregisterFields('.shortcode-params .required');
146
147 if (!$('#vik-name').val()) {
148 // use the page title as shortcode name
149 $('#vik-name').val($(this).find('option:selected').text().trim());
150 }
151
152 UIAjax.do(
153 'admin-ajax.php?option=com_vikappointments&task=shortcode.params',
154 {
155 id: <?php echo (int) $sel['id']; ?>,
156 type: $(this).val()
157 }, (html) => {
158 // destroy current chosen just before updating the params form
159 $('.shortcode-params select').chosen('destroy');
160 $('.shortcode-params').html(html);
161
162 formValidator.registerFields('.shortcode-params .required');
163
164 $('.shortcode-params select').chosen();
165
166 $('#vik-type-desc').html($(this).find('option:selected').attr('data-desc'));
167 }
168 );
169 });
170
171 Joomla.submitbutton = function(task) {
172 if (task.indexOf('shortcode.save') == -1 || formValidator.validate()) {
173 Joomla.submitform(task, document.adminForm);
174 }
175 }
176 })(jQuery);
177
178 </script>
179