]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/eg2/src/app/staff/admin/server/floating-group/floating-group.component.ts
LP2061136 - Stamping 1405 DB upgrade script
[working/Evergreen.git] / Open-ILS / src / eg2 / src / app / staff / admin / server / floating-group / floating-group.component.ts
1 import {Pager} from '@eg/share/util/pager';
2 import {Component, Input, ViewChild, OnInit} from '@angular/core';
3 import {Location} from '@angular/common';
4 import {Router, ActivatedRoute} from '@angular/router';
5 import {FormatService} from '@eg/core/format.service';
6 import {IdlService, IdlObject} from '@eg/core/idl.service';
7 import {GridDataSource} from '@eg/share/grid/grid';
8 import {GridComponent} from '@eg/share/grid/grid.component';
9 import {ToastService} from '@eg/share/toast/toast.service';
10 import {PcrudService} from '@eg/core/pcrud.service';
11 import {OrgService} from '@eg/core/org.service';
12 import {PermService} from '@eg/core/perm.service';
13 import {AuthService} from '@eg/core/auth.service';
14 import {AdminPageComponent} from '../../../share/admin-page/admin-page.component';
15 import {ConfirmDialogComponent} from '@eg/share/dialog/confirm.component';
16
17 @Component({
18     templateUrl: './floating-group.component.html'
19 })
20
21 export class FloatingGroupComponent extends AdminPageComponent implements OnInit {
22
23     idlClass = 'cfg';
24
25     gridDataSource: GridDataSource = new GridDataSource();
26
27     @ViewChild('grid', {static: true}) grid: GridComponent;
28     @ViewChild('delConfirm', { static: true }) delConfirm: ConfirmDialogComponent;
29
30     constructor(
31         route: ActivatedRoute,
32         ngLocation: Location,
33         format: FormatService,
34         idl: IdlService,
35         org: OrgService,
36         auth: AuthService,
37         pcrud: PcrudService,
38         perm: PermService,
39         toast: ToastService,
40         private router: Router
41     ) {
42         super(route, ngLocation, format, idl, org, auth, pcrud, perm, toast);
43     }
44
45     ngOnInit() {
46         super.ngOnInit();
47         this.gridDataSource.getRows = (pager: Pager, sort: any[]) => {
48
49             const orderBy: any = {};
50             if (sort.length) {
51                 orderBy.cfg = sort[0].name + ' ' + sort[0].dir;
52             }
53
54             const searchOps = {
55                 offset: pager.offset,
56                 limit: pager.limit,
57                 order_by: orderBy
58             };
59
60             return this.pcrud.retrieveAll('cfg', searchOps);
61         };
62
63         this.grid.onRowActivate.subscribe(
64             (idlThing: IdlObject) => {
65                 const idToEdit = idlThing.id();
66                 this.navigateToEditPage(idToEdit);
67             }
68         );
69     }
70
71     editSelected = (floatingGroups: IdlObject[]) => {
72         const idToEdit = floatingGroups[0].id();
73         this.navigateToEditPage(idToEdit);
74     };
75
76     deleteSelected = (idlThings: IdlObject[]) => {
77         this.delConfirm.open().subscribe(confirmed => {
78             if (!confirmed) { return; }
79             super.doDelete(idlThings);
80         });
81     };
82
83     navigateToEditPage(id: any) {
84         this.router.navigate(['/staff/admin/server/config/floating_group/' + id]);
85     }
86
87     // this was left mostly blank to ensure a modal does not open for edits
88     showEditDialog(idlThing: IdlObject): Promise<any> {
89         return;
90     }
91
92 }