PluginProbe
WP Directory Kit / 1.2.7
WP Directory Kit v1.2.7
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.7, at admin/js/wpdirectorykit-admin.js

326 lines 10.9 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
45 $('.wdk-submit-loading').on('click', function () {
46 var form;
47 form = $(this).closest('form');
48
49 if( $(this).hasClass('wdk_btn_load_indicator')) {
50 console.log('disabled')
51 return false;
52 }
53
54 $(this).addClass('wdk_btn_load_indicator disabled');
55 });
56
57 $('.wdk-click-loading').on('click', function (e) {
58 $(this).addClass('wdk_btn_load_indicator').attr('disabled','disabled');
59 });
60
61 /* date time fields init */
62 if ($('.wdk-fielddate').length && typeof $.datepicker != 'undefined') {
63
64 $('.wdk-fielddate').each(function () {
65 let dateFormat = script_parameters.format_date_js;
66 var self = $(this);
67
68 if (self.attr('date-format'))
69 dateFormat = self.attr('date-format');
70
71 self.datepicker({ dateFormat: dateFormat, onSelect: function() {
72 self.parent().find('.db-date').val(wdk_date_sql_normalize(self.val(), self)).trigger('input');
73 }
74 }).on( "change", function() {
75 self.parent().find('.db-date').val(wdk_date_sql_normalize(self.val(), self));
76 });
77
78 if(self.parent().find('.db-date').val() == '' && false) {
79 self.parent().find('.db-date').val(wdk_date_sql_normalize());
80 }
81 })
82 };
83
84 if ($('.wdk-fielddatetime').length && typeof $.datepicker != 'undefined') {
85
86 $('.wdk-fielddatetime').each(function () {
87 let dateFormat = script_parameters.format_datetime_js;
88
89 var self = $(this);
90 if (self.attr('date-format'))
91 dateFormat = self.attr('date-format');
92
93 self.datepicker({ dateFormat: dateFormat, onSelect: function() {
94
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
109 self.parent().find('.db-date').val(datetime).trigger('input');
110 }
111 }).on( "change", function() {
112
113 var datetime = wdk_date_notime_sql_normalize(self.val(), self);
114 if(self.parent().find('[name="hours_mask"]').val() !='') {
115 datetime += ' '+wdk_pad(self.parent().find('[name="hours_mask"]').val());
116 } else {
117 datetime += ' 00';
118 }
119 if(self.parent().find('[name="minutes_mask"]').val() !='') {
120 datetime += ':'+wdk_pad(self.parent().find('[name="minutes_mask"]').val());
121 } else {
122 datetime += ':00';
123 }
124 datetime += ':00';
125 self.parent().find('.db-date').val(datetime).trigger('input');
126
127 });
128
129 if(self.parent().find('.db-date').val() == '') {
130 self.parent().find('.db-date').val(wdk_date_sql_normalize());
131 }
132
133 self.parent().find('[name="hours_mask"],[name="minutes_mask"]').on('input', function(){
134 var datetime = wdk_date_notime_sql_normalize(self.val(), self);
135 if(self.parent().find('[name="hours_mask"]').val() !='') {
136 datetime += ' '+wdk_pad(self.parent().find('[name="hours_mask"]').val());
137 } else {
138 datetime += ' 00';
139 }
140 if(self.parent().find('[name="minutes_mask"]').val() !='') {
141 datetime += ':'+wdk_pad(self.parent().find('[name="minutes_mask"]').val());
142 } else {
143 datetime += ':00';
144 }
145 datetime += ':00';
146 self.parent().find('.db-date').val(datetime);
147 });
148 })
149 };
150
151 if ($('.wdk-fielddate_from').length && $('.wdk-fielddate_to').length && typeof $.datepicker != 'undefined') {
152 var dateFormat, from, to;
153 const getDate = ( element ) => {
154 var date;
155 try {
156 date = $.datepicker.parseDate( dateFormat, element.value );
157 } catch( error ) {
158 date = null;
159 }
160 return date;
161 }
162
163 dateFormat = script_parameters.format_date_js;
164 if ($('.wdk-fielddate_from').attr('date-format'))
165 dateFormat = $('.wdk-fielddate_from').attr('date-format');
166
167 from = $('.wdk-fielddate_from')
168 .datepicker({
169 dateFormat: dateFormat,
170 onSelect: function( selectedDate ) {
171 to.datepicker("option", "minDate", selectedDate );
172 setTimeout(function(){
173 to.datepicker('show');
174 }, 16);
175
176 from.parent().find('.db-date').val(wdk_date_sql_normalize(from.val(), from)).trigger('input');
177 wdk_date_add_hours(from);
178
179 }
180 }).on( "change", function() {
181
182 });
183
184 to = $('.wdk-fielddate_to').datepicker({
185 dateFormat: dateFormat
186 })
187 .on( "change", function() {
188 from.datepicker( "option", "maxDate", getDate( this ) );
189
190 to.parent().find('.db-date').val(wdk_date_sql_normalize(to.val(), to)).trigger('input');
191 wdk_date_add_hours(to);
192 });
193
194 if(to.parent().find('.db-date').val() == '') {
195 to.parent().find('.db-date').val(wdk_date_sql_normalize());
196 }
197
198 if(from.parent().find('.db-date').val() == '') {
199 from.parent().find('.db-date').val(wdk_date_sql_normalize());
200 }
201
202 from.parent().find('[name="hours_mask"],[name="minutes_mask"]').on('input', function(){
203 wdk_date_add_hours(from);
204 });
205
206 to.parent().find('[name="hours_mask"],[name="minutes_mask"]').on('input', function(){
207 wdk_date_add_hours(to);
208 });
209
210 }
211
212 jQuery(document).ready( function($) {
213 $( "ul#adminmenu a[href*='wordpress.org/support/plugin/wpdirectorykit']" ).attr( 'target', '_blank' );
214 $( "ul#adminmenu a[href*='wpdirectorykit.com/contact.html']" ).attr( 'target', '_blank' );
215 $( "ul#adminmenu a[href*='wpdirectorykit.com/documentation']" ).attr( 'target', '_blank' );
216 });
217
218
219 /* wdk pro feature ask */
220 if (typeof $.fn.confirm == 'function') {
221 $('.wdk-pro, .wdk-pro a, .wdk-pro button, .wdk-pro input').off().on('click', function(e){
222 e.preventDefault();
223 var self = jQuery(this)
224 jQuery.confirm({
225 boxWidth: '400px',
226 useBootstrap: false,
227 title: self.data('title'),
228 content: self.data('content'),
229 buttons: {
230 cancel: function () {
231 return true;
232 },
233 somethingElse: {
234 text: self.data('button-succuss'),
235 btnClass: 'btn-blue activate-now',
236 keys: ['enter', 'shift'],
237 action: function(){
238 window.location = self.data('action');
239 return false;
240 }
241 }
242 }
243 });
244 return false;
245 });
246 $('.wdk-pro, .wdk-pro a, .wdk-pro button, .wdk-pro input').on('focus', function(){
247 $(this).trigger('blur');
248 return false;
249 });
250 }
251
252 if(jQuery('.wdk-tabs-navs').length) {
253 jQuery('.wdk-tabs-navs').find('label').on('click', function(){
254 jQuery(this).parent().find('label').removeClass('active');
255 jQuery(this).addClass('active');
256 });
257 }
258 })
259 })( jQuery );
260
261 const wdk_pad = (num = '') => {
262 return ('00'+num).slice(-2);
263 };
264
265 const wdk_date_add_hours = (selector = '') => {
266 if(typeof selector !='undefined' && selector.parent().find('[name="hours_mask"]').length) {
267 var datetime = wdk_date_notime_sql_normalize(selector.val(), selector);
268 if(selector.parent().find('[name="hours_mask"]').val() !='') {
269 datetime += ' '+wdk_pad(selector.parent().find('[name="hours_mask"]').val());
270 } else {
271 datetime += ' 00';
272 }
273 if(selector.parent().find('[name="minutes_mask"]').val() !='') {
274 datetime += ':'+wdk_pad(selector.parent().find('[name="minutes_mask"]').val());
275 } else {
276 datetime += ':00';
277 }
278 datetime += ':00';
279 selector.parent().find('.db-date').val(datetime);
280 }
281 };
282
283 /*
284 Convert date to sql format
285
286 @param string $date, string of date
287
288 @return string normalize date or Current date/time
289 */
290 const wdk_date_sql_normalize = (date = '', datepicker_el = null) => {
291 if(date == '') {
292 var d = new Date();
293 } else {
294 var d = new Date(date);
295 }
296
297 if(d == 'Invalid Date' && datepicker_el) {
298 var d = new Date(+(jQuery.datepicker.formatDate("@", datepicker_el.datepicker("getDate"))));
299 }
300
301 d = d.getUTCFullYear() + '-' +
302 wdk_pad(d.getMonth() + 1) + '-' +
303 wdk_pad(d.getDate()) + ' ' +
304 wdk_pad(d.getHours()) + ':' +
305 wdk_pad(d.getMinutes()) + ':' +
306 wdk_pad(d.getSeconds());
307 return d;
308 };
309
310 const wdk_date_notime_sql_normalize = (date = '', datepicker_el = null) => {
311 if(date == '') {
312 var d = new Date();
313 } else {
314 var d = new Date(date);
315 }
316
317 if(d == 'Invalid Date' && datepicker_el) {
318 var d = new Date(+(jQuery.datepicker.formatDate("@", datepicker_el.datepicker("getDate"))));
319 }
320
321 d = d.getUTCFullYear() + '-' +
322 wdk_pad(d.getMonth() + 1) + '-' +
323 wdk_pad(d.getDate());
324 return d;
325 };
326