PageSourceSearch

https://cursodelper.es/wp-content/plugins/masterstudy-lms-learning…/authorization/ajax.js?ver=3.7.26

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