Ben Shum [Fri, 14 Apr 2017 22:51:01 +0000 (18:51 -0400)]
LP#1683388: Docs: README change for nodejs installation
Now that we have Makefile developer support for Wheezy too, we can
skip the extra steps if we use the developer make target for any
supported distribution.
Signed-off-by: Ben Shum <ben@evergreener.net> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
LP#1670425: RTL improvements to new advanced search limiter block
Add some extra divs to the block with associated styling so that the advanced
search limiter block displays correctly for right-to-left languages. Also, add
some CSS to the rtl stylesheet so that padding and margins are added to the
correct side of blocks.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Ben Shum <ben@evergreener.net>
Kathy Lussier [Fri, 10 Mar 2017 13:57:26 +0000 (08:57 -0500)]
LP#1670425: New responsive design for advanced search limiters block
When the screen is 600px or smaller, we continue to only display the 'x filters
applied' link as we did with the sidebar display because displaying limiters
pushes the results too far down the screen. Clicking the link toggles the
display of the limiters.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Ben Shum <ben@evergreener.net>
Kathy Lussier [Thu, 2 Mar 2017 04:06:49 +0000 (23:06 -0500)]
LP#1670425: Moving display of advanced search limiters on search results page
Moves the new 2.12 advanced search filters block out of the sidebar and
along the top of the screen so that the user can see limiters along with their
other search terms.
Signed-off-by: Kathy Lussier <klussier@masslnc.org> Signed-off-by: Ben Shum <ben@evergreener.net>
Jason Stephenson [Tue, 11 Apr 2017 14:52:09 +0000 (10:52 -0400)]
LP 1665933: Skip XUL staff client build in make_release.
Add a -x option to skip building the XulRunner staff clients. This is
useful for making custom tarballs for local installation where you
will build the staff client on the server.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Ben Shum <ben@evergreener.net>
We no longer need to install bower as part of the Makefile.install
targets or worry about the bower_components cache directory when
generating a release. Rip out those references.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <ben@evergreener.net>
Dan Scott [Thu, 6 Apr 2017 04:26:50 +0000 (00:26 -0400)]
LP#1680624 Consolidate package dependencies into package.json
npm already enables us to designate dependencies in package.json,
and projects have increasingly consolidated what bower used to be
used for in package.json. We can do this with an npm-compatible version of
angular-order-object-by from github.
There are a few other tweaks to npm vs bower file locations, such as
ng-toast instead of ngtoast for ngToast.
Pin to AngularJS 1.5.x for now
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Ben Shum <ben@evergreener.net>
Dan Scott [Fri, 7 Apr 2017 18:19:22 +0000 (14:19 -0400)]
LP#1680312 Ensure oils_i18n_gettext keys are unique
To avoid inadvertent introduction of duplicate oils_18n_gettext() keys
in the data seed SQL, which will then prevent translated strings from
being able to be loaded, add a regression test.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Ben Shum <ben@evergreener.net>
To test
-------
[1] Open the MARC Tag Tables admin interface in the web
staff client and edit an existing entry. Note that
changing the selected OU will result in there being
no change and error messages appearing in the browser
JavaScript console.
[2] Apply the patch and repeat step 1.
[3] Verify that no errors are logged.
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Mike Rylander [Thu, 9 Mar 2017 20:26:44 +0000 (15:26 -0500)]
LP#1167541: Use Patron home org for pickup lib instead of staff's
When staff are placing a hold for a patron, we should use the patron's
preferred pickup location, and failing that, their home library rather
than the staff's home library.
To test
-------
[1] In the web staff client, search for a title to place
a hold request on, using a patron record
whose home library is different from the home library of
the staff member you are logged in as.
[2] Note that the pickup location defaults to the staff
account's home library.
[3] Apply the patch and repeat step #1. This time, the default
pickup library should be the home library of the patron.
[4] Set a preferred pickup location for the patron, then
repeat step #1. This time, the default pickup library
should be the preferred pickup location just set.
[5] Repeat steps #1-#4 using the XUL staff client; note that
for step #3, it will be necessary to rebuild the client.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
blake [Thu, 10 Nov 2016 23:06:39 +0000 (17:06 -0600)]
LP1599634: follow-ups
Squashed patch containing follows-ups written by Chris Sharp
and Galen Charlton:
* When running the upgrade script, the DROP VIEW statement resulted in an
error since the view did not already exist. You could add IF EXISTS, but
CREATE OR REPLACE VIEW is sufficient.
* Changes the ID column to just pass through
the ID from the source tables, promoted to BIGINT in
some cases. This has the effect of:
- removing a redundancy, as circ_type already specifies the source table
- making it easier to join this view against the circulation tables when
writing SQL queries
* Renames the schema upgrade script to better
match conventions.
* Move release notes entry so that it will get picked up
Dan Scott [Mon, 27 Mar 2017 02:24:57 +0000 (22:24 -0400)]
Resolve a few doc build errors with images
* We need to match the case of images exactly on case-sensitive file systems
* Two dots in a file name confuses the simple-minded PDF build
* Comment out images that we don't actually have yet
This patch fixes a case where JavaScript used in the OPAC
attempts to set the value of a #client_tz_id input on all
pages, even though only the login page has such an input.
To test:
[1] Load the OPAC homepage and open the JavaScript console/developer tools.
Note that there's a "Cannot set property 'value' of null"
error.
[2] Apply the patch and try again; this time there shouldn't
be such an error.
[3] Open the login page, and verify, using developer tools,
that the hidden client_tz_id input does have its value
set to the client timezone.
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>