Di artikel sebelumnya kita sudah membahas bagaimana mudahnya membuat Fake Delete di PHPMaker 2021.
Tapi sayangnya, di artikel tersebut, kita tidak bisa menerapkannya untuk beberapa record sekaligus (Multiple Delete). Kita hanya bisa “menghapus” per satu record (Single Delete) saja. Penyebabnya karena kita langsung melakukan return false dan me-redirect Pengguna Akhir kembali ke halaman List.
Bukan PHPMaker namanya jika kita tidak bisa mencarikan alternatif solusi untuk membuat Fake Delete yang bisa untuk beberapa record sekaligus. Untuk itu, kita akan kembali menggunakan project demo2021 yang sudah kita bahas di artikel di atas tadi.
Jika Anda belum pernah mengikuti dan mencobanya secara langsung, maka saya sarankan agar Anda mencobanya terlebih dulu, sesuai yang dijelaskan pada artikel tersebut.
Langkah pertama, pastikan Anda sudah membuka file project demo2021 menggunakan PHPMaker 2021, lalu hapus tanda centang pada opsi Delete dari Table setup -> Delete Page. Kali ini kita tidak lagi menggunakan fitur Delete bawaan PHPMaker.
Langkah kedua, copy dan paste-kan kode berikut ke dalam server event Page_Load di bawah List Page milik table models, sehingga kode selengkapnya menjadi seperti ini:
// Page Load event function Page_Load() { //Log("Page Load"); $this->CustomActions["deleteModels"] = new ListAction("deleteModels", " Delete Models", IsLoggedIn(), ACTION_POSTBACK, ACTION_MULTIPLE, "Delete the selected records?", "fas fa-star ew-icon"); }
Langkah ketiga, copy dan paste-kan kode berikut ke dalam server event Row_CustomAction milik List Page dari table models, sehingga kode selengkapnya menjadi seperti ini:
// Row Custom Action event function Row_CustomAction($action, $row) { // Return false to abort if ($action == "deleteModels") { // Check action name $rsnew = ["IsDelete" => "1"]; // Array of field(s) to be updated $result = $this->update($rsnew, "ID = " . $row["ID"]); // Update the current record only (the second argument is WHERE clause for UPDATE statement) if (!$result) { // Failure $this->setFailureMessage("Failed to delete record, ID = " . $row["ID"]); return false; // Abort and rollback } elseif ($this->SelectedIndex == $this->SelectedCount) { // Last row $this->setSuccessMessage("All selected records deleted."); } return true; // Success } return true; }
Langkah keempat, silahkan generate ulang semua file script menggunakan PHPMaker 2021 seperti biasa.
Setelah semua file script selesai di-generate, silahkan login ke Aplikasi Web dengan menggunakan username admin dan password master. Kemudian buka halaman Models, maka Anda akan melihat tombol di bagian bawah dan/atau atas table di halaman List tersebut yang bernama Delete Models dengan icon bintang di sebelah kirinya.
Sekarang cobalah pilih beberapa record sekaligus, lalu tekan tombol Delete Models, maka sistem akan menampilkan pertanyaan Delete the selected records?. Klik tombol OK untuk menyetujui dan melanjutkan, lalu tunggulah beberapa detik, sistem akan “menghapus” record-record yang terpilih tadi dengan cara meng-update nilai field IsDelete menjadi nilai 1, lalu menampilkan pesan All selected records deleted.
Betapa mudah dan cepatnya bukan? Tidak perlu menulis kode sampai berpuluh-puluh atau beratus-ratus baris hanya untuk membuat fitur Fake Delete yang bisa Multi Record. Hanya dengan sedikit kode itu saja, kita sudah bisa membuat Fake Delete yang bisa Multi Record di PHPMaker 2021.
Tinggalkan Balasan