MIF_E31210128/public/user/modal/car-detail.js

162 lines
5.0 KiB
JavaScript

//Image Popup
$(document).ready(function() {
$('.gallery').magnificPopup({
delegate: 'a',
type: 'image',
gallery: {
enabled: true,
navigateByImgClick: true,
preload: [0, 1]
},
zoom: {
enabled: true,
duration: 300,
easing: 'ease-in-out',
opener: function(openerElement) {
return openerElement.closest('.gallery').find('.cover-image');
},
image: {
verticalFit: true,
fitContainerWidth: true
}
},
callbacks: {
resize: function() {
var self = this;
setTimeout(function() {
self.wrap.addClass('mfp-image-loaded');
}, 16);
},
imageLoadComplete: function() {
var self = this;
setTimeout(function() {
self.wrap.addClass('mfp-image-loaded');
}, 16);
}
}
});
});
//Handler Check Unit Button
$(document).ready(function() {
updateTimeConstraints();
$('#checkUnitModal').on('hidden.bs.modal', function () {
$('body').css('padding-right', '0');
});
$('#checkUnitBtn').click(function() {
if (isAuthenticated) {
$('#checkUnitModal').modal('show');
} else {
Swal.fire({
title: 'Info',
text: 'Layanan ini dikenakan biaya sebesar Rp15.000 untuk biaya operasional. Silahkan login jika ingin cek unit dan tes drive gratis.',
icon: 'info',
showCancelButton: true,
showDenyButton: true,
confirmButtonText: 'Login',
denyButtonText: 'Lanjutkan Berbayar',
cancelButtonText: 'Batal'
}).then((result) => {
if (result.isConfirmed) {
window.location.href = '/login';
} else if (result.isDenied) {
$('#checkUnitModal').modal('show');
}
});
}
});
$('#simpanButton').on('click', function() {
var date = $('#date').val();
var time = $('#time').val();
var currentTime = new Date().toLocaleTimeString('en-US', {hour12: false}).slice(0, 5);
var today = new Date().toISOString().slice(0, 10);
if (date < today && time > currentTime) {
Swal.fire(
'Error!',
'Silakan pilih tanggal yang valid.',
'error'
);
return;
}
if (date === today && time < currentTime) {
Swal.fire(
'Error!',
'Pilih jam minimal dari jam saat ini (WIB).',
'error'
);
return;
}
if (time > '22:00' || time < '08:00') {
Swal.fire(
'Error!',
'Pilih jam antara 08:00 hingga 22:00 WIB.',
'error'
);
return;
}
if (!$('#agreement').prop('checked')) {
Swal.fire(
'Error!',
'Anda harus menyetujui persyaratan dan ketentuan terlebih dahulu.',
'warning'
);
return;
}
var formData = new FormData($('#checkUnitForm')[0]);
simpanData(formData);
});
function simpanData(formData) {
var date = $('#date').val();
var time = $('#time').val();
var formattedDate = new Date(date).toLocaleDateString('en-GB');
$.ajax({
url: '/car-units/detail/check-unit',
method: 'POST',
data: formData,
dataType: 'json',
contentType: false,
processData: false,
success: function(response) {
console.log(response);
Swal.fire(
'Terkirim!',
`Anda telah memilih cek unit mobil pada tanggal ${formattedDate} jam ${time}. Hubungi admin melalui whatsapp untuk info lebih lanjut.`,
'success'
).then(function() {
location.reload();
});
$('#checkUnitModal').modal('hide');
},
error: function(xhr, status, error) {
console.log(xhr.responseText);
Swal.fire(
'Error!',
'Terjadi kesalahan saat menyimpan data.',
'error'
);
}
});
}
});
function updateTimeConstraints() {
var selectedDate = document.getElementById('date').value;
var currentTime = new Date().toLocaleTimeString('en-US', {hour12: false}).slice(0, 5);
var timeInput = document.getElementById('time');
var today = new Date().toISOString().slice(0, 10);
if (selectedDate === today) {
timeInput.min = currentTime;
} else {
timeInput.min = "08:00";
}
timeInput.max = "22:00";
}