1 function HoldsWindow(record) {
5 HoldsWindow.prototype.buildHoldsWindowCallback = function(type) {
8 var func = function() {
10 var wrapper = elem("div");
11 var id = hwindow.record.doc_id();
13 var org = UserSession.instance().userObject.home_ou();
14 wrapper.appendChild(hwindow.buildPickuplibSelector(org));
16 wrapper.appendChild(hwindow.buildResourceSelector());
17 wrapper.appendChild(hwindow.buildSubmit());
19 hwindow.win = window.open(null,"PLACE_HOLD_" + id,
20 "location=0,menubar=0,status=0,resizeable,resize," +
21 "outerHeight=500,outerWidth=500,height=500," +
22 "width=500,scrollbars=1," +
23 /*"screenX=100,screenY=100,top=100,left=100," + */
24 "alwaysraised, chrome" )
26 hwindow.win.document.write("<html>" + wrapper.innerHTML + "</html>");
27 hwindow.win.document.close();
28 hwindow.win.document.title = "View MARC";
35 HoldsWindow.prototype.buildSubmit = function() {
36 var div = elem("div");
37 var bdiv = elem("div")
39 bdiv.setAttribute("style",
40 "border-top: 1px solid lightgrey;" +
41 "border-bottom: 1px solid lightgrey;" +
42 "width:100%;text-align:center;");
44 var button = elem("input",
45 {type:"submit", value:"Place Hold"});
47 div.appendChild(elem("br"));
48 bdiv.appendChild(button);
49 div.appendChild(bdiv);
54 /* builds a selecor where the client can select the location to which
56 HoldsWindow.prototype.buildPickuplibSelector = function(selected_id) {
58 var div = elem("div");
59 var tdiv = elem("div",null, null,
60 "Select the location where the item(s) shall be delivered");
62 var sdiv = elem("div");
63 var selector = elem("select");
65 /* this is not copied over... XXX fix me */
66 selector.onchange = function() {
68 var idx = selector.selectedIndex;
69 var option = selector.options[idx];
70 var org = findOrgUnit(option.value);
72 var d = getById("selector_error_div");
73 if(d) div.removeChild(d);
75 if(parseInt(findOrgType(org.ou_type()).depth()) < 2) {
76 alert("A REGION was selected");
78 {id:"selector_error_div", style:"color:red"},null,
79 org.name() + " is a library system, please select a single branch");
82 alert("Depth is " + findOrgType(org.ou_type()).depth());
86 sdiv.appendChild(selector);
87 _buildOrgList(selector, selected_id, null);
89 div.appendChild(elem("br"));
90 div.appendChild(tdiv);
91 div.appendChild(sdiv);
95 /* utility function for building a org list selector object */
96 function _buildOrgList(selector, selected_id, org) {
98 if(selected_id == null) selected_id = -1;
103 } else { /* add the org to the list */
104 var index = selector.options.length;
106 var node = elem("pre");
107 for(var x=2; x <= findOrgType(org.ou_type()).depth(); x++) {
108 node.appendChild(mktext(" "));
110 node.appendChild(mktext(org.name()));
111 var select = new Option("", org.id());
112 selector.options[index] = select;
113 select.appendChild(node);
116 var pad = (findOrgType(org.ou_type()).depth() - 1) * 12;
117 var select = new Option(org.name(), org.id());
118 select.setAttribute("style", "padding-left: " + pad);
119 selector.options[index] = select;
122 if(parseInt(org.id()) == parseInt(selected_id)) {
123 selector.selectedIndex = index;
124 selector.options[index].selected = true;
128 for(var idx in org.children())
129 _buildOrgList(selector, selected_id, org.children()[idx]);
132 HoldsWindow.prototype.buildResourceSelector = function() {
135 var big_div = elem('div');
137 var desc_div = elem("div",null, null,
138 "Select all acceptible item formats");
144 "software, multimedia",
149 "three dimensional object" ];
151 var table = elem("table");
153 for( var idx in resources ) {
154 var row = table.insertRow(table.rows.length)
156 var pic_cell = row.insertCell(0);
157 var name_cell = row.insertCell(1);
158 var box_cell = row.insertCell(2);
159 var box = elem("input",
160 {type:"checkbox", id: resources[idx] + "_hold_checkbox"}, null);
162 if(idx == 0) { /* select text by default */
163 box.setAttribute("checked","checked");
167 pic_cell.appendChild(mkResourceImage(resources[idx]));
168 name_cell.appendChild(mktext(resources[idx]));
169 box_cell.appendChild(mktext(" "));
170 box_cell.appendChild(box);
173 big_div.appendChild(elem("br"));
174 big_div.appendChild(desc_div);
175 big_div.appendChild(table);
180 function mkResourceImage(resource) {
181 var pic = elem("img");
182 pic.setAttribute("src", "/images/" + resource + ".jpg");
183 pic.setAttribute("width", "20");
184 pic.setAttribute("height", "20");
185 pic.setAttribute("title", resource);