1 [% DOC_IMG = '/images/question-mark.png' %]
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>
12 <div ng-if="patron_id"
13 class="strong-text-2">[% l('Patron Edit') %]</div>
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>
20 <div class="pad-all-min">
21 <button type="button" class="btn btn-default">[% l('Save & Clone') %]</button>
23 <div class="pad-all-min" ng-show="!display_required_fields">
24 <a href>[% l('Required Fields') %]</a>
26 <div class="pad-all-min" ng-show="!display_suggested_fields">
27 <a href>[% l('Suggested Fields') %]</a>
29 <div class="pad-all-min" ng-show="!display_all_fields">
30 <a href>[% l('All Fields') %]</a>
32 <fieldset id="reg-field-doc" ng-show="selected_field_doc">
34 {{idl_fields[selected_field_doc.fm_class()][selected_field_doc.field()].label}}
36 <div>{{selected_field_doc.string()}}</div>
40 [% MACRO formfield(cls, field, path, input_type) BLOCK;
42 # input field generator for common text/number/checkbox fields
44 IF NOT input_type; input_type = 'text'; END %]
46 <div class="row reg-field-row">
48 <div class="col-md-3 reg-field-label"> <!-- field label -->
50 <label>{{idl_fields.[% cls %].[% field %].label}}</label>
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>
58 <div class="col-md-3 reg-field-input"> <!-- field form input -->
60 [% model = path ? 'patron.' _ path _ '.' _ field : 'patron.' _ field %]
62 [% IF input_type == 'checkbox' %]
64 <div class='checkbox'>
65 <input type='checkbox' ng-model='[% model %]'/>
69 <!-- text / number input -->
71 [% IF field == 'alert_message' %]
72 <textarea class="form-control" ng-model="[% model %]"/>
74 <input type="[% input_type %]"
75 class="form-control" ng-model="[% model %]"/>
81 <!-- supplemental actions and example text -->
82 <div class="col-md-3 patron-reg-example">
84 [% IF field == 'barcode' %]
86 <button class="btn btn-default">[% l('Replace Barcode') %]</button>
87 <button class="btn btn-default">[% l('See All') %]</button>
89 [% ELSIF field == 'password' %]
91 <button class="btn btn-default">[% l('Generate Password') %]</button>
95 <!-- example strings -->
97 [% set_str = "org_settings['ui.patron.edit." _
98 cls _ "." _ field _ ".example']"; %]
100 <span ng-if="[% set_str %]">
101 [% l('Example: [_1]', "{{" _ set_str _ "}}") %]
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']}}") %]
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') %]
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>
134 <div class="col-md-3 reg-field-input">
136 class="form-control" ng-model="patron.dob"/>
140 [% formfield('au', 'juvenile', '', 'checkbox') %]
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>
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') %]"}}
157 <span class="caret"></span>
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>
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') %]
176 <!-- home org unit selector -->
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>
185 <div class="col-md-3 reg-field-input">
186 <eg-org-selector selected="patron.home_ou" onchange="">
191 <!-- profile selector -->
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>
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') %]"}}
206 <span class="caret"></span>
208 <ul class="dropdown-menu">
209 <li ng-repeat="grp in profiles">
211 style="padding-left: {{pgt_depth(grp) * 10 + 5}}px"
212 ng-click="patron.profile = grp">{{grp.name()}}</a>
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>
226 <div class="col-md-3 reg-field-input">
228 class="form-control" ng-model="patron.expire_date"/>
230 <div class="col-md-3">
231 <button class="btn btn-default">[% l('Update Expire Date') %]</button>
235 <!-- net_access_level -->
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>
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') %]"}}
250 <span class="caret"></span>
252 <ul class="dropdown-menu">
253 <li ng-repeat="level in net_access_levels">
255 ng-click="patron.net_access_level = level">{{level.name()}}</a>
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') %]
269 <div class="alert alert-success row" role="alert">
270 <div class="col-md-6">[% l('User Settings') %]</div>
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>
277 <div class="col-md-3 reg-field-input">
278 <input type='text' ng-model="user_settings['opac.default_phone']"/>
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>
286 <div class="col-md-3 reg-field-input">
287 <eg-org-selector selected="patron.home_ou" onchange=""></eg-org-selector>
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>
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']"/>
302 <div class="row reg-field-row">
303 <div class="col-md-3 reg-field-label">
304 <label>[% l('Holds Notices') %]</label>
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"/>
311 <div class='flex-cell'>
312 <input type='checkbox' ng-model="hold_notify_email"/>
315 <div class='flex-cell'>
316 <input type='checkbox' ng-model="hold_notify_sms"/>
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>
326 <div class="col-md-3 reg-field-input">
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>
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>
341 <ul class="dropdown-menu">
342 <li ng-repeat="carrier in sms_carriers">
344 ng-click="user_settings['opac.default_sms_carrier'] = carrier">
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'/>
359 <span class='pad-all-min'>
360 [% l('Physical') %] <input type='checkbox'/>
362 <span class='pad-all-min'>
363 <button type="button" class="btn btn-danger">[% l('X') %]</button>
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') %]
382 <button type="button" class="btn btn-success">[% l('New Address') %]</button>
385 <!-- pending address -->
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>
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>
395 <div class="col-md-3 reg-field-input">
396 <div ng-if="cat.entries().length == 0">
397 <input type="text" class="form-control"/>
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>
405 <ul class="dropdown-menu">
406 <li ng-repeat="entry in cat.entries()">
407 <a href ng-click=""> {{entry.value()}} </a>
417 <div class="alert alert-success row" role="alert" ng-if="surveys.length > 0">
418 <div class="col-md-6">[% l('Surveys') %]</div>
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>
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>
431 <ul class="dropdown-menu">
432 <li ng-repeat="question in survey.questions()">
433 <a href ng-click=""> {{question.question()}} </a>