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