From: Bill Erickson Date: Tue, 12 May 2015 21:57:00 +0000 (-0400) Subject: patron reg X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=6cf7b806773c89676bcd93d76db7c5a3aace4d7b;p=working%2FEvergreen.git patron reg Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 index 5c79b58bf5..0de1c8e1e9 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 @@ -185,6 +185,76 @@ [% formfield('au', 'alert_message') %] +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+
+ +
+
+ +
+
+
+ +
+
+
+ + + + + diff --git a/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js b/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js index 1133cc47cd..9f7a37eda0 100644 --- a/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js +++ b/Open-ILS/web/js/ui/default/staff/circ/patron/regctl.js @@ -15,6 +15,7 @@ angular.module('egCoreMod') service.get_field_doc(), service.get_perm_groups(), service.get_ident_types(), + service.get_user_settings(), service.get_net_access_levels() ]); }; @@ -57,10 +58,74 @@ angular.module('egCoreMod') }); }; + 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) } /* @@ -119,6 +184,9 @@ function PatronRegCtrl($scope, $routeParams, $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.