import { $gettext } from './gettext.js'; const register = { re_username: null, re_name: null, clearErrors: function(field) { jQuery('input[name=' + field + ']') .parent() .find('div.error') .remove(); }, addError: function(field, error) { jQuery('input[name=' + field + ']') .parent() .append('
' + error + '
'); jQuery('div[class=error]').show(); }, checkusername: function() { register.clearErrors('username'); if (jQuery('input[name=username]').val().length < 4) { register.addError( 'username', $gettext('Der Benutzername ist zu kurz, er sollte mindestens 4 Zeichen lang sein.') ); document.login.username.focus(); return false; } if (register.re_username.test(jQuery('input[name=username]').val()) === false) { register.addError( 'username', $gettext('Der Benutzername enthält unzulässige Zeichen, er darf keine Sonderzeichen oder Leerzeichen enthalten.') ); document.login.username.focus(); return false; } return true; }, checkpassword: function() { register.clearErrors('password'); var checked = true; if (jQuery('input[name=password]').val().length < 8) { register.addError( 'password', $gettext('Das Passwort ist zu kurz. Es sollte mindestens 8 Zeichen lang sein.') ); document.login.password.focus(); checked = false; } return checked; }, checkpassword2: function() { register.clearErrors('password2'); var checked = true; if (jQuery('input[name=password]').val() !== jQuery('input[name=password2]').val()) { register.addError( 'password2', $gettext('Das Passwort stimmt nicht mit dem Bestätigungspasswort überein!') ); document.login.password2.focus(); checked = false; } return checked; }, checkVorname: function() { register.clearErrors('Vorname'); var checked = true; if (register.re_name.test(jQuery('input[name=Vorname]').val()) === false) { register.addError('Vorname', $gettext('Bitte geben Sie Ihren tatsächlichen Vornamen an.')); document.login.Vorname.focus(); checked = false; } return checked; }, checkNachname: function() { register.clearErrors('Nachname'); var checked = true; if (register.re_name.test(jQuery('input[name=Nachname]').val()) === false) { register.addError('Nachname', $gettext('Bitte geben Sie Ihren tatsächlichen Nachnamen an.')); document.login.Nachname.focus(); checked = false; } return checked; }, checkEmail: function() { register.clearErrors('Email'); var email = jQuery('input[name=Email]').val(); var domain = jQuery('select[name=emaildomain]').val(); var checked = false; if (domain) { email += '@' + domain; } checked = $('') .val(email)[0] .checkValidity(); if (!checked) { register.addError('Email', $gettext('Die E-Mail-Adresse ist nicht korrekt!')); $('#Email').focus(); } return checked; }, checkdata: function() { return ( this.checkusername() && this.checkpassword() && this.checkpassword2() && this.checkVorname() && this.checkNachname() && this.checkEmail() ); } }; export default register;