My App

Kelola Editor (Admin)

Panduan untuk admin dalam melihat, memfilter, menambahkan, mengedit, dan mengatur status akun admin & editor di sistem.

Kelola Editor (Admin)

Halaman Kelola Editor di panel admin digunakan untuk mengelola akun admin dan editor yang memiliki akses ke panel administrasi Nasmedia.

Dari sini admin bisa:

  • Melihat daftar semua akun dengan peran Superadmin dan Editor.
  • Mencari admin/editor berdasarkan nama atau email.
  • Memfilter berdasarkan role dan status akun.
  • Menambahkan admin baru.
  • Mengedit data admin yang sudah ada.
  • Mengaktifkan / menonaktifkan akun admin (tanpa menghapus datanya).

1. Halaman Utama Manajemen Admin

Menu Kelola Editor di sidebar admin mengarah ke halaman /dashboard/users.

Di bagian atas halaman terdapat:

  • Judul: Manajemen Admin.
  • Deskripsi: Kelola akun admin dan editor sistem.
  • Tombol "Tambah Admin Baru" di sisi kanan.

Tombol "Tambah Admin Baru" akan membuka dialog untuk membuat akun admin/editor baru.


2. Filter & Pencarian Admin/Editor

Tepat di bawah header, ada komponen filter (AdminUserFilters) yang membantu menyaring daftar akun:

  • Input teks yang menerima kata kunci nama lengkap atau email.
  • Di belakang layar, nilai ini dikirim sebagai parameter search ke API.
  • Digunakan untuk mencari admin/editor tertentu dengan cepat.

2.2. Filter Role

  • Dropdown untuk memilih role:
    • Superadmin.
    • Editor.
    • Atau semua role (default).
  • Hanya akun dengan role Superadmin dan Editor yang pernah dibuat yang akan ditampilkan. Filter ini membantu fokus ke salah satu jenis peran.

2.3. Filter Status

  • Filter status (misalnya Aktif / Tidak Aktif) di-handle di sisi frontend.
  • Digunakan untuk memisahkan admin yang masih aktif dan yang sudah dinonaktifkan.

Dengan kombinasi tiga filter ini, admin dapat dengan cepat menemukan akun tertentu atau melihat kelompok admin dengan kriteria tertentu.


3. Tabel Daftar Admin & Editor

Bagian utama halaman menampilkan tabel (AdminUserTable) berisi daftar akun admin/editor.

Secara umum tabel ini menampilkan kolom-kolom seperti:

  • Nama Lengkap
    Nama admin/editor sesuai profil akun.

  • Email
    Email yang digunakan untuk login dan komunikasi.

  • Role
    Menunjukkan apakah akun tersebut Superadmin atau Editor.

  • Status Akun
    Status Active atau Inactive yang menggambarkan apakah akun bisa login / menggunakan panel admin.

  • Aksi
    Biasanya terdiri dari tombol untuk:

    • Edit – membuka dialog edit admin.
    • Ubah Status – membuka dialog konfirmasi pengaktifan / penonaktifan akun.

3.1. Loading & Data Kosong

  • Saat data sedang dimuat dari server, tabel akan digantikan oleh AdminUsersSkeleton (skeleton loading) agar admin tahu bahwa data sedang diambil.
  • Jika setelah filter/pencarian tidak ada hasil yang cocok, tabel akan menampilkan pesan bahwa tidak ada data yang ditemukan (sesuai implementasi AdminUserTable).

3.2. Pagination

Hook useAdminUsers mengelola:

  • currentPage – halaman saat ini.
  • perPage – jumlah baris per halaman (misalnya 10).
  • totalItems dan totalPages – diambil dari API adminUsers.

Di UI, tabel akan menampilkan kontrol untuk berpindah halaman dan mengatur jumlah data per halaman, terhubung langsung ke backend.


4. Menambahkan Admin Baru

Untuk menambahkan admin/editor baru, admin menekan tombol "Tambah Admin Baru". Ini akan membuka dialog CreateAdminUserModal.

