From 0d1486376bd8209fbef5e7279ea455fcf7cd2f91 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Sat, 23 Jan 2016 15:19:00 -0500 Subject: [PATCH] LP#1452950 Support free-text stat cats Signed-off-by: Bill Erickson Signed-off-by: Galen Charlton --- .../templates/staff/circ/patron/t_edit.tt2 | 27 +++++++++++----- .../js/ui/default/staff/circ/patron/regctl.js | 31 ++++++------------- 2 files changed, 30 insertions(+), 28 deletions(-) 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 4a804f91f5..39a956718b 100644 --- a/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 +++ b/Open-ILS/src/templates/staff/circ/patron/t_edit.tt2 @@ -549,22 +549,29 @@
-
- -
+ + + + + +
+ + +
+ +
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 8e128ece01..9385086d78 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 @@ -17,7 +17,7 @@ angular.module('egCoreMod') survey_answers : {}, survey_responses : {}, // survey.responses for loaded patron in progress stat_cats : [], - stat_cat_entry_maps : {}, // cat.id to selected entry object map + stat_cat_entry_maps : {}, // cat.id to selected value virt_id : -1, // virtual ID for new objects init_done : false // have we loaded our initialization data? }; @@ -496,14 +496,7 @@ angular.module('egCoreMod') // toss entries for existing stat cat maps into our living // stat cat entry map, which is modified within the template. angular.forEach(patron.stat_cat_entries, function(map) { - var entry; - angular.forEach(service.stat_cats, function(cat) { - angular.forEach(cat.entries(), function(ent) { - if (ent.value() == map.stat_cat_entry) - entry = ent; - }); - }); - service.stat_cat_entry_maps[map.stat_cat.id] = entry; + service.stat_cat_entry_maps[map.stat_cat.id] = map.stat_cat_entry; }); return patron; @@ -607,19 +600,19 @@ angular.module('egCoreMod') }); patron.stat_cat_entries(maps); - // service.stat_cat_entry_maps maps stats to entries + // service.stat_cat_entry_maps maps stats to values // patron.stat_cat_entries is an array of stat_cat_entry_usr_map's - angular.forEach(service.stat_cat_entry_maps, function(entry) { + angular.forEach( + service.stat_cat_entry_maps, function(value, cat_id) { // see if we already have a mapping for this entry - var existing = patron.stat_cat_entries().filter(function(e) { - return e.stat_cat() == entry.stat_cat(); - })[0]; + var existing = patron.stat_cat_entries().filter( + function(e) { return e.stat_cat() == cat_id })[0]; if (existing) { // we have a mapping // if the existing mapping matches the new one, // there' nothing left to do - if (existing.stat_cat_entry() == entry.value()) return; + if (existing.stat_cat_entry() == value) return; // mappings differ. delete the old one and create // a new one below. @@ -629,15 +622,11 @@ angular.module('egCoreMod') var newmap = new egCore.idl.actscecm(); newmap.target_usr(patron.id()); newmap.isnew(true); - newmap.stat_cat(entry.stat_cat()); - newmap.stat_cat_entry(entry.value()); + newmap.stat_cat(cat_id); + newmap.stat_cat_entry(value); patron.stat_cat_entries().push(newmap); }); - angular.forEach(patron.stat_cat_entries(), function(entry) { - console.log(egCore.idl.toString(entry)); - }); - if (!patron.isnew()) patron.ischanged(true); return egCore.net.request( -- 2.43.2