1 [% DOC_IMG = '/images/question-mark.png' %]
3 <div class="strong-text-2">[% l('Patron Edit') %]</div>
5 <!-- IDL field documentation window -->
6 <div id="reg-control-actions">
7 <div class="pad-all-min">
8 <button type="button" class="btn btn-default">[% l('Save') %]</button>
9 <button type="button" class="btn btn-default">[% l('Save & Clone') %]</button>
11 <div class="pad-all-min" ng-show="!display_required_fields">
12 <a href>[% l('Show Only Required Fields') %]</a>
14 <div class="pad-all-min" ng-show="!display_suggested_fields">
15 <a href>[% l('Show Suggested Fields') %]</a>
17 <div class="pad-all-min" ng-show="!display_all_fields">
18 <a href>[% l('Show All Fields') %]</a>
20 <fieldset id="reg-field-doc" ng-show="selected_field_doc">
22 {{idl_fields[selected_field_doc.fm_class()][selected_field_doc.field()].label}}
24 <div>{{selected_field_doc.string()}}</div>
28 [% MACRO formfield(cls, field, path, input_type) BLOCK;
30 # input field generator for common text/number/checkbox fields
32 IF NOT input_type; input_type = 'text'; END %]
34 <div class="row pad-all-min2 form-group">
36 <div class="col-md-3 reg-field-label"> <!-- field label -->
38 <label>{{idl_fields.[% cls %].[% field %].label}}</label>
40 <!-- field documentation img/link -->
41 <img ng-show="field_doc.[% cls %].[% field %]"
42 ng-click="selected_field_doc=field_doc.[% cls %].[% field %]"
43 src='[% DOC_IMG %]'></img>
46 <div class="col-md-3 reg-field-input"> <!-- field form input -->
49 model = path ? 'patron.' _ path _ '.' _ field : 'patron.' _ field;
50 IF input_type == 'checkbox' %]
52 <div class='checkbox'>
53 <input type='checkbox' ng-model='[% model %]'/>
57 <!-- text / number input -->
59 <input type="[% input_type %]"
60 class="form-control" ng-model="[% model %]"/>
64 <div class="col-md-3 patron-reg-example">
66 [% IF field == 'barcode' %]
68 <button class="btn btn-default">[% l('Replace Barcode') %]</button>
69 <button class="btn btn-default">[% l('See All') %]</button>
71 [% ELSIF field == 'password' %]
73 <button class="btn btn-default">[% l('Generate Password') %]</button>
77 <!-- example strings -->
79 [% set_str = "org_settings['ui.patron.edit." _
80 cls _ "." _ field _ ".example']"; %]
82 <span ng-if="[% set_str %]">
83 [% l('Example: [_1]', "{{" _ set_str _ "}}") %]
86 [% IF field.match('phone') %]
87 <!-- phones have a fall-through example option -->
88 <span ng-if="![% set_str %]">
90 "{{org_settings['ui.patron.edit.phone.example']}}") %]
99 [% formfield('ac', 'barcode', 'card') %]
100 [% formfield('au', 'usrname') %]
101 [% formfield('au', 'passwd') %]
102 [% formfield('au', 'prefix') %]
103 [% formfield('au', 'first_given_name') %]
104 [% formfield('au', 'second_given_name') %]
105 [% formfield('au', 'family_name') %]
106 [% formfield('au', 'suffix') %]
107 [% formfield('au', 'alias') %]
109 <div class="row pad-all-min form-group">
110 <div class="col-md-3 reg-field-label">
111 <label>{{idl_fields.au.dob.label}}</label>
112 <img ng-show="field_doc.au.dob"
113 ng-click="selected_field_doc=field_doc.au.dob"
114 src='[% DOC_IMG %]'></img>
116 <div class="col-md-3 reg-field-input">
118 class="form-control" ng-model="patron.dob"/>
122 [% formfield('au', 'juvenile', '', 'checkbox') %]
126 <div class="row pad-all-min form-group">
127 <div class="col-md-3 reg-field-label">
128 <label>{{idl_fields.au.ident_type.label}}</label>
129 <img ng-show="field_doc.au.ident_type"
130 ng-click="selected_field_doc=field_doc.au.ident_type"
131 src='[% DOC_IMG %]'></img>
133 <div class="col-md-3 reg-field-input">
134 <div class="btn-group" dropdown>
135 <button type="button" class="btn btn-default dropdown-toggle">
136 <span style="padding-right: 5px;">
137 {{patron.ident_type.name() || "[% l('Primary Ident Type') %]"}}
139 <span class="caret"></span>
141 <ul class="dropdown-menu">
142 <li ng-repeat="type in ident_types">
143 <a href ng-click="patron.ident_type = type">{{type.name()}}</a>
151 [% formfield('au', 'ident_value') %]
152 [% formfield('au', 'ident_value2') %]
153 [% formfield('au', 'email', '', 'email') %]
154 [% formfield('au', 'day_phone') %]
155 [% formfield('au', 'evening_phone') %]
156 [% formfield('au', 'other_phone') %]
158 <!-- home org unit selector -->
160 <div class="row pad-all-min form-group">
161 <div class="col-md-3 reg-field-label">
162 <label>{{idl_fields.au.home_ou.label}}</label>
163 <img ng-show="field_doc.au.home_ou"
164 ng-click="selected_field_doc=field_doc.au.home_ou"
165 src='[% DOC_IMG %]'></img>
167 <div class="col-md-3 reg-field-input">
168 <eg-org-selector selected="patron.home_ou" onchange="">
173 <!-- profile selector -->
175 <div class="row pad-all-min form-group">
176 <div class="col-md-3 reg-field-label">
177 <label>{{idl_fields.au.profile.label}}</label>
178 <img ng-show="field_doc.au.profile"
179 ng-click="selected_field_doc=field_doc.au.profile"
180 src='[% DOC_IMG %]'></img>
182 <div class="col-md-3 reg-field-input">
183 <div class="btn-group" dropdown>
184 <button type="button" class="btn btn-default dropdown-toggle">
185 <span style="padding-right: 5px;">
186 {{patron.profile.name() || "[% l('Profile Group') %]"}}
188 <span class="caret"></span>
190 <ul class="dropdown-menu">
191 <li ng-repeat="grp in profiles">
193 style="padding-left: {{pgt_depth(grp) * 10 + 5}}px"
194 ng-click="patron.profile = grp">{{grp.name()}}</a>
201 <div class="row pad-all-min form-group">
202 <div class="col-md-3 reg-field-label">
203 <label>{{idl_fields.au.expire_date.label}}</label>
204 <img ng-show="field_doc.au.expire_date"
205 ng-click="selected_field_doc=field_doc.au.expire_date"
206 src='[% DOC_IMG %]'></img>
208 <div class="col-md-3 reg-field-input">
210 class="form-control" ng-model="patron.expire_date"/>
212 <div class="col-md-3">
213 <button class="btn btn-default">[% l('Update Expire Date') %]</button>
217 <!-- net_access_level -->
219 <div class="row pad-all-min form-group">
220 <div class="col-md-3 reg-field-label">
221 <label>{{idl_fields.au.net_access_level.label}}</label>
222 <img ng-show="field_doc.au.net_access_level"
223 ng-click="selected_field_doc=field_doc.au.net_access_level"
224 src='[% DOC_IMG %]'></img>
226 <div class="col-md-3 reg-field-input">
227 <div class="btn-group" dropdown>
228 <button type="button" class="btn btn-default dropdown-toggle">
229 <span style="padding-right: 5px;">
230 {{patron.net_access_level.name() || "[% l('Net Access Level') %]"}}
232 <span class="caret"></span>
234 <ul class="dropdown-menu">
235 <li ng-repeat="level in net_access_levels">
237 ng-click="patron.net_access_level = level">{{level.name()}}</a>
244 [% formfield('au', 'active', '', 'checkbox') %]
245 [% formfield('au', 'barred', '', 'checkbox') %]
246 [% formfield('au', 'master_account', '', 'checkbox') %]
247 [% formfield('au', 'claims_returned_count', '', 'number') %]
248 [% formfield('au', 'claims_never_checked_out_count', '', 'number') %]
249 [% formfield('au', 'alert_message') %]
251 <div class="alert alert-success row" role="alert">
252 <div class="col-md-6">[% l('User Settings') %]</div>
255 <div class="row pad-all-min form-group">
256 <div class="col-md-3 reg-field-label">
257 <label>{{user_setting_types['opac.default_phone'].label()}}</label>
259 <div class="col-md-3 reg-field-input">
260 <input type='text' ng-model="user_settings['opac.default_phone']"/>
264 <div class="row pad-all-min form-group">
265 <div class="col-md-3 reg-field-label">
266 <label>{{user_setting_types['opac.default_pickup_location'].label()}}</label>
268 <div class="col-md-3 reg-field-input">
269 <eg-org-selector selected="patron.home_ou" onchange=""></eg-org-selector>
273 <div class="row pad-all-min form-group">
274 <div class="col-md-3 reg-field-label">
275 <label>{{user_setting_types['circ.holds_behind_desk'].label()}}</label>
277 <div class="col-md-3 reg-field-input">
278 <div class='checkbox'>
279 <input type='checkbox' ng-model="user_settings['circ.holds_behind_desk']"/>
284 <div class="row pad-all-min form-group">
285 <div class="col-md-3 reg-field-label">
286 <label>[% l('Holds Notices') %]</label>
288 <div class="col-md-3 reg-field-input flex-row">
289 <div class='flex-cell'>
290 <input type='checkbox' ng-model="hold_notify_phone"/>
293 <div class='flex-cell'>
294 <input type='checkbox' ng-model="hold_notify_email"/>
297 <div class='flex-cell'>
298 <input type='checkbox' ng-model="hold_notify_sms"/>
304 <div class="row pad-all-min form-group" ng-if="org_settings['sms.enable']">
305 <div class="col-md-3 reg-field-label">
306 <label>[% l('Default SMS/Text Number') %]</label>
308 <div class="col-md-3 reg-field-input">
313 <div class="row pad-all-min form-group" ng-if="org_settings['sms.enable']">
314 <div class="col-md-3 reg-field-label">
315 <label>[% l('Default SMS Carrier') %]</label>
317 <div class="col-md-3 reg-field-input">
318 <div class="btn-group" dropdown>
319 <button type="button" class="btn btn-default dropdown-toggle">
320 <span style="padding-right: 5px;"></span>
321 <span class="caret"></span>
323 <ul class="dropdown-menu">
324 <li ng-repeat="carrier in sms_carriers">
326 ng-click="user_settings['opac.default_sms_carrier'] = carrier">
335 <div class="alert alert-success row" role="alert">
336 <div class="col-md-3">[% l('Address') %]</div>
337 <div class="col-md-3">
338 <span class='pad-all-min'>
339 [% l('Mailing') %] <input type='checkbox'/>
341 <span class='pad-all-min'>
342 [% l('Billing') %] <input type='checkbox'/>
344 <span class='pad-all-min'>
345 <button type="button" class="btn btn-danger">[% l('X') %]</button>
352 [% formfield('aua', 'address_type', 'mailing_address') %]
353 [% formfield('aua', 'post_code', 'mailing_address') %]
354 [% formfield('aua', 'street1', 'mailing_address') %]
355 [% formfield('aua', 'street2', 'mailing_address') %]
356 [% formfield('aua', 'city', 'mailing_address') %]
357 [% formfield('aua', 'county', 'mailing_address') %]
358 [% formfield('aua', 'state', 'mailing_address') %]
359 [% formfield('aua', 'country', 'mailing_address') %]
360 [% formfield('aua', 'valid', 'mailing_address', 'checkbox') %]
361 [% formfield('aua', 'within_city_limits', 'mailing_address', 'checkbox') %]
364 <button type="button" class="btn btn-success">[% l('New Address') %]</button>
367 <!-- pending address -->
369 <div class="alert alert-success row" role="alert" ng-if="stat_cats.length > 0">
370 <div class="col-md-6">[% l('Statistical Categories') %]</div>
373 <div class="row pad-all-min form-group" ng-repeat="cat in stat_cats">
374 <div class="col-md-3 reg-field-label">
375 <label>{{cat.name()}}</label>
377 <div class="col-md-3 reg-field-input">
378 <div ng-if="cat.entries().length == 0">
379 <input type="text" class="form-control"/>
381 <div ng-if="cat.entries().length != 0">
382 <div class="btn-group" dropdown>
383 <button type="button" class="btn btn-default dropdown-toggle">
384 <span style="padding-right: 5px;"></span>
385 <span class="caret"></span>
387 <ul class="dropdown-menu">
388 <li ng-repeat="entry in cat.entries()">
389 <a href ng-click=""> {{entry.value()}} </a>
399 <div class="alert alert-success row" role="alert" ng-if="surveys.length > 0">
400 <div class="col-md-6">[% l('Surveys') %]</div>
403 <div class="row pad-all-min form-group" ng-repeat="survey in surveys">
404 <div class="col-md-3 reg-field-label">
405 <label>{{survey.name()}}</label>
407 <div class="col-md-3 reg-field-input">
408 <div class="btn-group" dropdown>
409 <button type="button" class="btn btn-default dropdown-toggle">
410 <span style="padding-right: 5px;"></span>
411 <span class="caret"></span>
413 <ul class="dropdown-menu">
414 <li ng-repeat="question in survey.questions()">
415 <a href ng-click=""> {{question.question()}} </a>