]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/templates/staff/circ/patron/t_edit.tt2
LP#1452950 required/suggested/all fields selectors
[Evergreen.git] / Open-ILS / src / templates / staff / circ / patron / t_edit.tt2
1 [% DOC_IMG = '/images/question-mark.png' %]
2
3 <!-- register banner -->
4 <div ng-if="!patron_id" class='patron-reg-fixed-bar'>
5
6   <div class="container-fluid" style="text-align:center">
7     <div class="alert alert-info alert-less-pad strong-text-2">
8       <span >[% l('Register Patron') %]</span>
9     </div>
10   </div>
11
12   <div class="flex-row" class='patron-reg-actions-bar'>
13     [% INCLUDE 'staff/circ/patron/reg_actions.tt2' %]
14   </div>
15 </div>
16
17
18 <!-- edit banner -->
19 <div ng-if="patron_id"
20     class="strong-text-2">[% l('Patron Edit') %]</div>
21
22 <!-- IDL field documentation window -->
23 <fieldset id="reg-field-doc" ng-show="selected_field_doc">
24   <legend>
25   {{idl_fields[selected_field_doc.fm_class()][selected_field_doc.field()].label}}
26   </legend>
27   <div>{{selected_field_doc.string()}}</div>
28 </fieldset>
29
30 [% MACRO formfield(cls, field, path, input_type) BLOCK;
31
32   # input field generator for common text/number/checkbox fields
33
34   IF NOT input_type; input_type = 'text'; END %] 
35
36 <div class="row reg-field-row" 
37   ng-show="show_field('[% cls _ '.' _ field %]')">
38
39   <div class="col-md-3 reg-field-label"> <!-- field label -->
40
41     <label>{{idl_fields.[% cls %].[% field %].label}}</label>
42
43     <!-- field documentation img/link -->
44     <img ng-show="field_doc.[% cls %].[% field %]" 
45       ng-click="selected_field_doc=field_doc.[% cls %].[% field %]"
46       src='[% DOC_IMG %]'></img>
47   </div>
48
49   <div class="col-md-3 reg-field-input"> <!-- field form input -->
50
51   [% model = path ? 'patron.' _ path _ '.' _ field : 'patron.' _ field %]
52
53   [% IF input_type == 'checkbox' %]
54
55     <div class='checkbox'>
56       <input type='checkbox' ng-model='[% model %]'/>
57     </div>
58
59   [% ELSE %]
60     <!-- text / number input -->
61
62     [% IF field == 'alert_message' %]
63       <textarea class="form-control" ng-model="[% model %]"/>
64     [% ELSE %]
65       <input type="[% input_type %]" 
66         class="form-control" ng-model="[% model %]"/>
67     [% END %]
68   [% END %]
69
70   </div>
71
72   <!-- supplemental actions and example text -->
73   <div class="col-md-3 patron-reg-example">
74
75     [% IF field == 'barcode' %]
76
77       <button class="btn btn-default">[% l('Replace Barcode') %]</button>
78       <button class="btn btn-default">[% l('See All') %]</button>
79
80     [% ELSIF field == 'password' %]
81
82       <button class="btn btn-default">[% l('Generate Password') %]</button>
83
84     [% ELSE %]
85
86       <!-- example strings -->
87
88       [% set_str = "org_settings['ui.patron.edit." _ 
89           cls _ "." _ field _ ".example']"; %]
90
91       <span ng-if="[% set_str %]">
92         [% l('Example: [_1]', "{{" _ set_str _ "}}") %]
93       </span>
94
95       [% IF field.match('phone') %]
96         <!-- phones have a fall-through example option -->
97         <span ng-if="![% set_str %] && org_settings['ui.patron.edit.phone.example']">
98           [% l('Example: [_1]', 
99            "{{org_settings['ui.patron.edit.phone.example']}}") %]
100         </span>
101       [% END %]
102     [% END %]
103
104   </div>
105 </div>
106 [% END %]
107
108 [% formfield('ac', 'barcode', 'card') %]
109 [% formfield('au', 'usrname') %]
110 [% formfield('au', 'passwd') %]
111 [% formfield('au', 'prefix') %]
112 [% formfield('au', 'first_given_name') %]
113 [% formfield('au', 'second_given_name') %]
114 [% formfield('au', 'family_name') %]
115 [% formfield('au', 'suffix') %]
116 [% formfield('au', 'alias') %]
117
118 <div class="row reg-field-row" ng-show="show_field('au.dob')">
119   <div class="col-md-3 reg-field-label">
120     <label>{{idl_fields.au.dob.label}}</label>
121     <img ng-show="field_doc.au.dob" 
122       ng-click="selected_field_doc=field_doc.au.dob"
123       src='[% DOC_IMG %]'></img>
124   </div>
125   <div class="col-md-3 reg-field-input">
126     <input eg-date-input 
127       class="form-control" ng-model="patron.dob"/>
128   </div>
129 </div>
130
131 [% formfield('au', 'juvenile', '', 'checkbox') %]
132
133 <!-- ident_type -->
134
135 <div class="row reg-field-row" ng-show="show_field('au.ident_type')">
136   <div class="col-md-3 reg-field-label">
137     <label>{{idl_fields.au.ident_type.label}}</label>
138     <img ng-show="field_doc.au.ident_type" 
139       ng-click="selected_field_doc=field_doc.au.ident_type"
140       src='[% DOC_IMG %]'></img>
141   </div>
142   <div class="col-md-3 reg-field-input">
143     <div class="btn-group" dropdown>
144       <button type="button" class="btn btn-default dropdown-toggle">
145         <span style="padding-right: 5px;">
146           {{patron.ident_type.name() || "[% l('Primary Ident Type') %]"}}
147         </span>
148         <span class="caret"></span>
149       </button>
150       <ul class="dropdown-menu">
151         <li ng-repeat="type in ident_types">
152           <a href ng-click="patron.ident_type = type">{{type.name()}}</a>
153         </li>
154       </ul>
155     </div>
156   </div>
157 </div>
158
159
160 [% formfield('au', 'ident_value') %]
161 [% formfield('au', 'ident_value2') %]
162 [% formfield('au', 'email', '', 'email') %]
163 [% formfield('au', 'day_phone') %]
164 [% formfield('au', 'evening_phone') %]
165 [% formfield('au', 'other_phone') %]
166
167 <!-- home org unit selector -->
168
169 <div class="row reg-field-row" ng-show="show_field('au.home_ou')">
170   <div class="col-md-3 reg-field-label">
171     <label>{{idl_fields.au.home_ou.label}}</label>
172     <img ng-show="field_doc.au.home_ou" 
173       ng-click="selected_field_doc=field_doc.au.home_ou"
174       src='[% DOC_IMG %]'></img>
175     </div>
176     <div class="col-md-3 reg-field-input">
177       <eg-org-selector selected="patron.home_ou" onchange="">
178       </eg-org-selector>
179   </div>
180 </div>
181
182 <!-- profile selector -->
183
184 <div class="row reg-field-row" ng-show="show_field('au.profile')">
185   <div class="col-md-3 reg-field-label">
186     <label>{{idl_fields.au.profile.label}}</label>
187     <img ng-show="field_doc.au.profile" 
188       ng-click="selected_field_doc=field_doc.au.profile"
189       src='[% DOC_IMG %]'></img>
190   </div>
191   <div class="col-md-3 reg-field-input">
192     <div class="btn-group" dropdown>
193       <button type="button" class="btn btn-default dropdown-toggle">
194         <span style="padding-right: 5px;">
195           {{patron.profile.name() || "[% l('Profile Group') %]"}}
196         </span>
197         <span class="caret"></span>
198       </button>
199       <ul class="dropdown-menu">
200         <li ng-repeat="grp in profiles">
201           <a href 
202             style="padding-left: {{pgt_depth(grp) * 10 + 5}}px"
203             ng-click="patron.profile = grp">{{grp.name()}}</a>
204         </li>
205       </ul>
206     </div>
207   </div>
208 </div>
209
210 <div class="row reg-field-row" ng-show="show_field('au.expire_date')">
211   <div class="col-md-3 reg-field-label">
212   <label>{{idl_fields.au.expire_date.label}}</label>
213     <img ng-show="field_doc.au.expire_date" 
214     ng-click="selected_field_doc=field_doc.au.expire_date"
215     src='[% DOC_IMG %]'></img>
216   </div>
217   <div class="col-md-3 reg-field-input">
218     <input eg-date-input 
219       class="form-control" ng-model="patron.expire_date"/>
220   </div>
221   <div class="col-md-3">
222     <button class="btn btn-default">[% l('Update Expire Date') %]</button>
223   </div>
224 </div>
225
226 <!-- net_access_level -->
227
228 <div class="row reg-field-row" ng-show="show_field('au.net_access_level')">
229   <div class="col-md-3 reg-field-label">
230     <label>{{idl_fields.au.net_access_level.label}}</label>
231     <img ng-show="field_doc.au.net_access_level" 
232       ng-click="selected_field_doc=field_doc.au.net_access_level"
233       src='[% DOC_IMG %]'></img>
234   </div>
235   <div class="col-md-3 reg-field-input">
236     <div class="btn-group" dropdown>
237       <button type="button" class="btn btn-default dropdown-toggle">
238         <span style="padding-right: 5px;">
239           {{patron.net_access_level.name() || "[% l('Net Access Level') %]"}}
240         </span>
241         <span class="caret"></span>
242       </button>
243       <ul class="dropdown-menu">
244         <li ng-repeat="level in net_access_levels">
245           <a href 
246             ng-click="patron.net_access_level = level">{{level.name()}}</a>
247         </li>
248       </ul>
249     </div>
250   </div>
251 </div>
252
253 [% formfield('au', 'active', '', 'checkbox') %]
254 [% formfield('au', 'barred', '', 'checkbox') %]
255 [% formfield('au', 'master_account', '', 'checkbox') %]
256 [% formfield('au', 'claims_returned_count', '', 'number') %]
257 [% formfield('au', 'claims_never_checked_out_count', '', 'number') %]
258 [% formfield('au', 'alert_message') %]
259
260 <div class="alert alert-success row" role="alert">
261   <div class="col-md-6">[% l('User Settings') %]</div>
262 </div>
263
264 <div class="row reg-field-row">
265   <div class="col-md-3 reg-field-label">
266     <label>{{user_setting_types['opac.default_phone'].label()}}</label>
267   </div>
268   <div class="col-md-3 reg-field-input">
269     <input type='text' ng-model="user_settings['opac.default_phone']"/>
270   </div>
271 </div>
272
273 <div class="row reg-field-row">
274   <div class="col-md-3 reg-field-label">
275     <label>{{user_setting_types['opac.default_pickup_location'].label()}}</label>
276   </div>
277   <div class="col-md-3 reg-field-input">
278     <eg-org-selector selected="patron.home_ou" onchange=""></eg-org-selector>
279   </div>
280 </div>
281
282 <div class="row reg-field-row">
283   <div class="col-md-3 reg-field-label">
284     <label>{{user_setting_types['circ.holds_behind_desk'].label()}}</label>
285   </div>
286   <div class="col-md-3 reg-field-input">
287     <div class='checkbox'>
288       <input type='checkbox' ng-model="user_settings['circ.holds_behind_desk']"/>
289     </div>
290   </div>
291 </div>
292
293 <div class="row reg-field-row">
294   <div class="col-md-3 reg-field-label">
295     <label>[% l('Holds Notices') %]</label>
296   </div>
297   <div class="col-md-3 reg-field-input flex-row">
298     <div class='flex-cell'>
299       <input type='checkbox' ng-model="hold_notify_phone"/>
300       [% l('Phone') %]
301     </div>
302     <div class='flex-cell'>
303       <input type='checkbox' ng-model="hold_notify_email"/>
304       [% l('Email') %]
305     </div>
306     <div class='flex-cell'>
307       <input type='checkbox' ng-model="hold_notify_sms"/>
308       [% l('SMS') %]
309     </div>
310   </div>
311 </div>
312
313 <div class="row reg-field-row" ng-if="org_settings['sms.enable']">
314   <div class="col-md-3 reg-field-label">
315     <label>[% l('Default SMS/Text Number') %]</label>
316   </div>
317   <div class="col-md-3 reg-field-input">
318     <input type='text'/>
319   </div>
320 </div>
321
322 <div class="row reg-field-row" ng-if="org_settings['sms.enable']">
323   <div class="col-md-3 reg-field-label">
324     <label>[% l('Default SMS Carrier') %]</label>
325   </div>
326   <div class="col-md-3 reg-field-input">
327     <div class="btn-group" dropdown>
328       <button type="button" class="btn btn-default dropdown-toggle">
329         <span style="padding-right: 5px;"></span>
330         <span class="caret"></span>
331       </button>
332       <ul class="dropdown-menu">
333         <li ng-repeat="carrier in sms_carriers">
334           <a href 
335             ng-click="user_settings['opac.default_sms_carrier'] = carrier">
336                 {{carrier.name()}}
337           </a>
338         </li>
339       </ul>
340     </div>
341   </div>
342 </div>
343
344 <div class="alert alert-success row" role="alert">
345     <div class="col-md-3">[% l('Address') %]</div>
346     <div class="col-md-3">
347         <span class='pad-all-min'>
348           [% l('Mailing') %] <input type='checkbox'/>
349         </span>
350         <span class='pad-all-min'>
351           [% l('Physical') %] <input type='checkbox'/>
352         </span>
353         <span class='pad-all-min'>
354           <button type="button" class="btn btn-danger">[% l('X') %]</button>
355         </span>
356     </div>
357 </div>
358
359 <!-- addresses -->
360
361 [% formfield('aua', 'address_type', 'mailing_address') %]
362 [% formfield('aua', 'post_code', 'mailing_address') %]
363 [% formfield('aua', 'street1', 'mailing_address') %]
364 [% formfield('aua', 'street2', 'mailing_address') %]
365 [% formfield('aua', 'city', 'mailing_address') %]
366 [% formfield('aua', 'county', 'mailing_address') %]
367 [% formfield('aua', 'state', 'mailing_address') %]
368 [% formfield('aua', 'country', 'mailing_address') %]
369 [% formfield('aua', 'valid', 'mailing_address', 'checkbox') %]
370 [% formfield('aua', 'within_city_limits', 'mailing_address', 'checkbox') %]
371
372 <div class="row">
373   <button type="button" class="btn btn-success">[% l('New Address') %]</button>
374 </div>
375
376 <!-- pending address -->
377
378 <div class="alert alert-success row" role="alert" 
379     ng-show="show_field('stat_cats')" ng-if="stat_cats.length > 0">
380     <div class="col-md-6">[% l('Statistical Categories') %]</div>
381 </div>
382
383 <div class="row reg-field-row" 
384     ng-show="show_field('stat_cats')" ng-repeat="cat in stat_cats">
385   <div class="col-md-3 reg-field-label">
386     <label>{{cat.name()}}</label>
387   </div>
388   <div class="col-md-3 reg-field-input">
389     <div ng-if="cat.entries().length == 0">
390       <input type="text" class="form-control"/>
391     </div>
392     <div ng-if="cat.entries().length != 0">
393       <div class="btn-group" dropdown>
394         <button type="button" class="btn btn-default dropdown-toggle">
395           <span style="padding-right: 5px;"></span>
396           <span class="caret"></span>
397         </button>
398         <ul class="dropdown-menu">
399           <li ng-repeat="entry in cat.entries()">
400             <a href ng-click=""> {{entry.value()}} </a>
401           </li>
402         </ul>
403       </div>
404     </div>
405   </div>
406 </div>
407
408 <!-- surveys -->
409
410 <div class="alert alert-success row" role="alert" 
411     ng-show="show_field('surveys')" ng-if="surveys.length > 0">
412     <div class="col-md-6">[% l('Surveys') %]</div>
413 </div>
414
415 <div class="row reg-field-row" 
416     ng-show="show_field('surveys')" ng-repeat="survey in surveys">
417   <div class="col-md-3 reg-field-label">
418     <label>{{survey.name()}}</label>
419   </div>
420   <div class="col-md-3 reg-field-input">
421     <div class="btn-group" dropdown>
422       <button type="button" class="btn btn-default dropdown-toggle">
423         <span style="padding-right: 5px;"></span>
424         <span class="caret"></span>
425       </button>
426       <ul class="dropdown-menu">
427         <li ng-repeat="question in survey.questions()">
428           <a href ng-click=""> {{question.question()}} </a>
429         </li>
430       </ul>
431     </div>
432   </div>
433 </div>
434
435
436