Ang: continue work on fund details dialog
authorGalen Charlton <gmc@equinoxinitiative.org>
Tue, 23 Mar 2021 22:18:22 +0000 (18:18 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Thu, 25 Mar 2021 17:56:26 +0000 (13:56 -0400)
- Hyperlink on fund name now opens dialog
- dialog now refreshes itself correctly
- don't render dialog before fund data is available

Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Open-ILS/src/eg2/src/app/staff/admin/acq/funds/fund-details-dialog.component.html
Open-ILS/src/eg2/src/app/staff/admin/acq/funds/funds-manager.component.html
Open-ILS/src/eg2/src/app/staff/admin/acq/funds/funds-manager.component.ts

index 5cbcd85..ca24322 100644 (file)
@@ -1,5 +1,5 @@
 <ng-template #dialogContent>
-  <div class="modal-header bg-info">
+  <div class="modal-header bg-info" *ngIf="fund">
     <h3 class="modal-title" i18n>Fund Details - {{fund.name()}} ({{fund.code()}} {{fund.year()}})</h3>
     <button type="button" class="close"
       i18n-aria-label aria-label="Close" (click)="close()">
index 26f478a..08f47af 100644 (file)
@@ -46,7 +46,8 @@
 
 <eg-grid #grid idlClass="{{idlClass}}" [dataSource]="dataSource" hideFields="{{hideGridFields}}"
     [sortable]="true" persistKey="{{persistKey}}" autoGeneratedColumnOrder="{{fieldOrder}}"
-    [filterable]="true" [stickyHeader]="true">
+    [filterable]="true" [stickyHeader]="true"
+    [cellTextGenerator]="cellTextGenerator">
   <eg-grid-toolbar-button [disabled]="!canCreate" 
     label="New {{idlClassDef.label}}" i18n-label (onClick)="createNew()">
   </eg-grid-toolbar-button>
   <eg-grid-toolbar-action label="Delete Selected" i18n-label (onClick)="deleteSelected($event)">
   </eg-grid-toolbar-action>
 
-  <eg-grid-column path="name"></eg-grid-column>
+  <ng-template #nameTmpl let-row="row">
+    <a href="" (click)="openFundDetailsDialog([row]); false">
+      {{row.name()}}
+    </a>
+  </ng-template>
+  <eg-grid-column path="name" [cellTemplate]="nameTmpl"></eg-grid-column>
   <eg-grid-column path="code"></eg-grid-column>
   <eg-grid-column path="year"></eg-grid-column>
   <eg-grid-column path="org"></eg-grid-column>
index b998184..fddaca0 100644 (file)
@@ -1,7 +1,7 @@
 import {Component, Input, ViewChild, OnInit} from '@angular/core';
 import {Location} from '@angular/common';
 import {FormatService} from '@eg/core/format.service';
-import {GridDataSource} from '@eg/share/grid/grid';
+import {GridDataSource, GridCellTextGenerator} from '@eg/share/grid/grid';
 import {AdminPageComponent} from '@eg/staff/share/admin-page/admin-page.component';
 import {Pager} from '@eg/share/util/pager';
 import {ActivatedRoute} from '@angular/router';
@@ -24,7 +24,9 @@ export class FundsManagerComponent extends AdminPageComponent implements OnInit
     idlClass = 'acqf';
     classLabel: string;
 
-    @ViewChild('fundDetailsDialog', { static: true }) fundDetailsDialog: FundDetailsDialogComponent;
+    @ViewChild('fundDetailsDialog', { static: false }) fundDetailsDialog: FundDetailsDialogComponent;
+
+    cellTextGenerator: GridCellTextGenerator;
 
     constructor(
         route: ActivatedRoute,
@@ -43,7 +45,9 @@ export class FundsManagerComponent extends AdminPageComponent implements OnInit
     }
 
     ngOnInit() {
-
+        this.cellTextGenerator = {
+            name: row => row.name()
+        };
         this.fieldOrder = 'name,code,year,org,active,currency_type,balance_stop_percentage,balance_warning_percentage,propagate,rollover';
         this.defaultNewRecord = this.idl.create('acqf');
         this.defaultNewRecord.active(true);