From d0b2984fb395ac1e88a1bb12acb89cb67360c4da Mon Sep 17 00:00:00 2001 From: A R R R Associates Date: Fri, 10 Jul 2026 20:43:35 +0530 Subject: [PATCH] Activate UIUX V2 navigation for Firm Admin pilot --- .../firm_admin_dashboard/dashboard.html | 27 +++++- .../firm_admin_dashboard/user_import.html | 1 + .../user_import_done.html | 1 + .../firm_admin_dashboard/user_onboarding.html | 1 + .../user_onboarding_done.html | 1 + .../components/firm_admin_navigation_v2.html | 93 +++++++++++++++++++ 6 files changed, 121 insertions(+), 3 deletions(-) create mode 100644 app/ui/templates/components/firm_admin_navigation_v2.html diff --git a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/dashboard.html b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/dashboard.html index fdbd722..1d2a163 100644 --- a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/dashboard.html +++ b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/dashboard.html @@ -1,5 +1,6 @@ -{% extends "ui/templates/base/layout.html" %} +{% extends "ui/templates/base/layout.html" %} {% block content %} +{% include "ui/templates/components/firm_admin_navigation_v2.html" %}
@@ -27,7 +28,7 @@ ('wizards','Wizards'), ('audit-logs','Audit Logs') ] %} -
+ +
+ + + + + Dashboard Menu + + Firm administration sections + +
+ {% for code, label in tabs %} + + {% endfor %} +
+
+
{% include "modules/firm_admin_dashboard/templates/firm_admin_dashboard/partials/" ~ active_tab ~ ".html" ignore missing %}
@@ -68,7 +85,11 @@ panel.innerHTML = '
Unable to load tab. Please refresh the page.
'; } } - buttons.forEach(btn => btn.addEventListener('click', () => loadTab(btn.dataset.tab))); + buttons.forEach(btn => btn.addEventListener('click', () => { + loadTab(btn.dataset.tab); + const mobileMenu = document.getElementById('firm-admin-mobile-menu'); + if (mobileMenu) mobileMenu.open = false; + })); })(); {% endblock %} diff --git a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import.html b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import.html index 129b3ff..3ff9db9 100644 --- a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import.html +++ b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import.html @@ -1,5 +1,6 @@ {% extends "ui/templates/base/layout.html" %} {% block content %} +{% include "ui/templates/components/firm_admin_navigation_v2.html" %}
diff --git a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import_done.html b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import_done.html index 9837c9e..f680f5f 100644 --- a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import_done.html +++ b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_import_done.html @@ -1,5 +1,6 @@ {% extends "ui/templates/base/layout.html" %} {% block content %} +{% include "ui/templates/components/firm_admin_navigation_v2.html" %}
diff --git a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding.html b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding.html index 46b485d..0b120a5 100644 --- a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding.html +++ b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding.html @@ -1,5 +1,6 @@ {% extends "ui/templates/base/layout.html" %} {% block content %} +{% include "ui/templates/components/firm_admin_navigation_v2.html" %} {% set data = form_data if form_data is defined and form_data else {} %}
diff --git a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding_done.html b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding_done.html index fb9a0b2..d0950f7 100644 --- a/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding_done.html +++ b/app/modules/firm_admin_dashboard/templates/firm_admin_dashboard/user_onboarding_done.html @@ -1,5 +1,6 @@ {% extends "ui/templates/base/layout.html" %} {% block content %} +{% include "ui/templates/components/firm_admin_navigation_v2.html" %} {% set result = onboarding_result %}
diff --git a/app/ui/templates/components/firm_admin_navigation_v2.html b/app/ui/templates/components/firm_admin_navigation_v2.html new file mode 100644 index 0000000..a7dd49b --- /dev/null +++ b/app/ui/templates/components/firm_admin_navigation_v2.html @@ -0,0 +1,93 @@ +{# + UI/UX V2 Phase 1E — Firm Admin workspace navigation. + Presentation only: existing URLs and route-level permissions remain authoritative. +#} +{% set _firm_admin_path = request.url.path %} +{% set navigation_aria_label_v2 = 'Firm administration navigation' %} +{% set navigation_items_v2 = [ + { + 'label': 'Dashboard', + 'url': '/firm-admin/dashboard', + 'visible': true, + 'active': _firm_admin_path.startswith('/firm-admin/dashboard') + }, + { + 'label': 'Clients', + 'visible': true, + 'active': _firm_admin_path.startswith('/clients'), + 'children': [ + {'label': 'Client List', 'url': '/clients', 'active': _firm_admin_path == '/clients'}, + {'label': 'Add Client', 'url': '/clients/new', 'active': _firm_admin_path.startswith('/clients/new')}, + {'label': 'Import Clients', 'url': '/clients/import', 'active': _firm_admin_path.startswith('/clients/import')}, + {'label': 'Export Clients', 'url': '/clients/export', 'active': _firm_admin_path.startswith('/clients/export')} + ] + }, + { + 'label': 'Services', + 'visible': true, + 'active': _firm_admin_path.startswith('/services'), + 'children': [ + {'label': 'Firm Services', 'url': '/services', 'active': _firm_admin_path == '/services'}, + {'label': 'Service Catalogue', 'url': '/services/catalogue', 'active': _firm_admin_path.startswith('/services/catalogue')}, + {'label': 'Task Templates', 'url': '/services/templates', 'active': _firm_admin_path.startswith('/services/templates')}, + {'label': 'Bulk Imports', 'url': '/services/bulk-imports', 'active': _firm_admin_path.startswith('/services/bulk-imports')} + ] + }, + { + 'label': 'Engagements', + 'url': '/services/engagements', + 'visible': true, + 'active': _firm_admin_path.startswith('/services/engagements') + }, + { + 'label': 'Team', + 'visible': true, + 'active': _firm_admin_path.startswith('/employees') or _firm_admin_path.startswith('/consultants') or _firm_admin_path.startswith('/firm-admin/users'), + 'children': [ + {'label': 'Employees', 'url': '/employees', 'active': _firm_admin_path == '/employees'}, + {'label': 'Add Employee', 'url': '/employees/new', 'active': _firm_admin_path.startswith('/employees/new')}, + {'label': 'Work Allocation', 'url': '/employees/work', 'active': _firm_admin_path.startswith('/employees/work')}, + {'label': 'Attendance', 'url': '/employees/attendance', 'active': _firm_admin_path.startswith('/employees/attendance')}, + {'label': 'Leave', 'url': '/employees/leave', 'active': _firm_admin_path.startswith('/employees/leave')}, + {'label': 'Consultants', 'url': '/consultants', 'active': _firm_admin_path.startswith('/consultants')}, + {'label': 'Add Partner / Manager / Staff', 'url': '/firm-admin/dashboard?tab=users', 'active': _firm_admin_path.startswith('/firm-admin/users')} + ] + }, + { + 'label': 'Documents', + 'url': '/documents', + 'visible': true, + 'active': _firm_admin_path.startswith('/documents') + }, + { + 'label': 'Billing', + 'url': '/billing', + 'visible': true, + 'active': _firm_admin_path.startswith('/billing') + }, + { + 'label': 'Firm Setup', + 'visible': true, + 'active': _firm_admin_path.startswith('/system-settings') or _firm_admin_path.startswith('/firm-admin/users'), + 'children': [ + {'label': 'Settings Dashboard', 'url': '/system-settings', 'active': _firm_admin_path == '/system-settings'}, + {'label': 'Branches', 'url': '/system-settings/branches', 'active': _firm_admin_path.startswith('/system-settings/branches')}, + {'label': 'Users', 'url': '/system-settings/users', 'active': _firm_admin_path.startswith('/system-settings/users')}, + {'label': 'Financial Years', 'url': '/system-settings/financial-years', 'active': _firm_admin_path.startswith('/system-settings/financial-years')}, + {'label': 'Branding', 'url': '/system-settings/branding', 'active': _firm_admin_path.startswith('/system-settings/branding')}, + {'label': 'Audit Logs', 'url': '/system-settings/audit-logs', 'active': _firm_admin_path.startswith('/system-settings/audit-logs')} + ] + }, + { + 'label': 'Alerts', + 'url': '/alerts', + 'visible': true, + 'active': _firm_admin_path.startswith('/alerts'), + 'badge': unread_alert_count if unread_alert_count is defined and unread_alert_count > 0 else none + } +] %} + +
+ {% include "ui/templates/components/navigation_v2.html" %} + {% include "ui/templates/components/mobile_navigation_v2.html" %} +