From a7ba1b0e8db12ecd697a8dd1cc3e161c76588652 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Wed, 30 May 2018 18:17:38 -0400 Subject: [PATCH] LP#1775466 More admin ui consolidation Signed-off-by: Bill Erickson --- .../app/share/org-select/org-select.component.ts | 2 +- .../app/staff/admin/server/actor/actor.module.ts | 21 -------- .../app/staff/admin/server/actor/routing.module.ts | 15 ------ .../server/actor/stat_cat_sip_fields.component.ts | 14 ----- .../server/admin-server-splash.component.html | 4 +- .../app/staff/admin/server/admin-server.module.ts | 6 +-- .../server/config/billing_type.component.html | 19 ------- .../admin/server/config/billing_type.component.ts | 53 ------------------- .../server/config/hard_due_date.component.html | 20 -------- .../admin/server/config/hard_due_date.component.ts | 53 ------------------- .../src/app/staff/admin/server/routing.module.ts | 8 --- .../share/admin-page/admin-page.component.html | 15 ++++++ .../staff/share/admin-page/admin-page.component.ts | 59 +++++++++++++++++++++- 13 files changed, 76 insertions(+), 213 deletions(-) delete mode 100644 Open-ILS/src/eg2/src/app/staff/admin/server/actor/actor.module.ts delete mode 100644 Open-ILS/src/eg2/src/app/staff/admin/server/actor/routing.module.ts delete mode 100644 Open-ILS/src/eg2/src/app/staff/admin/server/actor/stat_cat_sip_fields.component.ts delete mode 100644 Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.html delete mode 100644 Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts delete mode 100644 Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.html delete mode 100644 Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.ts diff --git a/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts b/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts index 81440238b0..e996a51b0e 100644 --- a/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts +++ b/Open-ILS/src/eg2/src/app/share/org-select/org-select.component.ts @@ -130,7 +130,7 @@ export class EgOrgSelectComponent implements OnInit { // TODO: this does not fire when the value is cleared :( -- implement // change detection on this.selected to look specifically for NULL. orgChanged(selEvent: NgbTypeaheadSelectItemEvent) { - console.log('change occurred ' + selEvent.item); + // console.debug('org unit change occurred ' + selEvent.item); this.onChange.emit(this.org.get(selEvent.item.id)); } diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/actor/actor.module.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/actor/actor.module.ts deleted file mode 100644 index eef250617d..0000000000 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/actor/actor.module.ts +++ /dev/null @@ -1,21 +0,0 @@ -import {NgModule} from '@angular/core'; -import {EgAdminCommonModule} from '@eg/staff/admin/common.module'; -import {EgAdminServerActorRoutingModule} from './routing.module'; -import {StatCatSipFieldsComponent} from './stat_cat_sip_fields.component'; - -@NgModule({ - declarations: [ - StatCatSipFieldsComponent - ], - imports: [ - EgAdminCommonModule, - EgAdminServerActorRoutingModule - ], - providers: [ - ] -}) - -export class EgAdminServerActorModule { -} - - diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/actor/routing.module.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/actor/routing.module.ts deleted file mode 100644 index 66acc9701c..0000000000 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/actor/routing.module.ts +++ /dev/null @@ -1,15 +0,0 @@ -import {NgModule} from '@angular/core'; -import {RouterModule, Routes} from '@angular/router'; -import {StatCatSipFieldsComponent} from './stat_cat_sip_fields.component'; - -const routes: Routes = [{ - path: 'stat_cat_sip_fields', - component: StatCatSipFieldsComponent -}]; - -@NgModule({ - imports: [RouterModule.forChild(routes)], - exports: [RouterModule] -}) - -export class EgAdminServerActorRoutingModule {} diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/actor/stat_cat_sip_fields.component.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/actor/stat_cat_sip_fields.component.ts deleted file mode 100644 index ae33053952..0000000000 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/actor/stat_cat_sip_fields.component.ts +++ /dev/null @@ -1,14 +0,0 @@ -import {Component, OnInit} from '@angular/core'; - -@Component({ - template: ` - - - - - ` -}) - -export class StatCatSipFieldsComponent {} - - diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/admin-server-splash.component.html b/Open-ILS/src/eg2/src/app/staff/admin/server/admin-server-splash.component.html index c3cca0486d..c1b040e893 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/admin-server-splash.component.html +++ b/Open-ILS/src/eg2/src/app/staff/admin/server/admin-server-splash.component.html @@ -22,7 +22,7 @@ + routerLink="/staff/admin/server/asset/call_number_prefix"> + routerLink="/staff/admin/server/config/remote_account"> - - -
-
-
- Owning Library -
- - -
-
- -
- - - diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts deleted file mode 100644 index ee920b9afe..0000000000 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/config/billing_type.component.ts +++ /dev/null @@ -1,53 +0,0 @@ -import {Component, OnInit, TemplateRef, ViewChild} from '@angular/core'; -import {EgIdlObject} from '@eg/core/idl.service'; -import {EgGridDataSource} from '@eg/share/grid/grid'; -import {Pager} from '@eg/share/util/pager'; -import {EgPcrudService} from '@eg/core/pcrud.service'; -import {EgOrgService} from '@eg/core/org.service'; -import {EgAuthService} from '@eg/core/auth.service'; -import {EgAdminPageComponent} from '@eg/staff/share/admin-page/admin-page.component'; - -@Component({ - templateUrl: './billing_type.component.html' -}) - -export class BillingTypeComponent implements OnInit { - - dataSource: EgGridDataSource; - contextOrg: EgIdlObject; - @ViewChild('adminPage') adminPage: EgAdminPageComponent; - - constructor( - private org: EgOrgService, - private auth: EgAuthService, - private pcrud: EgPcrudService - ) { - this.dataSource = new EgGridDataSource(); - } - - orgOnChange(org: EgIdlObject) { - this.contextOrg = org; - this.adminPage.grid.reload(); - } - - ngOnInit() { - this.contextOrg = this.org.get(this.auth.user().ws_ou()); - - this.dataSource.getRows = (pager: Pager, sort: any[]) => { - const searchOrgs = this.org.fullPath(this.contextOrg, true); - - const orderBy = {cbt: 'name'}; - if (sort.length) { - orderBy.cbt = sort[0].name + ' ' + sort[0].dir; - } - - return this.pcrud.search('cbt', {owner : searchOrgs}, { - offset: pager.offset, - limit: pager.limit, - order_by: orderBy - }); - }; - } -} - - diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.html b/Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.html deleted file mode 100644 index 8eb19c43a3..0000000000 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.html +++ /dev/null @@ -1,20 +0,0 @@ - - - -
-
-
- Owning Library -
- - -
-
- -
- - - - diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.ts deleted file mode 100644 index 49c5acead7..0000000000 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/config/hard_due_date.component.ts +++ /dev/null @@ -1,53 +0,0 @@ -import {Component, OnInit, TemplateRef, ViewChild} from '@angular/core'; -import {EgIdlObject} from '@eg/core/idl.service'; -import {EgGridDataSource} from '@eg/share/grid/grid'; -import {Pager} from '@eg/share/util/pager'; -import {EgPcrudService} from '@eg/core/pcrud.service'; -import {EgOrgService} from '@eg/core/org.service'; -import {EgAuthService} from '@eg/core/auth.service'; -import {EgAdminPageComponent} from '@eg/staff/share/admin-page/admin-page.component'; - -@Component({ - templateUrl: './hard_due_date.component.html' -}) - -export class HardDueDateComponent implements OnInit { - - dataSource: EgGridDataSource; - contextOrg: EgIdlObject; - @ViewChild('adminPage') adminPage: EgAdminPageComponent; - - constructor( - private org: EgOrgService, - private auth: EgAuthService, - private pcrud: EgPcrudService - ) { - this.dataSource = new EgGridDataSource(); - } - - orgOnChange(org: EgIdlObject) { - this.contextOrg = org; - this.adminPage.grid.reload(); - } - - ngOnInit() { - this.contextOrg = this.org.get(this.auth.user().ws_ou()); - - this.dataSource.getRows = (pager: Pager, sort: any[]) => { - const searchOrgs = this.org.fullPath(this.contextOrg, true); - - const orderBy = {chdd: 'name'}; - if (sort.length) { - orderBy.chdd = sort[0].name + ' ' + sort[0].dir; - } - - return this.pcrud.search('chdd', {owner : searchOrgs}, { - offset: pager.offset, - limit: pager.limit, - order_by: orderBy - }); - }; - } -} - - diff --git a/Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts b/Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts index 5b78eb2973..b3d648729d 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/admin/server/routing.module.ts @@ -2,19 +2,11 @@ import {NgModule} from '@angular/core'; import {RouterModule, Routes} from '@angular/router'; import {AdminServerSplashComponent} from './admin-server-splash.component'; import {EgBasicAdminPageComponent} from '@eg/staff/admin/basic-admin-page.component'; -import {BillingTypeComponent} from './config/billing_type.component'; -import {HardDueDateComponent} from './config/hard_due_date.component'; const routes: Routes = [{ path: 'splash', component: AdminServerSplashComponent }, { - path: 'config/billing_type', - component: BillingTypeComponent -}, { - path: 'config/hard_due_date', - component: BillingTypeComponent -}, { path: ':schema/:table', component: EgBasicAdminPageComponent }]; diff --git a/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html b/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html index b0b00124d8..4127981ce1 100644 --- a/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html +++ b/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.html @@ -4,6 +4,21 @@ {{idlClassDef.label}} Succeessfully Created + +
+
+
+ {{orgFieldLabel}} +
+ + +
+
+
+
+ diff --git a/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.ts b/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.ts index 4d1cd29b13..debb823a4d 100644 --- a/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.ts +++ b/Open-ILS/src/eg2/src/app/staff/share/admin-page/admin-page.component.ts @@ -37,6 +37,13 @@ export class EgAdminPageComponent implements OnInit { // Size of create/edito dialog. Uses large by default. @Input() dialogSize: 'sm' | 'lg' = 'lg'; + // If an org unit field is specified, an org unit filter + // is added to the top of the page. + @Input() orgField: string; + + // Disable the auto-matic org unit field filter + @Input() disableOrgFilter: boolean; + @ViewChild('grid') grid: EgGridComponent; @ViewChild('editDialog') editDialog: FmRecordEditorComponent; @ViewChild('successString') successString: EgStringComponent; @@ -48,6 +55,9 @@ export class EgAdminPageComponent implements OnInit { createNew: () => void; deleteSelected: (rows: EgIdlObject[]) => void; + contextOrg: EgIdlObject; + orgFieldLabel: string; + constructor( private idl: EgIdlService, private org: EgOrgService, @@ -56,10 +66,35 @@ export class EgAdminPageComponent implements OnInit { private toast: EgToastService ) {} + applyOrgValues() { + + if (this.disableOrgFilter) { + this.orgField = null; + return; + } + + if (!this.orgField) { + // If no org unit field is specified, try to find one. + // If an object type has multiple org unit fields, the + // caller should specify one or disable org unit filter. + this.idlClassDef.fields.forEach(field => { + if (field['class'] === 'aou') { + this.orgField = field.name; + } + }); + } + + if (this.orgField) { + this.orgFieldLabel = this.idlClassDef.field_map[this.orgField].label; + this.contextOrg = this.org.root(); + } + } + ngOnInit() { this.idlClassDef = this.idl.classes[this.idlClass]; this.pkeyField = this.idlClassDef.pkey || 'id'; this.persistKey = 'admin.' + this.idlClassDef.table; + this.applyOrgValues(); // If the caller provides not data source, create a generic one. if (!this.dataSource) { @@ -103,22 +138,42 @@ export class EgAdminPageComponent implements OnInit { }; } + orgOnChange(org: EgIdlObject) { + this.contextOrg = org; + this.grid.reload(); + } + initDataSource() { this.dataSource = new EgGridDataSource(); this.dataSource.getRows = (pager: Pager, sort: any[]) => { const orderBy: any = {}; + if (sort.length) { + // Sort specified from grid orderBy[this.idlClass] = sort[0].name + ' ' + sort[0].dir; + } else if (this.sortField) { + // Default sort field orderBy[this.idlClass] = this.sortField; } - return this.pcrud.retrieveAll(this.idlClass, { + const searchOps = { offset: pager.offset, limit: pager.limit, order_by: orderBy - }); + }; + + if (this.contextOrg) { + // TODO: does the org path need to be configurable? + const search = {}; + search[this.orgField] = + this.org.fullPath(this.contextOrg, true); + return this.pcrud.search(this.idlClass, search, searchOps); + } + + // No org filter -- fetch all rows + return this.pcrud.retrieveAll(this.idlClass, searchOps); }; } } -- 2.11.0