1 import {Component, OnInit, Input, Renderer2} from '@angular/core';
2 import {NetService} from '@eg/core/net.service';
3 import {IdlService} from '@eg/core/idl.service';
4 import {EventService} from '@eg/core/event.service';
5 import {ToastService} from '@eg/share/toast/toast.service';
6 import {AuthService} from '@eg/core/auth.service';
7 import {DialogComponent} from '@eg/share/dialog/dialog.component';
8 import {NgbModal} from '@ng-bootstrap/ng-bootstrap';
11 * Dialog for adding bib records to new and existing record buckets.
15 selector: 'eg-record-bucket-dialog',
16 templateUrl: 'record-bucket-dialog.component.html'
19 export class RecordBucketDialogComponent
20 extends DialogComponent implements OnInit {
22 selectedBucket: number;
23 newBucketName: string;
24 newBucketDesc: string;
28 @Input() set recordId(id: number) {
33 private modal: NgbModal, // required for passing to parent
34 private renderer: Renderer2,
35 private toast: ToastService,
36 private idl: IdlService,
37 private net: NetService,
38 private evt: EventService,
39 private auth: AuthService) {
40 super(modal); // required for subclassing
45 this.onOpen$.subscribe(ok => {
46 // Reset data on dialog open
48 this.selectedBucket = null;
49 this.newBucketName = '';
50 this.newBucketDesc = '';
54 'open-ils.actor.container.retrieve_by_class.authoritative',
55 this.auth.token(), this.auth.user().id(),
56 'biblio', 'staff_client'
57 ).subscribe(buckets => this.buckets = buckets);
62 this.addToBucket(this.selectedBucket);
65 // Create a new bucket then add the record
67 const bucket = this.idl.create('cbreb');
69 bucket.owner(this.auth.user().id());
70 bucket.name(this.newBucketName);
71 bucket.description(this.newBucketDesc);
72 bucket.btype('staff_client');
76 'open-ils.actor.container.create',
77 this.auth.token(), 'biblio', bucket
78 ).subscribe(bktId => {
79 const evt = this.evt.parse(bktId);
81 this.toast.danger(evt.desc);
83 this.addToBucket(bktId);
88 // Add the record to the selected existing bucket
89 addToBucket(id: number) {
90 const item = this.idl.create('cbrebi');
92 item.target_biblio_record_entry(this.recId);
95 'open-ils.actor.container.item.create',
96 this.auth.token(), 'biblio', item
98 const evt = this.evt.parse(resp);
100 this.toast.danger(evt.toString());