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