1 <eg-staff-banner bannerText="Load MARC Order Records" i18n-bannerText *ngIf="mode !== 'getImportParams'">
4 <div class="row" *ngIf="mode !== 'getImportParams'">
5 <div class="ms-auto me-3"><a i18n href="/eg/staff/acq/legacy/picklist/upload">Legacy Upload Interface</a></div>
6 <div class="ms-auto me-3"><a i18n href="/eg/staff/acq/legacy/picklist/upload">Legacy Upload Interface</a></div>
9 <eg-string #loadMarcOrderTemplateSavedString i18n-text text="Load MARC Order Record Template Saved"></eg-string>
10 <eg-string #loadMarcOrderTemplateDeletedString i18n-text text="Load MARC Order Record Template Deleted"></eg-string>
11 <eg-string #loadMarcOrderTemplateSetAsDefaultString i18n-text text="Load MARC Order Record Template Set As Default"></eg-string>
13 <eg-alert-dialog #dupeQueueAlert i18n-dialogBody
14 dialogBody="A queue with the requested name already exists.">
17 <div class="common-form striped-odd form-validated ms-3 me-3">
19 <div class="col-lg-3">
20 <label class="form-label" for="template-select" i18n *ngIf="mode !== 'getImportParams'">Apply/Create Form Template</label>
21 <label class="form-label" for="template-select" i18n *ngIf="mode === 'getImportParams'">Apply Form Template</label>
23 <div class="col-lg-3">
24 <eg-combobox #formTemplateSelector
26 (onChange)="templateSelectorChange($event)"
27 [allowFreeText]="true"
28 [startId]="selectedTemplate"
29 [startIdFiresOnChange]="true"
30 [entries]="formatTemplateEntries()">
33 <div class="col-lg-6" *ngIf="mode !== 'getImportParams'">
34 <button class="btn btn-success"
35 [disabled]="!selectedTemplate"
36 (click)="saveTemplate()" i18n>Save Template</button>
37 <button class="btn btn-outline-primary ms-3"
38 [disabled]="!selectedTemplate"
39 (click)="markTemplateDefault()" i18n>Mark Template as Default</button>
40 <button class="btn btn-danger ms-3"
41 [disabled]="!selectedTemplate"
42 (click)="deleteTemplate()" i18n>Delete Template</button>
46 <ng-container *ngIf="mode !== 'getImportParams'">
47 <h2>Purchase Order</h2>
49 <div class="col-lg-3">
50 <label class="form-label" for="provider-select" i18n>Provider</label>
53 <div class="col-lg-3">
54 <eg-combobox #providerSelector
55 domId="provider-select"
56 [selectedId]="selectedProvider" (onChange)="selectedProvider = $event.id"
57 style="border-left-width: 0px"
59 [asyncSupportsEmptyTermClick]="true"
60 idlIncludeLibraryInLabel="owner"
61 [idlQueryAnd]="{active: 't'}" idlClass="acqpro">
65 <div class="col-lg-3">
66 <label class="form-label" for="create-po" i18n>Create Purchase Order</label>
68 <div class="col-lg-3">
69 <input class="form-check-input" type="checkbox"
71 [(ngModel)]="createPurchaseOrder">
75 <div class="col-lg-3">
76 <label class="form-label" for="type-select" i18n>Ordering Agency</label>
78 <div class="col-lg-3">
80 [applyOrgId]="orderingAgency"
81 (onChange)="orgOnChange($event)"
82 [limitPerms]="['CREATE_PICKLIST','CREATE_PURCHASE_ORDER']">
86 <div class="col-lg-3">
87 <label class="form-label" for="activate-po" i18n>Activate Purchase Order</label>
90 <div class="col-lg-3">
91 <input class="form-check-input" type="checkbox"
93 [(ngModel)]="activatePurchaseOrder">
98 <div class="col-lg-3">
99 <label class="form-label" for="year-select" i18n>Fiscal Year</label>
101 <div class="col-lg-3">
102 <eg-combobox #fiscalYearSelector
104 [startId]="selectedFiscalYear"
105 [entries]="formatEntries('fiscalYears')"
107 (onChange)="selectEntry($event, 'fiscalYears')">
113 <div class="col-lg-3">
114 <label class="form-label" for="sl-select" i18n>Add to Selection List?</label>
116 <div class="col-lg-3">
117 <eg-combobox #selectionListSelector
119 [startId]="selectedSelectionList"
120 [entries]="formatEntries('selectionLists')"
121 (onChange)="selectedSelectionList=$event" i18n-placeholder
122 [allowFreeText]="true">
126 </ng-container> <!-- purchase order section -->
128 <h2 *ngIf="mode !== 'getImportParams'">Upload Settings</h2>
131 <div class="col-lg-3">
132 <label class="form-label" for="source-select" i18n>Record Source</label>
134 <div class="col-lg-3">
135 <eg-combobox #bibSourceSelector
137 [entries]="formatEntries('bibSources')"
138 (onChange)="selectEntry($event, 'bibSources')"
139 [startId]="selectedBibSource">
142 <div class="col-lg-3">
143 <label class="form-label" for="import-non-matching" i18n>Import Non-Matching Records</label>
145 <div class="col-lg-3">
146 <input class="form-check-input" type="checkbox"
147 id="import-non-matching"
148 [(ngModel)]="importNonMatching">
153 <div class="col-lg-3">
154 <label class="form-label" for="match-set-select" i18n>Record Match Set</label>
156 <div class="col-lg-3">
157 <eg-combobox #matchSetSelector
158 id="match-set-select"
159 [entries]="formatEntries('matchSets')"
160 [disabled]="(selectedQueue && !selectedQueue.freetext) || importSelection()"
161 [startId]="selectedMatchSet || defaultMatchSet"
162 (onChange)="selectEntry($event, 'matchSets')">
165 <div class="col-lg-3">
166 <label class="form-label" for="merge-on-exact" i18n>Merge On Exact Match (901c)</label>
168 <div class="col-lg-3">
169 <input class="form-check-input" type="checkbox"
170 id="merge-on-exact" [(ngModel)]="mergeOnExact">
175 <div class="col-lg-3">
176 <label class="form-label" for="merge-profiles" i18n>Merge Profile</label>
178 <div class="col-lg-3">
179 <eg-combobox #mergeProfileSelector
181 [entries]="formatEntries('mergeProfiles')"
182 (onChange)="selectEntry($event, 'mergeProfiles')"
183 [startId]="selectedMergeProfile">
186 <div class="col-lg-3">
187 <label class="form-label" for="merge-on-single" i18n>Merge On Single Match</label>
189 <div class="col-lg-3">
190 <input class="form-check-input" type="checkbox"
191 id="merge-on-single" [(ngModel)]="mergeOnSingleMatch">
195 <div class="col-lg-3">
196 <label class="form-label" for="insuff-merge-profiles" i18n>
197 Insufficient Quality Fall-Through Profile
200 <div class="col-lg-3">
201 <eg-combobox #fallThruMergeProfileSelector
202 id="insuff-merge-profiles"
203 [entries]="formatEntries('mergeProfiles')"
204 (onChange)="selectEntry($event, 'FallThruMergeProfile')"
205 [startId]="selectedFallThruMergeProfile">
208 <div class="col-lg-3">
209 <label class="form-label" for="merge-on-best" i18n>Merge On Best Match</label>
211 <div class="col-lg-3">
212 <input class="form-check-input" type="checkbox"
213 id="merge-on-best" [(ngModel)]="mergeOnBestMatch">
217 <div class="col-lg-3">
218 <label class="form-label" for="min-quality-ratio" i18n>
219 Best/Single Match Minimum Quality Ratio
222 <div class="col-lg-3">
223 <input type="number" step="0.1" id="min-quality-ratio"
224 class="form-control" [(ngModel)]="minQualityRatio">
226 <ng-container *ngIf="mode !== 'getImportParams'">
227 <div class="col-lg-3">
228 <label class="form-label" for="load-items" i18n>Load Items for Imported Records</label>
230 <div class="col-lg-3">
231 <input class="form-check-input" type="checkbox"
233 [(ngModel)]="loadItems">
238 <h2 *ngIf="mode !== 'getImportParams'">This Upload</h2>
240 <div class="col-lg-3">
241 <label class="form-label" for="queue-select" i18n>Select or Create a Queue</label>
243 <div class="col-lg-3">
244 <eg-combobox [entries]="formatEntries('activeQueues')"
246 [startIdFiresOnChange]="true"
247 (onChange)="selectedQueue=$event" i18n-placeholder
249 [allowFreeText]="true">
253 <div class="row" *ngIf="!importSelection() && mode !== 'getImportParams'">
254 <div class="col-lg-3">
255 <label class="form-label" for="upload-file" i18n>File to Upload:</label>
257 <div class="col-lg-3">
258 <input #fileSelector (change)="fileSelected($event)"
259 id="upload-file" required class="form-control" type="file"/>
262 <div class="row" *ngIf="importSelection()">
263 <div class="col-lg-3">
264 <label class="form-label">Import Selected</label>
266 <div class="col-lg-3">
267 <span *ngIf="!importSelection().importQueue" i18n>
268 Importing {{importSelection().recordIds.length}} Record(s)</span>
269 <span *ngIf="importSelection().importQueue" i18n>
270 Importing Queue {{importSelection().queue.name()}}</span>
272 <div class="col-lg-3">
273 <button class="btn btn-outline-info ms-2" (click)="clearSelection()" i18n>
278 <div class="row" *ngIf="mode !== 'getImportParams'">
279 <div class="d-grid gap-2 col-6 mx-auto">
280 <button class="btn btn-success btn-lg fw-bold"
281 [disabled]="isUploading || !hasNeededData()"
282 (click)="upload()" i18n>Upload</button>
285 <div class="row" *ngIf="mode === 'getImportParams'">
286 <div class="d-grid gap-2 col-6 mx-auto">
287 <button class="btn btn-success btn-lg fw-bold"
288 [disabled]="customActionProcessing || !hasNeededData()"
289 (click)="performCustomAction()" i18n>Submit</button>
292 <div class="row" [hidden]="!isUploading || uploadComplete">
293 <div class="col-lg-3">
294 <label class="form-label" i18n>Upload File to Server</label>
296 <div class="col-lg-6">
297 <eg-progress-inline #uploadProgress></eg-progress-inline>
302 <div class="col-lg-6 offset-lg-3" [hidden]="!uploadProcessing || uploadComplete">
303 <h2><label class="form-label" i18n><i>Processing...</i></label></h2>
306 <div class="row" [hidden]="!uploadComplete">
307 <ng-container *ngIf="uploadError">
308 <div class="col-lg-6 offset-lg-3">
309 <h2><label class="form-label" i18n>Upload Error!</label></h2>
311 <div class="col alert-danger" i18n>Error {{uploadErrorCode}} ({{uploadErrorText}})</div>
315 <ng-container *ngIf="!uploadError">
316 <div class="col-lg-6 offset-lg-3">
317 <h2><label class="form-label" i18n>Upload Complete!</label></h2>
318 <div class="row" [hidden]="!uploadComplete">
320 <label class="form-label" i18n>Go to:</label>
322 <div class="col-2"><a routerLink="/staff/cat/vandelay/queue/{{recordType}}/{{activeQueueId}}" target="_blank" i18n>Queue</a></div>
323 <div class="col-2" [hidden]="!selectedSelectionList"><a routerLink="/staff/acq/picklist/{{activeSelectionListId}}" target="_blank">Selection List</a></div>
324 <div class="col-2" [hidden]="!createPurchaseOrder"><a routerLink="/staff/acq/po/{{newPO}}" target="_blank">Purchase Order</a></div>