funds: implement saving default tab on fund details dialog
authorGalen Charlton <gmc@equinoxinitiative.org>
Sun, 28 Mar 2021 19:40:52 +0000 (15:40 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Sun, 28 Mar 2021 19:40:52 +0000 (15:40 -0400)
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/fund-details-dialog.component.ts

index f166e02..566a175 100644 (file)
     </button>
   </div>
   <div class="modal-body" *ngIf="fund">
-    <ul ngbNav #fundDetailsNav="ngbNav" class="nav-tabs">
-      <li ngbNavItem>
+    <div class="row mt-3">
+      <div class="col-lg-12 text-right pb-1">
+        <button class="btn btn-secondary btn-sm" [disabled]="activeTab == defaultTabType"
+          (click)="setDefaultTab()" i18n>Set Default View</button>
+      </div>
+    </div>
+    <ul ngbNav #fundDetailsNav="ngbNav" [(activeId)]="activeTab" class="nav-tabs">
+      <li [ngbNavItem]="'summary'">
         <a ngbNavLink i18n>Summary</a>
         <ng-template ngbNavContent>
           <div class="mt-2">
@@ -55,7 +61,7 @@
           </div>
         </ng-template>
       </li>
-      <li ngbNavItem>
+      <li [ngbNavItem]="'allocations'">
         <a ngbNavLink i18n>Allocations</a>
         <ng-template ngbNavContent>
           <div class="mt-2">
@@ -74,7 +80,7 @@
           </div>
         </ng-template>
       </li>
-      <li ngbNavItem>
+      <li [ngbNavItem]="'transfers'">
         <a ngbNavLink i18n>Transfers</a>
         <ng-template ngbNavContent>
           <div class="mt-2">
            </div>
         </ng-template>
       </li>
-      <li ngbNavItem>
+      <li [ngbNavItem]="'debits'">
         <a ngbNavLink i18n>Debits</a>
         <ng-template ngbNavContent>
           <div class="mt-2">
            </div>
         </ng-template>
       </li>
-      <li ngbNavItem>
+      <li [ngbNavItem]="'tags'">
         <a ngbNavLink i18n>Tags</a>
         <ng-template ngbNavContent>
           <div class="mt-2">
index c67261e..7eaf254 100644 (file)
@@ -6,6 +6,7 @@ import {EventService} from '@eg/core/event.service';
 import {NetService} from '@eg/core/net.service';
 import {AuthService} from '@eg/core/auth.service';
 import {PcrudService} from '@eg/core/pcrud.service';
+import {StoreService} from '@eg/core/store.service';
 import {FmRecordEditorComponent} from '@eg/share/fm-editor/fm-editor.component';
 import {GridDataSource} from '@eg/share/grid/grid';
 import {Pager} from '@eg/share/util/pager';
@@ -32,6 +33,9 @@ export class FundDetailsDialogComponent
     @ViewChild('editDialog', { static: true }) editDialog: FmRecordEditorComponent;
     @ViewChild('successString', { static: true }) successString: StringComponent;
     @ViewChild('updateFailedString', { static: false }) updateFailedString: StringComponent;
+
+    activeTab = 'summary';
+    defaultTabType = 'summary';
  
     constructor(
         private idl: IdlService,
@@ -39,6 +43,7 @@ export class FundDetailsDialogComponent
         private net: NetService,
         private auth: AuthService,
         private pcrud: PcrudService,
+        private store: StoreService,
         private format: FormatService,
         private toast: ToastService,
         private modal: NgbModal
@@ -47,6 +52,11 @@ export class FundDetailsDialogComponent
     }
     
     ngOnInit() {
+
+        this.defaultTabType =
+            this.store.getLocalItem('eg.acq.fund_details.default_tab') || 'details';
+        this.activeTab = this.defaultTabType;
+
         this.fund = null;
         this.onOpen$.subscribe(() => this._initRecord());
         this.idlDef = this.idl.classes['acqf']
@@ -145,4 +155,9 @@ export class FundDetailsDialogComponent
             }
         );
     }
+
+    setDefaultTab() {
+        this.defaultTabType = this.activeTab;
+        this.store.setLocalItem('eg.acq.fund_details.default_tab', this.activeTab);
+    }
 }