From: Bill Erickson Date: Wed, 16 Feb 2022 22:45:51 +0000 (-0500) Subject: LPXXX Port work log to Angular X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=21145625cacac80e6f67575a30905b46e0932fcb;p=working%2FEvergreen.git LPXXX Port work log to Angular Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/eg2/src/app/staff/admin/local/admin-local-splash.component.html b/Open-ILS/src/eg2/src/app/staff/admin/local/admin-local-splash.component.html index b852b981bc..6c4c3a550e 100644 --- a/Open-ILS/src/eg2/src/app/staff/admin/local/admin-local-splash.component.html +++ b/Open-ILS/src/eg2/src/app/staff/admin/local/admin-local-splash.component.html @@ -75,6 +75,6 @@ + routerLink="/staff/circ/worklog"> diff --git a/Open-ILS/src/eg2/src/app/staff/circ/routing.module.ts b/Open-ILS/src/eg2/src/app/staff/circ/routing.module.ts index 9a151cf8f6..0b11749365 100644 --- a/Open-ILS/src/eg2/src/app/staff/circ/routing.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/circ/routing.module.ts @@ -10,6 +10,10 @@ const routes: Routes = [{ loadChildren: () => import('./item/routing.module').then(m => m.CircItemRoutingModule) }, { + path: 'worklog', + loadChildren: () => + import('./worklog/worklog.module').then(m => m.CircWorkLogModule) +}, { path: 'holds', loadChildren: () => import('./holds/holds.module').then(m => m.HoldsUiModule) diff --git a/Open-ILS/src/eg2/src/app/staff/circ/worklog/routing.module.ts b/Open-ILS/src/eg2/src/app/staff/circ/worklog/routing.module.ts new file mode 100644 index 0000000000..2207831642 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/circ/worklog/routing.module.ts @@ -0,0 +1,14 @@ +import {NgModule} from '@angular/core'; +import {RouterModule, Routes} from '@angular/router'; +import {CircWorkLogComponent} from './worklog.component'; + +const routes: Routes = [{ + path: '', + component: CircWorkLogComponent +}]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class CircWorkLogRoutingModule {} diff --git a/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.component.html b/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.component.html new file mode 100644 index 0000000000..143c1e0d58 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.component.html @@ -0,0 +1,101 @@ + + + + + + + {{r.usr().card().barcode()}} + + + + + {{row.user}} + + + + {{row.item}} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.component.ts b/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.component.ts new file mode 100644 index 0000000000..20941d0a7a --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.component.ts @@ -0,0 +1,83 @@ +import {Component, OnInit, Renderer2, ViewChild} from '@angular/core'; +import {Router, ActivatedRoute} from '@angular/router'; +import {Observable, empty, of, from} from 'rxjs'; +import {concatMap} from 'rxjs/operators'; +import {IdlObject} from '@eg/core/idl.service'; +import {OrgService} from '@eg/core/org.service'; +import {AuthService} from '@eg/core/auth.service'; +import {PcrudService} from '@eg/core/pcrud.service'; +import {GridDataSource, GridCellTextGenerator} from '@eg/share/grid/grid'; +import {GridComponent} from '@eg/share/grid/grid.component'; +import {Pager} from '@eg/share/util/pager'; +import {Location} from '@angular/common'; +import {WorkLogEntry, WorkLogService} from '@eg/staff/share/worklog/worklog.service'; + +@Component({ + templateUrl: 'worklog.component.html' +}) + +export class CircWorkLogComponent implements OnInit { + + autoIndex = 1; + cellTextGenerator: GridCellTextGenerator; + actionDataSource: GridDataSource = new GridDataSource(); + patronDataSource: GridDataSource = new GridDataSource(); + + @ViewChild('actionGrid') actionGrid: GridComponent; + @ViewChild('patronGrid') patronGrid: GridComponent; + + constructor( + private router: Router, + private ngLocation: Location, + private org: OrgService, + private auth: AuthService, + private pcrud: PcrudService, + private workLog: WorkLogService, + ) { } + + ngOnInit() { + + this.workLog.loadSettings(); + + this.actionDataSource.getRows = + (pager: Pager, sort: any[]): Observable => { + + const actions = this.workLog.getActions() + actions.forEach(p => p.index = this.autoIndex++); + + return from(actions); + }; + + this.patronDataSource.getRows = + (pager: Pager, sort: any[]): Observable => { + + const patrons = this.workLog.getPatrons(); + patrons.forEach(p => p.index = this.autoIndex++); + + return from(patrons); + }; + + this.cellTextGenerator = { + user: row => row.user, + item: row => row.item + }; + } + + showPatron(row: IdlObject) { + if (row.patron_id) { + const url = this.ngLocation.prepareExternalUrl( + `/staff/circ/patron/${row.patron_id}/checkout`); + window.open(url); + } + } + + showItem(row: IdlObject) { + if (row.item_id) { + const url = this.ngLocation.prepareExternalUrl( + `/staff/cat/item/${row.item_id}/summary`); + window.open(url); + } + } + +} + diff --git a/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.module.ts b/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.module.ts new file mode 100644 index 0000000000..4becf7dced --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/circ/worklog/worklog.module.ts @@ -0,0 +1,21 @@ +import {NgModule} from '@angular/core'; +import {StaffCommonModule} from '@eg/staff/common.module'; +import {CircWorkLogRoutingModule} from './routing.module'; +import {CircWorkLogComponent} from './worklog.component'; +import {WorkLogModule} from '@eg/staff/share/worklog/worklog.module'; + +@NgModule({ + declarations: [ + CircWorkLogComponent + ], + imports: [ + StaffCommonModule, + CircWorkLogRoutingModule, + WorkLogModule + ], + providers: [ + ] +}) + +export class CircWorkLogModule {} + diff --git a/Open-ILS/src/eg2/src/app/staff/nav.component.html b/Open-ILS/src/eg2/src/app/staff/nav.component.html index a2c43ff92f..11c3e5cfee 100644 --- a/Open-ILS/src/eg2/src/app/staff/nav.component.html +++ b/Open-ILS/src/eg2/src/app/staff/nav.component.html @@ -133,6 +133,10 @@ Scan Item as Missing Pieces + + history + Work Log + [% l('Scan Item as Missing Pieces') %] +
  • + + + [% l('Work Log') %] + +