Merge remote-tracking branch 'origin/rel_2_10' into rel_2_10_mergery_tpac
authorDan Scott <dscott@laurentian.ca>
Fri, 2 Sep 2016 22:14:24 +0000 (18:14 -0400)
committerDan Scott <dscott@laurentian.ca>
Fri, 2 Sep 2016 22:14:24 +0000 (18:14 -0400)
This should bring us up to date with the current stable branch of Evergreen,
and mostly properly resolved methinks.

Signed-off-by: Dan Scott <dscott@laurentian.ca>
19 files changed:
1  2 
Open-ILS/examples/opensrf.xml.example
Open-ILS/src/extras/install/Makefile.ubuntu-precise
Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm
Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm
Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader.pm
Open-ILS/src/perlmods/live_t/08-lp1366964-libdbi-error.t
Open-ILS/src/reporter/clark-kent.pl
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Open-ILS/src/sql/Pg/t/lpad_number_substrings.pg
Open-ILS/src/sql/Pg/t/regress/lp1414112_allow_spaces_as_ff_attr_values.pg
Open-ILS/src/templates/acq/common/li_table.tt2
Open-ILS/src/templates/opac/browse.tt2
Open-ILS/src/templates/opac/parts/advanced/search.tt2
Open-ILS/src/templates/opac/parts/record/summary.tt2
Open-ILS/src/templates/opac/parts/searchbar.tt2
Open-ILS/src/templates/opac/results.tt2
Open-ILS/web/js/dojo/openils/widget/AutoFieldWidget.js
Open-ILS/web/js/ui/default/acq/financial/list_funds.js
build/i18n/po/tpac/fr-CA.po

Simple merge
@@@ -1344,16 -1337,23 +1337,29 @@@ __PACKAGE__->register_method
      }
  );
  
 +__PACKAGE__->register_method(
 +    method   => "patron_adv_search",
 +    api_name => "open-ils.actor.patron.search.advanced.opt_in_override"
 +);
 +
  sub patron_adv_search {
-     my( $self, $client, $auth, $search_hash, $search_limit, 
+     my( $self, $client, $auth, $search_hash, $search_limit,
          $search_sort, $include_inactive, $search_ou, $flesh_fields, $offset) = @_;
  
 +    my $ignore_opt_in = 0;
+     # API params sanity checks.
+     # Exit early with empty result if no filter exists.
+     # .fleshed call is streaming.  Non-fleshed is effectively atomic.
+     my $fleshed = ($self->api_name =~ /fleshed/);
+     return ($fleshed ? undef : []) unless (ref $search_hash ||'') eq 'HASH';
+     my $search_ok = 0;
+     for my $key (keys %$search_hash) {
+         next if $search_hash->{$key}{value} =~ /^\s*$/; # empty filter
+         $search_ok = 1;
+         last;
+     }
+     return ($fleshed ? undef : []) unless $search_ok;
      my $e = new_editor(authtoken=>$auth);
      return $e->event unless $e->checkauth;
      return $e->event unless $e->allowed('VIEW_USER');
@@@ -26,11 -26,11 +26,19 @@@ my $evt = $e->die_event; # this part ta
  my $duration = time - $start;
  
  cmp_ok($duration, '<', '10', 
++<<<<<<< HEAD
 +    'Confirm cstore reports standard query error in a timely fashion');
 +
 +if ($evt) {
 +    is($evt->{textcode}, 'DATABASE_QUERY_FAILED',
 +        'CStoreEditor returns standard query error');
++=======
+     'Confirm cstore reports standard update query error in a timely fashion');
+ if ($evt) {
+     is($evt->{textcode}, 'DATABASE_UPDATE_FAILED',
+         'CStoreEditor returns standard update query error');
++>>>>>>> origin/rel_2_10
  } else {
      fail('CStoreEditor returned no event');
  }
@@@ -540,9 -576,13 +577,13 @@@ sub build_html 
                        print $raw "<tr><td>".join('</td><td>', @$_)."</td></tr>\n" for (@{$r->{data}});
                }
  
-               print $raw '</tbody></table></body></html>';
+               print $raw '</tbody></table>';
+               if (@{ $r->{data} } <= $sortable_limit) {
+                       print $raw '<script src="/js/sortable/sortable.min.js"></script>';
+               }
+               print $raw '</body></html>';
        
 -              $raw->close;
 +              close($raw);
        }
  
        # Time for a pie chart
