From 2bba94204504382af1ddf30c41811500910f5c12 Mon Sep 17 00:00:00 2001 From: erickson Date: Tue, 17 Mar 2009 14:17:55 +0000 Subject: [PATCH] started lineitem info pane, which shows marc record and (eventually) all lineitem attrs. will also link to li_details git-svn-id: svn://svn.open-ils.org/ILS/trunk@12556 dcc99617-32d9-48b4-a31d-7c20da2025e4 --- Open-ILS/web/js/ui/default/acq/common/li_table.js | 58 ++++++++++++++++++++++ .../web/templates/default/acq/common/li_table.tt2 | 14 +++++- 2 files changed, 71 insertions(+), 1 deletion(-) diff --git a/Open-ILS/web/js/ui/default/acq/common/li_table.js b/Open-ILS/web/js/ui/default/acq/common/li_table.js index 24d1fe1dce..5abe5d80fe 100644 --- a/Open-ILS/web/js/ui/default/acq/common/li_table.js +++ b/Open-ILS/web/js/ui/default/acq/common/li_table.js @@ -1,3 +1,5 @@ +dojo.require('openils.User'); +dojo.require('openils.Util'); dojo.require('openils.acq.Lineitem'); function AcqLiTable() { @@ -8,6 +10,7 @@ function AcqLiTable() { this.tbody = dojo.byId('acq-lit-tbody'); this.selectors = []; this.rowTemplate = this.tbody.removeChild(dojo.byId('acq-lit-row')); + this.authtoken = openils.User.authtoken; dojo.byId('acq-lit-select-toggle').onclick = function(){self.toggleSelect()}; this.reset = function() { @@ -62,9 +65,64 @@ function AcqLiTable() { var tds = dojo.query('[attr]', row); dojo.forEach(tds, function(td) {self.setRowAttr(td, liWrapper, td.getAttribute('attr'));}); dojo.query('[name=source_label]', row)[0].appendChild(document.createTextNode(li.source_label())); + var isbn = liWrapper.findAttr('isbn', 'lineitem_marc_attr_definition'); + if(isbn) { + // XXX media prefix for added content + dojo.query('[name=jacket]', row)[0].setAttribute('src', '/opac/extras/ac/jacket/small/' + isbn); + } + dojo.query('[attr=title]', row)[0].onclick = function() {self.drawInfo(li.id())}; self.tbody.appendChild(row); self.selectors.push(dojo.query('[name=selectbox]', row)[0]); }; + + this.drawInfo = function(liId) { + //if(!this.liAttrDefs) + + this.showInfo(); + fieldmapper.standardRequest( + ['open-ils.acq', 'open-ils.acq.lineitem.retrieve'], + { async: true, + + params: [self.authtoken, liId, { + flesh_attrs: true, + flesh_li_details: true, + flesh_fund: true, + flesh_fund_debit: true }], + + oncomplete: function(r) { + var li = openils.Util.readResponse(r); + self._drawInfo(li); + } + } + ); + }; + + this._drawInfo = function(li) { + this.drawMarcHTML(li); + this.infoTbody = dojo.byId('acq-lit-info-tbody'); + if(!this.infoRow) + this.infoRow = this.infoTbody.removeChild(dojo.byId('acq-lit-info-row')); + for(var i = 0; i < li.attributes().length; i++) { + var attr = li.attributes()[i]; + var row = this.infoRow.cloneNode(true); + dojo.query('[name=label]', row)[0].appendChild(document.createTextNode(attr.attr_name())); + dojo.query('[name=value]', row)[0].appendChild(document.createTextNode(attr.attr_value())); + this.infoTbody.appendChild(row); + } + }; + + this.drawMarcHTML = function(li) { + fieldmapper.standardRequest( + ['open-ils.search', 'open-ils.search.biblio.record.html'], + { async: true, + params: [null, true, li.marc()], + oncomplete: function(r) { + dojo.byId('acq-lit-marc-div').innerHTML = + openils.Util.readResponse(r); + } + } + ); + } } diff --git a/Open-ILS/web/templates/default/acq/common/li_table.tt2 b/Open-ILS/web/templates/default/acq/common/li_table.tt2 index f4e97e5393..25f41e7058 100644 --- a/Open-ILS/web/templates/default/acq/common/li_table.tt2 +++ b/Open-ILS/web/templates/default/acq/common/li_table.tt2 @@ -12,7 +12,10 @@ - + + + +
@@ -33,6 +36,15 @@
-- 2.11.0