Fix: perbaikan alert#1639
Conversation
|
🔄 AI PR Review sedang antri di server...
|
sebelumnya kita menggunakan alert() blocking, sekarang modal non-blocking. kalo solusi dari AI saya baca bisa dibuat seperti ini : Tambahkan callback onClose di openAlert, lalu pindahkan redirect ke callback itu. // public/js/modal-helper.js
function openAlert(message, title, type, onClose) {
var modal = $('#modal-alert');
modal.find('.modal-title').text(title || 'Pesan');
modal.find('.modal-body').text(message || ''); // lihat poin 3
modal.find('.modal-content').removeClass('modal-danger modal-success modal-warning modal-info');
if (type) {
modal.find('.modal-content').addClass('modal-' + type);
}
modal.off('hidden.bs.modal.alertCallback');
if (typeof onClose === 'function') {
modal.one('hidden.bs.modal.alertCallback', onClose);
}
modal.modal('show');
}Contoh pakai di file OTP/2FA (semua kasus kadaluarsa): openAlert('Kode OTP telah kadaluarsa. Silakan minta kode baru.', 'Info', 'warning', function () {
window.location.href = '{{ route('otp2fa.index') }}';
});
solusi yang bisa diterapkan :
Solusi yang bisa diterapkan : // sesudah |
simplescreenrecorder-2026-07-15_16.34.56.mp4 |
Pull Request: Perbaiki alert konfirmasi windows ke alert standar OpenDK
Description
Standarisasi seluruh notifikasi di aplikasi dengan mengganti native browser
alert()danconfirm()dengan Bootstrap modal yang konsisten. Membuat Blade component (x-modal-alertdanx-modal-confirm) serta JavaScript utility (modal-helper.js) agar semua notifikasi memiliki tampilan seragam dan dapat dikelola dengan mudah.Changes made:
resources/views/components/modal-alert.blade.php— Blade componentx-modal-alertuntuk menampilkan pesan notifikasi dengan dukungan tipe (success/danger/warning/info)resources/views/components/modal-confirm.blade.php— Blade componentx-modal-confirmuntuk konfirmasi dengan callback dan data-confirm attributepublic/js/modal-helper.js— JavaScript helper dengan fungsiopenAlert(),openConfirm(), dan event handler untukdata-confirmattributeresources/views/layouts/app.blade.phpdandashboard_template.blade.php— Include komponen modal dan JS helperlivewireInstance.on('success'/'error')dari SweetAlert2 keopenAlert()public/js/admin.js— MigrasierrorValidation()dari SweetAlert2 keopenAlert()alert()denganopenAlert()(file validation, OTP/2FA errors, AJAX errors)confirm()denganopenConfirm()ataudata-confirmattribute (delete confirmation, archive messages, backup database)Reason for change:
alert()danconfirm()tampil tidak konsisten antar browser dan tidak sesuai dengan tema aplikasiImpact of change:
Related Issue
Steps to Reproduce
Before fix (problem):
alert('File tersebut tidak diperbolehkan.')alert('Kode OTP telah kadaluarsa...')confirm('Yakin ingin menghapus?')After fix (solution):
Checklist
Technical Details
Technical Explanation
Membuat dua Blade component yang dirender di layout:
JS helper
modal-helper.jsmenyediakan tiga mekanisme:openAlert(message, title, type)— Fungsi global untuk menampilkan modal alert. Type (success/danger/warning/info) mengubah class pada.modal-contentuntuk warna yang sesuai (Bootstrap 3modal-success,modal-danger, dll)openConfirm(message, title, callback, btnYesText)— Fungsi global untuk konfirmasi dengan callback. Menggunakan variabel globalconfirmCallbackyang dipanggil saat tombol "Ya" diklik[data-confirm]attribute — Event handler delegated untuk tombol submit form atau link. Secara otomatis mencegah default action, menampilkan konfirmasi, dan mengeksekusi submit/navigasi jika dikonfirmasiConfiguration changes
Tidak ada perubahan konfigurasi
Dependencies added
Tidak ada dependencies baru (menggunakan Bootstrap 3 yang sudah terinstall)
Testing
Manual Testing
Breaking Changes
None — semua native alert/confirm diganti dengan Bootstrap modal yang memiliki perilaku serupa (modal alert bersifat blocking dengan tombol OK, modal confirm dengan Batal/Ya)
Migration Guide
Not required — perubahan hanya pada frontend, tidak ada perubahan database atau API
References