feat(election): relational agenda items, PDF download, email redesign, and nav fixes

- Replace flat agenda text field with relational agenda items (add/remove rows)
- Fix edit form pre-populating saved agenda using [value]+(input) binding
- Add PDF download button: opens print-ready window with full meeting details
- Redesign meeting invite email: table-based layout, compact header, amber agenda
  box with numbered badges, two-column footer
- Fix stale email agenda bug: refresh entity after agenda save to bypass EclipseLink
  L1 identity map cache
- Remove permission wrapper from Election sidenav item; add routerLink to toolbar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
Jaanu423
2026-07-06 16:54:04 +05:30
co-authored by Claude Sonnet 4.6
parent e952bc546f
commit 8a1b7d5d6c
5 changed files with 371 additions and 48 deletions
@@ -182,22 +182,20 @@
</ng-container>
<!-- Election Management Section -->
<ng-container *mifosxHasPermission="'SIDEBAR_ELECTION'">
<div class="nav-item-sep mt-1">
<mat-divider></mat-divider>
<span class="text-muted">Election</span>
</div>
<mat-list-item
[routerLink]="['/election']"
[matTooltipPosition]="tooltipPosition"
matTooltip="Election Management"
routerLinkActive="active-menu"
[routerLinkActiveOptions]="{ exact: false }"
>
<mat-icon matListIcon>how_to_vote</mat-icon>
<a matLine>Election Management</a>
</mat-list-item>
</ng-container>
<div class="nav-item-sep mt-1">
<mat-divider></mat-divider>
<span class="text-muted">Election</span>
</div>
<mat-list-item
[routerLink]="['/election']"
[matTooltipPosition]="tooltipPosition"
matTooltip="Election Management"
routerLinkActive="active-menu"
[routerLinkActiveOptions]="{ exact: false }"
>
<mat-icon matListIcon>how_to_vote</mat-icon>
<a matLine>Election Management</a>
</mat-list-item>
<!-- RBI Integration Section -->
<ng-container *mifosxHasPermission="'SIDEBAR_RBI_INTEGRATION'">
@@ -229,7 +229,7 @@
<fa-icon icon="users" class="ai-col-h-ic"></fa-icon>
<span>Governance</span>
</div>
<button mat-menu-item class="ai-card" tabindex="0">
<button mat-menu-item class="ai-card" routerLink="/election" tabindex="0">
<span class="ai-card-ic"><fa-icon icon="users"></fa-icon></span>
<span class="ai-card-body">
<span class="ai-card-t">Election Management</span>