<eg-acq-delete-lineitems-dialog #deleteLineitemsDialog></eg-acq-delete-lineitems-dialog>
<eg-acq-add-copies-dialog #addCopiesDialog></eg-acq-add-copies-dialog>
<eg-acq-claim-policy-dialog #claimPolicyDialog></eg-acq-claim-policy-dialog>
+<eg-acq-export-attributes-dialog #exportAttributesDialog></eg-acq-export-attributes-dialog>
<div class="col-lg-6 offset-lg-3" *ngIf="saving">
<eg-progress-inline [max]="progressMax" [value]="progressValue">
[disabled]="!canDeleteLis() || !selectedIds().length" i18n>Delete Selected Lineitems</button>
<button ngbDropdownItem (click)="addCopiesToLineitems()"
[disabled]="!canAddLiCopies() || !selectedIds().length" i18n>Add Items to Selected Lineitems</button>
+ <button ngbDropdownItem (click)="exportSingleAttributeList()"
+ [disabled]="!selectedIds().length" i18n>Export Single Attribute List for Selected Lineitems</button>
<div class="dropdown-divider"></div>
<h6 class="dropdown-header" i18n>Selection List Actions</h6>
<button ngbDropdownItem (click)="createPo()"
import {CancelDialogComponent} from './cancel-dialog.component';
import {DeleteLineitemsDialogComponent} from './delete-lineitems-dialog.component';
import {AddCopiesDialogComponent} from './add-copies-dialog.component';
+import {ExportAttributesDialogComponent} from './export-attributes-dialog.component';
import {ClaimPolicyDialogComponent} from './claim-policy-dialog.component';
+import {saveAs} from 'file-saver';
const DELETABLE_STATES = [
'new', 'selector-ready', 'order-ready', 'approved', 'pending-order'
@ViewChild('cancelDialog') cancelDialog: CancelDialogComponent;
@ViewChild('deleteLineitemsDialog') deleteLineitemsDialog: DeleteLineitemsDialogComponent;
@ViewChild('addCopiesDialog') addCopiesDialog: AddCopiesDialogComponent;
+ @ViewChild('exportAttributesDialog') exportAttributesDialog: ExportAttributesDialogComponent;
@ViewChild('claimPolicyDialog') claimPolicyDialog: ClaimPolicyDialogComponent;
constructor(
});
}
+ exportSingleAttributeList() {
+ const ids = Object.keys(this.selected).filter(id => this.selected[id]).map(i => Number(i));
+ this.exportAttributesDialog.ids = ids;
+ this.exportAttributesDialog.open().subscribe(attr => {
+ if (!attr) { return; }
+
+ const values: string[] = [];
+ this.liService.getFleshedLineitems(ids, { fromCache: true }).subscribe(
+ li => values.push(this.displayAttr(li.lineitem, attr)),
+ err => {},
+ () => {
+ const filtered = values.filter(x => x !== '');
+ saveAs(
+ new Blob(
+ [ filtered.join('\n') + '\n' ],
+ { type: 'text/plain;charset=utf-8' }
+ ),
+ 'export_attr_list.txt'
+ );
+ }
+ );
+ });
+ }
+
liHasRealCopies(li: IdlObject): boolean {
for (let idx = 0; idx < li.lineitem_details().length; idx++) {
if (li.lineitem_details()[idx].eg_copy_id()) {
import {CancelDialogComponent} from './cancel-dialog.component';
import {DeleteLineitemsDialogComponent} from './delete-lineitems-dialog.component';
import {AddCopiesDialogComponent} from './add-copies-dialog.component';
+import {ExportAttributesDialogComponent} from './export-attributes-dialog.component';
import {ClaimPolicyDialogComponent} from './claim-policy-dialog.component';
import {MarcEditModule} from '@eg/staff/share/marc-edit/marc-edit.module';
import {UploadComponent} from '../picklist/upload.component';
CancelDialogComponent,
DeleteLineitemsDialogComponent,
AddCopiesDialogComponent,
+ ExportAttributesDialogComponent,
ClaimPolicyDialogComponent,
BriefRecordComponent,
CreateAssetsComponent,
CancelDialogComponent,
DeleteLineitemsDialogComponent,
AddCopiesDialogComponent,
+ ExportAttributesDialogComponent,
ClaimPolicyDialogComponent
],
imports: [