PageSourceSearch

https://cdnn.1prime.ru//js/id/id.register.js

js 1prime.ru collected 2026-09-24 08:26:56 UTC 10,912 bytes, 338 lines download raw bytes

1afterRegister = function(data) {
2    // Показать окно заполнения данных
3    modalLayer.open('registration_user');
4
5    // Заполнить данные
6    $.extend({}, GLOBAL.user, data.user);
7    GLOBAL.csrf_token = data.user.csrf_token;
8
9    var profile = new Profile({
10        csrf_token: GLOBAL.csrf_token
11    });
12
13    // Заполнить Имя
14    if (data.user.firstName) {
15        $('#modalRegisterUser')
16            .find('input[name="firstName"]')
17            .val(data.user.firstName)
18            .closest('.form__field')
19            .addClass('m-notempty');
20    }
21
22    // Заполнить Фимилию
23    if (data.user.lastName) {
24        $('#modalRegisterUser')
25            .find('input[name="lastName"]')
26            .val(data.user.lastName)
27            .closest('.form__field')
28            .addClass('m-notempty');
29    }
30
31    if (data.user.lastName || data.user.firstName) {
32        $('#modalRegisterUser').find('form').trigger('change');
33    }
34
35    // Заполнить аватар
36    if (data.user.picture) {
37        $('#registerUserPhoto')
38            .attr('src', data.user.picture);
39    }
40
41    // Загрузить аватар
42    if ($.fn.fileupload instanceof Function) {
43        $('#registerUserPhotoUpload').fileupload({
44            type: 'post',
45            dataType: 'json',
46            url: profile.actions.update_avatar,
47            formData: {
48                csrf_token: profile.csrf_token
49            },
50            done: function(e, data) {
51                $('#registerUserPhoto').attr('src', data.result.user.picture);
52            }
53        });
54    }
55}
56
57// Регистрация
58$(function() {
59    var modal = $('#modalRegister'),
60        modalForm = modal.find('form'),
61        emailField = $('#modalRegisterEmail'),
62        passwordField = $('#modalRegisterPassword'),
63        errorField = $('#modalRegisterError'),
64        submit = $('#modalRegisterSubmit');
65
66	modalForm.riaForm({
67		errorInput: true,
68		errorLabel: true,
69		errorClass: 'm-error',
70		errorMessage: false,
71		errorAlert: true,
72		alert: '#modalRegisterError',
73		alertLabel: '',
74		loader: '.l-modal__container .l-modal__loader',
75		rules: {
76			login: 'email',
77			password: 'empty',
78			confirm: 'checked'
79		},
80		alerts: {
81			login: {
82				empty: GLOBAL.locale.id.errors.emptylogin,
83				exist: GLOBAL.locale.id.errors.emailexist,
84				email: GLOBAL.locale.id.errors.wronglogin
85			},
86			password: {
87				empty: GLOBAL.locale.id.errors.password,
88				similar: GLOBAL.locale.id.errors.passwordnotsimilar
89            },
90            captcha: {
91                error: GLOBAL.locale.id.errors.global
92            },
93            email: {
94                'error.2': GLOBAL.locale.id.errors.emailwhitelist
95            }
96		},
97		successCallback: function(data, form) {
98            if (data.status === 'success') {
99                // Показать баннер в шапке
100                $('#alertAfterRegister')
101                    .removeClass('m-hidden')
102                    .find('.m-email')
103                    .text(emailField.val());
104
105                // Выполнить действия после регистрации
106                afterRegister(data);
107			}
108		},
109        errorCallback: function(data) {
110            // Скрыть кнопку "Зарегистрироваться"
111            submit.hide();
112        }
113    });
114
115    // Среагироваать при изменении в форме
116    modalForm.on('input change paste keyup blur', function() {
117        if (modalForm[0].checkValidity()) {
118            // Показать кнопку "Войти"
119            submit[0].disabled = false;
120        } else {
121            // Скрыть кнопку "Войти"
122            submit[0].disabled = true;
123        }
124    });
125
126    // Проверка после расфокуса поля с почтой
127    emailField.on('input change paste keyup', function() {
128        // Если все хорошо
129        if (this.checkValidity()) {
130            errorField.hide();
131            submit.show();
132            return
133        }
134
135        // Проверьте адрес почты
136        errorField
137            .show()
138            .toggleClass('m-error', !this.checkValidity() && emailField.hasClass('m-dirty'))
139            .html( GLOBAL.locale.id.errors.wronglogin );
140        submit.hide();
141    });
142
143    // При фокусе в поле пароля появляется уведомление
144    passwordField.on('input change paste keyup', function() {
145        // Если все хорошо
146        if (this.checkValidity()) {
147            errorField.hide();
148            submit.show();
149            return
150        }
151
152        errorField
153            .show()
154            .toggleClass('m-error', !this.checkValidity() && passwordField.hasClass('m-dirty'))
155            .html( GLOBAL.locale.id.register.password_length );
156
157        submit.hide();
158    });
159});
160
161// Регистрация / Cоц сети
162$(function() {
163
164    /* TODO не обрабатывается ошибка чекбокса !!! ДОДЕЛАТЬ !!! */
165
166    var modal = $('#modalRegisterSocial'),
167        modalForm = modal.find('form'),
168        errorField = $('#modalRegisterSocialError'),
169        emailField = $('#modalRegisterSocialEmail'),
170        submit = $('#modalRegisterSocialSubmit');
171
172    modalForm.riaForm({
173        errorInput: true,
174        errorLabel: true,
175        errorClass: 'm-error',
176        errorMessage: false,
177        errorAlert: true,
178        alert: '#modalRegisterSocialError',
179        alertLabel: '',
180        rules: {
181            login: 'empty',
182            privacy: 'empty'
183        },
184        alerts: {
185            login: {
186                empty: GLOBAL.locale.id.errors.wrongemail,
187                wrong: GLOBAL.locale.id.errors.wronglogin,
188            },
189            user: {
190                banned: GLOBAL.locale.id.errors.block,
191                deleted: GLOBAL.locale.id.errors.del,
192                confirmationRequired: GLOBAL.locale.id.errors.confirmation
193            }
194        },
195        successCallback: function(data, form) {
196            modalLayer.close({
197                formClear: "all",
198                afterClose: function() {
199                    GLOBAL.events.trigger('login', data);
200                    afterRegister(data);
201                }
202            });
203        },
204        errorCallback: function(data) {
205            if (data && data.user) {
206                errorField.attr('user_id', data.user);
207            }
208
209            if (data && data.errors && data.errors.user === 'confirmationRequired') {
210                setTimeout(function() {
211                    errorField.find('.m-email').text(emailField.val());
212                }, 0)
213            }
214        }
215    });
216
217    // Среагироваать при изменении в форме
218    modalForm.on('input change paste keyup', function() {
219        if ( this.checkValidity() ) {
220            // если форма валидна скрываем ошибку показываем кнопку войти/делаем активной
221            errorField.hide();
222            submit.show().removeAttr('disabled');
223        }
224    });
225
226    // Ошибка при вводе почты (некорректные написание адреса, например без собачки)
227    // Возникает после расфокуса
228    emailField.on('input change paste keyup', function() {
229        // Если все хорошо
230        if ( !this.checkValidity()) {
231            // Проверьте адрес почты
232            errorField.show().html( GLOBAL.locale.id.errors.wronglogin );
233            submit.hide().attr('disabled', true);
234        } else {
235            errorField.hide()
236            submit.show()
237        }
238    });
239})
240
241// Регистрация / Ваши данные
242$(function() {
243    var profile,
244        modal = $('#modalRegisterUser'),
245        modalForm = modal.find('form'),
246        errorField = $('#modalRegisterUserError'),
247        submit = $('#modalRegisterUserSubmit');
248
249    // Сохранить имя и фамилию
250    modalForm.on('submit', function(e) {
251        e.preventDefault();
252
253        if (!this.checkValidity()) {
254            return
255        }
256
257        if (!profile) {
258            profile = new Profile({
259                csrf_token: GLOBAL.csrf_token
260            });
261        }
262
263        submit.prop('disabled', true);
264
265        profile.updateField(modalForm).done(function(response) {
266            submit.prop('disabled', false);
267
268            if (!response.errors) {
269                modalLayer.close();
270                return;
271            }
272
273            if (response.errors.firstName) {
274                modalForm.find('input[name="firstName"]')[0].setCustomValidity('Пожалуйста, введите имя');
275            }
276
277            if (response.errors.lastName) {
278                modalForm.find('input[name="lastName"]')[0].setCustomValidity('Пожалуйста, введите фамилию');
279            }
280
281            if (response.errors.moderation) {
282                modalForm.find('input[name="firstName"]')[0].setCustomValidity('Пожалуйста, введите имя');
283                modalForm.find('input[name="lastName"]')[0].setCustomValidity('Пожалуйста, введите фамилию');
284            }
285
286            modalForm.trigger('change');
287
288            modalForm.find('input').each(function() {
289                this.setCustomValidity('');
290            });
291        });
292    })
293
294
295    // Среагироваать при изменении в форме
296    modalForm.on('input change paste keyup', function() {
297        if (this.checkValidity()) {
298            // Скрыть поле с ошибкой, если есть
299            errorField.hide();
300            
301            // Показать кнопку "Войти"
302            submit.show();
303        } else {
304            let errorText = 'Недопустимое имя';
305
306            if (!this.firstName.validity.valid) {
307                errorText = 'Пожалуйста, введите имя'
308            }
309
310            if (!this.lastName.validity.valid) {
311                errorText = 'Пожалуйста, введите фамилию'
312            }
313
314            // Показать поле с ошибкой, если есть
315            errorField.html(errorText).show();
316            
317            // Скрыть кнопку "Войти"
318            submit.hide();
319        }
320    });
321})
322
323// Подтверждение email
324$(function() {
325    $('.confirmEmail').on('click', function(e) {
326        e.preventDefault();
327        var btn = $(this);
328
329        $.ajax({
330            url: '/services/id/email/confirm_email/',
331            data: {
332                csrf_token: GLOBAL.csrf_token
333            }
334        }).done(function() {
335            btn.attr('disabled', true).text('Ссылка отправлена');
336        });
337    });
338})

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.