65dfb71a770c52d98fa69b4afd6115b0b75469fb
[evergreen-equinox.git] / Open-ILS / src / eg2 / src / app / staff / admin / local / course-reserves / course-associate-material.component.html
1 <eg-string #deleteFailedString i18n-text text="Disassociation of Course Material failed or was not allowed"></eg-string>
2 <eg-string #deleteSuccessString i18n-text text="Disassociation of Course Material succeeded"></eg-string>
3 <eg-string #successString i18n-text text="Association of Course Material succeeded"></eg-string>
4 <eg-string #failedString i18n-text text="Association of Course Material failed or was not allowed"></eg-string>
5 <eg-string #differentLibraryString i18n-text text="Material exists at a different library"></eg-string>
6
7 <ng-template #dialogContent>
8   <div class="modal-header bg-info">
9     <h4 class="modal-title" i18n>Course Materials</h4>
10     <button type="button" class="close"
11       i18n-aria-label aria-label="Close" (click)="close()">
12       <span aria-hidden="true">&times;</span>
13     </button>
14   </div>
15   <div class="modal-body">
16     <div class="row mt-3">
17       <div class="col-md-4">
18         <div class="input-group">
19           <div class="input-group-prepend">
20             <span class="input-group-text" i18n>Barcode</span>
21           </div>
22           <input type="text" [(ngModel)]="barcodeInput" 
23             (click)="$event.target.select()"
24             (keyup.enter)="associateItem(barcodeInput, relationshipInput)" />
25         </div>
26       </div>
27       <div class="col-md-5">
28         <div class="input-group">
29           <div class="input-group-prepend">
30             <span class="input-group-text" i18n>Relationship</span>
31           </div>
32           <input type="text" [(ngModel)]="relationshipInput" placeholder-i18n placeholder="e.g. Required" />
33         </div>
34       </div>
35       <div class="col-md-3">
36         <button class="btn btn-outline-dark" (click)="associateItem(barcodeInput, relationshipInput)" i18n [disabled]="!barcodeInput">Add Material</button>
37       </div>
38     </div>
39     <div class="row justify-content-center mt-3">
40       <div class="col">
41         <h5 i18n>The following fields will be applied to the material added, and reverted once the course is no longer associated with the material.</h5>
42       </div>
43     </div>
44     <div class="row mt-3">
45       <div class="col-md-6">
46         <div class="input-group">
47           <div class="input-group-prepend">
48             <div class="input-group-text">
49               <span i18n>Call Number</span>
50             </div>
51           </div>
52           <input type="text" [(ngModel)]="tempCallNumber"
53             (input)="isModifyingCallNumber = true"/>
54           <div class="input-group-append">
55             <div class="input-group-text">
56               <input type="checkbox" [(ngModel)]="isModifyingCallNumber"
57                 aria-label="Checkbox for setting a temporary Call Number" />
58             </div>
59           </div>
60         </div>
61       </div>
62       <div class="col-md-6">
63         <div class="input-group">
64           <div class="input-group-prepend">
65             <div class="input-group-text">
66               <span i18n>Circulation Modifier</span>
67             </div>
68           </div>
69           <eg-combobox i18n-placeholder placeholder="Circulation Modifier..."
70             idlClass="ccm" idlField="name" [displayTemplate]="idlClassLabel"
71             [asyncSupportsEmptyTermClick]="true"
72             (onChange)="tempCircMod = $event.id; isModifyingCircMod = true">
73           </eg-combobox>
74           <div class="input-group-append">
75             <div class="input-group-text">
76               <input type="checkbox" [(ngModel)]="isModifyingCircMod"
77                 aria-label="Checkbox for setting a temporary Circulation Modifier" />
78             </div>
79           </div>
80         </div>
81       </div>
82     </div>
83     <div class="row mt-3">
84       <div class="col-md-6">
85         <div class="input-group">
86           <div class="input-group-prepend">
87             <div class="input-group-text">
88               <span i18n>Item Status</span>
89             </div>
90           </div>
91           <eg-combobox i18n-placeholder placeholder="Item Status..."
92             idlClass="ccs" idlField="name" [displayTemplate]="idlClassLabel"
93             [asyncSupportsEmptyTermClick]="true"
94             (onChange)="tempStatus = $event.id; isModifyingStatus = true">
95           </eg-combobox>
96           <div class="input-group-append">
97             <div class="input-group-text">
98               <input type="checkbox" [(ngModel)]="isModifyingStatus"
99                 aria-label="Checkbox for setting a temporary Item Status" />
100             </div>
101           </div>
102         </div>
103       </div>
104       <div class="col-md-6">
105         <div class="input-group">
106           <div class="input-group-prepend">
107             <div class="input-group-text">
108               <span i18n>Shelving Location</span>
109             </div>
110           </div>
111           <eg-item-location-select permFilter="MANAGE_RESERVES"
112             [(ngModel)]="tempLocation" (oninput)="isModifyingLocation = true"
113             (valueChange)="isModifyingLocation = true">
114           </eg-item-location-select>
115           <div class="input-group-append">
116             <div class="input-group-text">
117               <input type="checkbox" [(ngModel)]="isModifyingLocation"
118                 aria-label="Checkbox for setting a temporary Shelving Location" />
119             </div>
120           </div>
121         </div>
122       </div>
123     </div>
124
125     <div class="mt-3">
126       <eg-grid #materialGrid [dataSource]="gridDataSource">
127         <eg-grid-toolbar-action label="Delete Selected" i18n-label (onClick)="deleteSelected($event)">
128         </eg-grid-toolbar-action>
129
130         <eg-grid-column path="id" [index]=true [hidden]="true" label="ID" i18n-label></eg-grid-column>
131         <eg-grid-column label="Barcode" i18n-label name="barcode" [cellTemplate]="barcodeCellTemplate"></eg-grid-column>
132         <eg-grid-column label="Title" i18n-label name="title" [cellTemplate]="titleCellTemplate"></eg-grid-column>
133         <eg-grid-column path="call_number.label" label="Call Number" i18n-label></eg-grid-column>
134         <eg-grid-column path="call_number.prefix.label" [hidden]="true" label="Call Number Prefix" i18n-label hidden></eg-grid-column>
135         <eg-grid-column path="call_number.suffix.label" [hidden]="true" label="Call Number Suffix" i18n-label hidden></eg-grid-column>
136         <eg-grid-column path="circ_modifier" [hidden]="true" label="Circulation Modifier" i18n-label></eg-grid-column>
137         <eg-grid-column path="circ_lib.shortname" label="Circulation Library" i18n-label></eg-grid-column>
138         <eg-grid-column path="location.name" [hidden]="true" label="Shelving Location" i18n-label></eg-grid-column>
139         <eg-grid-column path="status.name" [hidden]="true" label="Copy Status" i18n-label></eg-grid-column>
140         <eg-grid-column path="_relationship" label="Relationship" i18n-label></eg-grid-column>
141       </eg-grid>
142     </div>
143   </div>
144   <ng-template #barcodeCellTemplate let-entry="row">
145     <span>
146       <a class="pl-1"
147         href="/eg/staff/cat/item/{{entry.id()}}">
148         {{entry.barcode()}}
149       </a>
150     </span>
151   </ng-template>
152   <ng-template #titleCellTemplate let-entry="row">
153     <span>
154       <a class="pl-1"
155         href="/eg/staff/cat/catalog/record/{{entry.call_number().record()}}">
156         {{entry._title}}
157       </a>
158     </span>
159   </ng-template>
160   <ng-template #idlClassLabel let-r="result" i18n>
161     {{r.label}}
162   </ng-template>
163 </ng-template>