Pemakaian control Combobox di sebuah aplikasi tidak akan pernah bisa dihindari. Setiap aplikasi apapun itu; entah aplikasi desktop atau aplikasi berbasis web, pasti pernah menggunakan control yang satu ini.
Tidak terkecuali juga untuk aplikasi web yang dihasilkan oleh PHPMaker. Kita pasti sangat sering menggunakan control Select ini, apalagi jika field tersebut harus lookup ke suatu table tertentu.
Sejak versi 2021, PHPMaker mulai menggunakan control Select2. Control ini menggantikan control Select versi jadul. Tentu saja banyak keuntungan yang akan kita dapatkan dengan menggunakan control Select2 tadi, seperti yang diuraikan di web resminya.
Penulis masih ingat, saat itu, kita bisa menampilkan kotak teks pencarian, sekaligus menampilkan item pilihan yang terdapat di control tersebut. Saat Pengguna mengetik beberapa karakter, maka sistem akan otomatis menyaring dan menampilkan item pilihan data di bagian bawahnya.
Sayangnya, pada versi 2022, PHPMaker sempat mengabaikan fungsi menampilkan teks pencarian dan item data tersebut sekaligus. Di versi ini kita tidak bisa menampilkan pilihan item yang terdapat di dalam control tersebut, sekaligus menampilkan textbox untuk melakukan pencarian data di bagian atasnya.
Kita hanya bisa menampilkan salah satu saja saat kita mengklik control Select2 tadi. Jika kita ingin control Select2 menampilkan kotak pencarian, maka kita tidak bisa menampilkan item pilihan data. Maupun sebaliknya. Jika kita ingin menampilkan item pilihan data, maka kita tidak bisa menggunakan fungsi pencariannya.
Kabar gembira bagi Anda yang mulai menggunakan PHPMaker 2023. Sekarang kita sudah bisa menampilkan teks pencarian sekaligus menampilkan item pilihan di control Select2 di bagian bawahnya.
Artinya, fungsi pencarian sekaligus menampilkan item pilihan data, meskipun kita belum melakukan pencarian dengan cara mengetik beberapa karakter di atasnya, sudah dapat kita gunakan kembali di aplikasi web yang dihasilkan oleh PHPMaker 2023.
Bagaimana caranya? Kita hanya cukup melakukan 2 langkah berikut.
Langkah Pertama, pastikan kita sudah menambahkan dua baris kode Javascript berikut ke dalam Code (Server Events, Client Scripts and Custom Templates -> Client Scripts -> Global -> Pages with header/footer -> Client Script dari project PHPMaker 2023 kita:
ew.selectMinimumInputLength = 0; // Minimum number of characters required to start a search
ew.selectOptions.minimumResultsForSearch = 0; // Minimum number of results required to display the search box
Arti dari kode pada baris pertama adalah, kita sebagai Web Developer menentukan jumlah karakter minimum yang dibutuhkan supaya sistem mulai mencari data. Jika kita mengesetnya dengan nilai nol, maka itu artinya sistem tidak mempersyaratkan Pengguna Akhir mengetik satu atau beberapa karakter terlebih dulu di kotak pencarian, barulah item pilihan data ditampilkan di control Select2.
Jadi, item pilihan data dapat ditampilkan saat itu juga tanpa harus menunggu Pengguna Akhir mengetikkan satu atau beberapa karakter data di kotak pencarian.
Sedangkan arti dari kode pada baris kedua, kita menentukan jumlah minimum pilihan data yang dibutuhkan agar sistem menampilkan kotak pencarian. Jika kita mengesetnya dengan nilai nol, maka itu artinya kotak pencarian akan ditampilkan, tanpa harus memenuhi syarat jumlah minimal item hasil pencarian yang ditampilkan pada control Select2 tersebut.
Selanjutnya, di Langkah Kedua, pastikan kita sudah mengaktifkan opsi Requires search dari bagian Fields -> Edit Tag -> SELECT Tag milik control Select yang digunakan oleh PHPMaker 2023. Tentu saja dalam hal ini kita mengaktifkan opsi Use lookup table, dan mengelola pengaturan table terkait di panel Lookup Table di sebelah kanannya.
Opsi Requires search tetap dibutuhkan agar PHPMaker men-generate Textbox di dalam control Select2 yang akan digunakan oleh Pengguna untuk melakukan pencarian data dengan cara mengetikkan satu atau beberapa karakter.
Hanya begitu saja? Ya, benar. Hanya begitu saja!
Setelah itu, pastikan kita men-generate ulang kembali semua file script seperti biasa menggunakan aplikasi PHPMaker 2023.
Hasilnya, saat kita mengklik control Select2 di aplikasi web, maka kita akan menemukan kotak pencarian sekaligus item pilihan data di bagian bawahnya.
Ketika Pengguna akhir mengetikkan beberapa karakter saja untuk melakukan pencarian data, maka sistem akan otomatis menyaring data sesuai dengan data yang diketik tadi.
Tentu saja ini menjadi pengalaman yang menyenangkan, baik bagi Pengguna Akhir, apalagi buat si Web Developer. Yang satu semakin semangat menggunakan aplikasi web, yang satunya lagi semakin semangat membangun aplikasi web.
ameisfine mengatakan
Pak masino, apa gk pengin bikin saingan Odoo ? kebetulan sy pake dan melihat perkembangan (konsumennya) pesat sekali. Ada fitur2 yang menjadi unggulannya, yang kalo sy lihat bisa saja engine nya pake pmaker dengan alur yg dimodel seperti Odoo. Kalo ada minat kita develop yuk hehe.. thanks.
Masino Sinaga mengatakan
Saya pernah sekilas lihat video-nya di Youtube, tapi karena tidak punya sistemnya, saya tidak terlalu mengetahui detailnya.
Silahkan dicoba saja dulu, seharusnya bisa selama proses bisnisnya jelas.
ameisfine mengatakan
Satu fitur yang bener2 ingin sy tiru adalah adanya fitur ‘user comment’ dan activity log di setiap halaman, misal perubahan value of PO atau detail sebuah product jadi sama2 terlihat histornya. Ini yang saya masih belum nemu caranya di PHPMaker ini pak.. mungkin ada pencerahan ?
Masino Sinaga mengatakan
Tergantung data perubahannya sampai seberapa detail yang ingin disimpan? Setiap terjadi perubahankah historinya wajib disimpan? Atau hanya perubahan yang terakhir, plus saat data ditambah pertama sekali?
Kalau setiap perubahan ingin disimpan histori perubahannya, buat saja table histori yang menyimpan riwayat siapa yang mengubah dan tanggal berapa diubah, bila perlu nilai lama dan barunya juga disimpan.
Kalau hanya ingin menyimpan user dan tanggal terakhir diubah, ya cukup tambahkan saja dua field di masing-masing table PO atau product tadi, untuk menyimpan data tanggal terakhir diubah dan siapa yang terkahir mengubah.
ameisfine mengatakan
Baik, dari sisi database mungkin sy bisa pilih2. Sekarang sy pikirkan interfacenya (custom template) apa ada saran cara paling efektif supaya bisa generate dengan merubah templatenya pak ?
Saya bayangkan ada kolom komen disebelah halaman utama seperti ss berikut ini : https://prnt.sc/4_PEz_9MZeA2
Lihat bagian lognote > antar user bisa komen + upload file
Masino Sinaga mengatakan
Kenapa tidak pakai fitur Chat saja? Kan ada banyak third party library di luar sana yang bisa diintegrasikan ke sisi aplikasi web yang di-generate PHPMaker.
Nanda mengatakan
Wooww, menarik sekali ada yang bahas PHP Maker tingkat lanjut.
sebagai Pemula ikut nimbrung niiih.
menurut saya kalo hanya sekedar Fitur2 bagian tertentu di Aplikasi tersebut bisa dibuat dengan PHP Maker,
Misalnya :
1. Histori/ Activity Log
benar seperti Bang Masino sampaikan, bisa buat tabel Log (minimal : id, modul/ tabel, aktifitas, keterangan, user_id, log_date) –> kebetulan saya pernah buat versi sederhana nya.
hasilnya :
ID | modul | akifitas | user_id | log_date | keterangan)
287 | Inventory | insert | A-1101 | 2022-01-01 07:05:00 | user A-1101 menambahkan data dengan ID : 287 bla bla blaaa )
sejauh yang saya tahu kalao di PHP Maker bisa dijalankan saat Row_Inserted, Row_Updated, Row_Deleted saat manipulasi Database, bahkan bisa memanfaatkan Page_Load saat User memuat halaman tertentu, dengan menyisipkan Script Insert ke Tabel Histori.
bahkan “mungkin” ketika User melakukan Pencarian bisa disimpan juga ke Tabel Histori, mohon koreksi jika saya salah.
2. Lognote/ Chat
dengan versi yang lebih sederhana saya pernah bikin, sejauh yang saya ingat kalau AdminLTE dibagian Dashboard 2 –> sudah ada kolom “Recently Added Products” dibagian kanan bawah, saat itu saya ubah menjadi fitur Chat (hanya Chat) antar User sederhana ala Pemula.
tapi kalau akan membuat yang lebih komplek mungkin bisa memanfaatkan fitur Custom File di PHP Maker, sehingga lebih fleksibel dalam Perubahan Template dan fiturnya.
menurut saya sebagai Pemula kalau hanya membuat Fitur2 tertentu di Aplikasi tersebut masih sangat mungkin dibuat dengan PHP Maker, tapi kalau membuat Aplikasi Sejenis seutuhnya lumayan puyeng juga dan membutuhkan waktu yang lumayan lama.
ameisfine mengatakan
sangat menarik, semoga kita bisa berkolaborasi mas nanda