<ul ngbNav #patronNav="ngbNav" class="nav-tabs"
[activeId]="patronTab" (navChange)="beforeTabChange($event)">
- <li ngbNavItem="checkout">
+ <li ngbDropdown ngbNavItem="toggle">
+ <a href class="nav-link" (click)="toggleSummaryPane(); false"
+ title="Toggle Summary Pane" i18n-title>
+ <ng-container *ngIf="showSummaryPane()">
+ <span class="material-icons">navigate_before</span>
+ </ng-container>
+ <ng-container *ngIf="!showSummaryPane()">
+ <span class="material-icons">navigate_next</span>
+ </ng-container>
+ </a>
+ </li>
+
+ <li ngbNavItem="checkout" [disabled]="!context.patron">
<a ngbNavLink i18n>Checkout</a>
<ng-template ngbNavContent>
<div class="">
</ng-template>
</li>
- <li ngbNavItem="items_out">
+ <li ngbNavItem="items_out" [disabled]="!context.patron">
<a ngbNavLink i18n>Items Out</a>
<ng-template ngbNavContent>
<div class="">
</ng-template>
</li>
- <li ngbNavItem="holds">
+ <li ngbNavItem="holds" [disabled]="!context.patron">
<a ngbNavLink i18n>Holds</a>
<ng-template ngbNavContent>
<div class="">
</ng-template>
</li>
- <li ngbNavItem="bills">
+ <li ngbNavItem="bills" [disabled]="!context.patron">
<a ngbNavLink i18n>Bills</a>
<ng-template ngbNavContent>
<div class="">
</ng-template>
</li>
- <li ngbNavItem="messages">
+ <li ngbNavItem="messages" [disabled]="!context.patron">
<a ngbNavLink i18n>Messages</a>
<ng-template ngbNavContent>
<div class="">
</ng-template>
</li>
- <li ngbNavItem="edit">
+ <li ngbNavItem="edit" [disabled]="!context.patron">
<a ngbNavLink i18n>Edit</a>
<ng-template ngbNavContent>
<eg-patron-edit
</ng-template>
</li>
- <li ngbDropdown ngbNavItem="other">
+ <li ngbDropdown ngbNavItem="other" [disabled]="!context.patron">
<a href (click)="false" class="nav-link" ngbDropdownToggle>Other</a>
<div ngbDropdownMenu>
<a routerLink="/staff/circ/patron/{{patronId}}/alerts"
<a routerLink="/staff/booking/return/by_patron/{{patronId}}"
target="_top"
ngbDropdownItem i18n></a>
- <a href='javascript:;' (click)="purgeAccount()"
+ <a href (click)="purgeAccount(); false"
[disabled]="disablePurge()"
ngbDropdownItem i18n>Completely Purge Account</a>
</div>
</div><!-- end of sticky top -->
- <div class="pt-3">
+ <div *ngIf="!loading" class="pt-3">
<div [ngbNavOutlet]="patronNav"></div>
</div>
</div>
import {NgbNav, NgbNavChangeEvent} from '@ng-bootstrap/ng-bootstrap';
import {NetService} from '@eg/core/net.service';
import {AuthService} from '@eg/core/auth.service';
+import {ServerStoreService} from '@eg/core/server-store.service';
import {PatronService} from '@eg/staff/share/patron/patron.service';
import {PatronManagerService} from './patron.service';
import {PatronSearchComponent} from '@eg/staff/share/patron/search.component';
patronTab = 'search';
altTab: string;
showSummary = true;
+ loading = true;
constructor(
private router: Router,
private route: ActivatedRoute,
private net: NetService,
private auth: AuthService,
+ private store: ServerStoreService,
public patronService: PatronService,
public context: PatronManagerService
) {}
ngOnInit() {
this.watchForTabChange();
+ this.load();
+ }
+
+ load() {
+ this.loading = true;
+ this.fetchSettings()
+ .then(_ => this.loading = false);
+ }
+
+ fetchSettings(): Promise<any> {
+
+ return this.store.getItemBatch([
+ 'eg.circ.patron.summary.collapse'
+ ]).then(prefs => {
+ this.showSummary = !prefs['eg.circ.patron.summary.collapse'];
+ });
}
watchForTabChange() {
return this.showSummary || this.patronTab === 'search';
}
+ toggleSummaryPane() {
+ this.store.setItem( // collapse is the opposite of show
+ 'eg.circ.patron.summary.collapse', this.showSummary);
+ this.showSummary = !this.showSummary;
+ }
+
// Patron row single-clicked in the grid. Load the patron without
// leaving the search tab.
patronSelectionChange(ids: number[]) {
purgeAccount() {
// show scary warning, etc.
+
}
}