Skip to content

feat(#329): restructure sidebar navigation and update configurations - #736

Open
kishanchaubey23 wants to merge 3 commits into
apache:mainfrom
kishanchaubey23:feature/329-restructure-sidebar-navigation
Open

kishanchaubey23 wants to merge 3 commits into
apache:mainfrom
kishanchaubey23:feature/329-restructure-sidebar-navigation

Conversation

@kishanchaubey23

Copy link
Copy Markdown

What and why

This PR restructures the sidebar navigation architecture and its corresponding configuration service. This change groups navigation components logically to improve layout hierarchy, overall UI scannability, and menu structure consistency.

Closes #329

Verification

I validated these structural changes locally via the project's native unit testing framework:

  • Exercised components using local Vitest mocks (navigation-config.service.test.ts and sidebar.component.test.ts).
  • Confirmed that 100% of the related sidebar unit test suites pass successfully.

Screenshots

Not applicable (Structural layout configuration and underlying navigation service refactor).

Checklist

  • I did not hand-edit generated files under src/app/api/.
  • New component or service code uses the adapter boundary in src/app/core/adapters/ instead of direct browser globals or imperative third-party APIs.
  • User-facing strings use translation keys.
  • I added or updated tests appropriate to this change, or explained why tests were not needed.
  • UI workflow changes include suitable e2e coverage, including real-backend testing where relevant.
  • Commits are signed — see Commit Signing in CONTRIBUTING.md.
  • I followed the [AI-assisted contributions guidance]
  • If this adds a feature or changes a workflow, I raised it on
    dev@fineract.apache.org first —
    or it is a bug fix, refactor or test change, where that does not apply.

@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

E2E — mocked backend

🎭 E2E Tests

⚠️ The report contains no tests. A suite that runs nothing reports the same "0 failed" as a suite that passes, so this is called out rather than rendered as green.

📼 Download the HTML report, videos and traces — see the playwright-report-mocked artifact.

Generated by run 38055836443 from 468767e. The run executed a fork branch, so treat its contents as unverified.

@github-actions

github-actions Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

E2E — real Fineract

🎭 E2E Tests

⚠️ The report contains no tests. A suite that runs nothing reports the same "0 failed" as a suite that passes, so this is called out rather than rendered as green.

📼 Download the HTML report, videos and traces — see the playwright-report-backend artifact.

Generated by run 38055836443 from 468767e. The run executed a fork branch, so treat its contents as unverified.

@github-actions

Copy link
Copy Markdown
Contributor

🔄 What this change talks to

From the 2 application TypeScript file(s) changed in this pull request.

sequenceDiagram
  autonumber
  participant NavigationConfigService as NavigationConfigService (Service)
  participant AuthService as AuthService (Injected)
  participant InstitutionConfigService as InstitutionConfigService (Injected)
  participant ConfigService as ConfigService (Injected)
  participant I18N as I18N (Injected)
  participant SidebarComponent as SidebarComponent (Component)
  participant SidebarService as SidebarService (Injected)
  participant ViewportService as ViewportService (Injected)
  participant Router as Router (Injected)
  NavigationConfigService->>AuthService: currentUser()
  NavigationConfigService->>InstitutionConfigService: institutionType()
  NavigationConfigService->>ConfigService: rbacEnabled()
  NavigationConfigService->>ConfigService: developerToolsEnabled()
  NavigationConfigService->>AuthService: hasPermission()
  NavigationConfigService->>InstitutionConfigService: isFeatureEnabled()
  NavigationConfigService->>I18N: translate()
  SidebarComponent->>SidebarService: isDrawerOpen()
  SidebarComponent->>SidebarService: closeDrawer()
  SidebarComponent->>ViewportService: isMobile()
  SidebarComponent->>SidebarService: isCollapsed()
  SidebarComponent->>Router: isActive()
  SidebarComponent->>NavigationConfigService: filteredNavItems()
  SidebarComponent->>AuthService: currentUser()
Loading

Static analysis of inject() fields and the calls made on them — not an execution trace. It cannot see dynamic dispatch, and generated API clients under src/app/api are collapsed into the single Fineract participant.

Generated by run 38055836454 from 468767e. The run executed a fork branch, so treat its contents as unverified.

@Aman-Mittal

Copy link
Copy Markdown
Member

@kishanchaubey23 Are you working on this?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[UX] Restructure Sidebar Navigation to Improve Visibility of Core Admin Modules

2 participants