PageSourceSearch

https://cdnn.1prime.ru//js/id/id.password.recovery.js

js 1prime.ru collected 2026-10-01 08:34:50 UTC 5,584 bytes, 150 lines download raw bytes

1// Восстановление пароля
2$(function() {
3    var modal = $('#modalRecoveryPassword'),
4        modalForm = modal.find('form'),
5        emailField = $('#modalRecoveryPasswordEmail'),
6        errorField = $('#modalRecoveryPasswordError'),
7        submit = $('#modalRecoveryPasswordSubmit');
8
9    modalForm.riaForm({
10        errorInput: true,
11        errorLabel: true,
12        errorClass: 'm-error',
13        errorMessage: false,
14        errorAlert: true,
15        alert: '#modalRecoveryPasswordError',
16        alertLabel: '',
17        loader: '.l-modal__container .l-modal__loader',
18        rules: {
19            login: 'email'
20        },
21        alerts: {
22            login: {
23                empty: GLOBAL.locale.id.errors.email,
24                not_exist: GLOBAL.locale.id.errors.emailnotexist
25            }
26        },
27        successCallback: function(data, form) {
28            var email = form.find('input[type="email"]').val();
29
30            if (data.status === 'success') {
31                $('#modalRecoveryPasswordSuccessEmail').text(email);
32                modalLayer.open('recovery_password_success')
33            }
34        },
35		errorCallback: function (data) {
36			submit.hide();
37            emailField.closest('.form__field').removeClass('m-valid');
38		}
39    });
40
41    // Среагироваать при изменении в форме
42    modalForm.on('input change paste keyup', function(e) {
43        if (e.key === 'Enter' || e.keyCode === 13) {
44            return
45        }
46        if (modalForm[0].checkValidity()) {
47            // Скрыть поле с ошибкой, если есть
48            errorField.hide();
49
50            // Показать кнопку "Войти"
51            submit.show();
52        } else {
53            // Скрыть кнопку "Войти"
54            submit.hide();
55        }
56    });
57
58    // Ошибка при вводе почты (некорректные написание адреса, например без собачки)
59    // Возникает после расфокуса
60    emailField.on('input change paste keyup', function() {
61        // Если все хорошо
62        if (this.checkValidity()) {
63            return
64        }
65        // Проверьте адрес почты
66        errorField.show().html( GLOBAL.locale.id.errors.wronglogin );
67    });
68});
69
70// Восстановление пароля / Переход по ссылке из письма
71$(function() {
72
73    /* TODO разобраться с валидацией полей, заделить ошибки "Не менее 9 символов с 1 цифрой" и "Введенные пароли не совпадают" */
74
75    var modal = $('#modalRecoveryPasswordNew'),
76        modalForm = modal.find('form'),
77        errorField = $('#modalRecoveryPasswordNewError'),
78        passwordField = $('#modalRecoveryPasswordNewPassword'),
79        passwordConfirmField = $('#modalRecoveryPasswordNewPasswordConfirm'),
80        submit = $('#modalRecoveryPasswordNewSubmit');
81
82    modalForm.riaForm({
83        errorInput: true,
84        errorLabel: true,
85        errorClass: 'm-error',
86        errorMessage: false,
87        errorAlert: true,
88        alert: '.modal__alert',
89        alertLabel: '',
90        rules: {
91            password: 'empty',
92            password_confirmation: 'empty'
93        },
94        alerts: {
95            password: {
96                empty: GLOBAL.locale.id.errors.password,
97                similar: GLOBAL.locale.id.errors.passwordnotsimilar
98            },
99            user: {
100                not_exist: GLOBAL.locale.id.errors.recoveryerror
101            }
102        },
103        successCallback: function(data, form) {
104            // Закрыть окно и войти
105            modalLayer.open('authorization')
106        }
107    });
108
109    // Среагироваать при изменении в форме
110    modalForm.on('input change paste keyup', function() {
111        if (modalForm[0].checkValidity()) {
112            // Скрыть поле с ошибкой, если есть
113            errorField.hide();
114            // Показать кнопку "Войти"
115            submit.show();
116        } else {
117            // Показать поле с ошибкой, если есть
118            errorField.show();
119            // Скрыть кнопку "Войти"
120            submit.hide();
121        }
122    });
123
124    passwordConfirmField.on('input change paste keyup', function() {
125        if (!this.checkValidity()) {
126            errorField.html( GLOBAL.locale.id.errors.passwordnotsimilar );
127        }
128    });
129
130    passwordField.on('input change paste keyup', function() {
131        passwordConfirmField[0].pattern = _.escapeRegExp(this.value);
132    })
133
134    // При фокусе в поле пароля появляется уведомление
135    passwordField.on('focus', function() {
136        errorField.show().html( GLOBAL.locale.id.register.password_length );
137    });
138
139    // Уведомление не пропадает, пока не будет введен пароль, удовлетворяющий условиям.
140    // При расфокусе поля пароля, не удовлетворяющего тредованиям, уведомление меняется на красное
141    passwordField.on('blur', function() {
142        errorField.toggleClass('m-error', !this.checkValidity());
143    });
144
145    if ( $('#modalRecoveryPasswordNewSecret').val() ) {
146        setTimeout(function() {
147            modalLayer.open('recovery_password_new');
148        }, 0);
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.