4.1. Isi Form Tambah Admin

Di dalam modal, admin diminta mengisi beberapa informasi (bergantung detail komponen, umumnya):

  • Nama Lengkap.
  • Email.
  • Role (Superadmin atau Editor).
  • Informasi lain yang dibutuhkan sesuai kebijakan internal.

Saat admin menekan tombol Simpan di modal:

  1. Data dikirim ke API admin user untuk membuat akun baru.
  2. Backend hanya akan menerima permintaan ini jika user yang sedang login memiliki izin (authorization) yang sesuai.
  3. Jika berhasil:
    • Muncul notifikasi sukses.
    • Daftar admin akan diperbarui sehingga akun baru muncul di tabel.
  4. Jika gagal:
    • Muncul pesan error di modal (ErrorModal) dengan penjelasan singkat.

Catatan: Pembuatan admin baru ini berbeda dengan pembuatan penulis (author). Di sini, role difokuskan pada Superadmin dan Editor untuk akses panel admin.


5. Mengedit Data Admin

Untuk mengedit admin/editor:

  1. Dari tabel, admin menekan tombol Edit di baris yang diinginkan.
  2. Ini akan membuka EditAdminUserModal dengan data admin tersebut sudah terisi.

Di modal edit, admin bisa:

  • Mengubah nama.
  • Mengubah email.
  • Mengubah role (misalnya dari Editor menjadi Superadmin atau sebaliknya), jika diizinkan kebijakan.

Saat admin menekan Simpan:

  1. Perubahan dikirim ke API update admin (AdminUserController@update).
  2. Jika berhasil:
    • Data di tabel diperbarui.
    • Modal tertutup.
  3. Jika gagal:
    • Muncul pesan error yang menjelaskan masalahnya.

6. Mengubah Status Aktif / Nonaktif

Selain mengedit detail, admin juga bisa mengaktifkan atau menonaktifkan akun admin/editor.

6.1. Tombol Ubah Status

  • Di tabel, ada aksi yang memicu onToggleStatus.
  • Ketika diklik, akan membuka ConfirmStatusModal yang berisi:
    • Nama admin.
    • Penjelasan singkat bahwa status akun akan diubah.
    • Tombol konfirmasi dan batal.

6.2. Konfirmasi Perubahan Status

Saat admin mengkonfirmasi di modal:

  1. Sistem mengecek status saat ini (account_status = Active / Inactive).
  2. Sistem memanggil handler handleToggleStatus(id, !isActive) dari hook useAdminUsers.
  3. Di backend, ini akan memanggil endpoint update user untuk mengubah status akun (aktif → nonaktif, atau sebaliknya).
  4. Jika berhasil:
    • Baris di tabel akan memperlihatkan status baru.
    • Modal konfirmasi tertutup.
  5. Jika gagal:
    • ErrorModal akan muncul dengan pesan ramah (misalnya: "Maaf, terjadi kesalahan pada sistem. Silakan coba lagi nanti.").

Dengan cara ini, admin dapat dengan aman menonaktifkan akun tanpa harus menghapus data user dari sistem.


7. Error Handling

Setiap kali terjadi kesalahan jaringan atau API (misalnya server tidak merespons, validasi gagal, atau user tidak memiliki izin), modul ini menggunakan ErrorModal untuk menampilkan pesan error dengan cara yang jelas dan tidak teknis.

  • Pesan error akan diambil dari error di hook useAdminUsers atau dari pengecualian saat aksi dijalankan.
  • Modal error akan muncul otomatis saat ada error baru, dan bisa ditutup oleh admin setelah dibaca.

Dengan memahami modul Kelola Editor (Admin) ini, tim admin dapat:

  • Menjaga daftar admin/editor tetap terkontrol.
  • Membatasi akses panel admin hanya pada akun yang seharusnya.
  • Menonaktifkan akun sementara tanpa menghapus data historisnya.
  • Memastikan struktur peran (Superadmin vs Editor) tetap jelas dan terkelola.