| 37 | | for(var field in fields) { |
| 38 | | input = new dijit.form.TextBox({name:field, label:field}); |
| 39 | | dojo.byId('oils-acq-search-fields').appendChild(document.createTextNode(field)); |
| | 39 | searchFields = searchFields.sort( |
| | 40 | function(a,b) { |
| | 41 | if(a.label < b.label) |
| | 42 | return -1; |
| | 43 | if(a.label > b.label) |
| | 44 | return 1; |
| | 45 | return 0; |
| | 46 | } |
| | 47 | ); |
| | 48 | |
| | 49 | for(var f in searchFields) { |
| | 50 | var field = searchFields[f]; |
| | 51 | if(dijit.byId('text_input_'+field.name)) |
| | 52 | continue; |
| | 53 | input = new dijit.form.TextBox({name:field.name, label:field.label, id:'text_input_'+field.name}); |
| | 54 | dojo.byId('oils-acq-search-fields').appendChild(document.createTextNode(field.label)); |
| 47 | | alert(bibSourceSelect.getValue()); |
| | 62 | |
| | 63 | search = { |
| | 64 | service : [], |
| | 65 | username : [], |
| | 66 | password : [], |
| | 67 | search : {}, |
| | 68 | limit : ${c.oils.acq.limit.value}, |
| | 69 | offset : ${c.oils.acq.offset.value} |
| | 70 | } |
| | 71 | |
| | 72 | var selected = bibSourceSelect.getValue(); |
| | 73 | for(var i = 0; i < selected.length; i++) { |
| | 74 | search.service.push(selected[i]); |
| | 75 | search.username.push(''); |
| | 76 | search.password.push(''); |
| | 77 | } |
| | 78 | |
| | 79 | for(var f in searchFields) { |
| | 80 | var field = searchFields[f]; |
| | 81 | var input = dijit.byId('text_input_'+field.name); |
| | 82 | if(input.getValue()) |
| | 83 | search.search[field.name] = input.getValue(); |
| | 84 | } |
| | 85 | |
| | 86 | alert(js2JSON(search)); |
| | 87 | fieldmapper.standardRequest( |
| | 88 | ['open-ils.search', 'open-ils.search.z3950.search_class'], |
| | 89 | { async: true, |
| | 90 | params: [user.authtoken, search], |
| | 91 | onresponse: handleResult, |
| | 92 | oncomplete: viewPicklist |
| | 93 | } |
| | 94 | ); |
| | 96 | |
| | 97 | function viewPicklist() { |
| | 98 | location.href = '${c.oils.acq.prefix.value}/picklist/view/' + resultPicklist.id(); |
| | 99 | } |
| | 100 | |
| | 101 | var resultPicklist; |
| | 102 | function handleResult(r) { |
| | 103 | var result = r.recv().content(); |
| | 104 | if(!resultPicklist) |
| | 105 | createResultPicklist(); |
| | 106 | |
| | 107 | for(var idx in result.records) { |
| | 108 | var rec = result.records[idx]; |
| | 109 | var lineitem = new jub() |
| | 110 | |
| | 111 | lineitem.picklist(resultPicklist.id()); |
| | 112 | lineitem.source_label(result.service) |
| | 113 | lineitem.marc(rec.marcxml) |
| | 114 | lineitem.eg_bib_id(rec.bibid) |
| | 115 | |
| | 116 | var id = fieldmapper.standardRequest( |
| | 117 | ['open-ils.acq', 'open-ils.acq.lineitem.create'], |
| | 118 | [user.authtoken, lineitem] |
| | 119 | ); |
| | 120 | alert('created id ' + id); |
| | 121 | } |
| | 122 | } |
| | 123 | |
| | 124 | function createResultPicklist() { |
| | 125 | resultPicklist = new acqpl(); |
| | 126 | resultPicklist.name(''); |
| | 127 | resultPicklist.owner(user.user.id()); |
| | 128 | |
| | 129 | alert(js2JSON(resultPicklist)); |
| | 130 | |
| | 131 | /* delete the old picklist with name = '' */ |
| | 132 | var pl = fieldmapper.standardRequest( |
| | 133 | ['open-ils.acq', 'open-ils.acq.picklist.name.retrieve'], |
| | 134 | [user.authtoken, ''] |
| | 135 | ); |
| | 136 | |
| | 137 | if(pl) { |
| | 138 | fieldmapper.standardRequest( |
| | 139 | ['open-ils.acq', 'open-ils.acq.picklist.delete'], |
| | 140 | [user.authtoken, pl.id()] |
| | 141 | ); |
| | 142 | } |
| | 143 | |
| | 144 | resultPicklist.id( |
| | 145 | fieldmapper.standardRequest( |
| | 146 | ['open-ils.acq', 'open-ils.acq.picklist.create'], |
| | 147 | [user.authtoken, resultPicklist] |
| | 148 | ) |
| | 149 | ); |
| | 150 | } |
| | 151 | |