Pasi Kallinen [Fri, 28 Jun 2013 05:47:11 +0000 (08:47 +0300)]
Replace deprecated javascript escape() with encodeURIComponent()
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Conflicts:
Open-ILS/xul/staff_client/chrome/content/auth/controller.js
Open-ILS/xul/staff_client/chrome/content/util/error.js
Open-ILS/xul/staff_client/chrome/content/util/print.js
Open-ILS/xul/staff_client/server/admin/offline_manage_xacts.js
Open-ILS/xul/staff_client/server/circ/print_list_template_editor.js
Mike Rylander [Thu, 16 Jan 2014 18:58:12 +0000 (13:58 -0500)]
Fix proximity adjustment calculator
The canonical use case for proximity adjustment is to use it broadly
to effect the local proximity of items within a particular area, in
a like manner, across many parts of the org tree. However, in cases
where it is lightly used, or used with non-overlapping criteria columns,
there are cases where the adjustment will spread beyond its intended
range of influence.
The changes here create a much stricter and correct test for rule
matching, which will end in the correct choice of rules in all cases.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
In prereq installer, don't try to chown extracted files to original UID/GID
As this Makefile is designed to be used by a make process running as
root, this will avoid problems on some systems when tar extracts
files and tries to give them the same UID/GID as they have in their
archives, but those accounts don't exist on the local system.
e.g, libdbi has files set 1000/1000. On most systems, there's a user
and a group with these IDs, but there can be systems where nothing
uses those IDs, and where tar fails with e.g. 'tar: libdbi-0.8.3:
Cannot change ownership to uid 1000, gid 1000: Invalid argument'
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Galen Charlton [Tue, 14 Jan 2014 18:30:48 +0000 (13:30 -0500)]
LP#1234201: fix menu item to display patron requests (if summary is horizontal)
This patch adds a missing command element to the horizontal
patron summary display so that the 'Acquisition Requests' menu
item will work.
To test:
[1] Set the Patron circulation summary is horizontal library setting
to true.
[2] Retrieve a patron and try using the Acquisition Requests menu
item. It will do nothing.
[3] Apply the patch and clear cache in the staff client.
[4] Repeat step 2. This time, the Acquisitions Request menu item
should bring up the list of the patron's requests.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Srey Seng <sreyseng@gmail.com>
Dan Scott [Fri, 25 Oct 2013 17:54:35 +0000 (13:54 -0400)]
Add pgTAP test for normalized MARC records
Specifically, we're concerned about ensuring that any changes related to
the fix for Encode (requiring the removal of the effectively useless but
now erroring decode_utf8()) do not inadvertently change the content of
the MARC records on ingest. Because we wouldn't want to have to reingest
everything to normalize search, etc.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Scott [Mon, 21 Oct 2013 15:58:06 +0000 (11:58 -0400)]
Encode.pm change to the UTF8 flag
In the past, decode_utf8() silently ignored attempts to decode data
with the UTF8 flag on. However, Encode.pm changed around 2.53 and
resulted in wide-character errors preventing the likes of
--load-all-sample from working.
Since our data should already be UTF8 when it hits these functions, we
should not be trying to decode it in the first place.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Galen Charlton [Tue, 14 Jan 2014 16:00:38 +0000 (11:00 -0500)]
LP#1269042: prevent acq seach from building dropdown of every copy ID in the DB
This patch ensures that if a user sets a search field in the
acquisitions general search form to the line item details copy ID
(labeled "LID - Evergreen Copy ID"), the form presents a normal
input widget rather than trying to build a drop-down containing
every copy ID in the database. Except for very small databases,
the previous behavior would mean that an open-ils.pcrud backend
would eventually consume a great deal of memory trying to service
a request for all copies in the system.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jeff Godin [Wed, 30 Oct 2013 19:29:24 +0000 (15:29 -0400)]
Treat empty username as invalid in user editor
There seems to be undesired interaction between the required
attribute and the isValid method on a dojo/dijit ValidationTextBox.
If both are set, isValid needs to check for an empty value,
otherwise the field is considered valid the moment it gains focus.
We don't want an empty username to be considered valid, because we
know that we will be unable to save the user.
We can work around this by teaching the isValid function to consider
an empty value as invalid.
Signed-off-by: Jeff Godin <jgodin@tadl.org> Signed-off-by: Melissa Ceraso <mceraso@biblio.org> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Thu, 9 Jan 2014 17:19:38 +0000 (12:19 -0500)]
Fedora needs Locale::Maketext::Lexicon too
Per commit 66c45b647, install Locale::Maketext::Lexicon on Fedora to satisfy
that dependency. How did _this_ one slip by so long! Thank heavens for
tests.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Dan Scott [Thu, 9 Jan 2014 03:39:57 +0000 (22:39 -0500)]
Repair the live_t regression tests
When we added more realistic hours of operation for some of the branches,
several of the live_t regression tests failed because they depended on the
default hours of operation for BR4. Rather than change the regression test,
just switch BR4 back to the default hours of operation and use BR1 as the
closed-on-weekends branch instead.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Srey Seng [Tue, 7 Jan 2014 22:30:49 +0000 (14:30 -0800)]
LP#1266937: Fix missing/incorrect regex for authority in Vandelay.pm
Add in missing "~" in function import_record_list_impl when
type is authority records. Also replace "auth" with "authority"
so that the generated values match up with functions in the
database.
Signed-off-by: Srey Seng <sreyseng@gmail.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Chris Sharp [Wed, 8 Jan 2014 19:51:59 +0000 (14:51 -0500)]
fix pub date data type in reporter.classic_item_list
As noticed by Ben Shum in IRC, reporter.classic_item_list
had pub_date, a free text field, classified as "int". This
changes that to "text" to prevent errors.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Mon, 30 Dec 2013 06:47:19 +0000 (01:47 -0500)]
TPAC: Display public hold notes in user holds list
If a given hold has a note marked as public, and not marked for staff, then
display the note in the My Account -> Holds list. This enhancement also
includes sample notes for each hold, to include data that ensures that the TPAC
does not display any hold notes that are not marked public, or which are marked
for staff.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
TPAC: Get rid of all unneccessary uppercase and some bold
This gets rid of all places in the TPAC where CSS uses text-transform:
uppercase or capitalize. The former is bad for readability, and the
latter can only confuse users when strings might appear to be
capitalized differently in one context than another (esp. users'
personal names).
This mostly, but not exclusively, affects the My Account section.
Also, one wholly unused CSS class was removed altogether.
It also gets rid of some bold style that was applied too liberally to
the whole contents of tables.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Dan Scott [Tue, 17 Dec 2013 17:02:56 +0000 (12:02 -0500)]
Add sample library addresses and hours of operation
Provide branch-level granularity of addresses and hours of operation, using
different addresses in some cases for mailing vs. billing vs. ILL vs. holds for
more realism.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Tue, 17 Dec 2013 15:16:32 +0000 (10:16 -0500)]
Move default actor.org_unit entries into sample data
The only actor.org_unit entry we absolutely require in the sample data is the
consortium, as many things are owned by it. Otherwise, we should treat the
libraries and associated settings such as addresses as sample data.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Remington Steed [Tue, 17 Dec 2013 16:17:25 +0000 (11:17 -0500)]
Docs: bug fixes in new files
This commit fixes a small bug in the new Action Triggers chapter and a
few small formatting bugs in the new subsection in the Holds Management
chapter. It also fixes a small wording typo in the Holds Management intro.
Steven Callender [Thu, 12 Dec 2013 20:13:57 +0000 (15:13 -0500)]
Updated the label on the desk renewal global setting.
Updated the label on the desk renewal global flag circ.desk_renewal.use_original_circ_lib
to properly explain the it's the workstation library that will not be used rather than the
user home library. The OPAC renewal uses the users home library and desk renewals use
the workstation library.
Signed-off-by: Steven Callender <stevecallender@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Galen Charlton [Mon, 25 Nov 2013 18:05:21 +0000 (10:05 -0800)]
LP#1254816: prevent cases where a Google Book preview is not displayed
Due to quirks in how different parts of the Google Books API
processes ISBN searches, it is possible for a Google Books Preview
badge to get displayed, but when the user tries to display the preview,
the embedded preview does not get displayed.
This patch fixes the problem by grabbing the preview link from
the GB volumes search results, which in turn can be fed into the
Embedded Viewer initialization.
An ISBN that can be used to reproduce the problem is 9781937994198.
Before the patch, the badge is displayed but not the preview; after
the patch, both badge and preview should be displayed.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Remington Steed [Wed, 20 Nov 2013 14:40:10 +0000 (09:40 -0500)]
Revive and update Action Triggers docs for 2.5
This commit revives the missing Action Triggers docs section, last seen
in the 2.0 version of the docs. Also, several small corrections and
wording edits were made, as well as a few actual feature changes since
version 2.0. The most explicit of these feature changes is the addition
of a basic description for a new Event Definition field in 2.5: "Event
Repeatability Delay".
Steven Chan [Wed, 15 May 2013 21:30:15 +0000 (14:30 -0700)]
Fix LP1180140, View Holds not working for a serial with subscription and no issuances
A request is made to
open-ils.circ.holds.retrieve_all_from_title,
which is the function Circ/Holds.pm/all_rec_holds().
In the function, when checking for issuance holds, there is a missing @
to dereference the list of issuance IDs, so that the ahr table is search
with badly formed input, which results in returning an undefined list
instead of an empty list. The error will occur for any record with a
serial.subscription entry but with no related entries in
serial.issuance.
We also recode the initialization of the response object in order to
clarify its expected structure, a hash of array references.
Signed-off-by: Steven Chan <schan@sitka.bclibraries.ca> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Angela Kilsdonk [Tue, 10 Dec 2013 19:30:28 +0000 (14:30 -0500)]
New documentation for 2.5
Documentation for:
-Z39.50 Search Enhancements
-Catalog Browse
-Alternative Hold Pick-up Location
-Marking Items Long Overdue
-Lost and Long Overdue Bill Colors
-Vandelay Item Load
Remington Steed [Thu, 21 Nov 2013 15:29:22 +0000 (10:29 -0500)]
Docs: integrate holds docs from EG 2.1
The small amount of Holds docs present in master seemed to fit well at
the end of the older Holds documentation, so this commit appends them
to the new holds.txt file, deletes the previous holds_management.txt file,
and makes the appropriate change to root.txt.
This commit also includes several small formatting improvements, wording
changes, and bug fixes.
Mike Rylander [Wed, 13 Nov 2013 23:15:21 +0000 (18:15 -0500)]
Fix boolean lists; Better atom regex; Caching
First, we didn't need to make $last_type local, and it broke explicit
grouping anyway. That's removed, and we now reset that (and a few more
like it) at calls to the top level parse() method. This introduces a
situation where a long list of booleans could cause query plan problems,
so we limit the plan depth to 40 (20 ||'d conditions).
Second, we are smarter about finding the boundary of atoms. Previous
to this commit, and curly brace could send the parser into a tailspin
from which it would not recover. Now we use alternation instead of
a character class, which is much safer with the default multi-character
float syntax specifier.
Third, as a catch-all, if we can't parse the remained of a query we
now simply say so (when in debug mode) and go away, instead of risking
an infinite loop. We do this via a final, unqualified "else" clause
in decompose().
Finally, instead of building 10+ regexp objects on each query parse,
cache them per QP subclass and reuse them.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Bill Erickson [Mon, 28 Oct 2013 14:24:37 +0000 (10:24 -0400)]
LP#1238015 hide patron credit summary when disabled
When the circ.disable_patron_credit / "Disable Patron Credit" org unit
setting is disabled, also hide the patron credit summary information in
the bills interface.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Mike Rylander [Mon, 25 Nov 2013 15:14:08 +0000 (10:14 -0500)]
Re-apply the changes provided by 0802 for backport
Preserve record order of subfields for authority heading extraction
When extracting headings from authority records we currently read the
subfields of a tag in configuration order. We should, instead, read
them in record order, to preserve the desired sorting properties that
the cataloger has encoded in the record.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Fri, 22 Nov 2013 19:55:26 +0000 (14:55 -0500)]
LP#1254146 gracefully handle custom trees sans entries
Avoid references to custom tree entries when no tree entries for a
custom tree exist. Prevents:
egweb: template error: undef error - Can't call method "org_unit" on an
undefined value at
/usr/local/share/perl/5.10.1/OpenILS/WWW/EGCatLoader/Util.pm line 185.\n
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Wells [Thu, 14 Nov 2013 20:12:46 +0000 (15:12 -0500)]
Improve facet styling
1) Facets currently display very poorly when the number reaches 3-4
digits. Facet data is more or less a two column table, so let's style
it that way to make it more robust.
2) Rearrange some styles to reduce redundancy, and allow overflow
where possible.
3) Change the selected highlight to look a little better.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Ben Shum <bshum@biblio.org>
Mike Rylander [Fri, 15 Nov 2013 21:40:36 +0000 (16:40 -0500)]
Enforce one-payment-per-xact-per-call
There is no legitimate reason for a transaction to receive more than
one payment per call to open-ils.circ open-ils.circ.money.payment,
but we have seen the staff client generate such a data structure. This
leads to seemingly duplicate payments, and is bad all around. So,
we will enforce the restriction by taking only the first payment per
xact in the list of payments.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Replace erroneous calls to $e->retrieve_authority_record($rec_id).
On lines 153 and 175 of OpenILS::Application::Cat::Authority calls
like the above should be $e->retrieve_authority_record_entry($rec_id).
This branch replaces the two misspelled calls with the proper ones.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Liam Whalen [Mon, 7 Oct 2013 05:11:56 +0000 (22:11 -0700)]
LP#1037171 Removed Expert Search paramters from subject links
After performing an Expert Search, if a user visits a record and then
clicks on one of the author, subject, or series search links within that
record, then they are given the results of the Expert Search again
instead of the relevant subject or author search.
This is happening because the Expert Search parameters are retained in
the URLs via the TT2 MACRO mkurl. In particular, the tag parameter is
used to identify an Expert Search, so if it is present in a URL, than an
Expert Search will be attempted regardless of which other paramaters are
in the URL.
To fix this, I created two varialbes within header.tt2 above the
definition of mkurl. These variables group common URL paramters for
Expert Searches and General Search parameters together. These variables
can be used wherever mkurl is used to strip out unneeded search
paramters.
There is a third variable that is already present within many of these
pages named stop_parms. While I initially tried to modify this
variable, I found that there are some instances where the general search
parameters should be retained while the Expert Search parameters must go.
This commit uses these three variables togehter as input into the third
arugment of the mkurl MACRO. The third arugment specifies which
paramtes to remove from the previous URL before making a new URL based
on the pervious URL.
I also added the query parameter to the Place Hold's hold_source_page
URL variable. I did this, so that the query terms would be preserved
once the user is done placing the hold or decides to cancle the placing
of the hold.
As well, I used the new variables to remove Expert Search paramters
from the Advanced Search links on the results and record pages.
Conflicts:
Open-ILS/src/templates/opac/parts/searchbar.tt2
Signed-off-by: Liam Whalen <whalen.ld@gmail.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Remington Steed [Mon, 18 Nov 2013 20:42:36 +0000 (15:42 -0500)]
Docs: Remove ref to missing included file
This file was moved into the 2.5 release notes. If others believe it
belongs in the main documentation, it can easily be added in again. For
now, we will remove the reference because it only generates an asciidoc
warning.
Remington Steed [Mon, 18 Nov 2013 20:21:09 +0000 (15:21 -0500)]
Docs: Fix leveloffset bug, raise REL NOTES level
We should restrict our use of the asciidoc leveloffset command to the
root.txt file, since it is a global setting and cannot be set relative
to an existing offset.
This commit also raises the Release Notes section to the highest level
in order to prevent the lowest level subsections within it from being
lost. This is in response to asciidoc errors:
WARNING: RELEASE_NOTES_2_5.txt: line 950: missing section: [sect5]
Steven Callender [Thu, 14 Nov 2013 20:42:12 +0000 (15:42 -0500)]
LP1251424 - Fix for submit button when placing holds in staff client
I've moved the initializing of the cur_hold_barcode variable
to within the function rather than floating outside of it.
This seemed to fix an intermittent issue where the submit
button would not become activatable when first going to the
place hold screen via the staff client. To create the hold,
ths user had to cycle through the "Place hold by patron barcode"
option and then back to "Place hold for me" option.
It looked like behind the scenes for certain org units that
variable would not be set and the button will not open until
it at least has something. This causes it to be set on the initial
loading of the screen.
Signed-off-by: Steven Callender <stevecallender@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Added a definition to the HOLD_ITEM_CHECKED_OUT event in ils_events.xml.
Trying to be generic between the opac and the staff client the message
reads, "The item you have attempted to place on hold is already checked
out to the requestor."
[LFW: I made a tiny spelling change to be consistent with other
appearances in Evergreen of the term "requestor".]
Acq: Improvements to account-matching incoming EDI messages
The way the EDI fetcher works gives us a problem. That process iterates
over EDI accounts for which it has FTP host and credential information,
downloads documents from each of those sites, and files the messages
within those documents under the EDI account from which the login
credentials came. The problem is that in practice the exact same host
and login information is used by multiple accounts under the same
vendor, and files relating to these sub-accounts are commingled, so that
you can't make the decision about which messages should be filed under
which accounts based on the name of the document or its location. You
have to make that decision later, based on its contents.
We are already incompletely doing this, distinguishing between
sub-accounts under which we could file our messages when the vendor
specifies the buyer's SAN next to the specific sub-account number *and*
those sub-accounts belong to different Evergreen org units. We still
need ways to distinguish in other cases.
This will do what is natural for at least one vendor, and match the
message content against the vendacct field of the acq.edi_account table.
*Also,*
We were re-retrieving the working acq.edi_message row from the database
before writing it, throwing away possible changes to the object in hand
made by O::A::Acq::EDI::process_parsed_msg(). We should only do that in
the case where that function has raised an exception.
We were doing the same kind of thing in another place actually inside
process_parsed_msg() where we set the edi_message's purchase_order field
based on the first lineitem encountered if the message itself didn't
specify a valid PO identifier.
This supports making account-correction work for ORDRSP messages in
addition to INVOIC messages.
We also propagate that same correction to the provider and shipper
fields of any invoices that get created from said edi_message.
Dan Wells [Mon, 28 Oct 2013 15:23:08 +0000 (11:23 -0400)]
TPAC: Remove fixed height from 'View My List' button
The TPAC button styles have been largely consolidated, but this little
outlier got missed. It doesn't do anything of noticeable value in
recent browsers, and in fact hurts the display by causing the "Sort by"
widget to "hang" when resizing the window to certain intermediate
sizes. Remove it.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Wells [Wed, 6 Nov 2013 22:24:38 +0000 (17:24 -0500)]
Fix typos in 2.5 release notes
These typos were fixed in the separate (now deleted) files, but only
after the collective file had been built. This commit transfers those
fixes to the built file.
Bill Erickson [Thu, 23 May 2013 19:20:14 +0000 (15:20 -0400)]
Default per-request TPAC locale
Set the OpenSRF default client locale for each TPAC request to ensure
all outbound OpenSRF calls use the requested locale. When done, reset
the locale to the OpenSRF default.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Mike Rylander [Fri, 1 Nov 2013 17:57:35 +0000 (13:57 -0400)]
Add indicators; Remove junk tags
First, we were not supplying authority tag indicators when generating the
overlay template. The xml merge function does not currently transfer
indicators, but we need to do this anyway because newer MARC::Field version
balk at fields with no indicators.
Second, PG 9.1+ adds wrapper tags to xml content that is passed to XMLELEMENT
as an array. So, we'll use XMLAGG to get around that.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Mike Rylander [Tue, 29 Oct 2013 15:37:36 +0000 (11:37 -0400)]
Use all subfield values to link authority records to bibs
Given an Evergreen instance with two authority records loaded, one
being a more specific than the other via a repeated subdivision subfield,
we must make sure that we use all the bib-supplied subfield values when
attempting to auto-link to the correct authority. Otherwise, the "shorter"
authority record may be selected as appropriate, and data in the bib record
would be lost.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Remington Steed [Fri, 1 Nov 2013 19:08:23 +0000 (15:08 -0400)]
Clean up 2.5 upgrade instructions
This commit cleans up a few tiny issues and a large formatting bug,
fixes a filename, and reorders the linux distros to put the newest ones
first. The content related changes are:
- fix filename in 'tar' command
- reorder linux distros (in two places)
- fix various punctuation (add comma; remove colon in header)
And the AsciiDoc changes:
- add asciidoc '+'s before and after 'indexterm' commands to fix
broken ordered list formatting
- remove an unnecessary asciidoc '+'
- correct the length of an asciidoc block header line (doesn't change
behavior, but helps readability of the text file)
Mike Rylander [Fri, 25 Oct 2013 16:15:25 +0000 (12:15 -0400)]
Respect source XML subfield order during overlay
When adding specific subfields to a field as described by an add
or replace rule we were adding them in rule-order. Instead, they
should be added in source-XML physical order. This commit does
that.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>