1 dojo.require("openils.acq.Lineitem");
2 dojo.require("openils.Util");
3 dojo.require("openils.XUL");
7 function attrDefByName(attr) {
8 return openils.acq.Lineitem.attrDefs[
9 attr.attr_type().replace(/lineitem_(.*)_attr_definition/, "$1")
11 function(o) { return (o.code() == attr.attr_name()); }
15 function drawLiInfo(li) {
16 var infoTbody = dojo.byId("acq-related-info-tbody");
17 var infoRow = infoTbody.removeChild(dojo.byId("acq-related-info-row"));
19 li.attributes().forEach(
21 var row = dojo.clone(infoRow);
23 nodeByName("label", row).innerHTML =
24 attrDefByName(attr).description();
25 nodeByName("value", row).innerHTML = attr.attr_value();
27 infoTbody.appendChild(row);
29 if (["title", "author"].indexOf(attr.attr_name()) != -1) {
31 attr.attr_name(), dojo.byId("acq-related-mini-display")
32 ).innerHTML = attr.attr_value();
39 fieldmapper.standardRequest(
40 ["open-ils.acq", "open-ils.acq.lineitem.retrieve"], {
42 "params": [openils.User.authtoken, liId, {
44 "flesh_li_details": true,
45 "flesh_fund_debit": true
47 "oncomplete": function(r) {
48 drawLiInfo(openils.Util.readResponse(r));
54 function hideDetails() {
55 openils.Util.show("acq-related-mini");
56 openils.Util.hide("acq-related-info-div");
59 function showDetails() {
60 openils.Util.show("acq-related-info-div");
61 openils.Util.hide("acq-related-mini");
64 function fetchRelated() {
65 fieldmapper.standardRequest(
66 ["open-ils.acq", "open-ils.acq.lineitems_for_bib.by_lineitem_id"], {
68 "params": [openils.User.authtoken, liId, {
69 "flesh_attrs": true, "flesh_notes": true
71 "onresponse": function(r) {
72 var resp = openils.Util.readResponse(r);
75 liTable.addLineitem(resp);
82 openils.acq.Lineitem.fetchAttrDefs(fetchLi);
83 dojo.byId("acq-related-info-back-button").onclick = hideDetails;
84 dojo.byId("acq-related-info-show-button").onclick = showDetails;
86 liTable = new AcqLiTable();
88 liTable._isRelatedViewer = true;
93 openils.Util.addOnLoad(load);