@@@ -6082,14 -6142,155 +6142,162 @@@ INSERT INTO config.marc21_ff_pos_map (f
  INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'VIS', 6, 1, 'g');
  INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Subj', '008', 'AUT', 11, 1, '|');
  INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('RecStat', 'ldr', 'AUT', 5, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Type', 'ldr', 'AUT', 6, 1, 'z');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GeoDiv', '008', 'AUT', 6, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Roman', '008', 'AUT', 7, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('CatLang', '008', 'AUT', 8, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Kind', '008', 'AUT', 9, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Rules', '008', 'AUT', 10, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Subj', '008', 'AUT', 11, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Series', '008', 'AUT', 12, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SerNum', '008', 'AUT', 13, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('NameUse', '008', 'AUT', 14, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SubjUse', '008', 'AUT', 15, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SerUse', '008', 'AUT', 16, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TypeSubd', '008', 'AUT', 17, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('GovtAgn', '008', 'AUT', 28, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('RefStatus', '008', 'AUT', 29, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('UpdStatus', '008', 'AUT', 31, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Name', '008', 'AUT', 32, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Status', '008', 'AUT', 33, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('ModRec', '008', 'AUT', 38, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Source', '008', 'AUT', 39, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('File', '008', 'COM', 26, 1, 'u');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('File', '006', 'COM', 9, 1, 'u');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Freq', '008', 'SER', 18, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Freq', '006', 'SER', 1, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Regl', '008', 'SER', 19, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Regl', '006', 'SER', 2, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM', '006', 'REC', 7, 6, '      ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM', '006', 'SCO', 7, 6, '      ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM', '008', 'REC', 24, 6, '      ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM', '008', 'SCO', 24, 6, '      ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Comp', '006', 'REC', 1, 2, 'uu');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Comp', '006', 'SCO', 1, 2, 'uu');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Comp', '008', 'REC', 18, 2, 'uu');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Comp', '008', 'SCO', 18, 2, 'uu');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('CrTp', '006', 'MAP', 8, 1, 'a');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('CrTp', '008', 'MAP', 25, 1, 'a');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('EntW', '006', 'SER', 7, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('EntW', '008', 'SER', 24, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('FMus', '006', 'REC', 3, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('FMus', '006', 'SCO', 3, 1, 'u');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('FMus', '008', 'REC', 20, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('FMus', '008', 'SCO', 20, 1, 'u');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '006', 'COM', 6, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Form', '008', 'COM', 23, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt', '006', 'REC', 13, 2, '  ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt', '008', 'REC', 30, 2, '  ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt', '006', 'SCO', 13, 2, 'n ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt', '008', 'SCO', 30, 2, 'n ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Orig', '006', 'SER', 5, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Orig', '008', 'SER', 22, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Part', '006', 'REC', 4, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Part', '006', 'SCO', 4, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Part', '008', 'REC', 21, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Part', '008', 'SCO', 21, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Proj', '006', 'MAP', 5, 2, '  ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Proj', '008', 'MAP', 22, 2, '  ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf', '006', 'MAP', 1, 4, '    ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf', '008', 'MAP', 18, 4, '    ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SpFm', '006', 'MAP', 16, 2, '  ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SpFm', '008', 'MAP', 33, 2, '  ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SrTp', '006', 'SER', 4, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SrTp', '008', 'SER', 21, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Tech', '006', 'VIS', 17, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Tech', '008', 'VIS', 34, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Time', '006', 'VIS', 1, 3, '   ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Time', '008', 'VIS', 18, 3, '   ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TrAr', '006', 'SCO', 16, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TrAr', '006', 'REC', 16, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TrAr', '008', 'SCO', 33, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('TrAr', '008', 'REC', 33, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM1', '006', 'REC', 7, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM1', '006', 'SCO', 7, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM1', '008', 'REC', 24, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM1', '008', 'SCO', 24, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM2', '006', 'REC', 8, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM2', '006', 'SCO', 8, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM2', '008', 'REC', 25, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM2', '008', 'SCO', 25, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM3', '006', 'REC', 9, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM3', '006', 'SCO', 9, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM3', '008', 'REC', 26, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM3', '008', 'SCO', 26, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM4', '006', 'REC', 10, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM4', '006', 'SCO', 10, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM4', '008', 'REC', 27, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM4', '008', 'SCO', 27, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM5', '006', 'REC', 11, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM5', '006', 'SCO', 11, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM5', '008', 'REC', 28, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM5', '008', 'SCO', 28, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM6', '006', 'REC', 12, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM6', '006', 'SCO', 12, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM6', '008', 'REC', 29, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('AccM6', '008', 'SCO', 29, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont1', '006', 'BKS', 7, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont1', '006', 'SER', 8, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont1', '008', 'BKS', 24, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont1', '008', 'SER', 25, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont2', '006', 'BKS', 8, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont2', '006', 'SER', 9, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont2', '008', 'BKS', 25, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont2', '008', 'SER', 26, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont3', '006', 'BKS', 9, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont3', '006', 'SER', 10, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont3', '008', 'BKS', 26, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont3', '008', 'SER', 27, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont4', '006', 'BKS', 10, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Cont4', '008', 'BKS', 27, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills1', '006', 'BKS', 1, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills1', '008', 'BKS', 18, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills2', '006', 'BKS', 2, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills2', '008', 'BKS', 19, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills3', '006', 'BKS', 3, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills3', '008', 'BKS', 20, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills4', '006', 'BKS', 4, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Ills4', '008', 'BKS', 21, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt1', '006', 'REC', 13, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt1', '006', 'SCO', 13, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt1', '008', 'REC', 30, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt1', '008', 'SCO', 30, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt2', '006', 'REC', 14, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt2', '006', 'SCO', 14, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt2', '008', 'REC', 31, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('LTxt2', '008', 'SCO', 31, 1, 'n');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf1', '006', 'MAP', 1, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf1', '008', 'MAP', 18, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf2', '006', 'MAP', 2, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf2', '008', 'MAP', 19, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf3', '006', 'MAP', 3, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf3', '008', 'MAP', 20, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf4', '006', 'MAP', 4, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Relf4', '008', 'MAP', 21, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SpFm1', '006', 'MAP', 16, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SpFm1', '008', 'MAP', 33, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SpFm2', '006', 'MAP', 17, 1, ' ');
+ INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('SpFm2', '008', 'MAP', 34, 1, ' ');
  
 +INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('File', '008', 'COM', 26, 1, 'u');
 +INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('File', '006', 'COM', 9, 1, 'u');
 +INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Freq', '008', 'SER', 18, 1, ' ');
 +INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Freq', '006', 'SER', 1, 1, ' ');
 +INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Regl', '008', 'SER', 19, 1, ' ');
 +INSERT INTO config.marc21_ff_pos_map (fixed_field, tag, rec_type,start_pos, length, default_val) VALUES ('Regl', '006', 'SER', 2, 1, ' ');
 +
  -- record attributes
  INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('alph','Alph','Alph');
  INSERT INTO config.record_attr_definition (name,label,fixed_field) values ('audience','Audn','Audn');
@@@ -1,23 -1,6 +1,29 @@@
++<<<<<<< HEAD
 +
 +-- Turn off echo and keep things quiet.
 +\set ECHO
 +\set QUIET 1
 +
 +-- Format the output for nice TAP.
 +\pset format unaligned
 +\pset tuples_only true
 +\pset pager
 +
 +-- Revert all changes on failure.
 +\set ON_ERROR_ROLLBACK 1
 +\set ON_ERROR_STOP true
 +\set QUIET 1
 +
 +-- Load the TAP functions.
 +BEGIN;
 +
 +-- Plan the tests.
 +SELECT plan(5);
++=======
+ -- Start transaction and plan the tests.
+ BEGIN;
+ SELECT plan(11);
++>>>>>>> origin/rel_2_10
  
  -- Run the tests.
  SELECT is(evergreen.lpad_number_substrings(
@@@ -34,8 -17,26 +40,33 @@@ SELECT is(evergreen.lpad_number_substri
  
  SELECT is(evergreen.lpad_number_substrings(
        'Vol 5a-15','0',5), 'Vol 00005a-00015','Mixed format');
++<<<<<<< HEAD
++
++=======
+       
+ SELECT isnt(evergreen.lpad_number_substrings(
+       '2015 01 Jan','0',5),'02000015 00001 Jan','Matching Substring Error 1');
+ SELECT isnt(evergreen.lpad_number_substrings(
+       '2015 02 Feb','0',5),'00002015 00002 Feb','Matching Substring Error 2');
  
+ SELECT is(evergreen.lpad_number_substrings(
+       '2015 01 Jan','0',5),'02015 00001 Jan','Matching Substrings 1');
+ SELECT is(evergreen.lpad_number_substrings(
+       '2015 02 Feb','0',5),'02015 00002 Feb','Matching Substrings 2');
+ SELECT is(evergreen.lpad_number_substrings(
+       '0001 001 1 01','0',5),'00001 00001 00001 00001','Matching Substrings 3');
+ SELECT is(evergreen.lpad_number_substrings(
+       '123456','0',5),'123456','Longer than Padding Length');
++>>>>>>> origin/rel_2_10
  
  -- Finish the tests and clean up.
  SELECT * FROM finish();
  ROLLBACK;
++<<<<<<< HEAD
++=======
++>>>>>>> origin/rel_2_10
@@@ -11,7 -11,15 +11,20 @@@ VALUES 
  SELECT ok(attrs ? 'audience', 'audience attribute exists')
  FROM metabib.record_attr WHERE id = CURRVAL('biblio.record_entry_id_seq');
  
++<<<<<<< HEAD
 +SELECT ok(NOT attrs ? 'date1' , 'date1 attribute does not exist')
 +FROM metabib.record_attr WHERE id = CURRVAL('biblio.record_entry_id_seq');
++=======
+ SELECT is(
+     ( 
+         SELECT attrs->'date1' 
+         FROM metabib.record_attr 
+         WHERE id = CURRVAL('biblio.record_entry_id_seq')
+     ),
+     '0000',
+     'as of LP#1470957, date1 = "    " normalizes to 0000'
+ )
+ ;
++>>>>>>> origin/rel_2_10
  
  ROLLBACK;
          <div id="results_header_bar" [%- IF ctx.metarecord %]class="hidden"[% END -%]>
              <div id="results_header_inner">
                  <div class="results_header_btns">
-                     <a href="[% mkurl(ctx.opac_root _ '/home', {$loc_name => loc_value}, 1) %]" rel="nofollow">[% l('Another Search') %]</a>
+                     <a href="[% mkurl(ctx.opac_root _ '/home', {$loc_name => loc_value, 'detail_record_view' => show_detail_view}, 1) %]">[% l('Another Search') %]</a>
                  </div>
                  <div class="results_header_btns">
 -                    <a href="[% mkurl(ctx.opac_root _ '/advanced',{}, expert_search_parms.merge(browse_search_parms, facet_search_parms)) %]">[% l('Advanced Search') %]</a>
 +                    <a href="[% mkurl(ctx.opac_root _ '/advanced',{}, expert_search_parms.merge(browse_search_parms, facet_search_parms)) %]" rel="nofollow">[% l('Advanced Search') %]</a>
                  </div>
                  <div id="refine_hits" class="results_header_btns result_block_visible"><a onclick="getFacety();">[% l('Refine these results') %]</a></div>
                  <div id="return_to_hits" class="results_header_btns"><a onclick="getResulty();">[% l('Back to results') %]</a></div>
@@@ -35,12 -39,12 +39,16 @@@ var adminPermOrgs = []
  var cachedFunds = [];
  
  function initPage() {
-     contextOrg = openils.User.user.ws_ou();
+     contextOrg = xulStorage.getItem(storekey) || openils.User.user.ws_ou();
+     // Propagate the context org from the URL data into our org selector.
+     if (lfGrid.urlUserData && lfGrid.urlUserData.contextOrg)
+         contextOrg = lfGrid.urlUserData.contextOrg;
  
 +    // Propagate the context org from the URL data into our org selector.
 +    if (lfGrid.urlUserData && lfGrid.urlUserData.contextOrg)
 +        contextOrg = lfGrid.urlUserData.contextOrg;
 +
      /* Reveal controls for rollover without money if org units say ok.
       * Actual ability to do the operation is controlled in the database, of
       * course. */
@@@ -4502,38 -4785,18 +4785,97 @@@ msgstr "
  msgid "harry"
  msgstr ""
  
- #: ../../Open-ILS/src/templates/opac/parts/result/lowhits.tt2:56
- msgid "stone"
- msgstr ""
- #: ../../Open-ILS/src/templates/opac/parts/record/copy_table.tt2:109 ../../Open-ILS/src/templates/opac/parts/record/copy_table.tt2:122
- msgid "view"
- msgstr ""
+ #: ../../Open-ILS/src/templates/opac/record/email.tt2:0
+ msgid "here"
+ msgstr ""
+ #: ../../Open-ILS/src/templates/opac/parts/result/lowhits.tt2:56
+ msgid "stone"
+ msgstr ""
+ #: ../../Open-ILS/src/templates/opac/parts/topnav.tt2:33
+ msgid "unread"
+ msgstr ""
+ #: ../../Open-ILS/src/templates/opac/parts/record/copy_table.tt2:111 ../../Open-ILS/src/templates/opac/parts/record/copy_table.tt2:119
+ msgid "view"
+ msgstr ""
++
++#: ../../Open-ILS/src/templates_boreal/opac/parts/footer.tt2:6 ../../Open-ILS/src/templates_boreal/opac/parts/topnav_links.tt2:7
++msgid " Catalogue de tous les collèges"
++msgstr ""
++
++#: ../../Open-ILS/src/templates_laurentian/opac/parts/login/form.tt2:4
++msgid " Or <a href='https://passwordreset.laurentian.ca/'>reset your password</a>."
++msgstr " Ou <a href='https://passwordreset.laurentian.ca/'>réinitialiser votre mot de passe</a>."
++
++#: ../../Open-ILS/src/templates_algoma/opac/parts/footer.tt2:5 ../../Open-ILS/src/templates_algoma/opac/parts/topnav_links.tt2:6 ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:14 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:9
++msgid "Contact Us"
++msgstr "Nous joindre"
++
++#: ../../Open-ILS/src/templates_hrsrh/opac/parts/footer.tt2:8 ../../Open-ILS/src/templates_hrsrh/opac/parts/topnav_links.tt2:9
++msgid "Contact us"
++msgstr "Nous joindre"
++
++#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:13 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:8
++msgid "Course Reserves"
++msgstr "Liste de réserves"
++
++#: ../../Open-ILS/src/templates_algoma/opac/parts/footer.tt2:3 ../../Open-ILS/src/templates_algoma/opac/parts/topnav_links.tt2:4 ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:11 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:6
++msgid "Databases"
++msgstr "Bases de données"
++
++#: ../../Open-ILS/src/templates_hrsrh/opac/parts/footer.tt2:6 ../../Open-ILS/src/templates_hrsrh/opac/parts/topnav_links.tt2:7
++msgid "EBSCO Databases"
++msgstr ""
++
++#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:10 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:5
++msgid "Electronic Journals (A-Z)"
++msgstr "Périodiques électroniques (A-Z)"
++
++#: ../../Open-ILS/src/templates_hrsrh/opac/parts/footer.tt2:5 ../../Open-ILS/src/templates_hrsrh/opac/parts/topnav_links.tt2:6 ../../Open-ILS/src/templates_huntington/opac/parts/footer.tt2:3 ../../Open-ILS/src/templates_huntington/opac/parts/topnav_links.tt2:4 ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:8 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:4 ../../Open-ILS/src/templates_nosm/opac/parts/footer.tt2:3 ../../Open-ILS/src/templates_nosm/opac/parts/topnav_links.tt2:4 ../../Open-ILS/src/templates_sjcg/opac/parts/footer.tt2:3 ../../Open-ILS/src/templates_sjcg/opac/parts/topnav_links.tt2:4
++msgid "Library Home"
++msgstr "Accueil"
++
++#: ../../Open-ILS/src/templates_usudbury/opac/parts/footer.tt2:3 ../../Open-ILS/src/templates_usudbury/opac/parts/topnav_links.tt2:4
++msgid "Library home"
++msgstr "Accueil"
++
++#: ../../Open-ILS/src/templates_conifer/opac/parts/record/extras.tt2:23
++msgid "Summaries &amp; More"
++msgstr "Résumés &amp; autres"
++
++#: ../../Open-ILS/src/templates_laurentian/opac/parts/login/form.tt2:26
++msgid "Your username and password are the same as your Laurentian ID and Desire2Learn account."
++msgstr ""
++"Votre nom d'utilisateur et mot de passe sont les mêmes que votre identité de la "
++"Laurentienne (LUID) et Desire2Learn."
++
 +#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:11 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:6
 +msgid "http://biblio.laurentian.ca/research/guides"
 +msgstr "http://biblio.laurentian.ca/research/fr/guides"
 +
 +#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:12 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:7
 +msgid "http://biblio.laurentian.ca/research/guides/archives"
 +msgstr "http://biblio.laurentian.ca/research/fr/guides/archives"
 +
 +#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:13 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:8
 +msgid "http://biblio.laurentian.ca/reserves/"
 +msgstr ""
 +
 +#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:8 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:4
 +msgid "http://laurentian.ca/library"
 +msgstr "http://laurentienne.ca/bibliotheque"
 +
 +#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:10 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:5
 +msgid "http://sfx.scholarsportal.info/laurentian/az"
 +msgstr "http://sfx.scholarsportal.info/laurentian/az?lang=fre"
 +
 +#: ../../Open-ILS/src/templates_usudbury/opac/parts/footer.tt2:3 ../../Open-ILS/src/templates_usudbury/opac/parts/topnav_links.tt2:4
 +msgid "http://usudbury.ca/index.php/en/library"
 +msgstr ""
 +
 +#: ../../Open-ILS/src/templates_laurentian/opac/parts/footer.tt2:14 ../../Open-ILS/src/templates_laurentian/opac/parts/topnav_links.tt2:9
 +msgid "https://biblio.laurentian.ca/research/contact-us"
 +msgstr "https://biblio.laurentian.ca/research/fr/coordonnées-et-renseignements"
 +