PluginProbe
WP Directory Kit / 1.2.3
WP Directory Kit v1.2.3
1.5.6 1.5.5 1.5.4 1.5.3 trunk 1.1.0 1.1.6 1.1.8 1.2.3 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.8 1.4.0 1.4.1 All 35 releases
wpdirectorykit / admin / js / wpdirectorykit-admin.js

wpdirectorykit-admin.js in WP Directory Kit 1.2.3, at admin/js/wpdirectorykit-admin.js

302 lines 10.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function( $ ) {
2 'use strict';
3
4 /**
5 * All of the code for your admin-facing JavaScript source
6 * should reside in this file.
7 *
8 * Note: It has been assumed you will write jQuery code here, so the
9 * $ function reference has been prepared for usage within the scope
10 * of this function.
11 *
12 * This enables you to define handlers, for when the DOM is ready:
13 *
14 * $(function() {
15 *
16 * });
17 *
18 * When the window is loaded:
19 *
20 * $( window ).load(function() {
21 *
22 * });
23 *
24 * ...and/or other possibilities.
25 *
26 * Ideally, it is not considered best practise to attach more than a
27 * single DOM-ready or window-load handler for a particular page.
28 * Although scripts in the WordPress core, Plugins and Themes may be
29 * practising this, we should strive to set a better example in our own work.
30 */
31
32 jQuery(document).ready(function($) {
33 $('.event-ajax-indicator').on('click submit', function () {
34 if ($(this).find('.wdk-ajax-indicator').length) {
35 $(this).find('.wdk-ajax-indicator').removeClass('hidden')
36 .removeClass('wdk-hidden');
37 $(this).find('.hidden-onloading').addClass('wdk-hidden');
38 }
39 else {
40 $(this).parent().find('.wdk-ajax-indicator').removeClass('hidden');
41 }
42 })
43
44 /* date time fields init */
45 if ($('.wdk-fielddate').length && typeof $.datepicker != 'undefined') {
46
47 $('.wdk-fielddate').each(function () {
48 let dateFormat = script_parameters.format_date_js;
49 var self = $(this);
50
51 if (self.attr('date-format'))
52 dateFormat = self.attr('date-format');
53
54 self.datepicker({ dateFormat: dateFormat, onSelect: function() {
55 self.parent().find('.db-date').val(wdk_date_sql_normalize(self.val(), self)).trigger('input');
56 }
57 }).on( "change", function() {
58 self.parent().find('.db-date').val(wdk_date_sql_normalize(self.val(), self));
59 });
60
61 if(self.parent().find('.db-date').val() == '' && false) {
62 self.parent().find('.db-date').val(wdk_date_sql_normalize());
63 }
64 })
65 };
66
67 if ($('.wdk-fielddatetime').length && typeof $.datepicker != 'undefined') {
68
69 $('.wdk-fielddatetime').each(function () {
70 let dateFormat = script_parameters.format_datetime_js;
71
72 var self = $(this);
73 if (self.attr('date-format'))
74 dateFormat = self.attr('date-format');
75
76 self.datepicker({ dateFormat: dateFormat, onSelect: function() {
77
78
79 var datetime = wdk_date_notime_sql_normalize(self.val(), self);
80 if(self.parent().find('[name="hours_mask"]').val() !='') {
81 datetime += ' '+wdk_pad(self.parent().find('[name="hours_mask"]').val());
82 } else {
83 datetime += ' 00';
84 }
85 if(self.parent().find('[name="minutes_mask"]').val() !='') {
86 datetime += ':'+wdk_pad(self.parent().find('[name="minutes_mask"]').val());
87 } else {
88 datetime += ':00';
89 }
90 datetime += ':00';
91
92 self.parent().find('.db-date').val(datetime).trigger('input');
93 }
94 }).on( "change", function() {
95
96 var datetime = wdk_date_notime_sql_normalize(self.val(), self);
97 if(self.parent().find('[name="hours_mask"]').val() !='') {
98 datetime += ' '+wdk_pad(self.parent().find('[name="hours_mask"]').val());
99 } else {
100 datetime += ' 00';
101 }
102 if(self.parent().find('[name="minutes_mask"]').val() !='') {
103 datetime += ':'+wdk_pad(self.parent().find('[name="minutes_mask"]').val());
104 } else {
105 datetime += ':00';
106 }
107 datetime += ':00';
108 self.parent().find('.db-date').val(datetime).trigger('input');
109
110 });
111
112 if(self.parent().find('.db-date').val() == '') {
113 self.parent().find('.db-date').val(wdk_date_sql_normalize());
114 }
115
116 self.parent().find('[name="hours_mask"],[name="minutes_mask"]').on('input', function(){
117 var datetime = wdk_date_notime_sql_normalize(self.val(), self);
118 if(self.parent().find('[name="hours_mask"]').val() !='') {
119 datetime += ' '+wdk_pad(self.parent().find('[name="hours_mask"]').val());
120 } else {
121 datetime += ' 00';
122 }
123 if(self.parent().find('[name="minutes_mask"]').val() !='') {
124 datetime += ':'+wdk_pad(self.parent().find('[name="minutes_mask"]').val());
125 } else {
126 datetime += ':00';
127 }
128 datetime += ':00';
129 self.parent().find('.db-date').val(datetime);
130 });
131 })
132 };
133
134 if ($('.wdk-fielddate_from').length && $('.wdk-fielddate_to').length && typeof $.datepicker != 'undefined') {
135 var dateFormat, from, to;
136 const getDate = ( element ) => {
137 var date;
138 try {
139 date = $.datepicker.parseDate( dateFormat, element.value );
140 } catch( error ) {
141 date = null;
142 }
143 return date;
144 }
145
146 dateFormat = script_parameters.format_date_js;
147 if ($('.wdk-fielddate_from').attr('date-format'))
148 dateFormat = $('.wdk-fielddate_from').attr('date-format');
149
150 from = $('.wdk-fielddate_from')
151 .datepicker({
152 dateFormat: dateFormat,
153 onSelect: function( selectedDate ) {
154 to.datepicker("option", "minDate", selectedDate );
155 setTimeout(function(){
156 to.datepicker('show');
157 }, 16);
158
159 from.parent().find('.db-date').val(wdk_date_sql_normalize(from.val(), from)).trigger('input');
160 wdk_date_add_hours(from);
161
162 }
163 }).on( "change", function() {
164
165 });
166
167 to = $('.wdk-fielddate_to').datepicker({
168 dateFormat: dateFormat
169 })
170 .on( "change", function() {
171 from.datepicker( "option", "maxDate", getDate( this ) );
172
173 to.parent().find('.db-date').val(wdk_date_sql_normalize(to.val(), to)).trigger('input');
174 wdk_date_add_hours(to);
175 });
176
177 if(to.parent().find('.db-date').val() == '') {
178 to.parent().find('.db-date').val(wdk_date_sql_normalize());
179 }
180
181 if(from.parent().find('.db-date').val() == '') {
182 from.parent().find('.db-date').val(wdk_date_sql_normalize());
183 }
184
185 from.parent().find('[name="hours_mask"],[name="minutes_mask"]').on('input', function(){
186 wdk_date_add_hours(from);
187 });
188
189 to.parent().find('[name="hours_mask"],[name="minutes_mask"]').on('input', function(){
190 wdk_date_add_hours(to);
191 });
192
193 }
194
195 jQuery(document).ready( function($) {
196 $( "ul#adminmenu a[href*='wordpress.org/support/plugin/wpdirectorykit']" ).attr( 'target', '_blank' );
197 $( "ul#adminmenu a[href*='wpdirectorykit.com/contact.html']" ).attr( 'target', '_blank' );
198 $( "ul#adminmenu a[href*='wpdirectorykit.com/documentation']" ).attr( 'target', '_blank' );
199 });
200
201
202 /* wdk pro feature ask */
203 if (typeof $.fn.confirm == 'function') {
204 $('.wdk-pro, .wdk-pro a, .wdk-pro button, .wdk-pro input').off().on('click', function(e){
205 e.preventDefault();
206 var self = jQuery(this)
207 jQuery.confirm({
208 boxWidth: '400px',
209 useBootstrap: false,
210 title: self.data('title'),
211 content: self.data('content'),
212 buttons: {
213 cancel: function () {
214 return true;
215 },
216 somethingElse: {
217 text: self.data('button-succuss'),
218 btnClass: 'btn-blue activate-now',
219 keys: ['enter', 'shift'],
220 action: function(){
221 window.location = self.data('action');
222 return false;
223 }
224 }
225 }
226 });
227 return false;
228 });
229 $('.wdk-pro, .wdk-pro a, .wdk-pro button, .wdk-pro input').on('focus', function(){
230 $(this).trigger('blur');
231 return false;
232 });
233 }
234 })
235 })( jQuery );
236
237 const wdk_pad = (num = '') => {
238 return ('00'+num).slice(-2);
239 };
240
241 const wdk_date_add_hours = (selector = '') => {
242 if(typeof selector !='undefined' && selector.parent().find('[name="hours_mask"]').length) {
243 var datetime = wdk_date_notime_sql_normalize(selector.val(), selector);
244 if(selector.parent().find('[name="hours_mask"]').val() !='') {
245 datetime += ' '+wdk_pad(selector.parent().find('[name="hours_mask"]').val());
246 } else {
247 datetime += ' 00';
248 }
249 if(selector.parent().find('[name="minutes_mask"]').val() !='') {
250 datetime += ':'+wdk_pad(selector.parent().find('[name="minutes_mask"]').val());
251 } else {
252 datetime += ':00';
253 }
254 datetime += ':00';
255 selector.parent().find('.db-date').val(datetime);
256 }
257 };
258
259 /*
260 Convert date to sql format
261
262 @param string $date, string of date
263
264 @return string normalize date or Current date/time
265 */
266 const wdk_date_sql_normalize = (date = '', datepicker_el = null) => {
267 if(date == '') {
268 var d = new Date();
269 } else {
270 var d = new Date(date);
271 }
272
273 if(d == 'Invalid Date' && datepicker_el) {
274 var d = new Date(+(jQuery.datepicker.formatDate("@", datepicker_el.datepicker("getDate"))));
275 }
276
277 d = d.getUTCFullYear() + '-' +
278 wdk_pad(d.getMonth() + 1) + '-' +
279 wdk_pad(d.getDate()) + ' ' +
280 wdk_pad(d.getHours()) + ':' +
281 wdk_pad(d.getMinutes()) + ':' +
282 wdk_pad(d.getSeconds());
283 return d;
284 };
285
286 const wdk_date_notime_sql_normalize = (date = '', datepicker_el = null) => {
287 if(date == '') {
288 var d = new Date();
289 } else {
290 var d = new Date(date);
291 }
292
293 if(d == 'Invalid Date' && datepicker_el) {
294 var d = new Date(+(jQuery.datepicker.formatDate("@", datepicker_el.datepicker("getDate"))));
295 }
296
297 d = d.getUTCFullYear() + '-' +
298 wdk_pad(d.getMonth() + 1) + '-' +
299 wdk_pad(d.getDate());
300 return d;
301 };
302