import { createButton } from "@ui/ui_template_elements"; import type { AuditLog, DashboardUser } from "./B01_Dashboard_Api_Fetch"; import { canChangeRole } from "./B01_Dashboard_UI_Helper"; import { openChangeRoleModal, openEditUserModal } from "./B01_Dashboard_UI_Modals"; import { table, text } from "@ui/ui_template_general_blocks"; import { DASHBOARD_VISIBLE_ROWS, formatDate, L } from "./B01_Dashboard_UI_Common"; export function userTable(users: DashboardUser[], currentUser: DashboardUser): HTMLElement { return table( [ L("B01_Dashboard_Table_Email"), L("B01_Dashboard_Table_Name"), L("B01_Dashboard_Table_Position"), L("B01_Dashboard_Table_Department"), L("B01_Account_Field_Phone"), L("B01_Dashboard_Table_Role"), L("B01_Dashboard_Table_Status"), L("B01_Dashboard_Table_Action"), ], users.map((user) => { const actionsEl = document.createElement("div"); actionsEl.className = "b01-dashboard__actions"; actionsEl.append( createButton({ label: L("Common_Btn_Edit"), variant: "ghost", onClick: () => openEditUserModal(currentUser, user), }), ); if (canChangeRole(currentUser, user)) { actionsEl.append( createButton({ label: L("B01_Dashboard_ChangeRole"), variant: "ghost", onClick: () => openChangeRoleModal(user), }), ); } return [ text(user.email), text(user.name), text(user.position), text(user.department), text(user.phone), text(user.role), text(user.status), actionsEl, ]; }), DASHBOARD_VISIBLE_ROWS, ); } export function auditLogTable(logs: AuditLog[]): HTMLElement { return table( [ L("B01_Dashboard_Table_Email"), L("B01_Dashboard_Table_Action"), L("B01_Dashboard_Table_Updated"), ], logs.map((log) => [text(log.email), text(log.action), text(formatDate(log.timestamp))]), DASHBOARD_VISIBLE_ROWS, ); }