init_list();
$('list_actions').appendChild( list.render_list_actions() );
list.set_list_actions();
- $('submit').addEventListener('command', function() { handle_submit(); }, false);
+ populate_list();
+ $('submit').addEventListener('command', function() { handle_submit(true); }, false);
$('scanbox').addEventListener('keypress', handle_keypress, false);
default_focus();
}
} catch(E) {
- alert('Error in add_multi_home_items.js, my_init(): ' + E);
+ alert('Error in manage_multi_home_items.js, my_init(): ' + E);
}
}
ml.setAttribute('id','bpt_menu');
$('menu_placeholder').appendChild(ml);
} catch(E) {
- alert('Error in add_multi_home_items.js, init_menu(): ' + E);
+ alert('Error in manage_multi_home_items.js, init_menu(): ' + E);
}
}
}
);
} catch(E) {
- alert('Error in add_multi_home_items.js, init_list(): ' + E);
+ alert('Error in manage_multi_home_items.js, init_list(): ' + E);
}
}
function handle_keypress(ev) {
try {
if (ev.keyCode && ev.keyCode == 13) {
- handle_submit();
+ handle_submit(true);
}
} catch(E) {
- alert('Error in add_multi_home_items.js, handle_keypress(): ' + E);
+ alert('Error in manage_multi_home_items.js, handle_keypress(): ' + E);
}
}
-function handle_submit() {
+function handle_submit(create,my_bpbcm) {
try {
- var barcode = $('scanbox').value;
- $('scanbox').value = '';
- default_focus();
+ var barcode;
+ if (create) {
+ barcode = $('scanbox').value;
+ $('scanbox').value = '';
+ default_focus();
+ }
var placeholder_acp = new acp();
placeholder_acp.barcode(barcode);
var row_params = {
'row' : {
'my' : {
- 'acp' : placeholder_acp
+ 'acp' : placeholder_acp,
+ 'bpbcm' : bpbcm
}
}
};
var row_params = list.append(row_params);
- net.simple_request(
- 'FM_ACP_DETAILS_VIA_BARCODE.authoritative',
- [ ses(), barcode ],
- function(req) {
- try {
- var robj = req.getResultObject();
- if (typeof robj.ilsevent != 'undefined') {
- row_params.row.my.result = robj.textcode;
- } else {
- row_params.row.my.acp = robj.copy;
- row_params.row.my.mvr = robj.mvr;
-
- if (robj.mvr.doc_id() != xul_param('docid')) {
- var new_bpbcm = new bpbcm();
- new_bpbcm.isnew(1);
- new_bpbcm.peer_type($('bpt_menu').value);
- new_bpbcm.peer_record(xul_param('docid'));
- new_bpbcm.target_copy(robj.copy.id());
- pcrud.create(new_bpbcm, {
- "onerror" : function(r) {
- alert('here');
- alert(js2JSON(r));
- },
- "oncomplete": function (r, objs) {
- try {
- var obj = objs[0];
- if (obj) {
- row_params.row.my.result = 'Success';
- row_params.row.my.bpbcm = obj;
- } else {
- row_params.row.my.result = 'Failed';
- sound.bad();
- }
- list.refresh_row( row_params );
- } catch(E) {
- alert('Error in add_multi_home_items.js, handle_submit, pcrud create oncomplete callback: ' + E);
+ function handle_req(req) {
+ try {
+ var robj = req.getResultObject();
+ if (typeof robj.ilsevent != 'undefined') {
+ row_params.row.my.result = robj.textcode;
+ } else {
+ row_params.row.my.acp = robj.copy;
+ row_params.row.my.mvr = robj.mvr;
+
+ if (create && robj.mvr.doc_id() != xul_param('docid')) {
+ var new_bpbcm = new bpbcm();
+ new_bpbcm.isnew(1);
+ new_bpbcm.peer_type($('bpt_menu').value);
+ new_bpbcm.peer_record(xul_param('docid'));
+ new_bpbcm.target_copy(robj.copy.id());
+ pcrud.create(new_bpbcm, {
+ "onerror" : function(r) {
+ alert('here');
+ alert(js2JSON(r));
+ },
+ "oncomplete": function (r, objs) {
+ try {
+ var obj = objs[0];
+ if (obj) {
+ row_params.row.my.result = 'Success';
+ row_params.row.my.bpbcm = obj;
+ } else {
+ row_params.row.my.result = 'Failed';
+ sound.bad();
}
+ list.refresh_row( row_params );
+ } catch(E) {
+ alert('Error in manage_multi_home_items.js, handle_submit, pcrud create oncomplete callback: ' + E);
}
- });
+ }
+ });
+ } else {
+ if (robj.mvr.doc_id() != xul_param('docid')) {
+ row_params.row.my.result = 'Item linked to Bib';
} else {
row_params.row.my.result = 'Item native to Bib';
}
}
- list.refresh_row( row_params );
- } catch(E) {
- alert('Error in add_multi_home_items.js, handle_submit, acp details callback: ' + E);
}
+ list.refresh_row( row_params );
+ } catch(E) {
+ alert('Error in manage_multi_home_items.js, handle_submit, acp details callback: ' + E);
}
- );
+ }
+
+ if (my_bpbcm) {
+ net.simple_request(
+ 'FM_ACP_DETAILS', // FIXME: want this to be authoritative
+ [ ses(), my_bpbcm.target_copy() ],
+ handle_req
+ );
+ } else {
+ net.simple_request(
+ 'FM_ACP_DETAILS_VIA_BARCODE.authoritative',
+ [ ses(), barcode ],
+ handle_req
+ );
+ }
+
} catch(E) {
- alert('Error in add_multi_home_items.js, handle_submit(): ' + E);
+ alert('Error in manage_multi_home_items.js, handle_submit(): ' + E);
}
}
+function populate_list() {
+ try {
+ pcrud.search(
+ 'bpbcm',
+ {
+ peer_record : xul_param('docid')
+ },
+ {
+ async : true,
+ streaming : true,
+ onerror : function(r) {
+ alert('Error in manage_multi_home_items.js, populate_list(), pcrud.search onerror: ' + r);
+ },
+ oncomplete : function() {
+ },
+ onresponse : function(r) {
+ try {
+ var my_bpbcm = openils.Util.readResponse(r);
+ if (typeof my_bpbcm.ils_event != 'undefined') { throw(my_bpbcm); }
+ handle_submit(false,my_bpbcm);
+ } catch(E) {
+ alert('Error in manage_multi_home_items.js, populate_list(), pcrud.search onresponse: ' + E);
+ }
+ }
+ }
+ );
+
+ } catch(E) {
+ alert('Error in manage_multi_home_items.js, populate_list(): ' + E);
+ }
+}