Chris Sharp found that make check was failing on Ubuntu 14.04 and 16.04.
I borrowed a few lines from the OpenSRF configure.ac and modified the
Open-ILS/src/c-apps/tests/Makefile.am to use a more autoconf-oriented
approach that won't lead to unnecessary checks in the install scripts.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Ben Shum [Tue, 21 Mar 2017 13:37:48 +0000 (09:37 -0400)]
Docs: README to include Debian for changing ownership of /var/lock/apache2
Minor tweak to also include Debian among distributions where it might
be necessary to change ownership of /var/lock/apache2 to opensrf user.
Previously this had been Ubuntu only issue, but has since been encountered
during new Debian installations.
Kathy Lussier [Tue, 21 Mar 2017 01:25:25 +0000 (21:25 -0400)]
LP#1673891: Fix untranslatable strings in metarecord sibling links
We had a couple of untrasnlatable strings in the new sibling link section
of the record summary page. This commit makes the strings translatable and
also rewords one of the strings, as recommended by Eva Cerninakova, to make
it easier to translate in other languages.
Bill Erickson [Tue, 7 Mar 2017 17:25:32 +0000 (12:25 -0500)]
LP#1670512 Apply focus/select model udpates via timeout
Avoid manually invoking scope.$apply() in the midst of an angular
$digest loop, since this is forbidden by angular. Wrap the apply()'s in
a $timeout, so they occur after the currently running digest.
Fixes the focusMe, blurMe, and selectMe directives.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Mike Rylander [Wed, 17 Aug 2016 17:25:35 +0000 (13:25 -0400)]
LP#1638377: Allow perl to be installed in non-standard locations
Add --with-perlbase configure option to specify
an alternative location for installing the Perl modules. This
can be useful for setups that want to run the Perl modules
from a shared filesystem or environments that need to run
multiple versions of OpenSRF simultaneously.
Users of --with-perlbase are responsible for ensuring that
PERL5LIB is set appropriately.
To test
-------
[1] Use --with-perlbase during the configure step, e.g.,
./configure --with-perlbase /tmp/perl
[2] Run make; make check; sudo make install
[3] Verify that the Perl modules are installed under
/tmp/perl.
[4] Make a change to a Perl source file, then
go to src/perlmods, then run sudo ./Build install. Verify
that it remembers the --with-perlbase directory
and installs the updated module there.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Galen Charlton [Tue, 14 Mar 2017 17:52:15 +0000 (13:52 -0400)]
Docs: replace "OPAC" jargon in release notes
... in favor of "public catalog". Please note that
I don't feel strongly about this change, and won't mind
if it gets reverted. I do feel more strongly about the
word "OPAC" slipping into patron-targeted documentation.
Kathy Lussier [Tue, 14 Mar 2017 17:52:33 +0000 (13:52 -0400)]
Docs: Translator acknowledgements and PostgreSQL support
Updates the release notes with acknowledgements for translators that changed
trasnlations strings for offically-supported languages since the last release.
Also adds PostgreSQL as a recommendation as per discussion at March 2017 dev
meeting and follow-up e-mail to the dev list.
Kathy Lussier [Fri, 10 Mar 2017 20:38:10 +0000 (15:38 -0500)]
Docs: Additions to 2.12 release notes
Adds organizations that commissioned development, contributors who have
contributed since the beta release, new notes for ebook integration, and
some some missed features.
The passwd storage PgTAP test is failing because the user ids shifted when new
sample records were added to the actor.usr table in the Concerto dataset. This
branch changes the id in the test to point to the correct user.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Ben Shum <ben@evergreener.net>
LP#1586567 Always return Fund Years sorted descending
Currently, fund year selectors in Acq interfaces (at least Acq Admin ->
Funds, and Acq -> Load MARC Order Records) show the fund years in
database order. This commit adds a descending sort to the perl function
that retrieves fund years for those interfaces. It also removes the
unsuccessful attempt at sorting that was present in the dojo code.
Jason Etheridge [Wed, 2 Nov 2016 18:28:08 +0000 (14:28 -0400)]
lp1261835 stop colliding bill UI refreshes
for want of promises in Angular :)
population of the bill list in this implementation is asynchronous, but the rest
of the refresh action is not, and it's sadly being invoked multiple times. There
are different ways to fix this, but using a semaphore seems to work.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Dawn Dale <ddale@georgialibraries.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Dan Wells [Wed, 2 Nov 2016 18:35:16 +0000 (14:35 -0400)]
LP#1175293 Use filtered fund dropdown in funding source interface
The exising interface for allocating to funds from a funding source
view lists all funds by code only. Since many (most?) orgs reuse
fund codes year to year, you eventually end up with a bunch of
dupes you cannot tell apart.
Let's "borrow" an AutoFieldWidget to do the heavy lifting of creating
a filtered list of active funds, and include the year for further
user validation.
This is inspired by a few other fund dropdowns, but may not be the
best overall solution.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Bill Erickson [Tue, 28 Feb 2017 16:33:25 +0000 (11:33 -0500)]
LP#1668682 Checkout holds fullfill ignores expire time
Checking out a hold-captured item for a hold whose expire time is in the
past, but has not yet been canceled by the hold targeter, now marks the
hold as fulfilled.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Kathy Lussier [Fri, 3 Mar 2017 04:52:30 +0000 (23:52 -0500)]
LP#1522644: Make Mark for Hold Transfer option consistent with other options
Makes the following changes to the Mark for Holds Transfer Destination option:
1) Changes the label from "Mark As Title Hold Transfer Destination" to "Title
Hold Transfer." The 'Mark" piece is already implied in the "Mark For" button
label, and the long text was pushing the menu off the screen for some displays.
2) Makes the option behave as other Mark options. If a record is already marked,
it displays the marked Record ID in the menu. The mark is also removed when the
"Reset Record Marks" option is clicked.
3) Pushes the reset option down to the bottom of the menu and alphabetizes the
other Mark options above it.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
The SuperCat transform methods for records retrieved by record ID or ISBN call
toString on the XSLT output object, which results in a byte string and thus
corrupted output. Instead, call output_as_chars() on the stylesheet object to
generate a character string and avoid corruption.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
In moving from the deprecated XML::LibXSLT::output_string() to output_as_chars(),
add a regression test to ensure that we do not suffer from corrputed encoding
output in the future.
We test both the case where an output encoding has been explicitly declared,
as well as the case where an output encoding has not been explicitly declared.
It was this subtle difference that was causing the problem with output_string().
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Dan Scott [Fri, 3 Mar 2017 06:40:19 +0000 (01:40 -0500)]
LP#1442276 Prevent corrupted Unicode chars in MARCTXT and RIS
The MARCTXT and RIS feeds use the deprecated XML::LibXSLT::output_string()
method which, depending on the stylesheet, generated either a byte string
or characters. Using output_as_bytes() ensures it is always a byte string
and avoids the resulting MARCTXT and RIS output from corrupting Unicode
characters.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
The XML::LibXSLT::output_string() method was deprecated in favour of
output_as_bytes() and output_as_chars(). The latter always generates
UTF8 output as characters, which is what we need, while output_string()
behaviour depended on the stylesheet.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Teach the egDate unit test requesting '2 days' worth of seconds to allow
values for 47, 48, or 49 hours. 47 and 49 happen when crossing time
change boundaries.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Bower install was grabbing a later version of angular-cookies than we wanted,
resulting in errors when attempting to build the web client. Changing a
caret to a tilde in the bower.json files keeps us to a 1.5.x version of
angular-cookies, making web client builds happy.
Many thanks to Ben Shum for finding the solution to this problem!
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Ben Shum <ben@evergreener.net>
Display a progress dialog while loading the Patrons With Negative
Balances UI. Dialog starts indeterminate, morphing into
semi-determinate as patron data streams in.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
1. Disable org units in the org unit selector that cannot have users.
Additional code cleanup:
2. The org selector calls egStartup internally, so if the page
controller has no need to wait on the startup to complete, then it does
not need to manually invoke the startup.
3. No longer necessary to manually track the selected org unit from the
org selector directive.
1. Always apply default values after egStartup.go() has completed.
Among other things, this prevents the occaisonal "cannot call ws_ou()
on an undefined value" errors bubbling up from the org selector
when an attempt to set default values occured before egAuth had
retrieved the user (which occurs during startup).
2. For consistency, always run the $scope.onchange handler on initial
page load when a selected value and change handler are defined.
Similar to #1 above, the initial onchange always fires after
egStartup has completed.
3. Run the change handler in a $timeout so that the $scope.selected
value has a chance to propagate to the calling controller's $scope.
Otherwise, the the calling controller has to manually track the
selected value (which partially defeats the purpose of having this
directive in the first place).
Bill Erickson [Wed, 20 Aug 2014 20:45:47 +0000 (16:45 -0400)]
LP#1653001 webstaff: Holds pull list sortable columns
Retrieve holds for the pull list via the canned "ahopl" pull list IDL
class. This lets the grid fetch the data via canned flattener query,
supporting server-side sort/limit/offset options.
To retain all previous UI behavior, primarily editing hold attributes
(e.g. notification prefs), hold details for each hold have to be fetched
(and cached) in addition to the main grid data. The grid renders and
sorts the flattener data, then grid actions act upon the fleshed hold
details data.
Commit also includes:
1. Added some missing IDL links for the "ahopl" class.
2. Micro-optimization to egGrid to exit early when an invalid IDL path
is provided.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Bill Erickson [Fri, 30 Dec 2016 16:54:08 +0000 (11:54 -0500)]
LP#1653001 Hold details authoritative API cstore maintenance
Avoid cstore exhaustion during .authorative API calls that run
Holds:retrieve_hold_queue_status_impl() by using the in-transaction
editor for YAOUS lookups instead of allowing the lookups to create their
own cstore connections, each spawning a new transaction, since
CStoreEditor is in authoritative mode.
Since CStoreEditor authoritative handling leaves each cstore transaction
open until the API call completes, and in this case, each hold in the batch
lookup resulted in 2 additional open cstore connections per hold, a batch
lookup of (say) 15 holds, meant 31 cstore connections were opened in one API
call.
Telling the YAOUS lookup to use the existing editor means the same call
completes with 1 cstore connection.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
1. Use the new egProgressDialog name and the new increment() function.
2. Open the dialog before data retrieval starts to better indicate work
is happening.
3. Close the dialog in promise.finally() to ensure it always closes.
Use an HTML5 <progress/> element as the progress bar instead of the
Bootstrap progress CSS class. The HTML5 element provides a more
accurate display.
Add support for 3 modes of operation:
* determinate - shows dialog and percentage progress
* semi-determinate - shows a value-less <progress/> but also displays
the current value to indicate work happening.
* indeterminate - shows a value-less <progress/> with no specificat
indication of forward momentum.
Adds a bunch of docs.
Rename egProgressModal to egProgressDialog for consistency with other
eg*Dialog's (which are also modal).
Support a new egNet.handlePermFailure() callback. When this function is
defined, it's invoked any time an egNet request returns a PERM_FAILURE
event.
When invoked, the in-progress promise linked to the original
request is effectively superseded by the promise returned by the
egNet.handlePermFailure(), living and dying with the new promise. This
makes it possible to hold off resolving the original request until the
handler is done.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Initiate the auto-renewal earlier in the checkout process, specifically
before response data is unnecessarily fleshed. Add an explicit
auto_renew toggle to the checkout response blob to more clearly indicate
why checkout counts are not modified.
Additional code comments and logging.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Jeff Davis [Fri, 27 May 2016 20:10:29 +0000 (13:10 -0700)]
LP#1576435: Include inactive patrons on patron reg duplicate search in web client
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Jeff Davis [Sun, 24 Apr 2016 02:12:27 +0000 (19:12 -0700)]
LP#1576435: Force "Include inactive patrons?" on patron reg duplicate search
In the XUL client, duplicate patron checking in the patron registration
interface now includes inactive patrons (see LP#1217052). However, if
you click on the link "Found X patron(s) with the same name," the
resulting patron search does not always include inactive patrons by
default (instead, the value of the "Include inactive patrons?" checkbox
is cached from your last patron search, as usual).
To prevent user confusion in this scenario, this commit forces the
linked patron search in the XUL client to always include inactive
patrons.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Galen Charlton [Fri, 12 Aug 2016 18:03:10 +0000 (14:03 -0400)]
LP#1579219: set up mod_perl as an Evergreen dependency
This patch, in conjunction with another one for OpenSRF,
set mod_perl up as a dependency installed when Evergreen is installed,
not when OpenSRF is installed, as OpenSRF itself does not require
mod_perl.
Minor tweak to Galen's original patch to include mod_perl in the list
for apache mods to be activated by default.
Signed-off-by: Galen Charlton <gmc@esilibrary.com> Signed-off-by: Ben Shum <ben@evergreener.net>
Kathy Lussier [Thu, 2 Mar 2017 21:55:15 +0000 (16:55 -0500)]
LP#1669522: Remove regex that caused duplication in author query
In LP#1308090, a regex replacement was added to the normzalize_qterm block
that didn't work as intended. Instead of replacing the already-normalized qterm,
it added a new string to the qterm, causing the author and date terms to
duplicate in the resulting query when the link is clicked. Since the the
problem the regex was trying to solve appears to be an aesthetic one rather
than a functional one, this commit removes that regex.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Ben Shum <ben@evergreener.net>
Dan Scott [Wed, 22 Feb 2017 16:29:21 +0000 (11:29 -0500)]
LP1584891: Export MARC holdings with UTF8 subfields
The --items option of marc_export adds a new MARC 852 field with a
number of subfields that it retrieves from the database. If those
subfields (such as call number, copy location, etc) contain Unicode
characters, then we need to decode the incoming UTF8 characters
when adding the subfield values to avoid corrupting the MARC.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Jason Stephenson [Sat, 10 Dec 2016 02:21:35 +0000 (21:21 -0500)]
LP 1648922: Hide orgs that can't have users in workstation registration.
A user can register a workstation at an org unit that can't have users
in the webstaff client. The XUL staff client did not allow this.
Such org units were grayed out in the selector.
This commit hides org units that can't have users in the ou selector
for workstation registration in the webstaff client. This is in
addition to hiding the existing hiding of org units where the user
does not have the REGISTER_WORKSTATION permission.
To reproduce this bug, see that org units that have false for
can_have_users appear in the selection for workstation registration.
Also see that you can register a workstation at one.
After applying this patch, make sure you've logged out and then log in
to the webstaff client. You will now see that those org units no
longer appear in the slection list. You cannot register workstations
at those org units any longer.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Michele Morgan <mmorgan@noblenet.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Removes the redundant TCN value from the item status view so that the
columns can once again be vertically aligned. The TCN is visible in the
bib summary pane along the top.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Terran McCanna <tmccanna@georgialibraries.org> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Galen Charlton [Fri, 24 Feb 2017 23:04:29 +0000 (18:04 -0500)]
LP#1667835: avoid edi_fetcher.pl crash upon fetching zero-length file
This patch fixes an issue that could cause edi_fetcher.pl to crash
if the EDI partner supplies a zero-length file for Net::FTP to
download; such files are now skipped.
Testing would entail setting up an FTP server that contains a
zero-length file, then setting up an EDI remote account and
using edi_fetcher.pl to try to retrieve the file.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Jason Stephenson <jason@sigio.com>
When LP#1541559 was merged, we missed checking for CSS changes and this
orientation update was missed. Adding to the style-rtl.css.tt2 file the
new CSS IDs for ebook API tables.
Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Ben Shum [Mon, 27 Feb 2017 21:32:48 +0000 (16:32 -0500)]
LP#1493824: Install PG 9.4 on Debian Wheezy and Ubuntu Trusty
Debian Wheezy only ships with PG 9.1 by default. Ubuntu Trusty has Pg
9.3. Pg 9.4 is the recommended version for use with Evergreen going
forward and will be the required minimum version of PostgreSQL for use
with Evergreen 3.0. Since we envision continuing to support Wheezy
and Trusty through the lifetime of Evergreen 3.0, we therefore help
the user out by adding the apt.postgresql.org repository for them and
install PostgreSQL version 9.4 on these operating systems.
This commit does the following:
1. Sets up the installer to use the PostgreSQL community's apt sources
in a new Makefile.debian target, debian_postgresql_repo. This target
is run on Debian Wheezy and Ubuntu trusty during prerequisite
installation.
2. Installs PG 9.4 client on Wheezy and Ubuntu.
3. Installs PG 9.4 server in the server prerequisite targets for
Wheezy and Ubuntu.
4. Uses pg_config in installation of lidbdi-drivers from source.
5. Updates the server installation document to reflect the above
changes.
6. Updates the server upgrade documentation to reflect the new minimum
(9.3) and recommended (9.4) PostgreSQL versions.
Benjamin Shum is the primary author of these changes, though they are
based on Chris Sharp's idea for using the PostgreSQL community apt
source.
The libdbi-drivers installation was fixed by Jason Stephenson who also
added an if block to skip the apt.postgresql.org repository set up if
it is already configured on the target host.
Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Jason Stephenson <jason@sigio.com>
Dan Scott [Thu, 2 Mar 2017 15:40:03 +0000 (10:40 -0500)]
Remove Fedora from install documentation
Fedora is no longer a "well tested target" as the corresponding
Makefiles are not up to date. Therefore, remove all mention of it from
the install documentation.
Galen Charlton [Tue, 28 Feb 2017 18:59:24 +0000 (13:59 -0500)]
LP#1668725: fix Z39.50 overlay when no profile set
This patch fix an issue where, when performing an overlay
of a record from Z39.50 in the web staff client, if no
merge profile is set, the incoming record is not displayed
in the right-hand pane of the merge dialog.
To test
-------
[1] Select an overlay target, then use the web staff
Z39.50 search interface to find a record to overlay
it with.
[2] Open the Z39.50 overlay dialog and verify that no
profile is set (you may need to clear the
eg.cat.z3950.default_merge_profile key to ensure this).
[3] Note that the incoming record from Z39.50 doesn't display
in the right-hand pane.
[4] Apply the page, then repeat step 2. This time, the incoming
record should be displayed.
Galen Charlton [Mon, 27 Feb 2017 15:19:30 +0000 (10:19 -0500)]
LP#1607487: make schema update script use same whitespace
This patch ensures that the naco_normalize() and search_normalize()
functions preserve the exact whitespace used in the baseline
function definitions; this makes no functional difference, but
may help folks using diffs to compare schema versions.