Dashboard & General Navigation
Relevant source files
The following files were used as context for generating this wiki page:
The Dashboard and General Navigation system provides the primary entry point and interface for the IT Management System. It is designed to offer a multi-company scoped overview of IT assets, tickets, and employee data while facilitating seamless movement between various administrative and operational modules. The navigation architecture relies on a persistent sidebar and header, ensuring a consistent user experience (UX) inspired by the GitHub Copilot light/dark theme.
Sources: README.md:5, wiki/Home.md:1-5, wiki/Modules.md:46-52
Dashboard Overview
The Dashboard serves as a tenant-specific landing page. It provides quick statistics and shortcuts relevant to the authenticated company context. Key features visible on the dashboard include overview stats for equipment, support tickets, and employee counts.
Sources: README.md:15-18, wiki/Home.md:31-34
Dashboard Components
| Component | Description |
|---|---|
| Quick Stats | Displays counts for equipment, tickets, and employees. |
| Settings Shortcut | Provides immediate access to company-scoped configuration. |
| Theme Toggle | CSRF-protected light/dark mode switch. |
| Tenant Context | Displays the currently active company name. |
Sources: README.md:11-20, wiki/Home.md:31-34
Sidebar and Navigation Structure
General navigation is primarily driven by a persistent sidebar. The system supports a "SideMenu" configuration where administrators can toggle item visibility and reorder main sections and submenus using a drag-and-drop or button-based interface within the Settings module.
Sources: modules/settings/index.php:404-410, wiki/Modules.md:46-52
Navigation Architecture
The following diagram illustrates how a user interacts with the navigation components to access different parts of the system.
The diagram shows the central role of the Navigation components in routing users to Dashboards, specialized Modules, or System Settings.
Sources: wiki/Home.md:73-77, wiki/Modules.md:13-33
Sidebar Customization Logic
Navigation items are stored and managed via user_sidebar_preferences. The system allows for:
- Visibility Toggles: Showing or hiding specific modules (e.g., hiding internal modules like
floor_plan_folders). - Ordering: Reordering main sections or moving submenu items between sections.
- Role-Based Access: Certain items like "Audit Logs" or "Settings" are restricted based on user roles (Admin, IT Manager).
Sources: modules/settings/index.php:414-440, wiki/Modules.md:46-52
UI Configuration & Layout
The system utilizes a central configuration hub within the Settings module to control UI behavior across all navigation-compliant pages. This includes the positioning of action buttons and pagination settings.
Sources: modules/settings/index.php:40-70, wiki/Modules.md:46-52
Configurable UI Elements
| Parameter | Available Options |
|---|---|
| Table Actions Position | Left & Right, Left, Right |
| + New Button Position | Left & Right, Left, Right |
| Export Buttons Position | Top/Bottom Right, Top/Bottom Left, etc. |
| Records Per Page | 25, 50, 100, ALL, or Custom |
Sources: modules/settings/index.php:40-70, modules/settings/index.php:121-126
Theme and Visual Identity
The application supports a GitHub-inspired light/dark theme. Administrators can also configure the App Name and upload a custom Favicon (.ico format) to personalize the tab navigation for their specific company instance.
Sources: README.md:5, modules/settings/index.php:119-120, modules/settings/index.php:442-450
Multi-Tenant Navigation Security
Navigation and data access are strictly scoped by company_id. The system ensures that a user's session determines the tenant context, preventing data leaks between companies.
This diagram demonstrates the sequence of checks performed to ensure that navigation requests result in company-isolated data retrieval.
Sources: scripts/api.php:164-170, modules/settings/index.php:143-150
Administrative Script Navigation
For developers and administrators, a dedicated scripts index (scripts/scripts.php) provides a separate navigation layer for maintenance, audits, and security tools. This interface requires authorized access (Login or ITM_MAINTENANCE_TOKEN).
Sources: scripts/scripts.php:113-132
Script Navigation Categories
- Documentation: Access to the JSON API reference.
- Browser Tools: Database design visualizers and troubleshooting logs.
- Security: Static scanners for CSRF and SQL injection.
- Database Maintenance: Health checks and schema verification.
Sources: scripts/scripts.php:142-250
Summary
Dashboard and General Navigation in the IT Management System are built around a customizable, tenant-aware framework. By combining a persistent sidebar with flexible UI configuration options in the Settings module, the system allows for tailored navigation experiences while maintaining strict multi-company data isolation. The inclusion of specialized administrative navigation for scripts further supports the maintenance and security of the platform.
Sources: README.md:144-150, wiki/Modules.md:46-52, modules/settings/index.php:1-10