]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/web/js/ui/default/acq/lineitem/findbib.js
Acq: fix minor bug, sometimes view/place orders interface failed if you clicked
[working/Evergreen.git] / Open-ILS / web / js / ui / default / acq / lineitem / findbib.js
1 dojo.require('openils.Util');
2 dojo.require('openils.BibTemplate');
3 dojo.require('fieldmapper.OrgUtils');
4 dojo.require('openils.CGI');
5 dojo.require('openils.widget.ProgressDialog');
6
7 var limit = 15;
8 var offset = 0;
9 var template;
10 var container;
11
12 function drawSearch() {
13     container = dojo.byId('acq-findbib-container');
14     template = container.removeChild(dojo.byId('acq-findbib-template'));
15     var cgi = new openils.CGI();
16     searchQuery.attr('value', cgi.param('query') || '');
17     searchQuery.domNode.select();
18     openils.Util.registerEnterHandler(searchQuery.domNode, doSearch);
19 }
20
21 function doSearch() {
22     while(container.childNodes[0])
23         container.removeChild(container.childNodes[0])
24     progressDialog.show(true);
25     var query = searchQuery.attr('value');
26     fieldmapper.standardRequest(
27         ['open-ils.search', 'open-ils.search.biblio.multiclass.query.staff'],
28         {
29             async : true,
30             params : [{limit : limit}, query, 1],
31             oncomplete : drawResult
32         }
33     );
34 }
35
36 function drawResult(r) {
37     progressDialog.hide();
38     var result = openils.Util.readResponse(r);
39     dojo.forEach(
40         result.ids,
41         function(id) {
42             id = id[0];
43             var div = template.cloneNode(true);
44             container.appendChild(div);
45
46             var viewMarc = dojo.query('[name=view-marc]', div)[0];
47             viewMarc.onclick = function() { showMARC(id); };
48             var selectRec = dojo.query('[name=select-rec]', div)[0];
49             selectRec.onclick = function() { selectRecord(id); };
50
51             new openils.BibTemplate({
52                 record : id,
53                 org_unit : fieldmapper.aou.findOrgUnit(openils.User.user.ws_ou()).shortname(),
54                 root : div
55             }).render();
56         }
57     );
58 }
59
60 function showMARC(bibId) {
61     openils.Util.show(dojo.byId('marc-div'));
62     fieldmapper.standardRequest(
63         ['open-ils.search', 'open-ils.search.biblio.record.html'],
64         {   
65             async: true,
66             params: [bibId, true],
67             oncomplete: function(r) {
68                 dojo.byId('marc-html-div').innerHTML = openils.Util.readResponse(r);
69             }
70         }
71     );
72 }
73
74 function selectRecord(bibId) {
75     if(window.recordFound) {
76         window.recordFound(bibId);
77     }
78 }
79
80
81 openils.Util.addOnLoad(drawSearch);
82