Backport r71394 and r17395 from trunk: bib_source selection in Vandelay
authordbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 31 Aug 2010 15:18:04 +0000 (15:18 +0000)
committerdbs <dbs@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Tue, 31 Aug 2010 15:18:04 +0000 (15:18 +0000)
When importing a set of records from Vandelay, the bib source selection widget
on the Vandelay screen should actually affect the biblio.record_entry.source
value of the imported records.

We also pass the record types to the MARC editor from the Vandelay and
acquisitions interfaces, for however much good that does for us (not much
at the moment).

git-svn-id: svn://svn.open-ils.org/ILS/branches/rel_1_6@17403 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/perlmods/OpenILS/Application/Cat/BibCommon.pm
Open-ILS/src/perlmods/OpenILS/Application/Vandelay.pm
Open-ILS/web/js/ui/default/acq/common/li_table.js
Open-ILS/web/js/ui/default/vandelay/vandelay.js

index 1e311c2..34eeee7 100644 (file)
@@ -86,6 +86,9 @@ sub biblio_record_xml_import {
                return $evt if $evt;
        }
 
+       # Silence warnings when _find_tcn_info() fails
+       $tcn ||= '';
+       $tcn_source ||= '';
        $logger->info("user ".$e->requestor->id.
                " creating new biblio entry with tcn=$tcn and tcn_source $tcn_source");
 
index 0e7903a..570eeab 100644 (file)
@@ -541,6 +541,13 @@ sub import_record_list_impl {
     my %queues;
     my @ingest_queue;
 
+    my %bib_sources; 
+    my $editor = new_editor(); 
+    my $sources = $editor->search_config_bib_source({id => {'!=' => undef}}); 
+    foreach my $src (@$sources) { 
+        $bib_sources{$src->id} = $src->source; 
+    } 
+
     my $ingest_ses = OpenSRF::AppSession->connect('open-ils.ingest');
 
     for my $rec_id (@$rec_ids) {
@@ -570,11 +577,11 @@ sub import_record_list_impl {
             if(defined $overlay_target) {
                 $logger->info("vl: overlaying record $overlay_target");
                 $record = OpenILS::Application::Cat::BibCommon->biblio_record_replace_marc(
-                    $e, $overlay_target, $rec->marc); #$rec->bib_source
+                    $e, $overlay_target, $rec->marc, $bib_sources{$rec->bib_source});
             } else {
                 $logger->info("vl: importing new record");
                 $record = OpenILS::Application::Cat::BibCommon->biblio_record_xml_import(
-                    $e, $rec->marc); #$rec->bib_source
+                    $e, $rec->marc, $bib_sources{$rec->bib_source});
             }
 
             if($U->event_code($record)) {
index 30ac9e2..4a8c271 100644 (file)
@@ -971,7 +971,7 @@ function AcqLiTable() {
         }
         var self = this;
         win.xulG = {
-            record : {marc : li.marc()},
+            record : {marc : li.marc(), "rtype": "bre"},
             save : {
                 label: 'Save Record', // XXX I18N
                 func: function(xmlString) {
index cb0b2ff..07a644d 100644 (file)
@@ -951,6 +951,13 @@ function vlOpenMarcEditWindow(rec, postReloadHTMLHandler) {
     netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect');
     win = window.open('/xul/server/cat/marcedit.xul'); // XXX version?
 
+    var type;
+    if (currentType == 'bib') {
+        type = 'bre';
+    } else {
+        type = 'are';
+    }
+
     function onsave(r) {
         // after the record is saved, reload the HTML display
         var stat = r.recv().content();
@@ -962,7 +969,7 @@ function vlOpenMarcEditWindow(rec, postReloadHTMLHandler) {
     }
 
     win.xulG = {
-        record : {marc : rec.marc()},
+        record : {marc : rec.marc(), "rtype": type},
         save : {
             label: dojo.byId('vl-marc-edit-save-label').innerHTML,
             func: function(xmlString) {