</eg-org-family-select>
</ng-container>
</div>
+ <ng-container>
+ <eg-combobox domId="acq-fiscal-year" name="acq-fiscal-year"
+ i18n-labelText labelText="Year"
+ [asyncSupportsEmptyTermClick]="true"
+ [selectedId]="selectedYear"
+ (onChange)="yearChange($event.id)"
+ [entries]="fiscalYears"></eg-combobox>
+ </ng-container>
</div>
<hr/>
</ng-container>
</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" initialFilterOperator="=" [initialFilterValue]="getDefaultYear()"></eg-grid-column>
+ <eg-grid-column path="year"></eg-grid-column>
<eg-grid-column path="org"></eg-grid-column>
<eg-grid-column path="currency_type"></eg-grid-column>
<eg-grid-column path="active"></eg-grid-column>
import {PermService} from '@eg/core/perm.service';
import {AuthService} from '@eg/core/auth.service';
import {NetService} from '@eg/core/net.service';
+import {StoreService} from '@eg/core/store.service';
import {StringComponent} from '@eg/share/string/string.component';
import {FundDetailsDialogComponent} from './fund-details-dialog.component';
import {FundRolloverDialogComponent} from './fund-rollover-dialog.component';
+import {ComboboxEntry} from '@eg/share/combobox/combobox.component';
@Component({
selector: 'eg-funds-manager',
cellTextGenerator: GridCellTextGenerator;
canRollover = false;
+ selectedYear: number;
+ fiscalYears: ComboboxEntry[];
constructor(
route: ActivatedRoute,
private perm2: PermService, // need copy because perm is private to base
// component
toast: ToastService,
- private net: NetService
+ private net: NetService,
+ private localStore: StoreService
) {
super(route, ngLocation, format, idl, org, auth, pcrud, perm, toast);
this.dataSource = new GridDataSource();
}
ngOnInit() {
+
+ this.selectedYear = this.localStore.getLocalItem('eg.acq.fiscal_year');
+
+ this.fiscalYears = null;
+ let maxYear = 0;
+ this.net.request(
+ 'open-ils.acq',
+ 'open-ils.acq.fund.org.years.retrieve',
+ this.auth.token(),
+ {},
+ { limit_perm: 'VIEW_FUND' }
+ ).subscribe(
+ years => {
+ this.fiscalYears = years.map(y => {
+ if (this.selectedYear === null) {
+ if (maxYear < y) { this.selectedYear = y; }
+ }
+ return { id: y, label: y };
+ });
+ }
+ );
+
this.cellTextGenerator = {
name: row => row.name()
};
search.push(orgFilter);
}
+ if (this.selectedYear) {
+ search.push({year: this.selectedYear});
+ }
+
Object.keys(this.dataSource.filters).forEach(key => {
Object.keys(this.dataSource.filters[key]).forEach(key2 => {
search.push(this.dataSource.filters[key][key2]);
() => this.grid.reload()
);
}
+
+ yearChange(year: number) {
+ this.selectedYear = year;
+ this.localStore.setLocalItem('eg.acq.fiscal_year', this.selectedYear);
+ this.grid.reload();
+ }
}