Modal.js adalah kelas JavaScript yang menyediakan fungsionalitas untuk
mengelola modal dan interaksi form dalam aplikasi web menggunakan
NexaUI. Kelas ini menangani operasi CRUD (Create, Read, Update, Delete)
dengan integrasi modal dan form.
Penggunaan
1. Import script Modal.js:
<script import="modal/Modal.js" key="optional"></script>
2. Tambahkan tombol untuk membuka modal:
<button
title="ORDER Data"
class="nx-btn-dark"
modal="formAdd"
/>
3. Definisikan struktur modal sesuai kebutuhan (Add/Update/Delete)
4. Tambahkan container untuk menampilkan data dengan id="item"
5. Tambahkan pagination dengan id="pagination"
Kelas ModalHandler
Constructor
Inisialisasi komponen-komponen utama:
constructor() {
this.nexaUi = new NexaUI();
this.modal = this.nexaUi.Modal();
this.Storage = this.nexaUi.Client();
this.modal.init();
this.domInstance = this.initializeDom();
this.setupModalListeners();
this.loadData();
}
Metode initializeDom()
Konfigurasi untuk menampilkan dan mengelola data:
initializeDom() {
return this.nexaUi.NexaDom({
elementById: "item", // Container untuk data
search: "searchInput", // Input pencarian
virtualScroll: true, // Aktifkan virtual scrolling
chunkSize: 1000, // Jumlah item per chunk
pagination: "pagination", // Element pagination
order: 2, // Urutan default
searchableFields: ["nama", "id"] // Field yang dapat dicari
});
}
Metode loadData()
Mengambil data dari server:
loadData() {
this.Storage.Buckets({
type: "nexa",
action: "data",
credensial: "BC948-67AB6-EA185-1001B",
data: true
})
.then(response => {
this.domInstance.setData(response);
});
}
Metode handleFormSubmit()
Menangani pengiriman data form ke server:
handleFormSubmit(action, data, modalId) {
this.Storage.Buckets({
type: "nexa",
action: action, // formUploads/formRemove/formUpdate
credensial: "BC948-67AB6-EA185-1001B",
data: data
})
.then(response => {
this.domInstance.Reload(response, {
append: false,
resetPage: true
});
this.modal.close(modalId);
});
}
Event Listeners
setupModalListeners() menangani aktivasi modal:
- Mendengarkan event modal.active
- Mengekstrak modalId dan order dari event
- Memanggil handler yang sesuai (formAdd/formUpdate/formDelet)