260 lines
7.4 KiB
JavaScript
Raw Normal View History

2022-06-09 15:53:29 +02:00
/**
* JS povezani s prijavo in registracijo
*/
(function ($, Drupal, window, document) {
'use strict';
// To understand behaviors, see https://drupal.org/node/756722#behaviors
Drupal.behaviors.prijavaInRegistracija = {
attach: function (context, settings) {
jQuery(document).ready(function () {
// Drupal nova prijava
jQuery('.submit-prijava').on('click', function(){
// ODstranimo vse napake
jQuery('.error-field').removeClass('error-field');
jQuery(':input[required]:visible').each(function () {
if (jQuery(this).val() == '') {
jQuery(this).addClass('error-field');
}
});
if( jQuery('.error-field').length > 0){
return false;
}
jQuery('#prijava-1ka .error-message').empty().hide();
var sendVariables = jQuery('#forma-prijava :input').serialize();
var url = jQuery('#forma-prijava').attr('action');
jQuery.post(url, sendVariables, function (data) {
var response = JSON.parse(data);
if(response.type == 'success'){
return window.location = response.data.url;
} else if(response.type == 'error') {
let sporocilo = vrniBesediloNapake(response.data);
jQuery('#prijava-1ka .error-message').append(sporocilo).show();
}
});
});
// Obnovitev gesla
jQuery('#open-modal-lost-password').on('click', function () {
jQuery('#modal-login').hide();
jQuery('#modal-lost-password').css('display', 'flex');
});
jQuery('#submit-lost-password').on('click', function () {
jQuery('.obvestilo').empty().hide();
jQuery('#input-obnovitev-email').removeClass('error');
var emailObnovitev = jQuery('#input-obnovitev-email').val();
if (emailObnovitev.length == 0 || emailObnovitev.length > 1 && (emailObnovitev.search('@') == -1 || emailObnovitev.indexOf('.') == -1)) {
jQuery('#input-obnovitev-email').addClass('error');
return false;
}
// V kolikor je vse ok poljemo POST request, da preverimo v bazi
jQuery.post('/frontend/api/api.php?action=reset_password', {
email: emailObnovitev,
ajax: true,
jezik: jQuery('[name="jezik"]').val()
}).done(function (val) {
val = JSON.parse(val);
jQuery('#modal-lost-password .w-form-done').html('').hide();
jQuery('#modal-lost-password .w-form-fail').hide();
if (val.type == 'success') {
jQuery('#modal-lost-password .w-form-done').html('<div>' + val.text + '</div>').show();
// Če je bil email uspešno poslal potem okno zapremo po 5 sekundah
setTimeout(function () {
jQuery("#modal-lost-password").hide();
jQuery('#modal-lost-password .w-form-done').hide();
jQuery("#obnovitev-gesla").val('');
}, 2000);
} else {
// Napaka, če email ne obstaja v bazi
jQuery('#modal-lost-password .w-form-fail').html('<div>' + val.text + '</div>').show();
}
});
});
});
}
};
})(jQuery, Drupal, this, this.document);
function vrniBesediloNapake(besedilo){
let sporocilo;
if(jQuery.isArray(besedilo)){
sporocilo = '<ul>';
jQuery.each(besedilo, function (index, value){
sporocilo += '<li>' + value + '</li>';
});
sporocilo += '</ul>';
} else {
sporocilo = besedilo;
}
return sporocilo;
}
function CheckEmail(text) {
jQuery('#modal-registration .w-form-fail').html('').hide();
jQuery('.w-input').removeClass('error');
var text = text || 'Prosimo, popravite email';
var Email = jQuery('#register-form [name="email"]').val();
if (Email.length > 1 && (Email.search('@') == -1 || Email.indexOf('.') == -1)) {
jQuery('#modal-registration .w-form-fail').html('<div>' + text + '</div>').show();
jQuery('#modal-registration [type="email"]').addClass('error');
return false;
}
return true;
}
function InsertName() {
var Email = jQuery('#register-form [name="email"]').val();
var lokacija = Email.search('@');
if (Email.search('@') == -1) {
lokacija = Email.length;
}
var Ime = Email.substring(0, lokacija);
if (jQuery('#register-form [name="ime"]').val().length < 2) {
jQuery('#register-form [name="ime"]').val(Ime);
}
}
function CheckEmailTypo(text) {
var email = jQuery('#register-form [name="email"]').val();
var domains = ['gmail.com', 'hotmail.com', 'guest.arnes.si', 'siol.net'];
var splitEmail = email.split('@');
for (var i = 0; i < domains.length; i++) {
var domain = domains[i];
if (preveriZaTipkarskoNapakoVemailu(splitEmail[1], domain)) {
jQuery('#modal-registration .w-form-fail').html('<div>' + text + ' <b>@' + domain + '</b>?</div>').show();
return jQuery('#modal-registration [type="email"]').addClass('error');
}
}
return '';
}
function preveriZaTipkarskoNapakoVemailu(uporabnikovaDomena, domena) {
// Domeni se ujemata
if (uporabnikovaDomena && domena && uporabnikovaDomena.includes(domena))
return false;
//Preverimo če vsebuje dve piki ali vejico
if (new RegExp('(\\.{2})|(\,)').test(uporabnikovaDomena) && uporabnikovaDomena.substring(0, 3) == domena.substring(0, 3)) {
return true;
}
// domeno razbijemo, da preverimo napake za posamezne črke gm|ail
for (var i = 1; i < domena.length; i++) {
var prviDel = domena.substring(0, i);
var preostenekBesede = domena.substring(i);
// preverimo, če so črke napačne
if (new RegExp(prviDel + '.' + preostenekBesede.substring(1)).test(uporabnikovaDomena)) {
return true;
}
// preverimo, če je dodana črka preveč
if (new RegExp(prviDel + '.' + preostenekBesede).test(uporabnikovaDomena)) {
return true;
}
// majkajoča črka
if (preostenekBesede !== 'mail' && new RegExp('(' + prviDel + '{0}' + preostenekBesede + ')|(' + domena + '{0})').test(uporabnikovaDomena)) {
return true;
}
if (domena == 'gmail.com' && new RegExp('gmail.si|gmail.net').test(uporabnikovaDomena) ||
domena == 'guest.arnes.si' && new RegExp('arnes.si').test(uporabnikovaDomena) ||
domena == 'siol.net' && new RegExp('siol.com').test(uporabnikovaDomena)) {
return true;
}
if (domena == 'hotmail.com' && new RegExp('hotmail.si').test(uporabnikovaDomena)) {
return true;
}
// test for switched letters
var switchedLetters = [
domena.substring(0, i - 1),
domena.charAt(i),
domena.charAt(i - 1),
domena.substring(i + 1)
].join('');
if (uporabnikovaDomena.includes(switchedLetters)) {
return true;
}
}
return false;
}
function lang() {
return jQuery('html')[0].lang;
}
function odpriAaiLoginObvestilo(){
jQuery('.modal-intro-title').hide();
jQuery('.nakup-prijava').hide();
jQuery('.modal-intro-login-text').css('display', 'flex');
if(jQuery('html')[0].lang == 'sl') {
jQuery('#modal-open-1ka').removeClass('modal-goto-registration').addClass('modal-open-login-obrazec');
jQuery('#modal-info-login').css('display', 'flex');
// V kolikor gre za nakup prikažemo še obvestilo o nakupu
if (document.cookie.indexOf('nakup=') > 0) {
jQuery('.nakup-prijava').css('display', 'flex');
}
} else {
jQuery('#modal-open-login-obrazec').css('display', 'flex');
}
}