PageSourceSearch

https://fullgaz.co.il/wp-content/plugins/wp-user-frontend-pro/assets/js/frontend-form.js

js fullgaz.co.il collected 2026-10-02 18:47:06 UTC 18,160 bytes, 490 lines download raw bytes

1;(function($) {
2    var WP_User_Frontend = {
3        init: function() {
4            // clone and remove repeated field
5            $('.wpuf-form').on('click', 'img.wpuf-clone-field', this.cloneField);
6            $('.wpuf-form').on('click', 'img.wpuf-remove-field', this.removeField);
7            $('.wpuf-form').on('click', 'a.wpuf-delete-avatar', this.deleteAvatar);
8            $('.wpuf-form').on('click', 'a#wpuf-post-draft', this.draftPost);
9
10            $('.wpuf-form-add').on('submit', this.formSubmit);
11            $('form#post').on('submit', this.adminPostSubmit);
12
13            this.ajaxCategory();
14            // image insert
15            // this.insertImage();
16        },
17
18        ajaxCategory: function () {
19
20            var el = '.cat-ajax',
21                wrap = '.category-wrap';
22
23            $(wrap).on('change', el, function(){
24                currentLevel = parseInt( $(this).parent().attr('level') );
25                WP_User_Frontend.getChildCats( $(this), 'lvl', currentLevel+1, wrap, 'category');
26            });
27        },
28
29        getChildCats: function (dropdown, result_div, level, wrap_div, taxonomy) {
30
31            cat = $(dropdown).val();
32            results_div = result_div + level;
33            taxonomy = typeof taxonomy !== 'undefined' ? taxonomy : 'category';
34            field_attr = $(dropdown).siblings('span').data('taxonomy');
35
36            $.ajax({
37                type: 'post',
38                url: wpuf_frontend.ajaxurl,
39                data: {
40                    action: 'wpuf_get_child_cat',
41                    catID: cat,
42                    nonce: wpuf_frontend.nonce,
43                    field_attr: field_attr
44                },
45                beforeSend: function() {
46                    $(dropdown).parent().parent().next('.loading').addClass('wpuf-loading');
47                },
48                complete: function() {
49                    $(dropdown).parent().parent().next('.loading').removeClass('wpuf-loading');
50                },
51                success: function(html) {
52                    //console.log( html ); return;
53                    $(dropdown).parent().nextAll().each(function(){
54                        $(this).remove();
55                    });
56
57                    if(html != "") {
58                        $(dropdown).parent().addClass('hasChild').parent().append('<div id="'+result_div+level+'" level="'+level+'"></div>');
59                        dropdown.parent().parent().find('#'+results_div).html(html).slideDown('fast');
60                    }
61                }
62            });
63        },
64
65        cloneField: function(e) {
66            e.preventDefault();
67
68            var $div = $(this).closest('tr');
69            var $clone = $div.clone();
70            // console.log($clone);
71
72            //clear the inputs
73            $clone.find('input').val('');
74            $clone.find(':checked').attr('checked', '');
75            $div.after($clone);
76        },
77
78        removeField: function() {
79            //check if it's the only item
80            var $parent = $(this).closest('tr');
81            var items = $parent.siblings().andSelf().length;
82
83            if( items > 1 ) {
84                $parent.remove();
85            }
86        },
87
88        adminPostSubmit: function(e) {
89            e.preventDefault();
90
91            var form = $(this),
92                form_data = WP_User_Frontend.validateForm(form);
93
94            if (form_data) {
95                return true;
96            }
97        },
98
99        draftPost: function (e) {
100            e.preventDefault();
101
102            var self = $(this),
103                form = $(this).closest('form'),
104                form_data = form.serialize() + '&action=wpuf_draft_post',
105                post_id = form.find('input[type="hidden"][name="post_id"]').val();
106
107            var rich_texts = [],
108                temp, val;
109
110            // grab rich texts from tinyMCE
111            $('.wpuf-rich-validation').each(function (index, item) {
112                temp = $(item).data('id');
113                val = $.trim( tinyMCE.get(temp).getContent() );
114
115                rich_texts.push(temp + '=' + encodeURIComponent( val ) );
116            });
117
118            // append them to the form var
119            form_data = form_data + '&' + rich_texts.join('&');
120
121
122            self.after(' <span class="wpuf-loading"></span>');
123            $.post(wpuf_frontend.ajaxurl, form_data, function(res) {
124                // console.log(res, post_id);
125                if ( typeof post_id === 'undefined') {
126                    var html = '<input type="hidden" name="post_id" value="' + res.post_id +'">';
127                        html += '<input type="hidden" name="post_date" value="' + res.date +'">';
128                        html += '<input type="hidden" name="post_author" value="' + res.post_author +'">';
129                        html += '<input type="hidden" name="comment_status" value="' + res.comment_status +'">';
130
131                    form.append( html );
132                }
133
134                self.next('span.wpuf-loading').remove();
135
136                self.after('<span class="wpuf-draft-saved">&nbsp; Post Saved</span>');
137                $('.wpuf-draft-saved').delay(2500).fadeOut('fast', function(){
138                    $(this).remove();
139                });
140            })
141        },
142
143        formSubmit: function(e) {
144            e.preventDefault();
145
146            var form = $(this),
147                submitButton = form.find('input[type=submit]')
148                form_data = WP_User_Frontend.validateForm(form);
149
150            if (form_data) {
151
152                // send the request
153                form.find('li.wpuf-submit').append('<span class="wpuf-loading"></span>');
154                submitButton.attr('disabled', 'disabled').addClass('button-primary-disabled');
155
156                $.post(wpuf_frontend.ajaxurl, form_data, function(res) {
157                    // var res = $.parseJSON(res);
158
159                    if ( res.success) {
160                        if( res.show_message == true) {
161                            form.before( '<div class="wpuf-success">' + res.message + '</div>');
162                            form.slideUp( 'fast', function() {
163                                form.remove();
164                            });
165
166                            //focus
167                            $('html, body').animate({
168                                scrollTop: $('.wpuf-success').offset().top - 100
169                            }, 'fast');
170
171                        } else {
172                            window.location = res.redirect_to;
173                        }
174
175                    } else {
176                        alert( res.error );
177                        submitButton.removeAttr('disabled');
178                    }
179
180                    submitButton.removeClass('button-primary-disabled');
181                    form.find('span.wpuf-loading').remove();
182                });
183            }
184        },
185
186        validateForm: function( self ) {
187
188            var temp,
189                temp_val = '',
190                error = false,
191                error_items = [];
192
193            // remove all initial errors if any
194            WP_User_Frontend.removeErrors(self);
195            WP_User_Frontend.removeErrorNotice(self);
196
197            // ===== Validate: Text and Textarea ========
198            var required = self.find('[data-required="yes"]:visible');
199
200            required.each(function(i, item) {
201                // temp_val = $.trim($(item).val());
202
203                // console.log( $(item).data('type') );
204                var data_type = $(item).data('type')
205                    val = '';
206
207                switch(data_type) {
208                    case 'rich':
209                        var name = $(item).data('id')
210                        val = $.trim( tinyMCE.get(name).getContent() );
211
212                        if ( val === '') {
213                            error = true;
214
215                            // make it warn collor
216                            WP_User_Frontend.markError(item);
217                        }
218                        break;
219
220                    case 'textarea':
221                    case 'text':
222                        val = $.trim( $(item).val() );
223
224                        if ( val === '') {
225                            error = true;
226
227                            // make it warn collor
228                            WP_User_Frontend.markError(item);
229                        }
230                        break;
231
232                    case 'select':
233                        val = $(item).val();
234
235                        // console.log(val);
236                        if ( !val || val === '-1' ) {
237                            error = true;
238
239                            // make it warn collor
240                            WP_User_Frontend.markError(item);
241                        }
242                        break;
243
244                    case 'multiselect':
245                        val = $(item).val();
246
247                        if ( val === null || val.length === 0 ) {
248                            error = true;
249
250                            // make it warn collor
251                            WP_User_Frontend.markError(item);
252                        }
253                        break;
254
255                    case 'tax-checkbox':
256                        var length = $(item).children().find('input
256:checked').length;
257
258                        if ( !length ) {
259                            error = true;
260
261                            // make it warn collor
262                            WP_User_Frontend.markError(item);
263                        }
264                        break;
265
266                    case 'radio':
267                        var length = $(item).find('input:checked').length;
268
269                        if ( !length ) {
270                            error = true;
271
272                            // make it warn collor
273                            WP_User_Frontend.markError(item);
274                        }
275                        break;
276
277                    case 'file':
278                        var length = $(item).find('ul').children().length;
279
280                        if ( !length ) {
281                            error = true;
282
283                            // make it warn collor
284                            WP_User_Frontend.markError(item);
285                        }
286                        break;
287
288                    case 'email':
289                        var val = $(item).val();
290
291                        if ( val !== '' ) {
292                            //run the validation
293                            if( !WP_User_Frontend.isValidEmail( val ) ) {
294                                error = true;
295
296                                WP_User_Frontend.markError(item);
297                            }
298                        }
299                        break;
300
301
302                    case 'url':
303                        var val = $(item).val();
304
305                        if ( val !== '' ) {
306                            //run the validation
307                            if( !WP_User_Frontend.isValidURL( val ) ) {
308                                error = true;
309
310                                WP_User_Frontend.markError(item);
311                            }
312                        }
313                        break;
314
315                };
316
317            });
318
319            // if already some error found, bail out
320            if (error) {
321                // add error notice
322                WP_User_Frontend.addErrorNotice(self);
323
324                return false;
325            }
326
327            var form_data = self.serialize(),
328                rich_texts = [];
329
330            // grab rich texts from tinyMCE
331            $('.wpuf-rich-validation').each(function (index, item) {
332                temp = $(item).data('id');
333                val = $.trim( tinyMCE.get(temp).getContent() );
334
335                rich_texts.push(temp + '=' + encodeURIComponent( val ) );
336            });
337
338            // append them to the form var
339            form_data = form_data + '&' + rich_texts.join('&');
340            return form_data;
341        },
342
343        addErrorNotice: function(form) {
344            $(form).find('li.wpuf-submit').append('<div class="wpuf-errors">' + wpuf_frontend.error_message + '</div>');
345        },
346
347        removeErrorNotice: function(form) {
348            $(form).find('.wpuf-errors').remove();
349        },
350
351        markError: function(item) {
352            $(item).closest('li').addClass('has-error');
353            $(item).focus();
354        },
355
356        removeErrors: function(item) {
357            $(item).find('.has-error').removeClass('has-error');
358        },
359
360        isValidEmail: function( email ) {
361            var pattern = new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i);
362            return pattern.test(email);
363        },
364
365        isValidURL: function(url) {
366            var urlregex = new RegExp("^(http:\/\/www.|https:\/\/www.|ftp:\/\/www.|www.|http:\/\/|https:\/\/){1}([0-9A-Za-z]+\.)");
367            return urlregex.test(url);
368        },
369
370        insertImage: function() {
371
372            var button = 'wpuf-insert-image',
373                container = 'wpuf-insert-image-container';
374            if ( !$('#' + button).length) {
375                return;
376            };
377
378            var imageUploader = new plupload.Uploader({
379                runtimes: 'html5,html4',
380                browse_button: button,
381                container: container,
382                multipart: true,
383                multipart_params: {
384                    action: 'wpuf_insert_image'
385                },
386                multiple_queues: false,
387                multi_selection: false,
388                urlstream_upload: true,
389                file_data_name: 'wpuf_file',
390                max_file_size: '2mb',
391                url: wpuf_frontend_upload.plupload.url,
392                flash_swf_url: wpuf_frontend_upload.flash_swf_url,
393                filters: [{
394                    title: 'Allowed Files',
395                    extensions: 'jpg,jpeg,gif,png,bmp'
396                }]
397            });
398
399            imageUploader.bind('Init', function(up, params) {
400                // console.log("Current runtime environment: " + params.runtime);
401            });
402
403            imageUploader.bind('FilesAdded', function(up, files) {
404                var $container = $('#' + container);
405
406                $.each(files, function(i, file) {
407                    $container.append(
408                        '<div class="upload-item" id="' + file.id + '"><div class="progress progress-striped active"><div class="bar"></div></div></div>');
409                });
410
411                up.refresh();
412                up.start();
413            });
414
415            imageUploader.bind('QueueChanged', function (uploader) {
416                imageUploader.start();
417            });
418
419            imageUploader.bind('UploadProgress', function(up, file) {
420                var item = $('#' + file.id);
421
422                $('.bar', item).css({ width: file.percent + '%' });
423                $('.percent', item).html( file.percent + '%' );
424            });
425
426            imageUploader.bind('Error', function(up, error) {
427                alert('Error #' + error.code + ': ' + error.message);
428            });
429
430            imageUploader.bind('FileUploaded', function(up, file, response) {
431
432                $('#' + file.id).remove();
433
434                if(response.response !== 'error' ) {
435                    var success = false;
436
437                    if ( typeof tinyMCE !== 'undefined' ) {
438
439                        if ( typeof tinyMCE.execInstanceCommand !== 'function' ) {
440                            // tinyMCE 4.x
441                            tinyMCE.get('post_content').insertContent(response.response);
442                        } else {
443                            // tinyMCE 3.x
444                            tinyMCE.execInstanceCommand('post_content', 'mceInsertContent', false, response.response);
445                        }
446                    }
447
448                    // insert failed to the edit, perhaps insert into textarea
449                    var post_content = $('#post_content');
450                    post_content.val( post_content.val() + response.response );
451
452                } else {
453                    alert('Something went wrong');
454                }
455            });
456
457            imageUploader.init();
458        },
459
460        deleteAvatar: function(e) {
461            e.preventDefault();
462
463            if ( confirm( $(this).data('confirm') ) ) {
464                $.post(wpuf_frontend.ajaxurl, {action: 'wpuf_delete_avatar', _wpnonce: wpuf_frontend.nonce}, function() {
465                    window.location.reload();
466                });
467            }
468        }
469    };
470
471    $(function() {
472        WP_User_Frontend.init();
473        WP_User_Frontend.insertImage();
474
475        // payment gateway selection
476        $('ul.wpuf-payment-gateways').on('click', 'input[type=radio]', function(e) {
477            $('.wpuf-payment-instruction').slideUp(250);
478
479            $(this).parents('li').find('.wpuf-payment-instruction').slideDown(250);
480        });
481
482        if( !$('ul.wpuf-payment-gateways li').find('input[type=radio]').is(':checked') ) {
483            $('ul.wpuf-payment-gateways li').first().find('input[type=radio]').click()
484        } else {
485            var el = $('ul.wpuf-payment-gateways li').find('input[type=radio]:checked');
486            el.parents('li').find('.wpuf-payment-instruction').slideDown(250);
487        }
488    });
489
490})(jQuery);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.