return {complete => 1};
}
+__PACKAGE__->register_method(
+ api_name => "open-ils.vandelay.bib_queue.export",
+ method => 'export_queue',
+ api_level => 1,
+ argc => 2,
+ stream => 1,
+ max_chunk_size => 0,
+ record_type => 'bib',
+ signature => {
+ desc => q/
+ Attempts to export all non-imported records for the selected queue.
+ /
+ }
+);
+
+__PACKAGE__->register_method(
+ api_name => "open-ils.vandelay.auth_queue.export",
+ method => 'export_queue',
+ api_level => 1,
+ argc => 2,
+ stream => 1,
+ max_chunk_size => 0,
+ record_type => 'auth',
+ signature => {
+ desc => q/
+ Attempts to export all non-imported records for the selected queue.
+ /
+ }
+);
+
+# TODO: Right now, this just simply exports unimported XML bibs.
+# Eventually, more options (bibs for unimported items, all bibs
+# in queue, selected records, different MARC formats) might make
+# sense.
+sub export_queue {
+ my($self, $conn, $auth, $q_id, $options) = @_;
+ my $e = new_editor(authtoken => $auth, xact => 1);
+ return $e->die_event unless $e->checkauth;
+ my $type = $self->{record_type};
+ my $class = ($type eq 'bib') ? 'vqbr' : 'vqar';
+
+ # Collect the not-yet-imported records
+ my $query = {queue => $q_id, import_time => undef};
+ my $search = ($type eq 'bib') ?
+ 'search_vandelay_queued_bib_record' :
+ 'search_vandelay_queued_authority_record';
+ my $recs = $e->$search($query);
+
+ my $xml = <<" HEADER";
+<?xml version="1.0" encoding="UTF-8"?>
+<collection xmlns='http://www.loc.gov/MARC21/slim'>
+ HEADER
+
+ foreach my $rec (@$recs) {
+ $xml .= $rec->marc;
+ }
+
+ $xml .= "</collection>\n";
+
+ return $xml;
+}
+
# returns a list of queued record IDs for a given queue that
# have at least one entry in the match table
# XXX DEPRECATED?
<tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import")'>[% l('Import Selected Records') %]</a></td></tr>
<tr><td><a href='javascript:;' onclick='vlHandleQueueItemsAction("import_all")'>[% l('Import All Records') %]</a></td></tr>
<tr><td><a href='javascript:;' onclick='vlLoadErrorUIAll();'>[% l('View Import Items') %]</a></td></tr>
+ <tr><td><a href='javascript:;' onclick='vlExportRecordQueue()'>[% l('Export Non-Imported Records') %]</a></td></tr>
<tr><td><a href='javascript:;' onclick='
if(confirm("[% l('Are you sure you want to delete this queue?') %]")) {
vlDeleteQueue(currentType, currentQueueId,
var attrDefMap = {}; // maps attr def code names to attr def ids
var currentType;
var currentQueueId = null;
+var currentQueueName = null;
var userCache = {};
var currentMatchedRecords; // set of loaded matched bib records
var currentOverlayRecordsMap; // map of import record to overlay record
}
}
+/* export all (non-imported) queue records */
+function vlExportRecordQueue() {
+ /* determine which method we're calling */
+ var method = 'open-ils.vandelay.bib_queue.export';
+ if(currentType == 'auth')
+ method = method.replace('bib', 'auth');
+
+ var params = [authtoken, currentQueueId];
+ fieldmapper.standardRequest(
+ ['open-ils.vandelay', method],
+ { async: true,
+ params: params,
+ oncomplete : function(r) {marcExportHandler(r)}
+ }
+ );
+}
+
+function marcExportHandler(response) {
+ var content = openils.Util.readResponse(response);
+ openils.XUL.contentToFileSaveDialog(content, null, {
+ defaultString : currentQueueName + '_nonimported.xml',
+ defaultExtension : '.xml',
+ filterName : 'XML',
+ filterExtension : '*.xml',
+ filterAll : true
+ } );
+}
+
function retrieveQueuedRecords(type, queueId, onload, doExport) {
displayGlobalDiv('vl-generic-progress');
queuedRecords = [];
}
vlFetchQueueSummary(currentQueueId, currentType,
function(summary) {
- dojo.byId('vl-queue-summary-name').innerHTML = summary.queue.name();
+ currentQueueName = summary.queue.name();
+ dojo.byId('vl-queue-summary-name').innerHTML = currentQueueName;
dojo.byId('vl-queue-summary-total-count').innerHTML = summary.total +'';
dojo.byId('vl-queue-summary-import-count').innerHTML = summary.imported + '';
dojo.byId('vl-queue-summary-import-item-count').innerHTML = summary.total_items + '';