Admin UI
Instalasi
Jalankan perintah di bawah di folder aplikasi:
mim app install admin-ui
TODO
Beberapa komponen yang mungkin perlu ditambahkan:
- Location Picker
- Form Audio
- Form Video
Bagian yang mungkin perlu ditulis ulang:
- Datetimepicker ( 103,4 KB )
- Bootstrap Select ( 105,2 KB )
- Image Viewer ( 80,5 KB )
Navbar Menu
Konten di navbar menu diisi oleh custom library. Tambahkan konfigurasi seperti di bawah
pada aplikasi/module untuk mendaftarkan library yang akan dipanggil untuk mendapatkan
konten navbar menu. Library tersebut harus mengimplementasikan interface AdminUi\Iface\NavbarMenu
.
return [
'adminUi' => [
'navbarMenu' => [
'handlers' => [
'/name/' => [
'class' => '/ClassName/',
'parent' => '/parent-key/' // gunakan 'none' jika tanpa parent
],
'auth-user' => [
'class' => 'Admin\\Library\\NavbarUser',
'parent' => 'none'
]
]
]
]
];
Library tersebut harus memiliki method:
getNavbarMenu(object $menu, array $params): array
Mengambil daftar menu yang akan ditambahkan pada level 1 navbar. Fungsi ini diharapkan mengembalikan struktur array sebagai berikut:
$result = [
(object)[
'label' => 'Menu Label',
'icon' => '<i class="#"></i>', // optional html
'id' => 'menu-id',
'link' => 'menu-link/#0',
'priority' => 0
],
...
];
Nilai id
akan digunakan untuk mencari children menu.
getSubNavbarMenu(object $menu, object $parent, array $params): array
Dipanggil hanya jika property parent bukan none
. Nilai ini diharapkan mengembalikan array dengan bentuk:
$result = [
(object)[
'label' => 'Submenu Label',
'icon' => '<i class="#"></i>', // optional html
'id' => 'menu-id',
'link' => 'menu-link/#0',
'priority' => 0
],
...
];
Sidebar Menu
Tambahkan konfigurasi seperti di bawah pada module/aplikasi untuk mendaftarkan menu bagian sidebar:
return [
'adminUi' => [
'sidebarMenu' => [
'items' => [
'/menu-id/' => [
'label' => 'Menu Label',
'icon' => 'Menu Icon', // in html
'route' => ['routeName', ['params'], ['query']],
'priority' => 0,
'perms' => 'user-perms',
'filterable'=> true,
'visible' => true,
'children' => [
'/submenu-id/' => [
'label' => '...',
// ...
],
// ...
]
]
]
]
]
];
Untuk menambahkan menu item secara dynamic, bisa juga dengan suatu class handler yang sudah
mengimplementasikan interface AdminUi\Iface\SidebarMenu
, dan mendaftarkan pada konfigurasi
seperti di bawah:
return [
'adminUi' => [
'sidebarMenu' => [
'handlers' => [
'/parent-id/' => [
'/Class/',
// ...
]
]
]
]
];
Library tersebut harus memiliki method:
getSidebarMenu(array $meta): array
Fungsi ini diharapkan mengembalikan nilai seperti di bawah:
$result = [
(object)[
'label' => 'Menu Label',
'icon' => 'Menu Icon', // in html
'link' => '#0',
'id' => 'menu-id',
'filterable'=> true,
'visible' => true,
'priority' => 0
],
// ...
]
Formatter
Module ini mendaftarkan beberapa formatter sebagai berikut:
aui-std-file-list
Mengubah standar nilai yang dihasilkan oleh form field type file-list
menjadi media.