<div class="strong-text-2">[% l('Patron Edit') %]</div>
-<!-- IDL field documentation -->
+<!-- IDL field documentation window -->
<fieldset id="reg-field-doc" ng-show="selected_field_doc">
<legend>
{{idl_fields[selected_field_doc.fm_class()][selected_field_doc.field()].label}}
[% MACRO formfield(cls, field, path, input_type) BLOCK;
- # input field generator for text/number/checkbox fields
+ # input field generator for common text/number/checkbox fields
IF NOT input_type; input_type = 'text'; END %]
<div class="row pad-all-min form-group">
- <div class="col-md-3 reg-field-label">
- <!-- field label -->
+ <div class="col-md-3 reg-field-label"> <!-- field label -->
+
<label>{{idl_fields.[% cls %].[% field %].label}}</label>
<!-- field documentation img/link -->
ng-click="selected_field_doc=field_doc.[% cls %].[% field %]"
src='[% DOC_IMG %]'></img>
</div>
- <div class="col-md-3 reg-field-input">
- <!-- field form input -->
+
+ <div class="col-md-3 reg-field-input"> <!-- field form input -->
[%
model = path ? 'patron.' _ path _ '.' _ field : 'patron.' _ field;
[% formfield('au', 'family_name') %]
[% formfield('au', 'suffix') %]
[% formfield('au', 'alias') %]
-[% formfield('au', 'dob') %]
+
+<div class="row pad-all-min form-group">
+ <div class="col-md-3 reg-field-label">
+ <label>{{idl_fields.au.dob.label}}</label>
+ <img ng-show="field_doc.au.dob"
+ ng-click="selected_field_doc=field_doc.au.dob"
+ src='[% DOC_IMG %]'></img>
+ </div>
+ <div class="col-md-3 reg-field-input">
+ <input eg-date-input
+ class="form-control" ng-model="patron.dob"/>
+ </div>
+</div>
+
[% formfield('au', 'juvenile', '', 'checkbox') %]
<!-- ident_type -->
[% formfield('au', 'claims_never_checked_out_count', '', 'number') %]
[% formfield('au', 'alert_message') %]
-<!-- user settings -->
+<div class="alert alert-success row" role="alert">
+ <div class="col-md-6">[% l('User Settings') %]</div>
+</div>
+
<div class="row pad-all-min form-group">
<div class="col-md-3 reg-field-label">
<label>{{user_setting_types['opac.default_phone'].label()}}</label>
<div class="row pad-all-min form-group">
<div class="col-md-3 reg-field-label">
- <label>[% l('Receive Holds Notices by Phone') %]</label>
+ <label>[% l('Holds Notices') %]</label>
</div>
- <div class="col-md-3 reg-field-input">
- <div class='checkbox'>
+ <div class="col-md-3 reg-field-input flex-row">
+ <div class='flex-cell'>
<input type='checkbox' ng-model="hold_notify_phone"/>
+ [% l('Phone') %]
</div>
- </div>
-</div>
-
-<div class="row pad-all-min form-group">
- <div class="col-md-3 reg-field-label">
- <label>[% l('Receive Holds Notices by Email') %]</label>
- </div>
- <div class="col-md-3 reg-field-input">
- <div class='checkbox'>
+ <div class='flex-cell'>
<input type='checkbox' ng-model="hold_notify_email"/>
+ [% l('Email') %]
</div>
- </div>
-</div>
-
-<div class="row pad-all-min form-group" ng-if="org_settings['sms.enable']">
- <div class="col-md-3 reg-field-label">
- <label>[% l('Receive Holds Notices by SMS') %]</label>
- </div>
- <div class="col-md-3 reg-field-input">
- <div class='checkbox'>
+ <div class='flex-cell'>
<input type='checkbox' ng-model="hold_notify_sms"/>
+ [% l('SMS') %]
</div>
</div>
</div>
</div>
</div>
+<div class="alert alert-success row" role="alert">
+ <div class="col-md-3">[% l('Address') %]</div>
+ <div class="col-md-3">
+ <span class='pad-all-min'>
+ [% l('Mailing') %] <input type='checkbox'/>
+ </span>
+ <span class='pad-all-min'>
+ [% l('Billing') %] <input type='checkbox'/>
+ </span>
+ <span class='pad-all-min'>
+ <button type="button" class="btn btn-danger">[% l('X') %]</button>
+ </span>
+ </div>
+</div>
<!-- addresses -->
+
+[% formfield('aua', 'address_type', 'mailing_address') %]
+[% formfield('aua', 'post_code', 'mailing_address') %]
+[% formfield('aua', 'street1', 'mailing_address') %]
+[% formfield('aua', 'street2', 'mailing_address') %]
+[% formfield('aua', 'city', 'mailing_address') %]
+[% formfield('aua', 'county', 'mailing_address') %]
+[% formfield('aua', 'state', 'mailing_address') %]
+[% formfield('aua', 'country', 'mailing_address') %]
+[% formfield('aua', 'valid', 'mailing_address', 'checkbox') %]
+[% formfield('aua', 'within_city_limits', 'mailing_address', 'checkbox') %]
+
<!-- pending address -->
-<!-- stat cats -->
-<div class="row pad-all-min form-group" ng-repeat="stat_cat in stat_cats">
+<div class="alert alert-success row" role="alert" ng-if="stat_cats.length > 0">
+ <div class="col-md-6">[% l('Statistical Categories') %]</div>
+</div>
+
+<div class="row pad-all-min form-group" ng-repeat="cat in stat_cats">
<div class="col-md-3 reg-field-label">
- <label>{{stat_cat.name()}}</label>
+ <label>{{cat.name()}}</label>
</div>
<div class="col-md-3 reg-field-input">
-
- <div ng-if="!stat_cat.entries().length">
- <input type='text'/>
+ <div ng-if="cat.entries().length == 0">
+ <input type="text" class="form-control"/>
</div>
-
- <div class="btn-group" dropdown ng-if="stat_cat.entries().length">
- <button type="button" class="btn btn-default dropdown-toggle">
- <span style="padding-right: 5px;"></span>
- <span class="caret"></span>
- </button>
- <ul class="dropdown-menu">
- <li ng-repeat="entry in stat_cat.entries()">
- <a href ng-click="">{{entry.value()}}</a>
- </li>
- </ul>
+ <div ng-if="cat.entries().length != 0">
+ <div class="btn-group" dropdown>
+ <button type="button" class="btn btn-default dropdown-toggle">
+ <span style="padding-right: 5px;"></span>
+ <span class="caret"></span>
+ </button>
+ <ul class="dropdown-menu">
+ <li ng-repeat="entry in cat.entries()">
+ <a href ng-click=""> {{entry.value()}} </a>
+ </li>
+ </ul>
+ </div>
</div>
</div>
</div>
<!-- surveys -->
+
+<div class="alert alert-success row" role="alert" ng-if="surveys.length > 0">
+ <div class="col-md-6">[% l('Surveys') %]</div>
+</div>
+
+<div class="row pad-all-min form-group" ng-repeat="survey in surveys">
+ <div class="col-md-3 reg-field-label">
+ <label>{{survey.name()}}</label>
+ </div>
+ <div class="col-md-3 reg-field-input">
+ <div class="btn-group" dropdown>
+ <button type="button" class="btn btn-default dropdown-toggle">
+ <span style="padding-right: 5px;"></span>
+ <span class="caret"></span>
+ </button>
+ <ul class="dropdown-menu">
+ <li ng-repeat="question in survey.questions()">
+ <a href ng-click=""> {{question.question()}} </a>
+ </li>
+ </ul>
+ </div>
+ </div>
+</div>
+
+
+
service.get_user_settings(),
service.get_org_settings(),
service.get_stat_cats(),
+ service.get_surveys(),
service.get_net_access_levels()
]);
};
+ service.get_surveys = function() {
+ var org_ids = egCore.org.ancestors(egCore.auth.user().ws_ou(), true);
+
+ return egCore.pcrud.search('asv',
+ {owner : org_ids},
+ {flesh : 1, flesh_fields : {asv : ['questions']}},
+ {atomic : true}
+ ).then(function(surveys) {
+ service.surveys = surveys;
+ });
+ }
+
service.get_stat_cats = function() {
return egCore.net.request(
'open-ils.circ',
patron.home_ou = egCore.org.get(patron.home_ou.id);
patron.expire_date = new Date(Date.parse(patron.expire_date));
+ patron.dob = new Date(Date.parse(patron.dob));
patron.profile = current.profile(); // pre-hash version
patron.net_access_level = current.net_access_level();
patron.ident_type = current.ident_type();
function(field) { patron[field] = patron[field] == 't'; }
);
+ angular.forEach(patron.addresses, function(addr) {
+ addr.valid = addr.valid == 't';
+ addr.within_city_limits = addr.within_city_limits == 't';
+ });
+
return patron;
}
$scope.org_settings = prs.org_settings;
$scope.sms_carriers = prs.sms_carriers;
$scope.stat_cats = prs.stat_cats;
+ $scope.surveys = prs.surveys;
});
// returns the tree depth of the selected profile group tree node.