From b3f33fb00cef414d19f8f5b71ca9ac6f3f884ed7 Mon Sep 17 00:00:00 2001 From: Bill Erickson Date: Mon, 16 Apr 2012 09:29:19 -0400 Subject: [PATCH] Copy Location Circ Limit Sets : UI 2 Signed-off-by: Bill Erickson --- .../default/conify/global/config/circ_limit_set.js | 28 ++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/Open-ILS/web/js/ui/default/conify/global/config/circ_limit_set.js b/Open-ILS/web/js/ui/default/conify/global/config/circ_limit_set.js index 74660547db..eca7c988f1 100644 --- a/Open-ILS/web/js/ui/default/conify/global/config/circ_limit_set.js +++ b/Open-ILS/web/js/ui/default/conify/global/config/circ_limit_set.js @@ -8,6 +8,7 @@ dojo.require('openils.User'); var linkedEditor = null; var circModEntryCache = []; +var copyLocEntryCache = []; var limitGroupEntryCache = []; var circModCache = {}; var copyLocCache = {}; @@ -47,6 +48,7 @@ function byName(name, ctxt) { function buildEditPaneAdditions(editPane) { circModEntryCache = []; limitGroupEntryCache = []; + copyLocEntryCache = []; var tr = document.createElement('tr'); var td = document.createElement('td'); td.setAttribute('colspan','2'); @@ -136,8 +138,10 @@ function buildEditPaneAdditions(editPane) { if(editPane.mode == 'update') { var pcrud = new openils.PermaCrud(); circModEntryCache = pcrud.search('cclscmm', {limit_set: limitSet}); + copyLocEntryCache = pcrud.search('cclsacpl', {limit_set: limitSet}); limitGroupEntryCache = pcrud.search('cclsgm', {limit_set: limitSet}); dojo.forEach(circModEntryCache, function(g) { addCircMod(circModTmpl, g); } ); + dojo.forEach(copyLocEntryCache, function(g) { addCopyLoc(copyLocTmpl, g); } ); dojo.forEach(limitGroupEntryCache, function(g) { addLimitGroup(limitGroupTmpl, g); } ); } } @@ -222,6 +226,30 @@ function updateLinked(fmObject, rowindex) { } ); + // Next, copy locations + var copy_locs = []; + dojo.query('[name=copy-loc-entry-row]', this.editPane.domNode).forEach( + function(row) { + var loc_id = row.getAttribute('loc_id'); + copy_locs.push(loc_id); + if(!copyLocEntryCache.filter(function(i) { return (i.copy_loc() == loc_id); })[0]) { + var entry = new fieldmapper.cclsacpl(); + entry.isnew(true); + entry.limit_set(id); + entry.copy_loc(loc_id); + add.push(entry); + } + } + ); + dojo.forEach(copyLocEntryCache, function(eLoc) { + if(!copy_locs.filter(function(i) { return (i == eLoc.copy_loc()); })[0]) { + eLoc.isdeleted(true); + remove.push(eLoc); + } + } + ); + + // Next, limit groups var limit_groups = []; dojo.query('[name=limit-group-entry-row]', this.editPane.domNode).forEach( -- 2.11.0