From: Bill Erickson Date: Fri, 13 Apr 2012 20:19:03 +0000 (-0400) Subject: Copy Location Circ Limit Sets : UI 1 X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=db03372d992c38d76c839d28a7c1c89b1ec114ac;p=evergreen%2Fequinox.git Copy Location Circ Limit Sets : UI 1 Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2 b/Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2 index 9f9b90fa20..7541673a7f 100644 --- a/Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2 +++ b/Open-ILS/src/templates/conify/global/config/circ_limit_set.tt2 @@ -46,6 +46,27 @@ +

[% l('Linked Copy Locations') %]

+ + + + + + + + + + + + + + + + + + + +
[% l('Name') %][% l('Remove') %]
[% l('Remove') %]
[% l('Add') %]

Linked Limit Groups

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 49d6aa8de7..74660547db 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 @@ -4,11 +4,13 @@ dojo.require('openils.widget.AutoGrid'); dojo.require('openils.widget.AutoFieldWidget'); dojo.require('openils.PermaCrud'); dojo.require('openils.widget.ProgressDialog'); +dojo.require('openils.User'); var linkedEditor = null; var circModEntryCache = []; var limitGroupEntryCache = []; var circModCache = {}; +var copyLocCache = {}; var limitGroupCache = {}; var curLinkedEditor; @@ -25,6 +27,17 @@ function load(){ dojo.forEach(temp, function(g) { circModCache[g.code()] = g; } ); temp = pcrud.retrieveAll('cclg'); dojo.forEach(temp, function(g) { limitGroupCache[g.id()] = g; } ); + + // Avoid fetching all copy locations because there can be many + // thousands. Limit to those within permission range of the user. + new openils.User().getPermOrgList( + 'ADMIN_CIRC_MATRIX_MATCHPOINT', + function (orgList) { + temp = pcrud.search('acpl', {owning_lib : orgList}); + dojo.forEach(temp, function(g) { copyLocCache[g.id()] = g; } ); + }, + true, true + ); } function byName(name, ctxt) { @@ -46,6 +59,7 @@ function buildEditPaneAdditions(editPane) { curLinkedEditor = linkedEditor.cloneNode(true); td.appendChild(curLinkedEditor); var circModTmpl = byName('circ-mod-entry-tbody', curLinkedEditor).removeChild(byName('circ-mod-entry-row', curLinkedEditor)); + var copyLocTmpl = byName('copy-loc-entry-tbody', curLinkedEditor).removeChild(byName('copy-loc-entry-row', curLinkedEditor)); var limitGroupTmpl = byName('limit-group-entry-tbody', curLinkedEditor).removeChild(byName('limit-group-entry-row', curLinkedEditor)); var cm_selector = new openils.widget.AutoFieldWidget({ @@ -55,6 +69,13 @@ function buildEditPaneAdditions(editPane) { }); cm_selector.build(); + var cl_selector = new openils.widget.AutoFieldWidget({ + fmClass : 'cclsacpl', + fmField : 'copy_loc', + parentNode : byName('copy-loc-selector', curLinkedEditor) + }); + cl_selector.build(); + var lg_selector = new openils.widget.AutoFieldWidget({ fmClass : 'cclsgm', fmField : 'limit_group', @@ -72,6 +93,19 @@ function buildEditPaneAdditions(editPane) { byName('circ-mod-entry-tbody', editPane.domNode).appendChild(row); } + function addLoc(id) { + var row = copyLocTmpl.cloneNode(true); + row.setAttribute('loc_id', id); + var copyloc = copyLocCache[id]; + byName('copy-loc', row).innerHTML = + fieldmapper.aou.findOrgUnit(copyloc.owning_lib()).shortname() + + ' : ' + copyloc.name(); + byName('remove-copy-loc', row).onclick = function() { + byName('copy-loc-entry-tbody', clsGrid.editPane.domNode).removeChild(row); + } + byName('copy-loc-entry-tbody', editPane.domNode).appendChild(row); + } + function addGroup(group) { var row = limitGroupTmpl.cloneNode(true); row.setAttribute('limit_group', group); @@ -86,6 +120,10 @@ function buildEditPaneAdditions(editPane) { addMod(cm_selector.widget.attr('value')); } + byName('add-copy-loc', editPane.domNode).onclick = function() { + addLoc(cl_selector.widget.attr('value')); + } + byName('add-limit-group', editPane.domNode).onclick = function() { addGroup(lg_selector.widget.attr('value')); } @@ -115,6 +153,20 @@ function addCircMod(tmpl, circ_mod_entry) { byName('circ-mod-entry-tbody', clsGrid.editPane.domNode).appendChild(row); } +function addCopyLoc(tmpl, copy_loc_entry) { + var row = tmpl.cloneNode(true); + var id = copy_loc_entry.copy_loc(); + var copyloc = copyLocCache[id]; + row.setAttribute('loc_id', id); + byName('copy-loc', row).innerHTML = + fieldmapper.aou.findOrgUnit(copyloc.owning_lib()).shortname() + + ' : ' + copyloc.name(); + byName('remove-copy-loc', row).onclick = function() { + byName('copy-loc-entry-tbody', clsGrid.editPane.domNode).removeChild(row); + } + byName('copy-loc-entry-tbody', clsGrid.editPane.domNode).appendChild(row); +} + function addLimitGroup(tmpl, limit_group_entry) { var row = tmpl.cloneNode(true); var group = limit_group_entry.limit_group();