PageSourceSearch

https://selfmanagementresource.com/wp-content/plugins/mailpn/assets/js/mailpn-forms.js?ver=1.0.87

js selfmanagementresource.com collected 2026-10-01 12:09:56 UTC 20,875 bytes, 523 lines download raw bytes

1(function($) {
2  'use strict';
3
4  // Define mailpn_form_update function
5  window.mailpn_form_update = function (){
6    $('.mailpn-field[data-mailpn-parent-option]').closest('.mailpn-input-wrapper').addClass('mailpn-display-none');
7
8    $('.mailpn-field[data-mailpn-parent~="this"]').each(function(index_parent, element_parent) {
9      var parent_this = $(this);
10
11      $('.mailpn-field[data-mailpn-parent~=' + parent_this.attr('id') + ']').each(function(index, element) {
12        if (parent_this.hasClass('mailpn-checkbox')) {
13          if (parent_this.is(':checked') && $(this).attr('data-mailpn-parent-option') == 'on') {
14            $(this).closest('.mailpn-input-wrapper').removeClass('mailpn-display-none');
15          }
16        }else{
17          if (parent_this.val() == $(this).attr('data-mailpn-parent-option')) {
18            $(this).closest('.mailpn-input-wrapper').removeClass('mailpn-display-none');
19          }
20        }
21      });
22    });
23  }
24
25  $(document).ready(function() {
26    if ($('.mailpn-password-checker').length) {
27      var pass_view_state = false;
28
29      function mailpn_pass_check_strength(pass) {
30        var strength = 0;
31        var password = $('.mailpn-password-strength');
32        var low_upper_case = password.closest('.mailpn-password-checker').find('.low-upper-case i');
33        var number = password.closest('.mailpn-password-checker').find('.one-number i');
34        var special_char = password.closest('.mailpn-password-checker').find('.one-special-char i');
35        var eight_chars = password.closest('.mailpn-password-checker').find('.eight-character i');
36
37        //If pass contains both lower and uppercase characters
38        if (pass.match(/([a-z].*[A-Z])|([A-Z].*[a-z])/)) {
39          strength += 1;
40          low_upper_case.text('task_alt');
41        } else {
42          low_upper_case.text('radio_button_unchecked');
43        }
44
45        //If it has numbers and characters
46        if (pass.match(/([0-9])/)) {
47          strength += 1;
48          number.text('task_alt');
49        } else {
50          number.text('radio_button_unchecked');
51        }
52
53        //If it has one special character
54        if (pass.match(/([!,%,&,@,#,$,^,*,?,_,~,|,¬,+,ç,-,€])/)) {
55          strength += 1;
56          special_char.text('task_alt');
57        } else {
58          special_char.text('radio_button_unchecked');
59        }
60
61        //If pass is greater than 7
62        if (pass.length > 7) {
63          strength += 1;
64          eight_chars.text('task_alt');
65        } else {
66          eight_chars.text('radio_button_unchecked');
67        }
68
69        // If value is less than 2
70        if (strength < 2) {
71          $('.mailpn-password-strength-bar').removeClass('mailpn-progress-bar-warning mailpn-progress-bar-success').addClass('mailpn-progress-bar-danger').css('width', '10%');
72        } else if (strength == 3) {
73          $('.mailpn-password-strength-bar').removeClass('mailpn-progress-bar-success mailpn-progress-bar-danger').addClass('mailpn-progress-bar-warning').css('width', '60%');
74        } else if (strength == 4) {
75          $('.mailpn-password-strength-bar').removeClass('mailpn-progress-bar-warning mailpn-progress-bar-danger').addClass('mailpn-progress-bar-success').css('width', '100%');
76        }
77      }
78
79      $(document).on('click', ('.mailpn-show-pass'), function(e){
80        e.preventDefault();
81        e.stopPropagation();
82        e.stopImmediatePropagation();
83
84        var mailpn_btn = $('.mailpn-show-pass');
85
86        if (pass_view_state) {
87          mailpn_btn.siblings('#mailpn-password').attr('type', 'password');
88          mailpn_btn.find('i').text('visibility_off');
89          pass_view_state = false;
90        }else{
91          mailpn_btn.siblings('#mailpn-password').attr('type', 'text');
92          mailpn_btn.find('i').text('visibility');
93          pass_view_state = true;
94        } 
95      });
96
97      $(document).on('keyup', ('.mailpn-password-strength'), function(e){
98        mailpn_pass_check_strength($('.mailpn-password-strength').val());
99
100        if (!$('#mailpn-popover-pass').is(':visible')) {
101          $('#mailpn-popover-pass').fadeIn('slow');
102        }
103
104        if (!$('.mailpn-show-pass').is(':visible')) {
105          $('.mailpn-show-pass').fadeIn('slow');
106        }
107      });
108    }
109    
110    $(document).on('mouseover', '.mailpn-input-star', function(e){
111      if (!$(this).closest('.mailpn-input-stars').hasClass('clicked')) {
112        $(this).text('star');
113        $(this).prevAll('.mailpn-input-star').text('star');
114      }
115    });
116
117    $(document).on('mouseout', '.mailpn-input-stars', function(e){
118      if (!$(this).hasClass('clicked')) {
119        $(this).find('.mailpn-input-star').text('star_outlined');
120      }
121    });
122
123    $(document).on('click', '.mailpn-input-star', function(e){
124      e.preventDefault();
125      e.stopPropagation();
126      e.stopImmediatePropagation();
127
128      $(this).closest('.mailpn-input-stars').addClass('clicked');
129      $(this).closest('.mailpn-input-stars').find('.mailpn-input-star').text('star_outlined');
130      $(this).text('star');
131      $(this).prevAll('.mailpn-input-star').text('star');
132      $(this).closest('.mailpn-input-stars').siblings('.mailpn-input-hidden-stars').val($(this).prevAll('.mailpn-input-star').length + 1);
133    });
134
135    $(document).on('change', '.mailpn-input-hidden-stars', function(e){
136      $(this).siblings('.mailpn-input-stars').find('.mailpn-input-star').text('star_outlined');
137      $(this).siblings('.mailpn-input-stars').find('.mailpn-input-star').slice(0, $(this).val()).text('star');
138    });
139
140    // Register event listener unconditionally (delegated events work for dynamic content)
141    $(document).on('change', '.mailpn-field[data-mailpn-parent~="this"]', function(e) {
142      mailpn_form_update();
143    });
144
145    // Call form update on document ready if fields exist
146    if ($('.mailpn-field[data-mailpn-parent]').length) {
147      mailpn_form_update();
148    }
149
150    if ($('.mailpn-html-multi-group').length) {
151      $(document).on('click', '.mailpn-html-multi-remove-btn', function(e) {
152        e.preventDefault();
153        e.stopPropagation();
154        e.stopImmediatePropagation();
155
156        var mailpn_users_btn = $(this);
157
158        if (mailpn_users_btn.closest('.mailpn-html-multi-wrapper').find('.mailpn-html-multi-group').length > 1) {
159          $(this).closest('.mailpn-html-multi-group').remove();
160        }else{
161          $(this).closest('.mailpn-html-multi-group').find('input, select, textarea').val('');
162        }
163      });
164
165      $(document).on('click', '.mailpn-html-multi-add-btn', function(e) {
166        e.preventDefault();
167        e.stopPropagation();
168        e.stopImmediatePropagation();
169
170        $(this).closest('.mailpn-html-multi-wrapper').find('.mailpn-html-multi-group:first').clone().insertAfter($(this).closest('.mailpn-html-multi-wrapper').find('.mailpn-html-multi-group:last'));
171        $(this).closest('.mailpn-html-multi-wrapper').find('.mailpn-html-multi-group:last').find('input, select, textarea').val('');
172
173        $(this).closest('.mailpn-html-multi-wrapper').find('.mailpn-input-range').each(function(index, element) {
174          $(this).siblings('.mailpn-input-range-output').html($(this).val());
175        });
176      });
177
178      $('.mailpn-html-multi-wrapper').sortable({handle: '.mailpn-multi-sorting'});
179
180      $(document).on('sortstop', '.mailpn-html-multi-wrapper', function(event, ui){
181        mailpn_get_main_message(mailpn_i18n.ordered_element);
182      });
183    }
184
185    if ($('.mailpn-input-range').length) {
186      $('.mailpn-input-range').each(function(index, element) {
187        $(this).siblings('.mailpn-input-range-output').html($(this).val());
188      });
189
190      $(document).on('input', '.mailpn-input-range', function(e) {
191        $(this).siblings('.mailpn-input-range-output').html($(this).val());
192      });
193    }
194
195    {
196      var image_frame;
197
198      $(document).on('click', '.mailpn-image-btn', function(e){
199        e.preventDefault();
200        e.stopPropagation();
201        e.stopImmediatePropagation();
202
203        if (image_frame){
204          image_frame.open();
205          return;
206        }
207
208        var mailpn_input_btn = $(this);
209        var mailpn_images_block = mailpn_input_btn.closest('.mailpn-images-block').find('.mailpn-images');
210        var mailpn_images_input = mailpn_input_btn.closest('.mailpn-images-block').find('.mailpn-image-input');
211
212        var image_frame = wp.media({
213          title: (mailpn_images_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_images : mailpn_i18n.select_image,
214          library: {
215            type: 'image'
216          },
217          multiple: (mailpn_images_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
218        });
219
220        image_frame.states.add([
221          new wp.media.controller.Library({
222            id: 'post-gallery',
223            title: (mailpn_images_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.edit_images : mailpn_i18n.edit_image,
224            priority: 20,
225            toolbar: 'main-gallery',
226            filterable: 'uploaded',
227            library: wp.media.query(image_frame.options.library),
228            multiple: (mailpn_images_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
229            editable: true,
230            allowLocalEdits: true,
231            displaySettings: true,
232            displayUserSettings: true
233          })
234        ]);
235
236        image_frame.open();
237
238        image_frame.on('select', function() {
239          var ids = [];
240          var attachments_arr = [];
241
242          attachments_arr = image_frame.state().get('selection').toJSON();
243          mailpn_images_block.html('');
244
245          $(attachments_arr).each(function(e){
246            var sep = (e != (attachments_arr.length - 1))  ? ',' : '';
247            ids += $(this)[0].id + sep;
248            mailpn_images_block.append('<img src="' + $(this)[0].url + '" class="">');
249          });
250
251          mailpn_input_btn.text((mailpn_images_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_images : mailpn_i18n.select_image);
252          mailpn_images_input.val(ids);
253        });
254      });
255    }
256
257    {
258      var audio_frame;
259
260      $(document).on('click', '.mailpn-audio-btn', function(e){
261        e.preventDefault();
262        e.stopPropagation();
263        e.stopImmediatePropagation();
264
265        if (audio_frame){
266          audio_frame.open();
267          return;
268        }
269
270        var mailpn_input_btn = $(this);
271        var mailpn_audios_block = mailpn_input_btn.closest('.mailpn-audios-block').find('.mailpn-audios');
272        var mailpn_audios_input = mailpn_input_btn.closest('.mailpn-audios-block').find('.mailpn-audio-input');
273
274        var audio_frame = wp.media({
275          title: (mailpn_audios_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_audios : mailpn_i18n.select_audio,
276          library : {
277            type : 'audio'
278          },
279          multiple: (mailpn_audios_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
280        });
281
282        audio_frame.states.add([
283          new wp.media.controller.Library({
284            id: 'post-gallery',
285            title: (mailpn_audios_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_audios : mailpn_i18n.select_audio,
286            priority: 20,
287            toolbar: 'main-gallery',
288            filterable: 'uploaded',
289            library: wp.media.query(audio_frame.options.library),
290            multiple: (mailpn_audios_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
291            editable: true,
292            allowLocalEdits: true,
293            displaySettings: true,
294            displayUserSettings: true
295          })
296        ]);
297
298        audio_frame.open();
299
300        audio_frame.on('select', function() {
301          var ids = [];
302          var attachments_arr = [];
303
304          attachments_arr = audio_frame.state().get('selection').toJSON();
305          mailpn_audios_block.html('');
306
307          $(attachments_arr).each(function(e){
308            var sep = (e != (attachments_arr.length - 1))  ? ',' : '';
309            ids += $(this)[0].id + sep;
310            mailpn_audios_block.append('<div class="mailpn-audio mailpn-tooltip" title="' + $(this)[0].title + '"><i class="dashicons dashicons-media-audio"></i></div>');
311          });
312
313          mailpn_input_btn.text((mailpn_audios_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_audios : mailpn_i18n.select_audio);
314          mailpn_audios_input.val(ids);
315        });
316      });
317    }
318
319    {
320      var video_frame;
321
322      $(document).on('click', '.mailpn-video-btn', function(e){
323        e.preventDefault();
324        e.stopPropagation();
325        e.stopImmediatePropagation();
326
327        if (video_frame){
328          video_frame.open();
329          return;
330        }
331
332        var mailpn_input_btn = $(this);
333        var mailpn_videos_block = mailpn_input_btn.closest('.mailpn-videos-block').find('.mailpn-videos');
334        var mailpn_videos_input = mailpn_input_btn.closest('.mailpn-videos-block').find('.mailpn-video-input');
335
336        var video_frame = wp.media({
337          title: (mailpn_videos_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_videos : mailpn_i18n.select_video,
338          library : {
339            type : 'video'
340          },
341          multiple: (mailpn_videos_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
342        });
343
344        video_frame.states.add([
345          new wp.media.controller.Library({
346            id: 'post-gallery',
347            title: (mailpn_videos_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_videos : mailpn_i18n.select_video,
348            priority: 20,
349            toolbar: 'main-gallery',
350            filterable: 'uploaded',
351            library: wp.media.query(video_frame.options.library),
352            multiple: (mailpn_videos_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
353            editable: true,
354            allowLocalEdits: true,
355            displaySettings: true,
356            displayUserSettings: true
357          })
358        ]);
359
360        video_frame.open();
361
362        video_frame.on('select', function() {
363          var ids = [];
364          var attachments_arr = [];
365
366          attachments_arr = video_frame.state().get('selection').toJSON();
367          mailpn_videos_block.html('');
368
369          $(attachments_arr).each(function(e){
370            var sep = (e != (attachments_arr.length - 1))  ? ',' : '';
371            ids += $(this)[0].id + sep;
372            mailpn_videos_block.append('<div class="mailpn-video mailpn-tooltip" title="' + $(this)[0].title + '"><i class="dashicons dashicons-media-video"></i></div>');
373          });
374
375          mailpn_input_btn.text((mailpn_videos_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_videos : mailpn_i18n.select_video);
376          mailpn_videos_input.val(ids);
377        });
378      });
379    }
380
381    {
382      var file_frame;
383
384      $(document).on('click', '.mailpn-file-btn', function(e){
385        e.preventDefault();
386        e.stopPropagation();
387        e.stopImmediatePropagation();
388
389        if (file_frame){
390          file_frame.open();
391          return;
392        }
393
394        var mailpn_input_btn = $(this);
395        var mailpn_files_block = mailpn_input_btn.closest('.mailpn-files-block').find('.mailpn-files');
396        var mailpn_files_input = mailpn_input_btn.closest('.mailpn-files-block').find('.mailpn-file-input');
397
398        var file_frame = wp.media({
399          title: (mailpn_files_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_files : mailpn_i18n.select_file,
400          multiple: (mailpn_files_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
401        });
402
403        file_frame.states.add([
404          new wp.media.controller.Library({
405            id: 'post-gallery',
406            title: (mailpn_files_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.select_files : mailpn_i18n.select_file,
407            priority: 20,
408            toolbar: 'main-gallery',
409            filterable: 'uploaded',
410            library: wp.media.query(file_frame.options.library),
411            multiple: (mailpn_files_block.attr('data-mailpn-multiple') == 'true') ? 'true' : 'false',
412            editable: true,
413            allowLocalEdits: true,
414            displaySettings: true,
415            displayUserSettings: true
416          })
417        ]);
418
419        file_frame.open();
420
421        file_frame.on('select', function() {
422          var ids = [];
423          var attachments_arr = [];
424
425          var attachments_arr = file_frame.state().get('selection').toJSON();
426          mailpn_files_block.html('');
427
428          $(attachments_arr).each(function(e){
429            var sep = (e != (attachments_arr.length - 1))  ? ',' : '';
430            ids += $(this)[0].id + sep;
431            mailpn_files_block.append('<embed src="' + $(this)[0].url + '" type="application/pdf" class="mailpn-embed-file"/>');
432          });
433
434          mailpn_input_btn.text((mailpn_files_block.attr('data-mailpn-multiple') == 'true') ? mailpn_i18n.edit_files : mailpn_i18n.edit_file);
435          mailpn_files_input.val(ids);
436        });
437      });
438    }
439  });
440
441  $(document).on('click', '.mailpn-toggle', function(e) {
442    e.preventDefault();
443    e.stopPropagation();
444    e.stopImmediatePropagation();
445
446    var mailpn_toggle = $(this);
447
448    if (mailpn_toggle.find('i').length) {
449      if (mailpn_toggle.siblings('.mailpn-toggle-content').is(':visible')) {
450        mailpn_toggle.find('i').text('add');
451      }else{
452        mailpn_toggle.find('i').text('clear');
453      }
454    }
455
456    mailpn_toggle.siblings('.mailpn-toggle-content').fadeToggle();
457  });
458
459  // Role management functionality
460  function mailpn_handle_role_action(action, btn) {
461    var wrapper = btn.closest('.mailpn-user-role-selector-wrapper');
462    var select = wrapper.find('.mailpn-user-role-select');
463    var selectedUsers = select.val();
464    var role = select.data('role');
465    var roleLabel = select.data('role-label');
466    var nonce = wrapper.find('.mailpn-role-nonce').val();
467    var messageDiv = wrapper.find('.mailpn-role-message');
468
469    if (!selectedUsers || selectedUsers.length === 0) {
470      messageDiv.removeClass('mailpn-display-none-soft').html('<p class="mailpn-color-error"><i class="material-icons-outlined mailpn-vertical-align-middle">warning</i> Please select at least one user.</p>');
471      return;
472    }
473
474    var confirmMsg = action === 'assign'
475      ? 'Are you sure you want to assign the ' + roleLabel + ' role to ' + selectedUsers.length + ' user(s)?'
476      : 'Are you sure you want to remove the ' + roleLabel + ' role from ' + selectedUsers.length + ' user(s)?';
477
478    if (!confirm(confirmMsg)) return;
479
480    btn.prop('disabled', true);
481
482    $.ajax({
483      url: mailpn_ajax.ajax_url,
484      type: 'POST',
485      dataType: 'json',
486      data: {
487        action: 'mailpn_ajax',
488        mailpn_ajax_type: 'mailpn_update_user_role',
489        mailpn_ajax_nonce: mailpn_ajax.mailpn_ajax_nonce,
490        role_action: action,
491        role: role,
492        user_ids: selectedUsers,
493        role_nonce: nonce
494      },
495      success: function(response) {
496        if (typeof response === 'string') {
497          try { response = JSON.parse(response); } catch(e) { return; }
498        }
499        if (response.error_key === '') {
500          messageDiv.removeClass('mailpn-display-none-soft').html('<p class="mailpn-color-success"><i class="material-icons-outlined mailpn-vertical-align-middle">check_circle</i> ' + response.error_content + '</p>');
501          setTimeout(function() { location.reload(); }, 1500);
502        } else {
503          messageDiv.removeClass('mailpn-display-none-soft').html('<p class="mailpn-color-error"><i class="material-icons-outlined mailpn-vertical-align-middle">error</i> ' + response.error_content + '</p>');
504          btn.prop('disabled', false);
505        }
506      },
507      error: function() {
508        messageDiv.removeClass('mailpn-display-none-soft').html('<p class="mailpn-color-error"><i class="material-icons-outlined mailpn-vertical-align-middle">error</i> An error occurred. Please try again.</p>');
509        btn.prop('disabled', false);
510      }
511    });
512  }
513
514  $(document).on('click', '.mailpn-assign-role-btn', function(e) {
515    e.preventDefault();
516    mailpn_handle_role_action('assign', $(this));
517  });
518
519  $(document).on('click', '.mailpn-remove-role-btn', function(e) {
520    e.preventDefault();
521    mailpn_handle_role_action('remove', $(this));
522  });
523})(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.