1 [% DOC_IMG = '/images/question-mark.png' %]
3 <div class="container-fluid" style="text-align:center">
4 <div class="alert alert-info alert-less-pad strong-text-2">
5 <span ng-if="!is_capture">[% l('Patron Edit') %]</span>
9 <!-- IDL field documentation window -->
10 <div id="reg-control-actions">
11 <div class="pad-all-min">
12 <button type="button" class="btn btn-default">[% l('Save') %]</button>
14 <div class="pad-all-min">
15 <button type="button" class="btn btn-default">[% l('Save & Clone') %]</button>
17 <div class="pad-all-min" ng-show="!display_required_fields">
18 <a href>[% l('Required Fields') %]</a>
20 <div class="pad-all-min" ng-show="!display_suggested_fields">
21 <a href>[% l('Suggested Fields') %]</a>
23 <div class="pad-all-min" ng-show="!display_all_fields">
24 <a href>[% l('All Fields') %]</a>
26 <fieldset id="reg-field-doc" ng-show="selected_field_doc">
28 {{idl_fields[selected_field_doc.fm_class()][selected_field_doc.field()].label}}
30 <div>{{selected_field_doc.string()}}</div>
34 [% MACRO formfield(cls, field, path, input_type) BLOCK;
36 # input field generator for common text/number/checkbox fields
38 IF NOT input_type; input_type = 'text'; END %]
40 <div class="row reg-field-row">
42 <div class="col-md-3 reg-field-label"> <!-- field label -->
44 <label>{{idl_fields.[% cls %].[% field %].label}}</label>
46 <!-- field documentation img/link -->
47 <img ng-show="field_doc.[% cls %].[% field %]"
48 ng-click="selected_field_doc=field_doc.[% cls %].[% field %]"
49 src='[% DOC_IMG %]'></img>
52 <div class="col-md-3 reg-field-input"> <!-- field form input -->
54 [% model = path ? 'patron.' _ path _ '.' _ field : 'patron.' _ field %]
56 [% IF input_type == 'checkbox' %]
58 <div class='checkbox'>
59 <input type='checkbox' ng-model='[% model %]'/>
63 <!-- text / number input -->
65 [% IF field == 'alert_message' %]
66 <textarea class="form-control" ng-model="[% model %]"/>
68 <input type="[% input_type %]"
69 class="form-control" ng-model="[% model %]"/>
75 <!-- supplemental actions and example text -->
76 <div class="col-md-3 patron-reg-example">
78 [% IF field == 'barcode' %]
80 <button class="btn btn-default">[% l('Replace Barcode') %]</button>
81 <button class="btn btn-default">[% l('See All') %]</button>
83 [% ELSIF field == 'password' %]
85 <button class="btn btn-default">[% l('Generate Password') %]</button>
89 <!-- example strings -->
91 [% set_str = "org_settings['ui.patron.edit." _
92 cls _ "." _ field _ ".example']"; %]
94 <span ng-if="[% set_str %]">
95 [% l('Example: [_1]', "{{" _ set_str _ "}}") %]
98 [% IF field.match('phone') %]
99 <!-- phones have a fall-through example option -->
100 <span ng-if="![% set_str %] && org_settings['ui.patron.edit.phone.example']">
101 [% l('Example: [_1]',
102 "{{org_settings['ui.patron.edit.phone.example']}}") %]
111 [% formfield('ac', 'barcode', 'card') %]
112 [% formfield('au', 'usrname') %]
113 [% formfield('au', 'passwd') %]
114 [% formfield('au', 'prefix') %]
115 [% formfield('au', 'first_given_name') %]
116 [% formfield('au', 'second_given_name') %]
117 [% formfield('au', 'family_name') %]
118 [% formfield('au', 'suffix') %]
119 [% formfield('au', 'alias') %]
121 <div class="row reg-field-row">
122 <div class="col-md-3 reg-field-label">
123 <label>{{idl_fields.au.dob.label}}</label>
124 <img ng-show="field_doc.au.dob"
125 ng-click="selected_field_doc=field_doc.au.dob"
126 src='[% DOC_IMG %]'></img>
128 <div class="col-md-3 reg-field-input">
130 class="form-control" ng-model="patron.dob"/>
134 [% formfield('au', 'juvenile', '', 'checkbox') %]
138 <div class="row reg-field-row">
139 <div class="col-md-3 reg-field-label">
140 <label>{{idl_fields.au.ident_type.label}}</label>
141 <img ng-show="field_doc.au.ident_type"
142 ng-click="selected_field_doc=field_doc.au.ident_type"
143 src='[% DOC_IMG %]'></img>
145 <div class="col-md-3 reg-field-input">
146 <div class="btn-group" dropdown>
147 <button type="button" class="btn btn-default dropdown-toggle">
148 <span style="padding-right: 5px;">
149 {{patron.ident_type.name() || "[% l('Primary Ident Type') %]"}}
151 <span class="caret"></span>
153 <ul class="dropdown-menu">
154 <li ng-repeat="type in ident_types">
155 <a href ng-click="patron.ident_type = type">{{type.name()}}</a>
163 [% formfield('au', 'ident_value') %]
164 [% formfield('au', 'ident_value2') %]
165 [% formfield('au', 'email', '', 'email') %]
166 [% formfield('au', 'day_phone') %]
167 [% formfield('au', 'evening_phone') %]
168 [% formfield('au', 'other_phone') %]
170 <!-- home org unit selector -->
172 <div class="row reg-field-row">
173 <div class="col-md-3 reg-field-label">
174 <label>{{idl_fields.au.home_ou.label}}</label>
175 <img ng-show="field_doc.au.home_ou"
176 ng-click="selected_field_doc=field_doc.au.home_ou"
177 src='[% DOC_IMG %]'></img>
179 <div class="col-md-3 reg-field-input">
180 <eg-org-selector selected="patron.home_ou" onchange="">
185 <!-- profile selector -->
187 <div class="row reg-field-row">
188 <div class="col-md-3 reg-field-label">
189 <label>{{idl_fields.au.profile.label}}</label>
190 <img ng-show="field_doc.au.profile"
191 ng-click="selected_field_doc=field_doc.au.profile"
192 src='[% DOC_IMG %]'></img>
194 <div class="col-md-3 reg-field-input">
195 <div class="btn-group" dropdown>
196 <button type="button" class="btn btn-default dropdown-toggle">
197 <span style="padding-right: 5px;">
198 {{patron.profile.name() || "[% l('Profile Group') %]"}}
200 <span class="caret"></span>
202 <ul class="dropdown-menu">
203 <li ng-repeat="grp in profiles">
205 style="padding-left: {{pgt_depth(grp) * 10 + 5}}px"
206 ng-click="patron.profile = grp">{{grp.name()}}</a>
213 <div class="row reg-field-row">
214 <div class="col-md-3 reg-field-label">
215 <label>{{idl_fields.au.expire_date.label}}</label>
216 <img ng-show="field_doc.au.expire_date"
217 ng-click="selected_field_doc=field_doc.au.expire_date"
218 src='[% DOC_IMG %]'></img>
220 <div class="col-md-3 reg-field-input">
222 class="form-control" ng-model="patron.expire_date"/>
224 <div class="col-md-3">
225 <button class="btn btn-default">[% l('Update Expire Date') %]</button>
229 <!-- net_access_level -->
231 <div class="row reg-field-row">
232 <div class="col-md-3 reg-field-label">
233 <label>{{idl_fields.au.net_access_level.label}}</label>
234 <img ng-show="field_doc.au.net_access_level"
235 ng-click="selected_field_doc=field_doc.au.net_access_level"
236 src='[% DOC_IMG %]'></img>
238 <div class="col-md-3 reg-field-input">
239 <div class="btn-group" dropdown>
240 <button type="button" class="btn btn-default dropdown-toggle">
241 <span style="padding-right: 5px;">
242 {{patron.net_access_level.name() || "[% l('Net Access Level') %]"}}
244 <span class="caret"></span>
246 <ul class="dropdown-menu">
247 <li ng-repeat="level in net_access_levels">
249 ng-click="patron.net_access_level = level">{{level.name()}}</a>
256 [% formfield('au', 'active', '', 'checkbox') %]
257 [% formfield('au', 'barred', '', 'checkbox') %]
258 [% formfield('au', 'master_account', '', 'checkbox') %]
259 [% formfield('au', 'claims_returned_count', '', 'number') %]
260 [% formfield('au', 'claims_never_checked_out_count', '', 'number') %]
261 [% formfield('au', 'alert_message') %]
263 <div class="alert alert-success row" role="alert">
264 <div class="col-md-6">[% l('User Settings') %]</div>
267 <div class="row reg-field-row">
268 <div class="col-md-3 reg-field-label">
269 <label>{{user_setting_types['opac.default_phone'].label()}}</label>
271 <div class="col-md-3 reg-field-input">
272 <input type='text' ng-model="user_settings['opac.default_phone']"/>
276 <div class="row reg-field-row">
277 <div class="col-md-3 reg-field-label">
278 <label>{{user_setting_types['opac.default_pickup_location'].label()}}</label>
280 <div class="col-md-3 reg-field-input">
281 <eg-org-selector selected="patron.home_ou" onchange=""></eg-org-selector>
285 <div class="row reg-field-row">
286 <div class="col-md-3 reg-field-label">
287 <label>{{user_setting_types['circ.holds_behind_desk'].label()}}</label>
289 <div class="col-md-3 reg-field-input">
290 <div class='checkbox'>
291 <input type='checkbox' ng-model="user_settings['circ.holds_behind_desk']"/>
296 <div class="row reg-field-row">
297 <div class="col-md-3 reg-field-label">
298 <label>[% l('Holds Notices') %]</label>
300 <div class="col-md-3 reg-field-input flex-row">
301 <div class='flex-cell'>
302 <input type='checkbox' ng-model="hold_notify_phone"/>
305 <div class='flex-cell'>
306 <input type='checkbox' ng-model="hold_notify_email"/>
309 <div class='flex-cell'>
310 <input type='checkbox' ng-model="hold_notify_sms"/>
316 <div class="row reg-field-row" ng-if="org_settings['sms.enable']">
317 <div class="col-md-3 reg-field-label">
318 <label>[% l('Default SMS/Text Number') %]</label>
320 <div class="col-md-3 reg-field-input">
325 <div class="row reg-field-row" ng-if="org_settings['sms.enable']">
326 <div class="col-md-3 reg-field-label">
327 <label>[% l('Default SMS Carrier') %]</label>
329 <div class="col-md-3 reg-field-input">
330 <div class="btn-group" dropdown>
331 <button type="button" class="btn btn-default dropdown-toggle">
332 <span style="padding-right: 5px;"></span>
333 <span class="caret"></span>
335 <ul class="dropdown-menu">
336 <li ng-repeat="carrier in sms_carriers">
338 ng-click="user_settings['opac.default_sms_carrier'] = carrier">
347 <div class="alert alert-success row" role="alert">
348 <div class="col-md-3">[% l('Address') %]</div>
349 <div class="col-md-3">
350 <span class='pad-all-min'>
351 [% l('Mailing') %] <input type='checkbox'/>
353 <span class='pad-all-min'>
354 [% l('Physical') %] <input type='checkbox'/>
356 <span class='pad-all-min'>
357 <button type="button" class="btn btn-danger">[% l('X') %]</button>
364 [% formfield('aua', 'address_type', 'mailing_address') %]
365 [% formfield('aua', 'post_code', 'mailing_address') %]
366 [% formfield('aua', 'street1', 'mailing_address') %]
367 [% formfield('aua', 'street2', 'mailing_address') %]
368 [% formfield('aua', 'city', 'mailing_address') %]
369 [% formfield('aua', 'county', 'mailing_address') %]
370 [% formfield('aua', 'state', 'mailing_address') %]
371 [% formfield('aua', 'country', 'mailing_address') %]
372 [% formfield('aua', 'valid', 'mailing_address', 'checkbox') %]
373 [% formfield('aua', 'within_city_limits', 'mailing_address', 'checkbox') %]
376 <button type="button" class="btn btn-success">[% l('New Address') %]</button>
379 <!-- pending address -->
381 <div class="alert alert-success row" role="alert" ng-if="stat_cats.length > 0">
382 <div class="col-md-6">[% l('Statistical Categories') %]</div>
385 <div class="row reg-field-row" ng-repeat="cat in stat_cats">
386 <div class="col-md-3 reg-field-label">
387 <label>{{cat.name()}}</label>
389 <div class="col-md-3 reg-field-input">
390 <div ng-if="cat.entries().length == 0">
391 <input type="text" class="form-control"/>
393 <div ng-if="cat.entries().length != 0">
394 <div class="btn-group" dropdown>
395 <button type="button" class="btn btn-default dropdown-toggle">
396 <span style="padding-right: 5px;"></span>
397 <span class="caret"></span>
399 <ul class="dropdown-menu">
400 <li ng-repeat="entry in cat.entries()">
401 <a href ng-click=""> {{entry.value()}} </a>
411 <div class="alert alert-success row" role="alert" ng-if="surveys.length > 0">
412 <div class="col-md-6">[% l('Surveys') %]</div>
415 <div class="row reg-field-row" ng-repeat="survey in surveys">
416 <div class="col-md-3 reg-field-label">
417 <label>{{survey.name()}}</label>
419 <div class="col-md-3 reg-field-input">
420 <div class="btn-group" dropdown>
421 <button type="button" class="btn btn-default dropdown-toggle">
422 <span style="padding-right: 5px;"></span>
423 <span class="caret"></span>
425 <ul class="dropdown-menu">
426 <li ng-repeat="question in survey.questions()">
427 <a href ng-click=""> {{question.question()}} </a>