PageSourceSearch

https://www.formazionedigitale.eu/wp-content/plugins/masterstudy-l…/authorization/ajax.js?ver=3.7.52

js formazionedigitale.eu collected 2026-10-02 01:55:37 UTC 24,466 bytes, 463 lines download raw bytes

1"use strict";
2
3function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
4function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
5function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
6(function ($) {
7  $(document).ready(function () {
8    $('.masterstudy-authorization').each(function () {
9      var formContainer = $(this);
10      var initialRecoveryToken = authorization_data.session_limit_recovery || '';
11      var sessionNotice = formContainer.find('.masterstudy-authorization__session-notice').first();
12      var sessionNoticeComponent = createSessionNoticeComponent(formContainer, sessionNotice, initialRecoveryToken);
13      formContainer.data('session-notice-component', sessionNoticeComponent);
14      if (sessionNoticeComponent && authorization_data.session_limit_active === '1') {
15        sessionNoticeComponent.render('', 'warning', !isEmpty(initialRecoveryToken));
16      }
17      formContainer.find('[data-id="masterstudy-authorization-restore-button"]').click(function (e) {
18        e.preventDefault();
19        restore(formContainer);
20      });
21      formContainer.find('.masterstudy-authorization__form-input').keypress(function (e) {
22        if (e.which === 13) {
23          if ($(this).closest('#masterstudy-authorization-form-login').length > 0) {
24            formContainer.find('[data-id="masterstudy-authorization-login-button"]').trigger('click');
25          } else if ($(this).closest('#masterstudy-authorization-form-register').length > 0) {
26            formContainer.find('[data-id="masterstudy-authorization-register-button"]').trigger('click');
27          }
28        }
29      });
30      formContainer.find('.masterstudy-authorization__form-input').on('input', function () {
31        clearFieldError($(this), formContainer);
32      });
33      var $strengthContainer = $('.masterstudy-authorization__strength-password');
34      var $separators = $strengthContainer.find('.masterstudy-authorization__strength-password__separator');
35      if ($strengthContainer.find('.masterstudy-authorization__strength-password__label').length === 0) {
36        $strengthContainer.append('<div class="masterstudy-authorization__strength-password__label"></div>');
37      }
38      var $label = $strengthContainer.find('.masterstudy-authorization__strength-password__label');
39      $('input[name="register_user_password"]').on('input', function () {
40        var password = $(this).val();
41        var strength = getPasswordStrength(password);
42        var strengthText = '';
43        $strengthContainer.removeClass("bad normal good hard");
44        switch (strength) {
45          case 1:
46            $strengthContainer.addClass("bad");
47            strengthText = masterstudy_authorization_data.bad || "Bad";
48            break;
49          case 2:
50            $strengthContainer.addClass("normal");
51            strengthText = masterstudy_authorization_data.normal || "Normal";
52            break;
53          case 3:
54            $strengthContainer.addClass("good");
55            strengthText = masterstudy_authorization_data.good || "Good";
56            break;
57          case 4:
58            $strengthContainer.addClass("hard");
59            strengthText = masterstudy_authorization_data.hard || "Hard";
60            break;
61        }
62        $label.text(strengthText);
63        $separators.removeClass('active');
64        $separators.each(function (index) {
65          if (index < strength) {
66            $(this).addClass('active');
67          }
68        });
69      });
70      formContainer.find('[data-id="masterstudy-authorization-login-button"]').click(function (e) {
71        e.preventDefault();
72        resetErrors(formContainer);
73        var login_data = {
74          'user_login': formContainer.find('input[name="user_login"]').val(),
75          'user_password': formContainer.find('input[name="user_password"]').val(),
76          'remember': formContainer.find('#masterstudy-authorization-remember').prop('checked')
77        };
78        if (authorization_data.recaptcha_site_key && typeof grecaptcha !== 'undefined') {
79          grecaptcha.ready(function () {
80            grecaptcha.execute(authorization_data.recaptcha_site_key, {
81              action: 'login'
82            }).then(function (token) {
83              login_data['recaptcha'] = token;
84              login(login_data, authorization_data.only_for_instructor, formContainer);
85            });
86          });
87        } else {
88          login(login_data, authorization_data.only_for_instructor, formContainer);
89        }
90      });
91      formContainer.find('[data-id="masterstudy-authorization-register-button"]').click(function (e) {
92        e.preventDefault();
93        resetErrors(formContainer);
94        if (Object.keys(authorization_data.default_fields).length > 0) {
95          for (var fieldName in authorization_data.default_fields) {
96            if (authorization_data.default_fields.hasOwnProperty(fieldName)) {
97              authorization_data.default_fields[fieldName].value = formContainer.find("[name=\"".concat(fieldName, "\"]")).val();
98            }
99          }
100        }
101        if (authorization_data.additional_fields.length > 0) {
102          processFields(authorization_data.additional_fields, formContainer);
103        }
104        if (authorization_data.instructor_fields.length > 0) {
105          processFields(authorization_data.instructor_fields, formContainer);
106        }
107        var register_data = {
108          'register_user_login': formContainer.find('input[name="register_user_login"]').val(),
109          'register_user_email': formContainer.find('input[name="register_user_email"]').val(),
110          'register_user_password': formContainer.find('input[name="register_user_password"]').val(),
111          'register_user_password_re': formContainer.find('input[name="register_user_password_re"]').val(),
112          'profile_default_fields_for_register': authorization_data.default_fields,
113          'become_instructor': authorization_data.only_for_instructor ? true : formContainer.find('#masterstudy-authorization-instructor').length > 0 ? formContainer.find('#masterstudy-authorization-instructor').prop('checked') : false,
114          'additional': authorization_data.additional_fields,
115          'privacy_policy': formContainer.find('#masterstudy-authorization-gdbr').length > 0 ? formContainer.find('#masterstudy-authorization-gdbr').prop('checked') : true,
116          'redirect_page': authorization_data.only_for_instructor ? authorization_data.user_account_page : window.location.href
117        };
118        register_data['additional_instructors'] = register_data['become_instructor'] ? authorization_data.instructor_fields : [];
119        register_data['degree'] = formContainer.find('input[name="degree"]').length > 0 && register_data['become_instructor'] ? formContainer.find('input[name="degree"]').val() : '';
120        register_data['expertize'] = formContainer.find('input[name="expertize"]').length > 0 && register_data['become_instructor'] ? formContainer.find('input[name="expertize"]').val() : '';
121        if (authorization_data.recaptcha_site_key && typeof grecaptcha !== 'undefined') {
122          grecaptcha.ready(function () {
123            grecaptcha.execute(authorization_data.recaptcha_site_key, {
124              action: 'register'
125            }).then(function (token) {
126              register_data['recaptcha'] = token;
127              register(register_data, authorization_data.only_for_instructor, formContainer);
128            });
129          });
130        } else {
131          register(register_data, authorization_data.only_for_instructor, formContainer);
132        }
133      });
134      formContainer.find('[data-id="masterstudy-authorization-instructor-confirm"]').click(function (e) {
135        e.preventDefault();
136        resetErrors(formContainer);
137        var request_data = {
138          'fields_type': 'default',
139          'fields': {
140            'degree': formContainer.find('input[name="degree"]').length ? formContainer.find('input[name="degree"]').val() : '',
141            'expertize': formContainer.find('input[name="expertize"]').length ? formContainer.find('input[name="expertize"]').val() : ''
142          }
143        };
144        if (authorization_data.instructor_fields.length > 0) {
145          processFields(authorization_data.instructor_fields, formContainer);
146          request_data['fields'] = authorization_data.instructor_fields;
147          request_data['fields_type'] = 'custom';
148        }
149        instructor_request(request_data, formContainer);
150      });
151    });
152  });
153  function createSessionNoticeComponent(formContainer, sessionNotice, initialRecoveryToken) {
154    if (!window.masterstudySessionNotice || !sessionNotice.length) {
155      return null;
156    }
157    return window.masterstudySessionNotice.create({
158      notice: sessionNotice,
159      initialRecoveryToken: initialRecoveryToken,
160      getRequestData: function getRequestData(api) {
161        return {
162          'user_login': formContainer.find('input[name="user_login"]').val(),
163          'user_password': formContainer.find('input[name="user_password"]').val(),
164          'recovery_token': api.getRecoveryToken()
165        };
166      }
167    });
168  }
169  function getPasswordStrength(password) {
170    if (!password) return 0;
171    var length = password.length;
172    var hasLower = /[a-z]/.test(password);
173    var hasUpper = /[A-Z]/.test(password);
174    var hasNumber = /[0-9]/.test(password);
175    if (length >= 8 && length <= 11 && hasLower && hasUpper && hasNumber) {
176      return 2;
177    }
178    if (length >= 12 && length <= 15 && hasLower && hasUpper && hasNumber) {
179      return 3;
180    }
181    if (length >= 16 && hasLower && hasUpper && hasNumber) {
182      return 4;
183    }
184    return 1;
185  }
186  function processFields(fields, formContainer) {
187    if (fields.length > 0) {
188      var _iterator = _createForOfIteratorHelper(fields),
189        _step;
190      try {
191        var _loop = function _loop() {
192          var field = _step.value;
193          if (field.type === 'checkbox') {
194            var checkedValues = [];
195            formContainer.find("[name=\"".concat(field.slug, "\"]")).each(function () {
196              if ($(this).next().hasClass('masterstudy-form-builder__checkbox-wrapper_checked')) {
197                checkedValues.push($(this).val());
198              }
199            });
200            field.value = checkedValues.join(',');
201          } else if (field.type === 'radio') {
202            formContainer.find("[name=\"".concat(field.slug, "\"]")).each(function () {
203              if ($(this).next().hasClass('masterstudy-form-builder__radio-wrapper_checked')) {
204                field.value = $(this).val();
205              }
206            });
207          } else if (field.type === 'file') {
208            field.value = field.value ? field.value : '';
209          } else {
210            field.value = formContainer.find("[name=\"".concat(field.slug, "\"]")).val();
211          }
212        };
213        for (_iterator.s(); !(_step = _iterator.n()).done;) {
214          _loop();
215        }
216      } catch (err) {
217        _iterator.e(err);
218      } finally {
219        _iterator.f();
220      }
221    }
222  }
223  function login(login_data, redirect, formContainer) {
224    var url = authorization_data.ajax_url + '?action=stm_lms_login&nonce=' + authorization_data.login_nonce;
225    formContainer.find('[data-id="masterstudy-authorization-login-button"]').addClass('masterstudy-button_loading');
226    fetch(url, {
227      method: 'POST',
228      headers: {
229        'Content-Type': 'application/json'
230      },
231      body: JSON.stringify(login_data)
232    }).then(function (response) {
233      if (response.ok) {
234        return response.json();
235      }
236      throw new Error('not ok');
237    }).then(function (data) {
238      formContainer.find('[data-id="masterstudy-authorization-login-button"]').removeClass('masterstudy-button_loading');
239      if (data.session_limit) {
240        var sessionNoticeComponent = formContainer.data('session-notice-component');
241        if (sessionNoticeComponent) {
242          sessionNoticeComponent.setRecoveryToken(data.recovery_token || sessionNoticeComponent.getRecoveryToken()).render('', 'warning', true);
243        }
244        return;
245      }
246      if (data.status === 'error') {
247        data.errors.forEach(function (error) {
248          var inputField = formContainer.find("input[name=\"".concat(error.field, "\"]"));
249          var html = "<span data-error-id=\"".concat(error.id, "\" class=\"masterstudy-authorization__form-field-error\">").concat(error.text, "</span>");
250          if (inputField.length > 0) {
251            inputField.parent().addClass('masterstudy-authorization__form-field_has-error');
252            if (inputField.parent().find("span[data-error-id=\"".concat(error.id, "\"]")).length === 0) {
253              inputField.after(html);
254            }
255          }
256        });
257        return;
258      }
259      if (data.status === 'success') {
260        redirect ? window.location = data.user_page : location.reload();
261      }
262    })["catch"](function () {
263      formContainer.find('[data-id="masterstudy-authorization-login-button"]').removeClass('masterstudy-button_loading');
264    });
265  }
266  function register(register_data, redirect, formContainer) {
267    var url = authorization_data.ajax_url + '?action=stm_lms_register&nonce=' + authorization_data.register_nonce;
268    formContainer.find('[data-id="masterstudy-authorization-register-button"]').addClass('masterstudy-button_loading');
269    fetch(url, {
270      method: 'POST',
271      headers: {
272        'Content-Type': 'application/json'
273      },
274      body: JSON.stringify(register_data)
275    }).then(function (response) {
276      if (response.ok) {
277        return response.json();
278      }
279      throw new Error('not ok');
280    }).then(function (data) {
281      formContainer.find('[data-id="masterstudy-authorization-register-button"]').removeClass('masterstudy-button_loading');
282      if (data.status === 'error') {
283        error_handling(data.errors, formContainer);
284        return;
285      }
286      if (data.status === 'success') {
287        if (authorization_data.email_confirmation) {
288          open_confirmation_form(false, formContainer);
289          return;
290        }
291        if (authorization_data.only_for_instructor && authorization_data.instructor_premoderation) {
292          open_confirmation_form(true, formContainer);
293          return;
294        }
295        redirect ? window.location = data.user_page : location.reload();
296      }
297    })["catch"](function () {
298      formContainer.find('[data-id="masterstudy-authorization-register-button"]').removeClass('masterstudy-button_loading');
299    });
300  }
301  function instructor_request(request_data, formContainer) {
302    $.ajax({
303      url: authorization_data.ajax_url + '?action=stm_lms_become_instructor' + '&nonce=' + authorization_data.instructor_nonce,
304      method: 'POST',
305      data: request_data,
306      beforeSend: function beforeSend() {
307        formContainer.find('[data-id="masterstudy-authorization-instructor-confirm"]').addClass('masterstudy-button_loading');
308      },
309      success: function success(data) {
310        formContainer.find('[data-id="masterstudy-authorization-instructor-confirm"]').removeClass('masterstudy-button_loading');
311        if (data.status === 'error') {
312          error_handling(data.errors, formContainer);
313          return;
314        }
315        if (data.status === 'success') {
316          if (authorization_data.only_for_instructor && authorization_data.instructor_premoderation) {
317            open_confirmation_form(true, formContainer);
318            return;
319          }
320          window.location = authorization_data.user_account_page;
321        }
322      }
323    });
324  }
325  function resetErrors(formContainer) {
326    formContainer.find('.masterstudy-authorization__form-field').removeClass('masterstudy-authorization__form-field_has-error');
327    formContainer.find('.masterstudy-authorization__form-field-error').remove();
328  }
329  function clearFieldError(inputField, formContainer) {
330    var field = inputField.closest('.masterstudy-authorization__form-field');
331    if (!field.length) {
332      return;
333    }
334    field.removeClass('masterstudy-authorization__form-field_has-error');
335    field.find('.masterstudy-authorization__form-field-error').remove();
336    formContainer.find(".masterstudy-authorization__form-field-error_".concat(inputField.attr('name'))).remove();
337  }
338  function isEmpty(value) {
339    return typeof value === 'undefined' || value === null || value === '';
340  }
341  function error_handling(errors, formContainer) {
342    errors.forEach(function (error) {
343      var inputField = formContainer.find("[name=\"".concat(error.field, "\"]")),
344        html = "<span data-error-id=\"".concat(error.id, "\" class=\"masterstudy-authorization__form-field-error\">").concat(error.text, "</span>");
345      if (inputField.length > 0) {
346        if (error.field === 'privacy_policy' || error.field === 'recaptcha') {
347          if (formContainer.find("span[data-error-id=\"".concat(error.id, "\"]")).length === 0) {
348            var errorElement = $(html);
349            errorElement.addClass("masterstudy-authorization__form-field-error_main masterstudy-authorization__form-field-error_".concat(error.field));
350            formContainer.find('.masterstudy-authorization__actions').before(errorElement);
351          }
352        } else {
353          if (inputField.parent().hasClass('masterstudy-form-builder__checkbox')) {
354            var container = inputField.closest('.masterstudy-form-builder__checkbox-group');
355            var block = container.find('.masterstudy-form-builder__checkbox-description');
356            $(container).parent().addClass('masterstudy-authorization__form-field_has-error');
357            if (container.find("span[data-error-id=\"".concat(error.id, "\"]")).length === 0) {
358              block.length > 0 ? $(html).insertBefore(block) : inputField.closest('.masterstudy-form-builder__checkbox-group').append(html);
359            }
360          } else if (inputField.closest('.masterstudy-form-builder__radio-group').length > 0) {
361            var radioGroup = inputField.closest('.masterstudy-form-builder__radio-group');
362            if (radioGroup.find("span[data-error-id=\"".concat(error.id, "\"]")).length === 0) {
363              var descriptionBlock = radioGroup.find('.masterstudy-form-builder__radio-description');
364              if (descriptionBlock.length > 0) {
365                descriptionBlock.before(html);
366              } else {
367                radioGroup.append(html);
368              }
369            }
370          } else if (inputField.parent().parent().hasClass('masterstudy-form-builder-file-upload')) {
371            var _container = inputField.closest('.masterstudy-form-builder-file-upload');
372            $(_container).parent().addClass('masterstudy-authorization__form-field_has-error');
373            if ($(_container).find("span[data-error-id=\"".concat(error.id, "\"]")).length === 0) {
374              $(_container).find('.masterstudy-form-builder-file-upload__field').after(html);
375            }
376          } else {
377            inputField.parent().addClass('masterstudy-authorization__form-field_has-error');
378            if (inputField.parent().find("span[data-error-id=\"".concat(error.id, "\"]")).length === 0) {
379              inputField.after(html);
380            }
381          }
382        }
383      }
384    });
385    var modalWrapper = formContainer.closest('.masterstudy-authorization-modal__container'),
386      firstErrorField = formContainer.find('.masterstudy-authorization__form-field_has-error').first();
387    if (firstErrorField.length > 0) {
388      var topOffset = firstErrorField.offset().top;
389      if (modalWrapper.length > 0) {
390        topOffset -= modalWrapper.offset().top;
391        var scrollTo = modalWrapper.scrollTop() + topOffset - 10;
392        modalWrapper.animate({
393          scrollTop: scrollTo
394        }, 500);
395      } else {
396        if (!isElementVisible(firstErrorField[0])) {
397          $('html, body').animate({
398            scrollTop: topOffset - 10
399          }, 500);
400        }
401      }
402    }
403  }
404  function isElementVisible(element) {
405    var rect = element.getBoundingClientRect();
406    return rect.top >= 0 && rect.left >= 0 && rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) && rect.right <= (window.innerWidth || document.documentElement.clientWidth);
407  }
408  function restore(formContainer) {
409    var url = authorization_data.ajax_url + '?action=stm_lms_lost_password&nonce=' + authorization_data.restore_nonce,
410      user_mail = formContainer.find('input[name="restore_user_login"]').val(),
411      restore_data = JSON.stringify({
412        'restore_user_login': user_mail
413      });
414    resetErrors(formContainer);
415    formContainer.find('[data-id="masterstudy-authorization-restore-button"]').addClass('masterstudy-button_loading');
416    fetch(url, {
417      method: 'POST',
418      headers: {
419        'Content-Type': 'application/json'
420      },
421      body: restore_data
422    }).then(function (response) {
423      if (response.ok) {
424        return response.json();
425      }
426      throw new Error('not ok');
427    }).then(function (data) {
428      formContainer.find('[data-id="masterstudy-authorization-restore-button"]').removeClass('masterstudy-button_loading');
429      if (data.status === 'error') {
430        data.errors.forEach(function (error) {
431          var inputField = formContainer.find("input[name=\"".concat(error.field, "\"]"));
432          var html = "<span data-error-id=\"".concat(error.id, "\" class=\"masterstudy-authorization__form-field-error\">").concat(error.text, "</span>");
433          if (inputField.length > 0) {
434            inputField.parent().addClass('masterstudy-authorization__form-field_has-error');
435            if (inputField.parent().find("span[data-error-id=\"".concat(error.id, "\"]")).length === 0) {
436              inputField.after(html);
437            }
438          }
439        });
440        return;
441      }
442      if (data.status === 'success') {
443        formContainer.find('.masterstudy-authorization__send-mail-content-subtitle').text(function (index, oldText) {
444          return oldText + user_mail;
445        });
446        formContainer.find('.masterstudy-authorization__restore').removeClass('masterstudy-authorization__restore_show');
447        formContainer.find('#masterstudy-authorization-restore-pass').addClass('masterstudy-authorization__send-mail_show');
448        formContainer.find('.masterstudy-authorization__switch').addClass('masterstudy-authorization__switch_hide');
449      }
450    })["catch"](function () {
451      formContainer.find('[data-id="masterstudy-authorization-restore-button"]').removeClass('masterstudy-button_loading');
452    });
453  }
454  function open_confirmation_form(for_instructor, formContainer) {
455    formContainer.find('.masterstudy-authorization__wrapper').addClass('masterstudy-authorization__wrapper_hide');
456    formContainer.find('.masterstudy-authorization__switch').addClass('masterstudy-authorization__switch_hide');
457    if (for_instructor) {
458      formContainer.find('.masterstudy-authorization__instructor-confirm').addClass('masterstudy-authorization__instructor-confirm_show');
459    } else {
460      formContainer.find('#masterstudy-authorization-confirm-email').addClass('masterstudy-authorization__send-mail_show');
461    }
462  }
463})(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.