From: Bill Erickson Date: Wed, 13 May 2015 14:45:13 +0000 (-0400) Subject: patron reg X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=b46d3ee90c202a5b5507ef31da9d19c8778460e0;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 0de1c8e1e9..5262fc3c74 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 @@ -199,7 +199,7 @@
- +
@@ -236,28 +236,75 @@ +
+
+ +
+
+
+ +
+
+
- +
+ +
+ + +
+
+ +
+
+
+ + +
+
+
- +
+
+ +
+
+ +
+ +
+
+ + +
+
+
+ + 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 9f7a37eda0..0816062a49 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 @@ -5,21 +5,138 @@ angular.module('egCoreMod') .factory('patronRegSvc', ['$q', 'egCore', function($q, egCore) { var service = { - field_doc : {}, - profiles : [] + field_doc : {}, // config.idl_field_doc + profiles : [], // permission groups + sms_carriers : [], + user_settings : {}, // applied user settings + user_setting_types : {}, + modified_user_settings : {} // settings modifed this session }; + // launch a series of parallel data retrieval calls service.init = function(scope) { - // launches a series of parallel data retrieval calls return $q.all([ service.get_field_doc(), service.get_perm_groups(), service.get_ident_types(), service.get_user_settings(), + service.get_org_settings(), + service.get_stat_cats(), service.get_net_access_levels() ]); }; + service.get_stat_cats = function() { + return egCore.net.request( + 'open-ils.circ', + 'open-ils.circ.stat_cat.actor.retrieve.all', + egCore.auth.token(), egCore.auth.user().ws_ou() + ).then(function(cats) { + service.stat_cats = cats; + }); + }; + + service.get_org_settings = function() { + return egCore.org.settings([ + 'global.password_regex', + 'global.juvenile_age_threshold', + 'patron.password.use_phone', + 'ui.patron.default_inet_access_level', + 'ui.patron.default_ident_type', + 'ui.patron.default_country', + 'ui.patron.registration.require_address', + 'circ.holds.behind_desk_pickup_supported', + 'circ.patron_edit.clone.copy_address', + 'ui.patron.edit.au.prefix.require', + 'ui.patron.edit.au.prefix.show', + 'ui.patron.edit.au.prefix.suggest', + 'ui.patron.edit.ac.barcode.regex', + 'ui.patron.edit.au.second_given_name.show', + 'ui.patron.edit.au.second_given_name.suggest', + 'ui.patron.edit.au.suffix.show', + 'ui.patron.edit.au.suffix.suggest', + 'ui.patron.edit.au.alias.show', + 'ui.patron.edit.au.alias.suggest', + 'ui.patron.edit.au.dob.require', + 'ui.patron.edit.au.dob.show', + 'ui.patron.edit.au.dob.suggest', + 'ui.patron.edit.au.dob.calendar', + 'ui.patron.edit.au.juvenile.show', + 'ui.patron.edit.au.juvenile.suggest', + 'ui.patron.edit.au.ident_value.show', + 'ui.patron.edit.au.ident_value.suggest', + 'ui.patron.edit.au.ident_value2.show', + 'ui.patron.edit.au.ident_value2.suggest', + 'ui.patron.edit.au.email.require', + 'ui.patron.edit.au.email.show', + 'ui.patron.edit.au.email.suggest', + 'ui.patron.edit.au.email.regex', + 'ui.patron.edit.au.email.example', + 'ui.patron.edit.au.day_phone.require', + 'ui.patron.edit.au.day_phone.show', + 'ui.patron.edit.au.day_phone.suggest', + 'ui.patron.edit.au.day_phone.regex', + 'ui.patron.edit.au.day_phone.example', + 'ui.patron.edit.au.evening_phone.require', + 'ui.patron.edit.au.evening_phone.show', + 'ui.patron.edit.au.evening_phone.suggest', + 'ui.patron.edit.au.evening_phone.regex', + 'ui.patron.edit.au.evening_phone.example', + 'ui.patron.edit.au.other_phone.require', + 'ui.patron.edit.au.other_phone.show', + 'ui.patron.edit.au.other_phone.suggest', + 'ui.patron.edit.au.other_phone.regex', + 'ui.patron.edit.au.other_phone.example', + 'ui.patron.edit.phone.regex', + 'ui.patron.edit.phone.example', + 'ui.patron.edit.au.active.show', + 'ui.patron.edit.au.active.suggest', + 'ui.patron.edit.au.barred.show', + 'ui.patron.edit.au.barred.suggest', + 'ui.patron.edit.au.master_account.show', + 'ui.patron.edit.au.master_account.suggest', + 'ui.patron.edit.au.claims_returned_count.show', + 'ui.patron.edit.au.claims_returned_count.suggest', + 'ui.patron.edit.au.claims_never_checked_out_count.show', + 'ui.patron.edit.au.claims_never_checked_out_count.suggest', + 'ui.patron.edit.au.alert_message.show', + 'ui.patron.edit.au.alert_message.suggest', + 'ui.patron.edit.aua.post_code.regex', + 'ui.patron.edit.aua.post_code.example', + 'ui.patron.edit.aua.county.require', + 'format.date', + 'ui.patron.edit.default_suggested', + 'opac.barcode_regex', + 'opac.username_regex', + 'sms.enable', + 'ui.patron.edit.aua.state.require', + 'ui.patron.edit.aua.state.suggest', + 'ui.patron.edit.aua.state.show' + ]).then(function(settings) { + service.org_settings = settings; + return service.process_org_settings(settings); + }); + }; + + // some data retrieval depe + service.process_org_settings = function(settings) { + + if (!settings['sms.enable']) { + return $q.when(); + } + + return egCore.pcrud.search('csc', + {active: 'true'}, + {'order_by':[ + {'class':'csc', 'field':'name'}, + {'class':'csc', 'field':'region'} + ]}, + {atomic : true} + ).then(function(carriers) { + service.sms_carriers = carriers; + }); + }; + service.get_ident_types = function() { return egCore.pcrud.retrieveAll('cit', {}, {atomic : true}) .then(function(types) { service.ident_types = types }); @@ -60,8 +177,6 @@ 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' : [ @@ -72,8 +187,7 @@ angular.module('egCoreMod') 'opac.default_phone', 'opac.default_pickup_location', 'opac.default_sms_carrier', - 'opac.default_sms_notify' - ]}, + 'opac.default_sms_notify']}, {name : { 'in': { select : {atevdef : ['opt_in_setting']}, @@ -107,7 +221,6 @@ angular.module('egCoreMod') } // 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()] = @@ -172,21 +285,27 @@ function PatronRegCtrl($scope, $routeParams, $q, egCore, patronSvc, patronRegSvc) { $q.all([ + $scope.initTab ? // initTab comes from patron app $scope.initTab('edit', $routeParams.id) : $q.when(), + patronRegSvc.init() ]).then(function() { // called after initTab and patronRegSvc.init have completed - $scope.patron = patronRegSvc.init_patron(patronSvc.current); - $scope.field_doc = patronRegSvc.field_doc; - $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; + var prs = patronRegSvc; // brevity + $scope.patron = prs.init_patron(patronSvc.current); + $scope.field_doc = prs.field_doc; + $scope.profiles = prs.profiles; + $scope.ident_types = prs.ident_types; + $scope.net_access_levels = prs.net_access_levels; + $scope.user_settings = prs.user_settings; + $scope.user_setting_types = prs.user_setting_types; + $scope.modified_user_settings = prs.modified_user_settings; + $scope.org_settings = prs.org_settings; + $scope.sms_carriers = prs.sms_carriers; + $scope.stat_cats = prs.stat_cats; }); // returns the tree depth of the selected profile group tree node.