--- /dev/null
+dojo.require("openils.acq.Lineitem");
+dojo.require("openils.Util");
+dojo.require("openils.XUL");
+dojo.require("openils.CGI");
+dojo.require("openils.PermaCrud");
+dojo.require('openils.BibTemplate');
+dojo.require('fieldmapper.OrgUtils');
+
+var liTable;
+var identTarget;
+var bibRecord;
+var paramPL;
+var paramPO;
+
+function fetchLi() {
+ fieldmapper.standardRequest(
+ ["open-ils.acq", "open-ils.acq.lineitem.retrieve.authoritative"], {
+ "async": true,
+ "params": [openils.User.authtoken, targetId, {
+ "flesh_attrs": true,
+ "flesh_li_details": true,
+ "flesh_fund_debit": true,
+ "flesh_cancel_reason": true
+ }],
+ "oncomplete": function(r) {
+ var li = openils.Util.readResponse(r);
+ fetchBib(li.eg_bib_id());
+ }
+ }
+ );
+}
+
+
+function fetchRelated() {
+ var method = 'open-ils.acq.lineitems_for_bib.by_lineitem_id';
+ if(identTarget == 'bib')
+ var method = 'open-ils.acq.lineitems_for_bib.by_bib_id';
+
+ var total = 0;
+ fieldmapper.standardRequest(
+ ["open-ils.acq", method], {
+ "async": true,
+ "params": [openils.User.authtoken, targetId, {
+ "flesh_attrs": true,
+ "flesh_notes": true,
+ "flesh_cancel_reason": true
+ }],
+ "onresponse": function(r) {
+ var resp = openils.Util.readResponse(r);
+ if (resp) {
+ total++;
+ liTable.show("list");
+ liTable.addLineitem(resp);
+ }
+ }
+ }
+ );
+}
+
+function fetchBib(bibId) {
+ bibId = bibId || targetId;
+ new openils.BibTemplate({
+ record : bibId,
+ org_unit : fieldmapper.aou.findOrgUnit(openils.User.user.ws_ou()).shortname()
+ }).render();
+
+ new openils.PermaCrud().retrieve('bre', bibId, {
+ oncomplete : function(r) {
+ bibRecord = openils.Util.readResponse(r);
+ // render bib details
+ // perhaps we just pull these from the beating heart of bibtemplate
+ }
+ })
+}
+
+function createLi(oncomplete) {
+ return function() {
+ progressDialog.show();
+ liTable.reset();
+ fieldmapper.standardRequest(
+ ["open-ils.acq", "open-ils.acq.biblio.create_by_id"], {
+ "params": [
+ openils.User.authtoken, [bibRecord.id()], {
+ "flesh_attrs": true,
+ "flesh_cancel_reason": true,
+ "flesh_notes": true
+ }
+ ],
+ "async": false,
+ "onresponse": function(r) {
+ var li = openils.Util.readResponse(r);
+ if (typeof(li) == "object") {
+ liTable.show("list");
+ liTable.addLineitem(li);
+ dojo.query(
+ "input[name='selectbox']", liTable._findLiRow(li)
+ )[0].checked = true;
+ }
+ },
+ "oncomplete": function() {
+ progressDialog.hide();
+ oncomplete();
+ }
+ }
+ );
+ };
+}
+
+function prepareButtons() {
+ addToPlButton.onClick = createLi(
+ function() { /* oncomplete */
+ acqLitSavePlDialog.show();
+ }
+ );
+ createPoButton.onClick = createLi(
+ function() { /* oncomplete */
+ liTable._loadPOSelect();
+ acqLitPoCreateDialog.show();
+ }
+ );
+}
+
+function load() {
+ var cgi = new openils.CGI();
+
+ identTarget = cgi.param('target');
+ paramPL = cgi.param('pl');
+// paramPO = cgi.param('po');
+
+ if (identTarget == 'bib') {
+ fetchBib();
+ } else {
+ fetchLi();
+ }
+
+ liTable = new AcqLiTable();
+ liTable.reset();
+ liTable._isRelatedViewer = true;
+
+ prepareButtons();
+ fetchRelated();
+}
+
+openils.Util.addOnLoad(load);