Files
Backend-Api/ServiceHost/wwwroot/AssetsAdminNew/RollCall/js/ModalCameraAccountChangePassword.js

329 lines
9.3 KiB
JavaScript

// ------------------------------------------------------- Start Code SMS
$(document).ready(function () {
$('#btnSmsReceiver').on("click", handleSmsReceiverClick);
});
$('.codeInput').keyup(function (e) {
if (this.value.length === this.maxLength) {
let next = $(this).data('next');
$('#n' + next).focus();
$('#n' + next).select();
}
//وقتی کد ورودی وارد شد، اتوماتیک ورود میشود
if ($('#n0').val() && $('#n1').val() && $('#n2').val() && $('#n3').val() && $('#n4').val() && $('#n5').val()) {
$('#submit').removeClass('disable');
confirmCode();
}
});
$('#codeInput').on('keyup', function () {
this.value = this.value.replace(/[^\d]/, '');
});
$(".codeInput").click(function () {
$(this).select();
});
function handleSmsReceiverClick() {
let password = $('#signupInputPassword');
let repeatPassword = $('#repeat_password');
checkValidationPassword(password.val(), repeatPassword.val());
if (valid) {
if (password.val() === '' || repeatPassword.val() === '') {
displayAlert('لطفاً هر دو فیلد رمز عبور را پر کنید');
password.addClass('errored');
repeatPassword.addClass('errored');
setTimeout(function () {
password.removeClass('errored');
repeatPassword.removeClass('errored');
}, 3500);
} else if (password.val() !== repeatPassword.val()) {
repeatPassword.addClass('errored');
setTimeout(function () {
repeatPassword.removeClass('errored');
}, 3500);
displayAlert('رمز عبور و تکرار آن باید یکسان باشند');
} else {
toggleLoading(true);
$('#btnSmsReceiver').hide();
$('#sentCode').hide();
$('#form').hide();
sendVerifyCode();
}
}
}
function sendVerifyCode() {
$.ajax({
dataType: 'json',
type: 'POST',
url: sendSmsAjax,
headers: { "RequestVerificationToken": antiForgeryToken },
success: function (response) {
if (response.isSuccess) {
startCodeTimer();
} else {
toggleLoading(false);
$('#btnSmsReceiver').show();
$('#form').show();
}
},
error: function (response) {
console.error('Error:', response);
}
});
}
var timerInterval;
function startCodeTimer() {
resetOtpInput();
$('#codeDiv, #submit, #timerCount, .otp').show();
toggleLoading(false);
$('#msg').hide();
$('#n0').focus();
var timer = "2:00";
if (timerInterval) {
clearInterval(timerInterval);
}
timerInterval = setInterval(function () {
const [minutes, seconds] = timer.split(':').map(Number);
const updatedSeconds = seconds - 1;
const updatedMinutes = updatedSeconds < 0 ? minutes - 1 : minutes;
const displaySeconds = (updatedSeconds < 0 ? 59 : updatedSeconds).toString().padStart(2, '0');
if (updatedMinutes < 0) {
clearInterval(timerInterval);
timerInterval = null;
} else {
timer = `${updatedMinutes}:${displaySeconds}`;
$('.countdown').text(timer);
}
if (timer === "0:00" && !$('#form').hasClass("showPassDiv")) {
resetCodeEntry();
}
}, 1000);
}
function resetCodeEntry() {
$('#submit').addClass('disable');
$('#submit').hide();
resetOtpInput();
$('#btnSmsReceiver').show();
$('#sentCode').show();
toggleLoading(false);
$('#timerCount, .otp').hide();
$('#msg').show();
}
function confirmCode() {
const code = Array.from({ length: 6 }, (_, i) => $(`#n${i}`).val()).join('');
if (code.length === 6) {
toggleLoading(true);
setTimeout(() => {
$.ajax({
async: false,
dataType: 'json',
type: 'POST',
url: checkCodeAjax,
headers: { "RequestVerificationToken": antiForgeryToken },
data: { code },
success: handleCodeVerificationResponse,
error: function (response) {
console.error('Error:', response);
}
});
}, 1000);
} else {
displayAlert('کد وارد شده کمتر از 6 رقم است');
}
}
function handleCodeVerificationResponse(response) {
toggleLoading(false);
if (response.exist) {
//$('#form').show().addClass("showPassDiv");
//$('#timerCount, .otp, #btn-login-code').hide();
$('#timerCount, .otp').hide();
$('#submit').show();
$('#msg').hide();
changePasswordCameraAccount();
} else {
displayAlert('کد وارد شده صحیح نیست');
}
}
function resetOtpInput() {
$('.codeInput').val('');
}
function toggleLoading(isLoading) {
$('.loading').toggle(isLoading);
}
function displayAlert(message) {
$('.alert-msg').show().find('p').text(message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
// ------------------------------------------------------- Stop Code SMS
var eyeShow = $('.eyeShow');
var eyeClose = $('.eyeClose');
var reEyeShow = $('.reEyeShow');
var reEyeClose = $('.reEyeClose');
$(document).ready(function () {
eyeShow.show();
eyeClose.hide();
reEyeShow.show();
reEyeClose.hide();
});
$('#username, #signupInputPassword, #repeat_password').on('keyup', function () {
if ($('#signupInputPassword').val() && $('#repeat_password').val() && $('#signupInputPassword').val() === $('#repeat_password').val()) {
$('#next-step').removeClass('disable');
} else {
$('#next-step').addClass('disable');
}
});
$('#repeat_password').on('keyup', function () {
if ($('#signupInputPassword').val() !== $('#repeat_password').val()) {
$('#passwordErrorMessage').text('گذرواژه یکسان نیست');
} else {
$('#passwordErrorMessage').text('');
}
});
function passFunction() {
var x = document.getElementById("signupInputPassword");
if (x.type === "password") {
x.type = "text";
eyeShow.hide();
eyeClose.show();
} else {
x.type = "password";
eyeShow.show();
eyeClose.hide();
}
}
function rePassFunction() {
var x = document.getElementById("repeat_password");
if (x.type === "password") {
x.type = "text";
reEyeShow.hide();
reEyeClose.show();
} else {
x.type = "password";
reEyeShow.show();
reEyeClose.hide();
}
}
function passwordCheck(password) {
if (password.length >= 8)
strength += 1;
if (password.match(/(?=.*[0-9])/))
strength += 1;
if (password.match(/(?=.*[!,%,&,@,#,$,^,*,?,_,~,<,>,])/))
strength += 1;
if (password.match(/(?=.*[A-Z])/))
strength += 1;
displayBar(strength);
}
function displayBar(strength) {
$(".password-strength-group").attr('data-strength', strength);
}
$("#signupInputPassword").keyup(function () {
strength = 0;
var password = $(this).val();
passwordCheck(password);
});
function changePasswordCameraAccount() {
var data = $('#create-form2').serialize();
$.ajax({
async: false,
dataType: 'json',
type: 'POST',
url: saveCameraAccountPasswordChangeAjax,
headers: { "RequestVerificationToken": antiForgeryToken },
data: data,
success: function (response) {
if (response.success) {
clearInterval(timerInterval);
$('.alert-success-msg').show();
$('.alert-success-msg p').text(response.message);
setTimeout(function () {
$('.alert-success-msg').hide();
$('.alert-success-msg p').text('');
}, 3500);
$('#MainModal').modal('hide');
//window.location.reload();
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
}
},
error: function (err) {
console.log(err);
}
});
}
var valid = true;
function checkValidationPassword(password, rePassword) {
$.ajax({
async: false,
dataType: 'json',
type: 'GET',
url: ajaxCameraValidation,
headers: { "RequestVerificationToken": antiForgeryToken },
data: { 'password': password, 'rePassword': rePassword },
success: function (response) {
if (response.success) {
valid = true;
} else {
$('.alert-msg').show();
$('.alert-msg p').text(response.message);
setTimeout(function () {
$('.alert-msg').hide();
$('.alert-msg p').text('');
}, 3500);
valid = false;
}
},
error: function (err) {
console.log(err);
valid = false;
return false;
}
});
}