PageSourceSearch

https://nemaweb.org/wp-content/plugins/wp-amo/js/sso-login-form-activate.js?ver=1789683393

js nemaweb.org collected 2026-10-02 04:07:14 UTC 5,250 bytes, 150 lines download raw bytes

1jQuery(document).ready(function ($) {
2  // Handle all inline SSO login form instances on the page
3  $('.wpamo-sso-inline-form-block').each(function () {
4    var container = $(this);
5    var loginForm = container.find('.wpamo-inline-login-view');
6    var forgotUsernameForm = container.find('.wpamo-inline-forgot-username-view');
7    var forgotPasswordForm = container.find('.wpamo-inline-forgot-password-view');
8
9    var usernameEl = loginForm.find('input[name="username"]');
10    var passwordEl = loginForm.find('input[name="password"]');
11    var forgotUsernameEmailEl = forgotUsernameForm.find('input[name="email"]');
12    var forgotPasswordEmailEl = forgotPasswordForm.find('input[name="email"]');
13
14    // View switching
15    function showLoginView() {
16      container.find('.wpamo-sso-form-view').hide();
17      loginForm.show();
18      clearAllErrors(container);
19    }
20
21    function showForgotUsernameView() {
22      container.find('.wpamo-sso-form-view').hide();
23      forgotUsernameForm.show();
24      clearAllErrors(container);
25    }
26
27    function showForgotPasswordView() {
28      container.find('.wpamo-sso-form-view').hide();
29      forgotPasswordForm.show();
30      clearAllErrors(container);
31    }
32
33    container.find('.wpamo-sso-forgot-username-link').on('click', function (e) {
34      e.preventDefault();
35      showForgotUsernameView();
36    });
37
38    container.find('.wpamo-sso-forgot-password-link').on('click', function (e) {
39      e.preventDefault();
40      showForgotPasswordView();
41    });
42
43    container.find('.wpamo-sso-back-to-login-link').on('click', function (e) {
44      e.preventDefault();
45      showLoginView();
46    });
47
48    // Validation constraints
49    var presenceConstraint = {
50      presence: { allowEmpty: false, message: 'is required' },
51    };
52
53    var emailConstraint = {
54      presence: { allowEmpty: false, message: 'is required' },
55      email: { message: 'is not valid' },
56    };
57
58    // Login form field validation
59    usernameEl.on('change keyup', function () {
60      var result = validate({ username: usernameEl.val() }, { username: presenceConstraint });
61      if (hasError(result, 'username')) {
62        addError(usernameEl, result.username[0]);
63      } else {
64        removeErrors(usernameEl);
65      }
66    });
67
68    passwordEl.on('change keyup', function () {
69      var result = validate({ password: passwordEl.val() }, { password: presenceConstraint });
70      if (hasError(result, 'password')) {
71        addError(passwordEl, result.password[0]);
72      } else {
73        removeErrors(passwordEl);
74      }
75    });
76
77    // Login form submit validation
78    loginForm.on('submit', function (e) {
79      var input = { username: usernameEl.val(), password: passwordEl.val() };
80      var constraints = { username: presenceConstraint, password: presenceConstraint };
81      var result = validate(input, constraints);
82      var invalid = hasError(result, 'username') || hasError(result, 'password');
83
84      if (invalid) {
85        e.preventDefault();
86        if (hasError(result, 'username')) addError(usernameEl, result.username[0]);
87        if (hasError(result, 'password')) addError(passwordEl, result.password[0]);
88      }
89    });
90
91    // Forgot username form field validation
92    forgotUsernameEmailEl.on('change keyup', function () {
93      var result = validate({ email: forgotUsernameEmailEl.val() }, { email: emailConstraint });
94      if (hasError(result, 'email')) {
95        addError(forgotUsernameEmailEl, result.email[0]);
96      } else {
97        removeErrors(forgotUsernameEmailEl);
98      }
99    });
100
101    // Forgot username submit validation
102    forgotUsernameForm.on('submit', function (e) {
103      var result = validate({ email: forgotUsernameEmailEl.val() }, { email: emailConstraint });
104      if (hasError(result, 'email')) {
105        e.preventDefault();
106        addError(forgotUsernameEmailEl, result.email[0]);
107      }
108    });
109
110    // Forgot password form field validation
111    forgotPasswordEmailEl.on('change keyup', function () {
112      var result = validate({ email: forgotPasswordEmailEl.val() }, { email: emailConstraint });
113      if (hasError(result, 'email')) {
114        addError(forgotPasswordEmailEl, result.email[0]);
115      } else {
116        removeErrors(forgotPasswordEmailEl);
117      }
118    });
119
120    // Forgot password submit validation
121    forgotPasswordForm.on('submit', function (e) {
122      var result = validate({ email: forgotPasswordEmailEl.val() }, { email: emailConstraint });
123      if (hasError(result, 'email')) {
124        e.preventDefault();
125        addError(forgotPasswordEmailEl, result.email[0]);
126      }
127    });
128  });
129
130  // Helper functions
131  function addError(el, error) {
132    el.addClass('wpamo-sso-error');
133    el.parent().find('.wpamo-sso-error-message').remove();
134    el.parent().append('<div class="wpamo-sso-error-message">' + error + '</div>');
135  }
136
137  function removeErrors(el) {
138    el.removeClass('wpamo-sso-error');
139    el.parent().find('.wpamo-sso-error-message').remove();
140  }
141
142  function clearAllErrors(container) {
143    container.find('.wpamo-sso-error').removeClass('wpamo-sso-error');
144    container.find('.wpamo-sso-error-message').remove();
145  }
146
147  function hasError(result, type) {
148    return typeof result === 'object' && result !== null && result.hasOwnProperty(type);
149  }
150});

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.