]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/eg2/src/app/staff/share/holdings/copy-alerts-dialog.component.html
LP2061136 - Stamping 1405 DB upgrade script
[Evergreen.git] / Open-ILS / src / eg2 / src / app / staff / share / holdings / copy-alerts-dialog.component.html
1 <eg-string #successMsg text="Successfully Modified Item Alerts" i18n-text></eg-string>
2 <eg-string #errorMsg text="Failed To Modify Item Alerts" i18n-text></eg-string>
3
4 <ng-template #dialogContent>
5   <div class="modal-header">
6     <h4 class="modal-title">
7       <ng-container *ngIf="mode === 'create'">
8         <span i18n>Adding alerts for {{copyIds.length}} item(s).</span>
9       </ng-container>
10       <ng-container *ngIf="mode === 'manage'">
11         <span *ngIf="!inBatch()" i18n>Managing alerts for item {{copies.length ? copies[0].barcode() : ''}}</span>
12         <span *ngIf="inBatch()" i18n>Managing alerts in common for {{copyIds.length}} item(s).</span>
13       </ng-container>
14       <span i18n></span>
15     </h4>
16     <button type="button" class="btn-close btn-close-white" 
17       i18n-aria-label aria-label="Close" (click)="close()"></button>
18   </div>
19   <div class="modal-body p-4 form-validated">
20     <div class="row mt-2 p-2 rounded border border-success">
21       <div class="col-lg-4">
22         <eg-combobox [entries]="alertTypes" 
23           i18n-placeholder placeholder="Select Alert Type..."
24           domId="item-alert-type"
25           [selectedId]="newAlert.alert_type() || defaultAlertType"
26           [mandatory]="true"
27           (onChange)="newAlert.alert_type($event ? $event.id : null)">
28         </eg-combobox>
29       </div>
30       <div class="col-lg-5">
31         <textarea class="form-control" rows="2" 
32           i18n-placeholder placeholder="New Alert Note..."
33           (ngModelChange)="newAlert.note($event)" [ngModel]="newAlert.note()">
34         </textarea>
35       </div>
36       <div class="col-lg-3">
37         <div class="d-flex flex-column">
38           <div class="form-check">
39             <input class="form-check-input" type="checkbox" 
40               [ngModel]="newAlert.temp() === 't'" 
41               (ngModelChange)="newAlert.temp($event ? 't' : 'f')"
42               id="new-alert-temporary">
43             <label class="form-label form-check-label" for="new-alert-temporary" i18n>
44               Temporary?
45             </label>
46           </div>
47           <div class="pt-2">
48             <button type="button" class="btn btn-success" (click)="addNew()" i18n>
49               Add New
50             </button>
51           </div>  
52         </div>  
53       </div>
54     </div>
55     <h4 class="mt-2" i18n *ngIf="newAlerts.length > 0">Pending New Alerts</h4>
56     <div class="row mt-2" *ngFor="let alert of newAlerts">
57       <div class="col-lg-4">{{getAlertTypeLabel(alert)}}</div>
58       <div class="col-lg-5">{{alert.note()}}</div>
59       <div class="col-lg-3">
60         <button type="button" class="btn btn-outline-danger" (click)="removeAlert(alert)" i18n>
61           Remove
62         </button>
63       </div>
64     </div>
65
66     <ng-container *ngIf="mode === 'manage'">
67       <!-- eventually we'll always be in 'manage' mode -->
68       <!-- if not in batch, list all the pertinent alerts linked to the copy -->
69       <!-- if in batch, use the alertsInCommon variable instead for some proxy alerts -->
70       <div class="row mt-2" 
71         *ngFor="let alert of inBatch() ? alertsInCommon : (copies.length ? copies[0].copy_alerts() : [])">
72         <div class="col-lg-12 pb-2"><hr/></div>
73         <div class="col-lg-4">
74           <eg-combobox [entries]="alertTypes" [selectedId]="alert.alert_type()"
75             i18n-placeholder placeholder="Alert Type..."
76             [mandatory]="true"
77             (onChange)="alert.alert_type($event ? $event.id : null); alert.ischanged(true)">
78           </eg-combobox>
79           <div *ngIf="!inBatch()" class="ps-2 pt-2" i18n>
80             Added: {{alert.create_time() | date:'shortDate'}}
81           </div>
82         </div>
83         <div class="col-lg-5">
84           <textarea class="form-control" rows="2" 
85             i18n-placeholder placeholder="Alert Note..."
86             (ngModelChange)="alert.note($event); alert.ischanged(true)"
87             [ngModel]="alert.note()">
88           </textarea>
89         </div>
90         <div class="col-lg-3">
91           <div class="d-flex flex-column">
92             <div class="form-check">
93               <input class="form-check-input" type="checkbox" 
94                 [ngModel]="alert.temp() === 't'" 
95                 (ngModelChange)="alert.temp($event ? 't' : 'f'); alert.ischanged(true)"
96                 id="alert-temporary-{{alert.id()}}">
97               <label class="form-label form-check-label" for="alert-temporary-{{alert.id()}}" i18n>
98                 Temporary?
99               </label>
100             </div>
101             <div class="form-check pt-2">
102               <input class="form-check-input" type="checkbox" 
103                 [ngModel]="alert.ack_time() !== null" 
104                 (ngModelChange)="alert.ack_time($event ? 'now' : null); alert.ischanged(true)"
105                 id="alert-temporary-{{alert.id()}}">
106               <label class="form-label form-check-label" for="alert-temporary-{{alert.id()}}" i18n>
107                 Clear?
108               </label>
109             </div>
110           </div>
111         </div>
112       </div>
113     </ng-container>
114   </div>
115   <div class="modal-footer">
116     <button type="button" class="btn btn-secondary" 
117       (click)="close()" i18n>Close</button>
118     <button type="button" class="btn btn-success me-2" 
119       (click)="applyChanges()" i18n>Apply Changes</button>
120   </div>
121 </ng-template>