From a7bc9a4ab159a48ae2d47bcd77b664593747df31 Mon Sep 17 00:00:00 2001 From: Dan Scott Date: Mon, 31 Aug 2015 16:59:46 -0400 Subject: [PATCH] Add USudbury "moveto" interface This one also undeletes the copies, call numbers, and records as we go, as presumably we don't want these things to be deleted if we're moving them. Signed-off-by: Dan Scott --- Open-ILS/src/templates/cat/moveto/usudbury.tt2 | 30 +++++++ Open-ILS/web/js/ui/default/cat/moveto/usudbury.js | 99 +++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 Open-ILS/src/templates/cat/moveto/usudbury.tt2 create mode 100644 Open-ILS/web/js/ui/default/cat/moveto/usudbury.js diff --git a/Open-ILS/src/templates/cat/moveto/usudbury.tt2 b/Open-ILS/src/templates/cat/moveto/usudbury.tt2 new file mode 100644 index 0000000000..0fd7181ba4 --- /dev/null +++ b/Open-ILS/src/templates/cat/moveto/usudbury.tt2 @@ -0,0 +1,30 @@ +[% ctx.page_title = 'Move item to University of Sudbury' %] +[% WRAPPER base.tt2 %] + + + + +

Move item to University of Sudbury

+ +
+ + + + + +
+
+ +
+ +[% END %] + + diff --git a/Open-ILS/web/js/ui/default/cat/moveto/usudbury.js b/Open-ILS/web/js/ui/default/cat/moveto/usudbury.js new file mode 100644 index 0000000000..bead3c5ba8 --- /dev/null +++ b/Open-ILS/web/js/ui/default/cat/moveto/usudbury.js @@ -0,0 +1,99 @@ +dojo.require('fieldmapper.IDL'); +dojo.require('openils.PermaCrud'); +dojo.require('dojo.date'); +dojo.require('openils.CGI'); +dojo.require('openils.XUL'); + +var pcrud; +var pcrudReader; +var staff; +var copy; +var volume; +var record; +var rmsr; +var tbody; +var cgi; + +if(!window.xulG) var xulG = null; + +function load() { + staff = new openils.User().user; + pcrud = new openils.PermaCrud(); + pcrudReader = new openils.PermaCrud(); + cgi = new openils.CGI(); + var barcode = cgi.param('barcode'); + + if(xulG) { + if(xulG.ses) openils.User.authtoken = xulG.ses; + if(xulG.usr !== null) userId = xulG.usr + if(xulG.params) { + var parms = xulG.params; + if(parms.ses) + openils.User.authtoken = parms.ses; + if(parms.usr !== null) + userId = parms.usr + } + } + + dojo.byId("barcode").focus(); + moveCopy(barcode); +} + +function moveCopy(barcode) { + if (!barcode) { + // Just display the barcode entry form + return; + } +/* + copy = fieldmapper.standardRequest( + ['open-ils.search', 'open-ils.search.asset.copy.find_by_barcode'], + {params: [barcode]} + ); +*/ + /* Get rid of non-numeric barcode characters - probably need to configure the cheapo scanner */ + barcode = barcode.replace(/[^0-9]/g, ''); + copy = pcrud.search('acp', {"barcode":barcode}); + // There can be only one copy + copy = copy[0]; + if (!copy.location) { + dojo.place('
Barcode [' + barcode + '] was not found!
', 'resultsDiv', 'only'); + return; + } + copy.location(330); + copy.circ_lib(107); + copy.deleted(false) + copy.ischanged(true); + pcrud.update(copy); + + volume = pcrudReader.retrieve("acn", copy.call_number()); + volume.owning_lib(107); + volume.deleted(false); + pcrud.update(volume); + + record = pcrudReader.retrieve("bre", volume.record()); + record.active(true); + record.deleted(false); + pcrud.update(record); + + dojo.place("
" + copy.barcode() + "
", 'resultsDiv', 'only'); + dojo.place("
" + volume.label() + "
", 'resultsDiv', 'last'); + dojo.place("
" + record.marc() + "
", dojo.body(), 'last'); + dojo.place("
", 'resultsDiv', 'last'); + dojo.query("datafield[tag='245'] subfield").forEach(function(node, index, arr) { + dojo.place("" + node.innerHTML + " ", 'titleDiv', 'last'); + }); +} + +function moveCopyRefresh() { + var usr = cgi.param('barcode'); + var href = location.href.replace(/\?.*/, ''); + href += ((usr) ? '?barcode=' + barcode : ''); + location.href = href; +} + +function moveCopyRefreshXUL(newuser) { + if (window.xulG && typeof window.xulG.on_save == 'function') + window.xulG.on_save(newuser); +} + +openils.Util.addOnLoad(load); -- 2.11.0