1 <style type="text/css">
2 .css-form input.ng-invalid {
3 background-color: #FA787E;
5 .css-form select.ng-invalid {
6 background-color: #FA787E;
9 <div class="container-fluid"><form novalidate class="css-form" name="forms.myForm">
10 <div class="row bg-info">
11 <div class="col-md-1">
12 <h5>[% l('Template') %]</h5>
14 <div class="col-md-2">
15 <eg-basic-combo-box list="template_name_list" selected="template_name"></eg-basic-combo-box>
17 <div class="col-md-1">
18 <button class="btn btn-default " ng-click="applyTemplate(template_name)" type="button">[% l('Apply') %]</button>
20 <div class="col-md-6">
21 <div class="row" ng-show="template_controls">
22 <div class="col-md-4">
23 <div class="btn-group">
24 <label class="btn btn-default" ng-click="saveTemplate(template_name)">[% l('Save') %]</label>
25 <label class="btn btn-default" ng-click="deleteTemplate(template_name)">[% l('Delete') %]</label>
28 <div class="col-md-8">
29 <div class="btn-group pull-right">
30 <span class="btn btn-default btn-file">
32 <input type="file" eg-file-reader container="imported_templates.data">
34 <label class="btn btn-default"
35 eg-json-exporter container="templates"
36 default-file-name="'[% l('exported_copy_templates.json') %]'">
43 <div class="col-md-2">
44 <button class="btn btn-default pull-right" ng-click="clearWorking()" type="button">[% l('Clear') %]</button>
48 <div class="row pad-vert" ng-if="template_controls && defaults.show_vol_template_controls">
50 <div class="col-xs-12">
51 <h4 class="center-block">[% l('Volume Attributes') %]</h4>
56 <div class="row pad-vert" ng-if="template_controls && defaults.show_vol_template_controls">
57 <div class="col-md-1 bg-info">
58 <b>[% l('Classification') %]</b>
60 <div class="nullable col-md-2" ng-class="{'bg-success': working.callnumber.classification !== undefined}">
61 <select class="form-control" ng-model="working.callnumber.classification" ng-options="cl.id() as cl.name() for cl in classification_list">
62 <option value="">[% l('<NONE>') %]</option>
65 <div class="col-md-1 bg-info">
66 <b>[% l('Prefix') %]</b>
68 <div class="nullable col-xs-2" ng-class="{'bg-success': working.callnumber.prefix !== undefined}">
69 <select class="form-control" ng-model="working.callnumber.prefix" ng-options="p.id() as p.label() for p in prefix_list">
70 <option value="">[% l('<NONE>') %]</option>
73 <div class="col-md-1 bg-info">
74 <b>[% l('Suffix') %]</b>
76 <div class="nullable col-md-2" ng-class="{'bg-success': working.callnumber.suffix !== undefined}">
77 <select class="form-control" ng-model="working.callnumber.suffix" ng-options="s.id() as s.label() for s in suffix_list">
78 <option value="">[% l('<NONE>') %]</option>
83 <div class="row pad-vert" ng-if="template_controls && defaults.show_vol_template_controls">
85 <div class="col-xs-12">
86 <h4 class="center-block">[% l('Copy Attributes') %]</h4>
91 <div class="row pad-vert"></div>
93 <div class="row bg-info">
94 <div class="col-md-4">
95 <b>[% l('Circulate?') %]</b>
97 <div class="col-md-4">
98 <b>[% l('Status') %]</b>
100 <div class="col-md-4">
101 <b>[% l('Copy Alert') %]</b>
106 <div class="col-md-8">
108 <div class="col-md-6" ng-class="{'bg-success': working.circulate !== undefined}">
110 <div class="col-xs-3">
112 <input type="radio" ng-disabled="!defaults.attributes.circulate" ng-model="working.circulate" value="t"/>
116 <div class="col-xs-3">
118 <input type="radio" ng-disabled="!defaults.attributes.circulate" ng-model="working.circulate" value="f"/>
124 <div class="col-md-6" ng-class="{'bg-success': working.status !== undefined}">
125 <select class="form-control"
126 ng-disabled="!defaults.attributes.status" ng-model="working.status"
127 ng-options="s.id() as s.name() disable when magic_status_list.indexOf(s.id(),0) > -1 for s in status_list">
132 <div class="row pad-vert"></div>
134 <div class="row bg-info">
135 <div class="col-md-6">
136 <b>[% l('Circulation Library') %]</b>
138 <div class="col-md-6">
139 <b>[% l('Reference?') %]</b>
145 <div class="col-md-6" ng-class="{'bg-success': working.circ_lib !== undefined}">
147 alldisabled="{{!defaults.attributes.circ_lib}}"
148 selected="working.circ_lib"
150 label="[% l('(Unset)') %]"
151 disable-test="cant_have_vols"
154 <div class="col-md-6" ng-class="{'bg-success': working.ref !== undefined}">
156 <div class="col-xs-3">
158 <input type="radio" ng-disabled="!defaults.attributes.ref" ng-model="working.ref" value="t"/>
162 <div class="col-xs-3">
164 <input type="radio" ng-disabled="!defaults.attributes.ref" ng-model="working.ref" value="f"/>
172 <div class="row pad-vert"></div>
174 <div class="row bg-info">
175 <div class="col-md-6">
176 <b>[% l('Shelving Location') %]</b>
178 <div class="col-md-6">
179 <b>[% l('OPAC Visible?') %]</b>
184 <div class="col-md-6" ng-class="{'bg-success': working.location !== undefined}">
185 <select class="form-control"
186 ng-disabled="!defaults.attributes.location" ng-model="working.location"
187 ng-options="l.id() as i18n.ou_qualified_location_name(l) for l in location_list"
190 <div class="col-md-6" ng-class="{'bg-success': working.opac_visible !== undefined}">
192 <div class="col-xs-3">
194 <input type="radio" ng-disabled="!defaults.attributes.opac_visible" ng-model="working.opac_visible" value="t"/>
198 <div class="col-xs-3">
200 <input type="radio" ng-disabled="!defaults.attributes.opac_visible" ng-model="working.opac_visible" value="f"/>
208 <div class="row pad-vert"></div>
210 <div class="row bg-info">
211 <div class="col-md-6">
212 <b>[% l('Circulation Modifer') %]</b>
214 <div class="col-md-6">
215 <b>[% l('Price') %]</b>
220 <div class="nullable col-md-6" ng-class="{'bg-success': working.circ_modifier !== undefined}">
221 <select class="form-control"
222 ng-disabled="!defaults.attributes.circ_modifier" ng-model="working.circ_modifier"
223 ng-options="m.code() as m.name() for m in circ_modifier_list | orderBy: 'name()'"
225 <option value="">[% l('<NONE>') %]</option>
228 <div class="col-md-6" ng-class="{'bg-success': working.price !== undefined}">
229 <input class="form-control" ng-disabled="!defaults.attributes.price" str-to-float ng-model="working.price" type="number" step="0.01"/>
233 <div class="row pad-vert"></div>
235 <div class="row bg-info">
236 <div class="col-md-6">
237 <b>[% l('Loan Duration') %]</b>
239 <div class="col-md-6">
240 <b>[% l('Acquisition Cost') %]</b>
245 <div class="col-md-6" ng-class="{'bg-success': working.loan_duration !== undefined}">
246 <select class="form-control" int-to-str ng-disabled="!defaults.attributes.loan_duration" ng-model="working.loan_duration">
247 <option value="1">[% l('Short') %]</option>
248 <option value="2" selected>[% l('Normal') %]</option>
249 <option value="3">[% l('Extended') %]</option>
252 <div class="col-md-6" ng-class="{'bg-success': working.cost !== undefined}">
253 <input class="form-control" ng-disabled="!defaults.attributes.cost" str-to-float ng-model="working.cost" type="number" step="0.01"/>
257 <div class="row pad-vert"></div>
259 <div class="row bg-info">
260 <div class="col-md-6">
261 <b>[% l('Circulate as Type') %]</b>
263 <div class="col-md-6">
264 <b>[% l('Deposit?') %]</b>
269 <div class="nullable col-md-6" ng-class="{'bg-success': working.circ_as_type !== undefined}">
270 <select class="form-control"
271 ng-disabled="!defaults.attributes.circ_as_type" ng-model="working.circ_as_type"
272 ng-options="t.code() as t.value() for t in circ_type_list">
273 <option value="">[% l('<NONE>') %]</option>
276 <div class="col-md-6" ng-class="{'bg-success': working.deposit !== undefined}">
278 <div class="col-xs-3">
280 <input type="radio" ng-disabled="!defaults.attributes.deposit" ng-model="working.deposit" value="t"/>
284 <div class="col-xs-3">
286 <input type="radio" ng-disabled="!defaults.attributes.deposit" ng-model="working.deposit" value="f"/>
294 <div class="row pad-vert"></div>
296 <div class="row bg-info">
297 <div class="col-md-6">
298 <b>[% l('Holdable?') %]</b>
300 <div class="col-md-6">
301 <b>[% l('Deposit Amount') %]</b>
306 <div class="col-md-6" ng-class="{'bg-success': working.holdable !== undefined}">
308 <div class="col-xs-3">
310 <input type="radio" ng-disabled="!defaults.attributes.holdable" ng-model="working.holdable" value="t"/>
314 <div class="col-xs-3">
316 <input type="radio" ng-disabled="!defaults.attributes.holdable" ng-model="working.holdable" value="f"/>
322 <div class="col-md-6" ng-class="{'bg-success': working.deposit_amount !== undefined}">
323 <input class="form-control" ng-disabled="!defaults.attributes.deposit_amount" str-to-float ng-model="working.deposit_amount" type="number" step="0.01"/>
327 <div class="row pad-vert"></div>
329 <div class="row bg-info">
330 <div class="col-md-6">
331 <b>[% l('Age-based Hold Protection') %]</b>
333 <div class="col-md-6">
334 <b>[% l('Quality') %]</b>
339 <div class="col-md-6" ng-class="{'bg-success': working.age_protect !== undefined}">
340 <select class="form-control"
341 ng-disabled="!defaults.attributes.age_protect" ng-model="working.age_protect"
342 ng-options="a.id() as a.name() for a in age_protect_list"
345 <div class="col-md-6" ng-class="{'bg-success': working.mint_condition !== undefined}">
347 <div class="col-xs-3">
349 <input type="radio" ng-disabled="!defaults.attributes.mint_condition" ng-model="working.mint_condition" value="t"/>
353 <div class="col-xs-3">
355 <input type="radio" ng-disabled="!defaults.attributes.mint_condition" ng-model="working.mint_condition" value="f"/>
363 <div class="row pad-vert"></div>
365 <div class="row bg-info">
366 <div class="col-md-6">
367 <b>[% l('Fine Level') %]</b>
372 <div class="col-md-6" ng-class="{'bg-success': working.fine_level !== undefined}">
373 <select class="form-control" int-to-str ng-disabled="!defaults.attributes.fine_level" ng-model="working.fine_level">
374 <option value="1">[% l('Low') %]</option>
375 <option value="2" selected>[% l('Normal') %]</option>
376 <option value="3">[% l('High') %]</option>
379 <div class="col-md-6">
381 class="btn btn-default"
382 ng-disabled="!defaults.copy_notes"
383 ng-click="copy_notes_dialog(workingGridControls.selectedItems())"
385 [% l('Copy Notes') %]
388 class="btn btn-default"
389 ng-disabled="!defaults.copy_alerts"
390 ng-click="copy_alerts_dialog(workingGridControls.selectedItems())"
392 [% l('Copy Alerts') %]
397 <div class="row pad-vert"></div>
399 <div class="row bg-info">
400 <div class="col-md-6">
401 <b>[% l('Floating') %]</b>
406 <div class="col-md-6" ng-class="{'bg-success': working.floating !== undefined}">
407 <select class="form-control"
408 ng-disabled="!defaults.attributes.floating" ng-model="working.floating"
409 ng-options="a.id() as a.name() for a in floating_list"
412 <div class="col-md-6">
414 class="btn btn-default"
415 ng-disabled="!defaults.copy_tags"
416 ng-click="copy_tags_dialog(workingGridControls.selectedItems())"
424 <div class="col-md-4">
427 <div class="col-xs-12">
429 <div class="nullable col-xs-12">
430 <input class="form-control" type="text" ng-model="working.alert_message"
431 ng-disabled="!defaults.attributes.alert_message" placeholder="Alert message" />
437 <div class="row pad-vert"></div>
439 <div class="col-xs-12">
440 <div class="row bg-info">
441 <div class="col-xs-12">
442 <b>Statistical Categories</b>
446 <select class="form-control" ng-disabled="!defaults.statcats"
447 ng-model="working.statcat_filter"
448 ng-options="o.id() as o.shortname() for o in statcat_filter_list">
449 <option value="">[% l('Filter by Library') %]</option>
455 <div class="row pad-vert"></div>
457 <div class="row" ng-repeat="sc in statcats" ng-show="statcat_visible(sc.owner().id())">
458 <div class="col-xs-12">
459 <div class="row bg-info">
460 <div class="col-xs-12">
461 <span>{{ sc.owner().name() }} : {{ sc.name() }}</span>
465 <div class="nullable col-xs-12" ng-class="{'bg-success': working.statcats[sc.id()] !== undefined}">
466 <select class="form-control" ng-disabled="!defaults.statcats"
467 ng-change="statcatUpdate(sc.id())"
468 ng-model="working.statcats[sc.id()]"
469 ng-options="e.id() as e.value() for e in sc.entries()"
470 ng-required="sc.required() == 't'">
471 <option value="">[% l('<NONE>') %]</option>