PageSourceSearch

https://www.nordheim.fr/wp-content/plugins/wp-user-frontend-pro/assets/js/login-form.js?ver=4.3.13

js nordheim.fr collected 2026-10-02 23:03:38 UTC 6,072 bytes, 184 lines download raw bytes

1/**
2 * WP User Frontend Pro - Login Form Frontend Logic
3 *
4 * Handles placeholder conversion, help text, and form element manipulation
5 * for all login form layouts.
6 *
7 * @package WP User Frontend Pro
8 * @since 1.0.0
9 */
10
11(function($) {
12    'use strict';
13
14    /**
15     * Initialize login form enhancements
16     */
17    function initializeLoginForm() {
18        var loginForm = document.getElementById('wpuf-login-form');
19
20        if (!loginForm) {
21            return;
22        }
23
24        // Get current layout from localized data
25        var layout = wpufLoginForm.layout || 'layout1';
26        var texts = wpufLoginForm.texts || {};
27
28        // Add layout class to form
29        loginForm.classList.add('wpuf-layout-' + layout.replace('layout', ''));
30
31        // Apply custom texts to form elements
32        applyCustomTexts(loginForm, texts);
33
34        // Add help text for layout 7
35        if (layout === 'layout7') {
36            addHelpText(loginForm, texts);
37        }
38
39        // Wrap action links
40        wrapActionLinks(loginForm);
41    }
42
43    /**
44     * Apply custom texts to form labels, placeholders, and buttons
45     *
46     * @param {HTMLElement} loginForm The login form element
47     * @param {Object} texts Custom text values from settings
48     */
49    function applyCustomTexts(loginForm, texts) {
50        var form = loginForm.querySelector('form');
51
52        if (!form) {
53            return;
54        }
55
56        // Apply username label and placeholder
57        var usernameInput = form.querySelector('input[name="log"]');
58
59        if (usernameInput) {
60            var usernameLabel = form.querySelector('label[for="wpuf-user_login"]');
61
62            if (usernameLabel && texts.usernameLabel) {
63                usernameLabel.textContent = texts.usernameLabel;
64            }
65
66            if (texts.usernamePlaceholder) {
67                usernameInput.setAttribute('placeholder', texts.usernamePlaceholder);
68            }
69        }
70
71        // Apply password label and placeholder
72        var passwordInput = form.querySelector('input[name="pwd"]');
73
74        if (passwordInput) {
75            var passwordLabel = form.querySelector('label[for="wpuf-user_pass"]');
76
77            if (passwordLabel && texts.passwordLabel) {
78                passwordLabel.textContent = texts.passwordLabel;
79            }
80
81            if (texts.passwordPlaceholder) {
82                passwordInput.setAttribute('placeholder', texts.passwordPlaceholder);
83            }
84        }
85
86        // Apply Remember Me text
87        var rememberMeLabel = form.querySelector('.wpuf-remember-me label[for="wpuf-rememberme"]');
88
89        if (rememberMeLabel && texts.rememberMe) {
90            rememberMeLabel.textContent = texts.rememberMe;
91        }
92
93        // Apply Lost Password text
94        var lostPasswordLink = form.querySelector('.wpuf-lost-password a');
95
96        if (lostPasswordLink && texts.lostPassword) {
97            lostPasswordLink.textContent = texts.lostPassword;
98        }
99
100        // Apply Login Button text
101        var submitButton = form.querySelector('input[type="submit"]');
102
103        if (submitButton && texts.buttonText) {
104            submitButton.value = texts.buttonText;
105        }
106    }
107
108    /**
109     * Add help text to form fields (Layout 7 only)
110     *
111     * @param {HTMLElement} loginForm The login form element
112     * @param {Object} texts Custom text values from settings
113     */
114    function addHelpText(loginForm, texts) {
115        var form = loginForm.querySelector('form');
116
117        if (!form) {
118            return;
119        }
120
121        // Help text from custom texts or defaults
122        var usernameHelp = texts.usernameHelp || 'Please enter your username or email address';
123        var passwordHelp = texts.passwordHelp || 'Please enter your password';
124
125        // Add help text to username/email field
126        var usernameField = form.querySelector('input[name="log"]');
127
128        if (usernameField && !usernameField.parentElement.querySelector('.wpuf-help')) {
129            var usernameHelpSpan = document.createElement('span');
130            usernameHelpSpan.className = 'wpuf-help';
131            usernameHelpSpan.textContent = usernameHelp;
132            usernameField.parentElement.appendChild(usernameHelpSpan);
133        }
134
135        // Add help text to password field
136        var passwordField = form.querySelector('input[type="password"]');
137
138        if (passwordField && !passwordField.parentElement.querySelector('.wpuf-help')) {
139            var passwordHelpSpan = document.createElement('span');
140            passwordHelpSpan.className = 'wpuf-help';
141            passwordHelpSpan.textContent = passwordHelp;
142            passwordField.parentElement.appendChild(passwordHelpSpan);
143        }
144    }
145
146    /**
147     * Wrap action links in proper containers
148     *
149     * @param {HTMLElement} loginForm The login form element
150     */
151    function wrapActionLinks(loginForm) {
152        var links = loginForm.querySelectorAll('a');
153
154        links.forEach(function(link) {
155            // Skip if already wrapped
156            if (link.parentElement.classList.contains('wpuf-lost-password-wrapper')) {
157                return;
158            }
159
160            // Skip if inside form
161            if (link.closest('form')) {
162                return;
163            }
164
165            // Check if it's an action link (lost password, register, etc.)
166            var isActionLink = /lostpassword|action=login|\/login\/|register/.test(link.href);
167
168            if (isActionLink || link.parentElement.id === 'wpuf-login-form') {
169                var wrapper = document.createElement('span');
170                wrapper.className = 'wpuf-lost-password-wrapper';
171                link.parentNode.insertBefore(wrapper, link);
172                wrapper.appendChild(link);
173            }
174        });
175    }
176
177    /**
178     * Initialize on DOM ready
179     */
180    $(document).ready(function() {
181        initializeLoginForm();
182    });
183
184})(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.