[% formfield('au', 'alert_message') %]
<!-- user settings -->
+<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>
+ <div class="col-md-3 reg-field-input">
+ <input type='text' ng-model="user_settings['opac.default_phone']"/>
+ </div>
+</div>
+
+<div class="row pad-all-min form-group">
+ <div class="col-md-3 reg-field-label">
+ <label>{{user_setting_types['opac.default_pickup_location'].label()}}</label>
+ </div>
+ <div class="col-md-3 reg-field-input">
+ <eg-org-selector selected="" onchange=""></eg-org-selector>
+ </div>
+</div>
+
+<div class="row pad-all-min form-group">
+ <div class="col-md-3 reg-field-label">
+ <label>{{user_setting_types['circ.holds_behind_desk'].label()}}</label>
+ </div>
+ <div class="col-md-3 reg-field-input">
+ <div class='checkbox'>
+ <input type='checkbox' ng-model="user_settings['circ.holds_behind_desk']"/>
+ </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 Phone') %]</label>
+ </div>
+ <div class="col-md-3 reg-field-input">
+ <div class='checkbox'>
+ <input type='checkbox' ng-model="hold_notify_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'>
+ <input type='checkbox' ng-model="hold_notify_email"/>
+ </div>
+ </div>
+</div>
+
+
+ <!--
+ <div class="btn-group" dropdown>
+ <button type="button" class="btn btn-default dropdown-toggle">
+ <span style="padding-right: 5px;">
+ {{patron.net_access_level.name() || "[% l('Net Access Level') %]"}}
+ </span>
+ <span class="caret"></span>
+ </button>
+ <ul class="dropdown-menu">
+ <li ng-repeat="level in net_access_levels">
+ <a href
+ ng-click="patron.net_access_level = level">{{level.name()}}</a>
+ </li>
+ </ul>
+ </div>
+ -->
+
+
<!-- addresses -->
<!-- pending address -->
<!-- stat cats -->
service.get_field_doc(),
service.get_perm_groups(),
service.get_ident_types(),
+ service.get_user_settings(),
service.get_net_access_levels()
]);
};
});
};
+ service.get_user_settings = function() {
+ var org_ids = egCore.org.ancestors(egCore.auth.user().ws_ou(), true);
+ service.modified_user_settings = {};
+ service.user_setting_types = {};
+
+ return egCore.pcrud.search('cust', {
+ '-or' : [
+ {name : [
+ 'circ.holds_behind_desk',
+ 'circ.collections.exempt',
+ 'opac.hold_notify',
+ 'opac.default_phone',
+ 'opac.default_pickup_location',
+ 'opac.default_sms_carrier',
+ 'opac.default_sms_notify'
+ ]},
+ {name : {
+ 'in': {
+ select : {atevdef : ['opt_in_setting']},
+ from : 'atevdef',
+ // we only care about opt-in settings for
+ // event_defs our users encounter
+ where : {'+atevdef' : {owner : org_ids}}
+ }
+ }}
+ ]
+ }, {}, {atomic : true}).then(function(setting_types) {
+
+ angular.forEach(setting_types, function(stype) {
+ service.user_setting_types[stype.name()] = stype;
+ });
+
+ if(service.patron_id) {
+
+ var setting_names =
+ setting_types.map(function(obj) { return obj.name() });
+
+ return egCore.net.request(
+ 'open-ils.actor',
+ 'open-ils.actor.patron.settings.retrieve.authoritative',
+ egCore.auth.token(),
+ service.patron_id,
+ setting_names
+ ).then(function(settings) {
+ service.user_settings = settings;
+ });
+ }
+
+ // apply default user setting values
+ service.user_settings = {};
+ angular.forEach(setting_types, function(stype, index) {
+ if (stype.reg_default() != undefined) {
+ service.modified_user_settings[setting.name()] =
+ service.user_settings[setting.name()] =
+ setting.reg_default();
+ }
+ });
+ });
+ }
+
service.init_patron = function(current) {
- return current ?
- service.init_existing_patron(current) :
- service.init_new_patron();
+
+ if (!current)
+ return service.init_new_patron();
+
+ service.patron = current;
+ service.patron_id = current.id();
+ return service.init_existing_patron(current)
}
/*
$scope.profiles = patronRegSvc.profiles;
$scope.ident_types = patronRegSvc.ident_types;
$scope.net_access_levels = patronRegSvc.net_access_levels;
+ $scope.user_settings = patronRegSvc.user_settings;
+ $scope.user_setting_types = patronRegSvc.user_setting_types;
+ $scope.modified_user_settings = patronRegSvc.modified_user_settings;
});
// returns the tree depth of the selected profile group tree node.