335 lines
10 KiB
JavaScript
335 lines
10 KiB
JavaScript
/**
|
|
* Copyright (c) 2007-2013 Ariel Flesler - aflesler<a>gmail<d>com | http://flesler.blogspot.com
|
|
* Dual licensed under MIT and GPL.
|
|
* @author Ariel Flesler
|
|
* @version 1.4.6
|
|
*/
|
|
$('.lpass').hide();
|
|
$('.gpass').hide();
|
|
$('.ipass').show();
|
|
$('#simpan_gpass').popover();
|
|
$('#simpan_gpass').prop('disabled',true);
|
|
|
|
function locktime(timer2){
|
|
var interval = setInterval(function() {
|
|
var timer = timer2.split(':');
|
|
var minutes = parseInt(timer[0], 10);
|
|
var seconds = parseInt(timer[1], 10);
|
|
--seconds;
|
|
minutes = (seconds < 0) ? --minutes : minutes;
|
|
if (minutes < 0) clearInterval(interval);
|
|
seconds = (seconds < 0) ? 59 : seconds;
|
|
seconds = (seconds < 10) ? '0' + seconds : seconds;
|
|
$('#cd_err').html(minutes + ':' + seconds);
|
|
timer2 = minutes + ':' + seconds;
|
|
if (timer2=='0:00') {
|
|
clearInterval(interval);
|
|
var pkey='akerr';
|
|
var username=$("#username").val();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "log_err.php",
|
|
data: "username="+username+"&key="+pkey,
|
|
success: function(data){
|
|
window.location.href='index.php';
|
|
}
|
|
});
|
|
}
|
|
}, 1000);
|
|
}
|
|
|
|
$('#username').focusout(function(){
|
|
var a=$('#username').val();
|
|
if (!a) {} else {
|
|
var kkey='ckerr';
|
|
var username=$("#username").val();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "log_err.php",
|
|
data: "username="+username+"&key="+kkey,
|
|
success: function(data){
|
|
if (data==0) {
|
|
$('#notif_err').hide();
|
|
$('#ket_err').hide();
|
|
$('#cdt_err').hide();
|
|
} else {
|
|
var t=data;
|
|
$('#notif_err').show();
|
|
$('#log_err').html(t+'/5');
|
|
if (t==5) {
|
|
$('button[name="login"]').prop('disabled',true);
|
|
$('#capca').prop('disabled',true);
|
|
$('#username').prop('disabled',true);
|
|
$('#password').prop('disabled',true);
|
|
$('#info_err').html('Akun anda terblokir 60 menit, Silakan tunggu atau hubungi admin untuk membuka kembali');
|
|
var nkey='cmerr';
|
|
var username=$("#username").val();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "log_err.php",
|
|
data: "username="+username+"&key="+nkey,
|
|
success: function(data1){
|
|
locktime(data1);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
});
|
|
|
|
|
|
$('#passwordz').on('input', function() {
|
|
var password = $(this).val();
|
|
var strength = 0;
|
|
var tips = "";
|
|
|
|
// Check password length
|
|
if (password.length < 8) {
|
|
tips += "Make the password longer. ";
|
|
} else {
|
|
strength += 1;
|
|
}
|
|
|
|
// Check for mixed case
|
|
if (password.match(/[a-z]/) && password.match(/[A-Z]/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Use both lowercase and uppercase letters. ";
|
|
}
|
|
|
|
// Check for numbers
|
|
if (password.match(/\d/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Include at least one number. ";
|
|
}
|
|
|
|
// Check for special characters
|
|
if (password.match(/[^a-zA-Z\d]/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Include at least one special character. ";
|
|
}
|
|
|
|
// Update the text and color based on the password strength
|
|
var passwordStrengthElement = $('#password-strength');
|
|
if (strength < 2) {
|
|
passwordStrengthElement.text("Easy to guess. " + tips);
|
|
passwordStrengthElement.css('color', 'red');
|
|
} else if (strength === 2) {
|
|
passwordStrengthElement.text("Medium difficulty. " + tips);
|
|
passwordStrengthElement.css('color', 'orange');
|
|
} else if (strength === 3) {
|
|
passwordStrengthElement.text("Difficult. " + tips);
|
|
passwordStrengthElement.css('color', 'black');
|
|
} else {
|
|
passwordStrengthElement.text("Extremely difficult. " + tips);
|
|
passwordStrengthElement.css('color', 'green');
|
|
}
|
|
});
|
|
|
|
$('#password2').on('input', function() {
|
|
var password = $(this).val();
|
|
var strength = 0;
|
|
var tips = "";
|
|
|
|
if (password.length < 8) {
|
|
tips += "Make the password longer. ";
|
|
} else {
|
|
strength += 1;
|
|
}
|
|
|
|
if (password.match(/[a-z]/) && password.match(/[A-Z]/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Use both lowercase and uppercase letters. ";
|
|
}
|
|
|
|
if (password.match(/\d/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Include at least one number. ";
|
|
}
|
|
|
|
if (password.match(/[^a-zA-Z\d]/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Include at least one special character. ";
|
|
}
|
|
|
|
var passwordStrengthElement = $('#password-strength');
|
|
if ((strength < 2) || (strength === 2)) {
|
|
passwordStrengthElement.text("Silakan buat password baru, kombinasi huruf besar, huruf kecil, dan angka, Minimal 8 karakter");
|
|
passwordStrengthElement.css('color', 'red');
|
|
$('#password').val('');
|
|
$('.ipass').hide();
|
|
$('.gpass').show();
|
|
$('#password2').focus();
|
|
$('button[name="login"]').prop('disabled',true);
|
|
$('#simpan_gpass').prop('disabled',true);
|
|
} else {
|
|
passwordStrengthElement.text("Kombinasi sesuai");
|
|
passwordStrengthElement.css('color', 'green');
|
|
$('#simpan_gpass').prop('disabled',false);
|
|
}
|
|
});
|
|
|
|
$('#simpan_gpass').click(function(){
|
|
var username = $("#username").val();
|
|
var pwd_baru = $('#password2').val();
|
|
var key = 'ganti_password_idx';
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "app/master/user/crud.php",
|
|
data: 'username='+username
|
|
+'&baru='+pwd_baru
|
|
+'&key='+key,
|
|
success: function(data){
|
|
alert('Password terupdate..');
|
|
$('#password').val(pwd_baru);
|
|
$('.ipass').show();
|
|
$('.gpass').hide();
|
|
$('button[name="login"]').prop('disabled',false);
|
|
$('#simpan_gpass').prop('disabled',true);
|
|
}
|
|
});
|
|
});
|
|
|
|
|
|
$('#notif_err').hide();
|
|
$('#ket_err').hide();
|
|
$('#cdt_err').hide();
|
|
$("#add_err").css('display', 'none', 'important');
|
|
|
|
const captcha = new Captcha($('#canvas'),{length: 5});
|
|
|
|
$('button[name="login"]').click(function(){
|
|
const ans = captcha.valid($('input[name="code"]').val());
|
|
if (ans==false) {
|
|
alert('Kode salah..');
|
|
captcha.refresh();
|
|
$('#capca').val('');
|
|
$('#capca').focus();
|
|
} else {
|
|
var password = $('#password').val();
|
|
var username = $('#username').val();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "login.php",
|
|
data: "username="+username+"&password="+password,
|
|
success: function(html){
|
|
if (html!='false') {
|
|
var strength = 0;
|
|
var tips = "";
|
|
|
|
if (password.length < 8) {
|
|
tips += "Make the password longer. ";
|
|
} else {
|
|
strength += 1;
|
|
}
|
|
|
|
if (password.match(/[a-z]/) && password.match(/[A-Z]/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Use both lowercase and uppercase letters. ";
|
|
}
|
|
|
|
if (password.match(/\d/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Include at least one number. ";
|
|
}
|
|
|
|
if (password.match(/[^a-zA-Z\d]/)) {
|
|
strength += 1;
|
|
} else {
|
|
tips += "Include at least one special character. ";
|
|
}
|
|
|
|
var passwordStrengthElement = $('#password-strength');
|
|
if ((strength < 2) || (strength === 2)) {
|
|
passwordStrengthElement.text("Silakan buat password baru, kombinasi huruf besar, huruf kecil, dan angka, Minimal 8 karakter");
|
|
passwordStrengthElement.css('color', 'red');
|
|
$('#password').val('');
|
|
$('.ipass').hide();
|
|
$('.gpass').show();
|
|
$('#password2').focus();
|
|
$('button[name="login"]').prop('disabled',true);
|
|
} else {
|
|
var chars = html.split('$%^');
|
|
var a=chars[0];
|
|
var b=chars[1];
|
|
var c=chars[2];
|
|
window.location="home?a="+c+"&b="+b;
|
|
var ukey='cuerr';
|
|
var username=$("#username").val();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "log_err.php",
|
|
data: "username="+username+"&key="+ukey,
|
|
success: function(data){}
|
|
});
|
|
}
|
|
} else {
|
|
$("#add_err").css('display', 'inline', 'important');
|
|
var ckey='cnerr';
|
|
var username=$("#username").val();
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "log_err.php",
|
|
data: "username="+username+"&key="+ckey,
|
|
success: function(dataz){
|
|
var t=dataz;
|
|
if (t=='tahu') {
|
|
alert("Login tidak terdaftar..");
|
|
$('#capca').val('');
|
|
$('#username').val('');
|
|
$('#password').val('');
|
|
$('#password2').val('');
|
|
$('.gpass').hide();
|
|
$('.ipass').show();
|
|
} else {
|
|
alert("Username atau Password SALAH..");
|
|
$('#notif_err').show();
|
|
$('#log_err').html(t+'/5');
|
|
if (t==5) {
|
|
$('button[name="login"]').prop('disabled',true);
|
|
$('#capca').prop('disabled',true);
|
|
$('#username').prop('disabled',true);
|
|
$('#password').prop('disabled',true);
|
|
$('#info_err').html('Akun anda terblokir 60 menit, Silakan tunggu atau hubungi admin untuk membuka kembali');
|
|
var lkey='clerr';
|
|
var username=$("#username").val();
|
|
alert('Akun anda terblokir 60 menit,\nSilakan tunggu atau hubungi admin untuk membuka kembali');
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "log_err.php",
|
|
data: "username="+username+"&key="+lkey,
|
|
success: function(data2){
|
|
locktime(data2);
|
|
}
|
|
});
|
|
} else {
|
|
$('.lpass').show(); /* lupa password ? */
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}},
|
|
beforeSend:function() {
|
|
$("#add_err").css('display', 'inline', 'important');
|
|
}
|
|
});
|
|
return false;
|
|
}
|
|
});
|
|
|
|
function tekan1(event) {
|
|
var x = event.keyCode;
|
|
if (x == 13) {$('button[name="login"]').trigger('click');}
|
|
}
|
|
|
|
|