Chapter 6: System UI/UX

Status: 🔒 Final / Mengikat (v2.0)

Bab ini mendefinisikan bagaimana konsep arsitektural (Module, Permission, Role, Workspace, Settings) divisualisasikan dan diinteraksikan oleh pengguna. Jika Chapter 3 mendefinisikan bagaimana hal itu berjalan di backend (Ash.Policy.Authorizer), bab ini mendefinisikan bagaimana hal itu terlihat dan terasa di frontend.

Fondasi visual dan pola interaksi di sini sepenuhnya mengikuti token dari Chapter 1 dan pola perilaku dari Chapter 2.

6.1 Settings Hub: Satu Permukaan Konfigurasi

Sejalan dengan Aturan Emas #4 (Satu Settings Hub; platform tak terlihat user bisnis), seluruh konfigurasi sistem dipusatkan di satu Workspace bernama Settings Hub. Tidak ada tombol "Pengaturan" yang tersebar di tiap modul bisnis.

6.1.1 Arsitektur Halaman Settings Hub

Settings Hub menggunakan layout dua kolom:

  1. Kiri (Sub-rail Setempat): Navigasi kategori statis (Master Data, Policies, System, Users & Roles).
  2. Kanan (Kanvas): Konten konfigurasi yang dipilih, diformat sebagai List View atau Form View standar BMP.

6.1.2 Pembagian Zona Settings Hub

Zona Isi Target User
Master Data Tautan ke master intu (Akun, Item, Gudang, Pemasok, Pelanggan). Hanya link, bukan editor penuh agar tidak membebani halaman. Owner, Finance, Admin
Policies Konfigurasi skalari (default currency, toleransi stok, threshold approval, numbering series). Diambil dari tabel settings. Owner, Finance
System Status sync-agent, schema version, manajemen modul (toggle). Hanya read-only kecuali untuk IT. IT Support
Users & Roles Manajemen user, role, permission matrix, dan workspace assignment. Owner, IT Support

6.2 Module Management & Enablement

BMP mendukung togglable modules via tabel modules (Chapter 4.13). Pengaturan visibilitas ini dikelola melalui UI Module Enablement di bawah zona System.

6.2.1 UI Module Enablement

6.2.2 Default Visibility

Beberapa modul memiliki status default yang disembunyikan (hide) untuk menyederhanakan UI UMKM, namun bisa diaktifkan:

6.3 Workspace & Navigation Config

Workspace adalah representasi dari Ash.Domain di UI. Modul bisnis standar (Sales, Accounting, dll.) tidak bisa dihapus, namun urutan dan visibilitas sub-menu (flyout) dapat dikustomisasi per role.

6.3.1 Workspace Editor

Hanya role Owner/Sysadmin yang dapat mengakses editor ini. UI editor menggunakan pola drag-and-drop tree (menggunakan komponen nested list standar).

6.3.2 Generation of Rail & Flyout

Rail sidebar (Chapter 2.1.1) di-render dinamis berdasarkan:

  1. Modul yang aktif (tabel modules).
  2. Workspace config yang berlaku untuk user_roles saat ini.
  3. Filter domain company_id (Context Switcher).

6.4 User, Role & Permission Matrix

Sistem ini memisahkan identitas (users), fungsi (roles), dan kewenangan (permissions).

6.4.1 User Management UI

6.4.2 Role Management UI

Tabel roles bersifat tetap (8 departemen + fungsi spesifik). UI ini bukan untuk membuat role baru, melainkan untuk mengonfigurasi Role Default dan Permission Matrix.

6.4.3 Permission Matrix Editor

UI ini memetakan permissions.role_id × permissions.resource × permissions.action.

6.5 System Administration Console (IT Home)

Sesuai Chapter 2.7.2, akun IT/Sysadmin murni mendapat home berupa System Console, bukan Landing "My Attention" bisnis. Console ini berfokus pada kesehatan infrastruktur.

6.5.1 Dashboard IT Console

6.5.2 Manajemen Cloak & Security

6.6 Personalization & Account Model

Layer ketiga dari manajemen akun (Chapter 2.7) adalah Personal Customization. Tidak ada UI admin yang mengatur ini; sepenuhnya dikelola user di halaman Account Preferences.

6.6.1 Account Preferences UI

Diakses melalui Avatar dropdown (grup Preferences). Menggunakan layout Form View standar.

6.6.2 Dirty-Form & Context Switching

6.7 Global Context Switcher

Konteks operasional (Company, Fiscal Year) tidak boleh mencemari label navigasi (Aturan #11). Pemilih konteks ini diletakkan di akhir Rail Sidebar atau di dalam Page-head, tergantung kebutuhan layout.

6.7.1 UI Company Switcher

6.7.2 UI Fiscal Year / Period Switcher

End of Chapter 6