3 var currentHoldRecordObj;
4 var holdsOrgSelectorBuilt = false;
6 function holdsDrawWindow(recid, type) {
9 recid = currentHoldRecord;
10 if(recid == null) return;
12 currentHoldRecord = recid;
14 if(!(G.user && G.user.session)) {
16 detachAllEvt('common','locationChanged');
17 attachEvt('common','loggedIn', holdsDrawWindow)
21 swapCanvas($('holds_box'));
23 var rec = findRecord( recid, type );
24 currentHoldsRecordObj = rec;
26 if(!holdsOrgSelectorBuilt) {
27 holdsBuildOrgSelector(null,0);
28 holdsOrgSelectorBuilt = true;
31 removeChildren($('holds_title'));
32 removeChildren($('holds_author'));
33 removeChildren($('holds_format'));
34 removeChildren($('holds_email'));
35 removeChildren($('holds_email'));
37 $('holds_title').appendChild(text(rec.title()));
38 $('holds_author').appendChild(text(rec.author()));
40 for( var i in rec.types_of_resource() ) {
41 var res = rec.types_of_resource()[i];
42 var img = elem("img");
43 setResourcePic(img, res);
44 $('holds_format').appendChild(text(' '+res+' '));
45 $('holds_format').appendChild(img);
46 $('holds_format').appendChild(text(' '));
49 $('holds_phone').appendChild(text(G.user.day_phone()));
50 $('holds_email').appendChild(text(G.user.email()));
51 $('holds_cancel').onclick = showCanvas;
52 $('holds_submit').onclick = holdsPlaceHold;
56 function holdsBuildOrgSelector(node, depth) {
63 var selector = $('holds_org_selector');
64 var index = selector.options.length;
67 var pre = elem("pre");
68 for(var x=2; x <= findOrgType(node.ou_type()).depth(); x++) {
69 pre.appendChild(text(" "));
71 pre.appendChild(text(node.name()));
72 var select = new Option("", node.id());
73 selector.options[index] = select;
74 select.appendChild(pre);
77 var pad = (findOrgType(node.ou_type()).depth() - 1) * 12;
79 var select = new Option(node.name(), node.id());
80 select.setAttribute("style", "padding-left: "+pad+'px;');
81 selector.options[index] = select;
84 if( node.id() == G.user.home_ou() ) {
85 selector.selectedIndex = index;
86 selector.options[index].selected = true;
89 for( var i in node.children() ) {
90 var child = node.children()[i];
92 holdsBuildOrgSelector(child, depth+1);
97 function holdsPlaceHold() {
98 //alert("placing hold for " + currentHoldRecord );
100 var org = $('holds_org_selector').options[$('holds_org_selector').selectedIndex].value;
102 var hold = new ahr();
103 hold.pickup_lib(org);
104 hold.request_lib(org);
105 hold.requestor(G.user.id());
106 hold.usr(G.user.id());
108 hold.email_notify(G.user.email());
109 hold.phone_notify(G.user.day_phone());
110 hold.target(currentHoldRecord);
112 var req = new Request( CREATE_HOLD, G.user.session, hold );
114 var res = req.result();
117 if( res == '1' ) alert($('holds_success').innerHTML);
118 else alert($('holds_failure').innerHTML);
123 function holdsCancel(holdid) {
124 var req = new Request(CANCEL_HOLD, G.user.session, holdid);