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,
46 "flesh_cancel_reason": true
48 "oncomplete": function(r) {
49 drawLiInfo(openils.Util.readResponse(r));
55 function hideDetails() {
56 openils.Util.show("acq-related-mini");
57 openils.Util.hide("acq-related-info-div");
60 function showDetails() {
61 openils.Util.show("acq-related-info-div");
62 openils.Util.hide("acq-related-mini");
65 function fetchRelated() {
66 fieldmapper.standardRequest(
67 ["open-ils.acq", "open-ils.acq.lineitems_for_bib.by_lineitem_id"], {
69 "params": [openils.User.authtoken, liId, {
72 "flesh_cancel_reason": true
74 "onresponse": function(r) {
75 var resp = openils.Util.readResponse(r);
78 liTable.addLineitem(resp);
85 openils.acq.Lineitem.fetchAttrDefs(fetchLi);
86 dojo.byId("acq-related-info-back-button").onclick = hideDetails;
87 dojo.byId("acq-related-info-show-button").onclick = showDetails;
89 liTable = new AcqLiTable();
91 liTable._isRelatedViewer = true;
96 openils.Util.addOnLoad(load);