2 <eg-progress-dialog #progressDialog></eg-progress-dialog>
3 <eg-barcode-select #barcodeSelect></eg-barcode-select>
4 <eg-copy-alerts-dialog #copyAlertsDialog></eg-copy-alerts-dialog>
5 <eg-string #receiptEmailed i18n-text text="Receipt Successfully Emailed">
8 <eg-prompt-dialog #nonCatCount
10 i18n-dialogTitle dialogTitle="Non-Cat Checkout"
11 promptMin="1" promptValue="1" [promptMax]="maxNoncats"
13 dialogBody="Enter the number of {{checkoutNoncat ? checkoutNoncat.name() : ''}} circulating">
16 <div class="row mb-3 pb-3 border-bottom">
17 <div class="col-lg-12 d-flex">
18 <div class="form-inline">
19 <div class="input-group">
20 <div class="input-group-prepend">
22 <button ngbDropdownToggle class="btn btn-outline-dark" id="checkout-button">
23 <ng-container *ngIf="!checkoutNoncat" i18n>Barcode</ng-container>
24 <ng-container *ngIf="checkoutNoncat">{{checkoutNoncat.name()}}</ng-container>
26 <div ngbDropdownMenu aria-labelledby="dropdownBasic1">
27 <button ngbDropdownItem (click)="checkoutNoncat=null" i18n>Barcode</button>
28 <div role="separator" class="dropdown-divider"></div>
29 <ng-container *ngIf="circ.nonCatTypes">
30 <button *ngFor="let nct of circ.nonCatTypes"
31 (click)="checkoutNoncat=nct" ngbDropdownItem>{{nct.name()}}</button>
36 <input type="text" class="form-control" id="barcode-input"
37 [placeholder]="checkoutNoncat ? '' : 'Barcode...'" i18n-placeholder
38 [(ngModel)]="checkoutBarcode" [disabled]="checkoutNoncat !== null"
39 i18n-aria-label aria-label="Barcode Input" (keydown.enter)="checkout()" />
40 <div class="input-group-append">
41 <button class="btn btn-outline-dark" (keydown.enter)="checkout()"
42 (click)="checkout()" i18n>Submit</button>
46 <div class="flex-1"></div>
48 <button ngbDropdownToggle class="btn mr-2" [ngClass]="{
49 'btn-outline-dark': dueDateOptions === 0,
50 'btn-outline-success': dueDateOptions > 0
52 i18n>Date Options</button>
54 <button ngbDropdownItem (click)="toggleDateOptions(1)">
55 <span *ngIf="dueDateOptions > 0"
56 class="badge badge-success">✓</span>
57 <span *ngIf="dueDateOptions === 0"
58 class="badge badge-warning">✗</span>
59 <span class="pl-2" i18n>Specific Due Date</span>
61 <button ngbDropdownItem (click)="toggleDateOptions(2)">
62 <span *ngIf="dueDateOptions === 2"
63 class="badge badge-success">✓</span>
64 <span *ngIf="dueDateOptions < 2"
65 class="badge badge-warning">✗</span>
66 <span class="pl-2" i18n>Specific Due Date Until Logout</span>
70 <eg-datetime-select [initialIso]="dueDate" [noPast]="true"
71 [readOnly]="dueDateOptions === 0" (onChangeAsIso)="setDueDate($event)">
73 <ng-container *ngIf="dueDateInvalid">
74 <span class="text-danger font-weight-bold ml-2" i18n>Due Date is Invalid</span>
79 <ng-template #copyBarcodeTemplate let-r="row">
80 <ng-container *ngIf="r.copy">
81 <a href="/eg/staff/cat/item/{{r.copy.id()}}">{{r.copy.barcode()}}</a>
85 <ng-template #titleTemplate let-r="row">
86 <ng-container *ngIf="r.record">
87 <a routerLink="/staff/catalog/record/{{r.record.doc_id()}}">{{r.title}}</a>
89 <ng-container *ngIf="!r.record">{{r.title}}</ng-container>
92 <ng-template #copyAlertsTemplate let-r="row">
93 <button class="btn btn-outline-dark btn-sm p-1"
94 (click)="openItemAlerts([r], 'manage')" i18n>
95 Manage ({{r.copyAlertCount}})
100 <div class="col-lg-12">
101 <eg-grid #checkoutsGrid [dataSource]="gridDataSource" [sortable]="true"
102 persistKey="circ.patron.checkout"
103 [useLocalSort]="true" [cellTextGenerator]="cellTextGenerator"
104 [disablePaging]="true" persistKey="circ.patron.checkout">
106 <eg-grid-toolbar-action
107 i18n-group group="Add" i18n-label label="Add Item Alerts"
108 (onClick)="openItemAlerts($event, 'create')">
109 </eg-grid-toolbar-action>
111 <eg-grid-toolbar-action
112 i18n-group group="Add" i18n-label label="Manage Item Alerts"
113 [disabled]="checkoutsGrid.context.rowSelector.selected().length !== 1"
114 (onClick)="openItemAlerts($event, 'manage')">
115 </eg-grid-toolbar-action>
117 <eg-grid-column path="index" [index]="true"
118 label="Row Index" i18n-label [hidden]="true"></eg-grid-column>
119 <eg-grid-column path="circ.id" label="Circ ID" i18n-label></eg-grid-column>
121 <eg-grid-column path="dueDate" label="Due Date" i18n-label
122 timezoneContextOrg="circ.circ_lib" dateOnlyIntervalField="circ.duration"
123 datatype="timestamp"></eg-grid-column>
125 <eg-grid-column name="copy_barcode" label="Barcode" i18n-label
126 [cellTemplate]="copyBarcodeTemplate"></eg-grid-column>
128 <eg-grid-column path="title" label="Title" i18n-label
129 [cellTemplate]="titleTemplate"></eg-grid-column>
131 <eg-grid-column path="nonCatCount" label="Non-Cataloged Count"
132 i18n-label></eg-grid-column>
134 <eg-grid-column name="copyAlerts" label="Alerts" i18n-label
135 [cellTemplate]="copyAlertsTemplate"></eg-grid-column>
137 <eg-grid-column path="copy.*" idlClass="acp" [hidden]="true"></eg-grid-column>
138 <eg-grid-column path="circ.*" idlClass="circ" [hidden]="true"></eg-grid-column>
139 <eg-grid-column path="mbts.*" idlClass="mbts" [hidden]="true"></eg-grid-column>
140 <eg-grid-column path="patron.*" idlClass="au" [hidden]="true"></eg-grid-column>
141 <eg-grid-column path="record.*" idlClass="mvr" [hidden]="true"></eg-grid-column>
142 <eg-grid-column path="hold.*" idlClass="ahr" [hidden]="true"></eg-grid-column>
143 <eg-grid-column path="transit.*" idlClass="atc" [hidden]="true"></eg-grid-column>
149 <div class="row mt-3 pt-3">
150 <div class="col-lg-12 d-flex">
151 <div class="flex-1"></div>
153 <div class="form-check form-check-inline pt-1">
154 <input class="form-check-input" type="checkbox"
155 (ngModelChange)="toggleStrictBarcode($event)"
156 id="strict-barcode-cbox" [(ngModel)]="strictBarcode"/>
157 <label class="form-check-label"
158 for="strict-barcode-cbox" i18n>Strict Barcode</label>
162 <div class="input-group">
163 <span class="material-icons pt-2 pr-2">
164 <ng-container *ngIf="!mayEmailReceipt()">print</ng-container>
165 <ng-container *ngIf="mayEmailReceipt()">email</ng-container>
167 <button class="btn btn-outline-dark" (click)="quickReceipt()" i18n>
170 <div class="input-group-append">
172 <button ngbDropdownToggle class="btn btn-outline-dark">
174 <div ngbDropdownMenu>
175 <button ngbDropdownItem (click)="emailReceipt()"
176 [disabled]="!mayEmailReceipt()" i18n>Email Receipt</button>
177 <button ngbDropdownItem (click)="printReceipt()" i18n>Print Receipt</button>
184 <div class="input-group">
185 <button class="btn btn-outline-dark" (click)="doneAutoReceipt()" i18n>
188 <div class="input-group-append">
190 <button ngbDropdownToggle class="btn btn-outline-dark">
192 <div ngbDropdownMenu>
193 <button ngbDropdownItem (click)="doneRedirect()" i18n>No Receipt</button>
194 <button ngbDropdownItem (click)="emailReceipt(true)"
195 [disabled]="!mayEmailReceipt()" i18n>Email Receipt</button>
196 <button ngbDropdownItem
197 (click)="printReceipt(true)" i18n>Print Receipt</button>