From 15042beac6d25952f98beab3486a1c53919366cd Mon Sep 17 00:00:00 2001 From: Jason Etheridge Date: Mon, 11 Nov 2019 08:43:29 -0500 Subject: [PATCH] picklist merge dialog --- .../src/app/staff/acq/search/acq-search.module.ts | 4 +- .../search/picklist-merge-dialog.component.html | 29 +++++++++++ .../acq/search/picklist-merge-dialog.component.ts | 56 ++++++++++++++++++++++ .../acq/search/picklist-results.component.html | 11 ++--- .../staff/acq/search/picklist-results.component.ts | 14 ++++++ 5 files changed, 107 insertions(+), 7 deletions(-) create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.html create mode 100644 Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.ts diff --git a/Open-ILS/src/eg2/src/app/staff/acq/search/acq-search.module.ts b/Open-ILS/src/eg2/src/app/staff/acq/search/acq-search.module.ts index 7a76f6ee76..47124a42d0 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/search/acq-search.module.ts +++ b/Open-ILS/src/eg2/src/app/staff/acq/search/acq-search.module.ts @@ -9,6 +9,7 @@ import {PicklistResultsComponent} from './picklist-results.component'; import {PicklistCreateDialogComponent} from './picklist-create-dialog.component'; import {PicklistCloneDialogComponent} from './picklist-clone-dialog.component'; import {PicklistDeleteDialogComponent} from './picklist-delete-dialog.component'; +import {PicklistMergeDialogComponent} from './picklist-merge-dialog.component'; @NgModule({ declarations: [ @@ -19,7 +20,8 @@ import {PicklistDeleteDialogComponent} from './picklist-delete-dialog.component' PicklistResultsComponent, PicklistCreateDialogComponent, PicklistCloneDialogComponent, - PicklistDeleteDialogComponent + PicklistDeleteDialogComponent, + PicklistMergeDialogComponent ], imports: [ StaffCommonModule, diff --git a/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.html b/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.html new file mode 100644 index 0000000000..0569d65509 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.html @@ -0,0 +1,29 @@ + + + + + + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.ts b/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.ts new file mode 100644 index 0000000000..a3476895b9 --- /dev/null +++ b/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-merge-dialog.component.ts @@ -0,0 +1,56 @@ +import {Component, Input, ViewChild, TemplateRef, OnInit} from '@angular/core'; +import {Observable, forkJoin, from, empty, throwError} from 'rxjs'; +import {DialogComponent} from '@eg/share/dialog/dialog.component'; +import {IdlService, IdlObject} from '@eg/core/idl.service'; +import {NetService} from '@eg/core/net.service'; +import {AuthService} from '@eg/core/auth.service'; +import {NgbModal} from '@ng-bootstrap/ng-bootstrap'; +import {ComboboxEntry} from '@eg/share/combobox/combobox.component'; + +@Component({ + selector: 'eg-picklist-merge-dialog', + templateUrl: './picklist-merge-dialog.component.html' +}) + +export class PicklistMergeDialogComponent + extends DialogComponent implements OnInit { + + @Input() grid: any; + listNames: string[]; + leadList: number; + selectedLists: IdlObject[]; + + constructor( + private idl: IdlService, + private net: NetService, + private auth: AuthService, + private modal: NgbModal + ) { + super(modal); + } + + ngOnInit() { + } + + update() { + this.selectedLists = this.grid.context.getSelectedRows(); + this.listNames = this.selectedLists.map( r => r.name() ); + } + + mergeLists() { + var that = this; + this.net.request( + 'open-ils.acq', + 'open-ils.acq.picklist.merge', + this.auth.token(), this.leadList, + this.selectedLists.map( list => list.id() ).filter(function(p) { return p != that.leadList; }) + ).subscribe( + (res) => console.log('res',res), + (err) => throwError(err), + () => this.close(true) + ); + } + +} + + diff --git a/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-results.component.html b/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-results.component.html index d3690bee21..42a48baaf4 100644 --- a/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-results.component.html +++ b/Open-ILS/src/eg2/src/app/staff/acq/search/picklist-results.component.html @@ -4,6 +4,8 @@ + + - - - @@ -27,6 +23,9 @@ + + + boolean; @@ -94,4 +97,15 @@ export class PicklistResultsComponent implements OnInit { ); this.picklistDeleteDialog.update(); // update the dialog UI with selections } + + openMergeDialog(rows: IdlObject[]) { + this.picklistMergeDialog.open().subscribe( + modified => { + this.mergeSelectionListString.current().then(msg => this.toast.success(msg)); + this.picklistResultsGrid.reload(); // FIXME - spec calls for removed grid rows and not refresh + } + ); + this.picklistMergeDialog.update(); // update the dialog UI with selections + } + } -- 2.11.0