# This patch file was generated by NetBeans IDE
# This patch can be applied using context Tools: Apply Diff Patch action on respective folder.
# It uses platform neutral UTF-8 encoding.
# Above lines and this line are ignored by the patching process.
Index: contributions/modules/millennium/millennium.admin.inc
--- contributions/modules/millennium/millennium.admin.inc Base (1.1.2.22)
+++ contributions/modules/millennium/millennium.admin.inc Locally Modified (Based On 1.1.2.22)
@@ -299,6 +299,7 @@
       'list' => t('Record number listing'), 
       'range' => t('Record number range'),
       'query' => t('Enter a keyword query'),
+      'url' => t('Enter a URL for a result listing (only works for certain record display types)'),
       'existing' => t('All already-imported records (@num items)', array("@num" => $tot_imported_nodes)),
       'test' => t('Run predefined tests against some known OPACs'),
     ),
@@ -362,6 +363,25 @@
     '#size' => 7,
     '#title' => t('Ending number'),
   );
+  $form['url'] = array(
+    '#type' => 'fieldset',
+    '#title' => t('URL for a result listing'),
+    '#attributes' =>  array('id' => 'url-fieldset'),
+  );
+  $form['url']['url'] = array(
+    '#type' => 'textfield',
+    '#default_value' => variable_get('millennium_import_form_url', ''),
+    '#size' => 80,
+    '#title' => t('URL for listing'),
+    '#description' => t('Copy a URL for a result listing from a WebOPAC. NOTE: This will only work when the links in the lists lead to a single record (like keyword searches and featured lists)'),
+  );
+  $form['url']['num_items2'] = array(
+    '#type' => 'textfield',
+    '#default_value' => variable_get('millennium_import_form_num_items', 10),
+    '#size' => 5,
+    '#title' => t('Maximum number of items to import'),
+    '#description' => t('Enter the number of items to import.')
+  );
   $form['query'] = array(
     '#type' => 'fieldset',
     '#title' => t('Keyword query'),
@@ -420,7 +440,7 @@
  * Validate function for millennium_admin_queue() form
  */
 function millennium_admin_queue_validate($form, &$form_state) {
-
+  drupal_add_js(drupal_get_path("module", "millennium") . "/millennium_admin.js");
   if ($form_state["values"]["source"] == "range" ||
     $form_state["values"]["source"] == "list" ||
     $form_state["values"]["source"] == "query") {
@@ -478,7 +498,19 @@
       form_set_error('num_items', t("You must enter a number greater than 0."));
     }
   }
+
+  if ($form_state["values"]["source"] == "url") {
+    if (!$form_state['values']['url']
+      || !millennium_get_real_baseurl($form_state["values"]["url"])
+      || !millennium_ping($form_state["values"]["url"])
+      ) {
+      form_set_error('url', t("You must enter a valid URL."));
 }
+    if (($form_state['values']['num_items2']+0) <= 0) {
+      form_set_error('num_items2', t("You must enter a number greater than 0."));
+    }
+  }
+}
 
 /**
  * Submit function for millennium_admin_queue() form
@@ -498,7 +530,7 @@
     variable_set('millennium_range_form_start', $form_state["values"]["start"]);
     variable_set('millennium_range_form_end', $form_state["values"]["end"]);
     variable_set('millennium_import_form_kw', $form_state["values"]["kw"]);
-    variable_set('millennium_import_form_num_items', $form_state["values"]["num_items"]);
+    variable_set('millennium_import_form_url', $form_state["values"]["url"]);
 
     if ($form_state["clicked_button"]["#value"] == t("Process these records during cron runs")) {
 
@@ -603,6 +635,7 @@
 
       if ($form_state["values"]["source"] == "query") {
         require_once 'millennium.import.inc';
+        variable_set('millennium_import_form_num_items', $form_state["values"]["num_items"]);
         $base_url = $form_state['values']['millennium_webopac_baseurl'];
         $records = millennium_query_scrape(
           $form_state["values"]["kw"],
@@ -614,6 +647,19 @@
         }
       }
 
+      if ($form_state["values"]["source"] == "url") {
+        require_once 'millennium.import.inc';
+        variable_set('millennium_import_form_num_items', $form_state["values"]["num_items2"]);
+        $records = millennium_result_list_scrape(
+          $form_state["values"]["url"],
+          $form_state["values"]["num_items2"]
+        );
+        $base_url = millennium_get_real_baseurl($form_state["values"]["url"]);
+        foreach ($records as $recnum) {
+          $records_to_crawl[$base_url][$recnum] = $recnum;
+        }
+      }
+
       if ($form_state["values"]["source"] == "existing") {
         $result = db_query("SELECT bib_recnum, base_url FROM {millennium_node_bib} ORDER BY base_url");
         while ($data = db_fetch_object($result)) {
Index: contributions/modules/millennium/millennium.import.inc
--- contributions/modules/millennium/millennium.import.inc Base (1.1.2.17)
+++ contributions/modules/millennium/millennium.import.inc Locally Modified (Based On 1.1.2.17)
Index: contributions/modules/millennium/millennium_admin.js
--- contributions/modules/millennium/millennium_admin.js Base (1.1.2.3)
+++ contributions/modules/millennium/millennium_admin.js Locally Modified (Based On 1.1.2.3)
@@ -11,6 +11,7 @@
         $("input[@name=\'offline_refresh\']").change();
         $("#baseurl-table").show();
         $("#query-fieldset").hide();
+        $("#url-fieldset").hide();
         $("#import-options").show();
         $("#edit-using-cron").show();
       }
@@ -22,6 +23,7 @@
         $("#edit-using-cron").show();
         $("#baseurl-table").show();
         $("#query-fieldset").hide();
+        $("#url-fieldset").hide();
         $("#import-options").show();
         $("#edit-using-cron").show();
       }
@@ -31,15 +33,27 @@
         $("#edit-offline-refresh-wrapper").hide();
         $("#baseurl-table").show();
         $("#query-fieldset").show();
+        $("#url-fieldset").hide();
         $("#import-options").show();
         $("#edit-using-cron").hide();
       }
+       if (choice == "url") {
+        $("#range-fieldset").hide();
+        $("#list-fieldset").hide();
+        $("#edit-offline-refresh-wrapper").hide();
+        $("#baseurl-table").hide();
+        $("#query-fieldset").hide();
+        $("#url-fieldset").show();
+        $("#import-options").show();
+        $("#edit-using-cron").hide();
+      }
       if (choice == "existing") {
         $("#range-fieldset").hide();
         $("#list-fieldset").hide();
         $("#edit-offline-refresh-wrapper").show();
         $("#baseurl-table").hide();
         $("#query-fieldset").hide();
+        $("#url-fieldset").hide();
         $("#import-options").show();
         $("#edit-using-cron").show();
       }
@@ -49,6 +63,7 @@
         $("#edit-offline-refresh-wrapper").hide();
         $("#baseurl-table").hide();
         $("#query-fieldset").hide();
+        $("#url-fieldset").hide();
         $("#import-options").hide();
         $("#edit-using-cron").hide();
       }
@@ -58,6 +73,7 @@
         $("#edit-offline-refresh-wrapper").show();
         $("#baseurl-table").hide();
         $("#query-fieldset").hide();
+        $("#url-fieldset").hide();
\ No newline at end of file
         $("#import-options").show();
         $("#edit-using-cron").hide();
       }
