Dan Scott [Mon, 30 May 2011 17:14:29 +0000 (13:14 -0400)]
Remove display of patron birthdate, internet access level, etc
These fields in the staff client are either not applicable or
potentially privacy-invasive or both. If the data somehow does
get into the system, we don't want it to show up on the staff
client anyway - and we don't want annoying warnings about unset
dates of birth, etc.
This is the hardcore way of doing things, we really should make
it yet another configuration setting. Oh well.
Dan Scott [Sun, 16 Jul 2017 21:07:45 +0000 (14:07 -0700)]
Script to generate nginx & apache configs
Given a set of hostnames, generate the appropriate nginx proxy and apache
config files. Also spit out a certbot command to generate a letsencrypt
certificate based on those hostnames.
Dan Scott [Mon, 27 Aug 2012 22:38:51 +0000 (18:38 -0400)]
LDAP authentication enablement for OSUL
We use the local-part of the email address to authenticate against the LDAP
server.
In the VirtualHost sections of Apache, we can use SetEnv to force the
physical_loc to match the org unit ID(s) specified in opensrf.xml; for
example:
SetEnv physical_loc 103
At Laurentian, all usernames will be lowercase. This will prevent mismatches
like the user entering "dscott" and the database having the value "DScott" (in
that we're going to force all of the Laurentian user names in the database to
lower case).
Add an ou_host_name parameter for TPAC login forms
If set, and the incoming username does not already include an '@' symbol
(a very simple attempt to detect if we're already dealing with an email
address), then append '@' + the ou_host_name value to the username for
authentication purposes.
The rationale is that in a large consortium, you might want to enable
users to log in with short usernames (like 'fred'), but you also want to
avoid conflicts between short usernames at different organizational
units. Thus, create the users with the email equivalent of their
usernames, like 'fred@br1.example.com' and 'fred@br4.example.com', and
let the templates for the TPAC in br1 and br4 contain a hidden input
field to append the appropriate email hostname.
Truth be told, this is probably most appropriate for a large consortium
containing two or more academic institutions that hope to use LDAP
authentication rather than native authentication, and therefore have
LDAP CNs that map to email addresses of CN@hostname that can then be
mapped to actor.usr.usrname (and actor.usr.email, of course).
Dan Scott [Thu, 10 Jan 2013 19:17:33 +0000 (14:17 -0500)]
Generic patron barcode generation (OpenSRF and DB)
Laurentian University needed the ability to generate barcodes as part of
its LDAP integration work, and the first generation (so to speak) of the
was specific to LU - including hard-coded prefixes and database
functions that include the "lu" name.
This commit makes the functionality much more generic and thus more
likely to be able to be adopted by other institutions. The principle
components are:
Database functions:
evergreen.actor_generate_barcode([prefix TEXT]) - returns a 14-digit
barcode from the evergreen.actor_barcode_seq sequence with a prefix of
'AUTOBC' or the specific prefix of up to 6 characters. If the
resulting barcode is all digits, then the 14th character will be a
mod10 check digit; otherwise the 14th digit will be '0'.
evergreen.actor_update_barcode(usr_id INTEGER[, prefix TEXT]) -
generates a new barcode for the specified user, with the optional
barcode prefix.
evergreen.mod10(barcode TEXT) - given a barcode, generates a mod10
check digit and returns the barcode with the appended check digit
OpenSRF method:
open-ils.actor.generate_patron_barcode([usr_id INT[, prefix TEXT]]) -
generates a new barcode for the patron
Dan Scott [Wed, 14 Sep 2011 20:02:14 +0000 (16:02 -0400)]
Add and use a patron search that overrides opt-in invisibility
Something like this is required for API calls that need to operate
against a number of libraries in a given instance that are using opt-in;
otherwise, attempts to search for users will fail and you may end up
creating near-duplicates etc.
The implementation adds an
open-ils.actor.search.patron.advanced.opt_in_override method to
open-ils.actor, which, if invoked, checks to see if the caller has the
OPT_IN_OVERRIDE permission. If so, then the crazy_search ignores the
normal opt-in limits and searches all pertinent users in the database.
As a global permission, OPT_IN_OVERRIDE is a blunt instrument. Others
might want to put together a more refined version that uses OU depths to
define boundaries.
Jason Boyer [Mon, 2 Apr 2018 17:55:02 +0000 (13:55 -0400)]
LP1760662: Item Status Holdable Field Display
The Holdable field on the Summary tab of the Detail View
of Item Status was displaying the value for OPAC Visible.
Let's change that from opac_visible() to holdable().
Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Jason Stephenson [Thu, 12 Apr 2018 14:47:40 +0000 (10:47 -0400)]
Lp 1735539: Fix Item Status ability to delete multiple copies.
Use the notify handler instead of the resolve handler to collect our
copies. This ensures we get them all instead of just the last one.
To reproduce the bug:
1. Open Item Status in the web staff client.
2. Load multiple items, perhaps by uploading a file of barcodes.
3. Select more than 1 item from the list.
4. Choose "Delete Items" from the Actions menu.
5. Note that the dialog indicates that you will delete 1 copy.
6. Click the Cancel button in the dialog.
To test, after applying the fix branch:
1. Open Item Status in the web staff client.
2. Load multiple items, perhaps by uploading a file of barcodes.
3. Select more than 1 item from the list.
4. Choose "Delete Items" from the Actions menu.
5. Note that that the dialog indicates you will delete X copies,
where X is the number of items selected.
6. Click OK and confirm that all copies were deleted.
7. You can confirm 6 by reloading the interface and uploading the
file of barcodes again.
Signed-off-by: Jason Stephenson <jason@sigio.com> Signed-off-by: Jason Boyer <jboyer@library.in.gov> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Consistent with the XUL client, only display patron standing penalties
(AKA Messages) that are linked to an org unit which is an ancestor,
matching, or descendant org unit of the workstation (e.g. the full
path).
To test:
[1] Create a patron Message which applies to a branch using a branch or
null-depth penalty (e.g. at BR1).
[2] Create a second message that links to the root org unit (e.g. CONS)
via depth=0 penalty.
[2] Log out and back in to the browser client at a workstation under a
different section of the org unit tree (e.g. BR3) and confirm the
Messages created at BR1 do not display, but the messages created at CONS
do.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Apply correct org unit to patron penalties created in the web staff
client. Specifically, be sure the standing penalty depth value is
honored when set.
Commit replaces manual pcrud creation with the XUL-tested API, which
calculates the correct org unit by depth for us.
Signed-off-by: Bill Erickson <berickxx@gmail.com> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
- Change menu names to match web client ("Admin" to "Administration", and
"Server Admin -> Acq" becomes "Acq Admin")
- Fix list formatting where images were breaking a numbered list into
two lists
Remington Steed [Thu, 29 Mar 2018 12:51:28 +0000 (08:51 -0400)]
Docs: Update "Selection Lists" and "Invoices" for web client
- Update references to Acq Admin menu
- Make menu name formatting more consistent (should be bold or
italics)
- Remove outdated reference to old Evergreen version under "Activate
Purchase Order with Zero Copies"
Dan Scott [Wed, 21 Mar 2018 21:08:35 +0000 (22:08 +0100)]
LP1757526 Escape displayed catalogue data
Content in content fields (5xx) as well as for the names of locations in copy
count alt text was not being properly escaped, allowing for the possibility of
executing arbitrary JavaScript in the case of a malicious catalogue record
(whether edited in the system, or imported)
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Dan Wells [Fri, 23 Mar 2018 17:07:45 +0000 (13:07 -0400)]
LP#1699838 Scale back settings for staff-based hold placement
For now, we will add just one new setting to optionally restore the old
behavior. In the absence of a 'preferred pickup location', the staff
form will default to the staff workstation OU.
Also, add setting to seed data.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Conflicts:
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Remington Steed [Fri, 23 Mar 2018 14:46:32 +0000 (10:46 -0400)]
LP#1693036: Simplify template, cleanup preview data
This commit corrects a few minor problems, and also attempts to simplify
and cleanup the template. The changes include:
- Adding the missing "ident_type2" field to the template and JS
- Adding missing sample data for "county"
- Moving "postal code" closer to the standard location (at the end of
the address)
- Fixing typos, and making "Claims..." labels more consistent
- Minor cleanup of the sample data
- Removing template comments that list available variables, because
this template is simpler than most, intended to print everything
Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Rogan Hamby [Tue, 21 Nov 2017 23:50:34 +0000 (18:50 -0500)]
LP#1731960-preserving book bag entries with new values during bib merge
The asset.merge_record_assets() removes bib records from containers when
merging and deleting the record as appropriate but bib containers with
the btype of 'bookbag' (used as reading lists) should instead be updated
to the new bib record. Includes Pgtap test.
Now that we are fleshing this field, we need to dig a little deeper
for the 'id' to test if we are the same user.
To test
-------
[1] Set up a patron with a hold request and with a item
on the hold shelf that fills the hold.
[2] Check out the item to patron. Note that you
will get a ITEM_ON_HOLDS_SHELF alert, even though the
item is on hold for that patron. Cancel the alert.
[3] Apply the patch and repeat step 2. This time, the checkout
will proceed.
[4] Set up another patron with a hold request and an item
on the hold shelf, then checkout it at to a _different_ patron.
Verify that the ITEM_ON_HOLDS_SHELF alert appears.
This patch also fixes test failures caught by the
19-lp1306666-abort-transit-copy-status.t live test.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
* Make paths to expire_time and cut_in_line more concise
* Add SMS Carrier column back
* Tweak labels of the patron first and last name columns
* Ensure that the "Call Number" column continues to be sortable
by normalized call number label. Note that due to a quirk of
egGrid, which doesn't currently have a way to specify that a column
always be retrieved by a fielder query but /not/ be directly
available as a displayable column, we also need a "Call Number Label"
column at the moment.
Cesar Velez [Tue, 30 Jan 2018 18:13:52 +0000 (13:13 -0500)]
LP#1728147 - fix some Holds Pull List grid columns
This adds a few missing columns to the Holds Pull List grid,
and addresses a few display issues.
New columns added are Hold Type, Circ Mod, Staff Hold,
Email/Phone/SMS Notify, Copy Status Change Time, ISBN,
Edition, Top of Queue, Total Holds, and Expire Date.
The current Flattener.pm autogenerates necessary joins for sorting
and filtering, but in doing so, it gives every intermediate table a
unique alias, even if the path to that table is exactly the same as
another member in the map we are flattening.
Instead, let's reuse joins whenever the path is identical, even for
intermediate tables. We do so by tracking every path to each core
type, then reusing as much of that join path as we can. In cases
where we have different paths to the same type, we still necessarily
provide a new unique alias.
This problem was first noticed in the web staff billing history
interface, where the particular stacking of joins resulted (for one
specific library) in 17 joins and 44,575,740,147,225,592,344,870,912
potential rows.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
Cesar Velez [Fri, 19 Jan 2018 19:43:38 +0000 (14:43 -0500)]
LP#1702557-Make Acq MarcEditor Just Have Save Button
Like the changes to the z3950 marceditor UI, and serials,
make the Acq marceditor have a simple Save button, instead
of the Modify + Save Edits buttons needed to save a change.
Same change as in 1710405, et al. Note this also fixes a
propagation issue that prevented changes from marceditor's
scope.marcXml from making it to the modal controller scope,
and being saved. Props to miker for helping me debug this!
Signed-off by: Cesar Velez <cesar.velez@equinoxinitiative.org>
Bill Erickson [Mon, 19 Mar 2018 19:22:44 +0000 (15:22 -0400)]
LP#1361258 Patron reg repair user settings saving/loading
Avoid caching user setting values at the service (app) level in the user
editor. In other words, always fetch a fresh copy of the current user's
setting with each instance of the editor page.
This solves a number problems where stale versions of the cached data
were referenced and acted on, both when displaying an updating user
settings.
Additionally, ensure that clone user and stage user data is refreshed
on all page instances as the URL params that affect these values can
change per instance.
Other data that is common to all instances (e.g. the set of profile
groups) is still cached as before.
Mike Rylander [Wed, 10 Jan 2018 16:25:27 +0000 (11:25 -0500)]
LP#1742779: Distinguish between no statcat values and multiple values in copy editor to assist staff
WRT stat cats, the copy editor in the web client will display the value of a
stat cat IFF all selected copies both use the stat cat AND use the same value
for that stat cat. Otherwise it displays <NONE>, which is confusing in the
case of some selected copies just not using the stat cat, or all selected
copies using it, but using different values.
This commit provides tracking of the mixed-use stat, and displays <MULTIPLE>
for the value instead of <NONE> in that case.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Kathy Lussier <klussier@masslnc.org>
Jeff Davis [Mon, 12 Mar 2018 18:09:23 +0000 (11:09 -0700)]
LP#1752983: sort circ modifier list in precat checkout
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jeff Davis [Thu, 15 Mar 2018 21:58:16 +0000 (14:58 -0700)]
LP#1755892: ensure profile is fleshed in patron search
To test
-------
[1] Do a catalog search or retrieve a record in the web staff client.
[2] Click Place Hold.
[3] On the place hold screen, click Patron Search.
[4] Search for patrons (e.g. last name = "smith"). In the results grid,
the Profile column is empty.
[5] Apply the patch and repeat steps 3 and 4. This time, the Profile
column should contain the profile name.
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
The use of splice() here caused buggy behavior and seemed to be a typo,
so I tried using slice() instead. But that still didn't work correctly.
The list stopped adding items after it reached 21 total, so scanning a
new barcode didn't add it to the list but only refreshed the list.
Instead, this commit sets the length of the array to 20, which shortens
the array as described in the MDN documentation for Array.length. Now it
behaves like it did in the XUL client.
Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Cesar Velez <cesar.velez@equinoxinitiative.org> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Jeff Davis [Wed, 14 Mar 2018 22:10:23 +0000 (15:10 -0700)]
LP#1743045: skip redundant grid refresh on checkin
Signed-off-by: Jeff Davis <jdavis@sitka.bclibraries.ca> Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Bill Erickson <berickxx@gmail.com>
Galen Charlton [Sat, 17 Mar 2018 17:38:01 +0000 (13:38 -0400)]
LP#1756572: accessibility tweaks to links in webstaff client
This patch changes the default
text color of text inside egGrid cells to #000; changes the default text
color to #000 (but note that more work would be needed to do this
comprehensively); and adds underlines to links inside grid cells.
Somehow egBasicComboBox got missed when it became necessary to
switch to the newer way of specifying Bootstrap drop-downs. This
patch rectifies that and fixes the drop-down functionality.
To test
-------
[1] Create a report template in the web staff report editor and
add a filter field.
[2] Attempt to change the filter operator. Note that nothing happens
when the drop-down button is clicked.
[3] Apply the patch and repeat step 2. This time, the drop-down
should work and display the list of available filter operators.
Other places affected include:
- The part selector in the volume/copy editor
- Template selector in the volume/copy editor
- Template selector in the labels interface
- Routing label selector in the subscription manager
- Call number prefix and suffix selectors in the serials batch receiving
interface
Galen Charlton [Tue, 6 Mar 2018 23:00:23 +0000 (18:00 -0500)]
LP#1721807: fix webstaff report templates that have might_have and has_many joins
This patch fixes a bug where using a virtual field in the web staff
report template editor to join another table would result in a syntax
error in the generated SQL.
To test
-------
[1] Apply the patch and verify that the regression test in the previous
commit passes.
[2] Create new report template in the web staff client that include
virtual fields and joins and verify that they work. One example
would be a report that uses ILS User as the base source and joins
in the patron notes virtual field.
[3] If available, clone a report template originally created in the web
staff client that had previously failed, then save it. The new
report should work.
This adds an automated regression test as well as some additional
unit tests for the web staff reporter app and template service. This
patch could be applied by itself to verify that the regression
test (run using 'npm run test' for master or 'grunt test' for rel_3_0)
fails.
Kathy Lussier [Tue, 6 Feb 2018 16:40:11 +0000 (11:40 -0500)]
LP#1746365 Change default staff link colors to provide adequate contrast
The default link color from bootstrap works well on white backgrounds, but
doesn't provide adequate contrast once the background color is changed.
This introduces accessbility problems, particularly in cases where linked
text displays on a selected grid row that uses a light blue background
color. This change provides a darker default link color.
Remington Steed [Fri, 16 Mar 2018 15:18:11 +0000 (11:18 -0400)]
Docs: Add aspell wordlist to improve spellchecking
To spellcheck the docs:
- Go into the docs/ directory.
- Copy the wordlist to your home directory (making a backup of your
existing wordlist, if you have one):
- cp --backup .aspell.en.pws ~/
- Run 'aspell' over all AsciiDoc files, except release notes. Don't
need to create backup files, since we're under version control. This
runs the interactive spellchecker; use it to fix incorrect words, or
add new correct words to the wordlist:
- for f in $(find . -name '*.adoc' -and ! -name 'RELEASE*'); do
aspell check --ignore-case --dont-backup $f; done
- Review your changes:
- git diff
- Commit spelling corrections in one commit. Noteworthy changes should
be included in the commit message.
- Commit changed wordlist in a separate commit.
Remington Steed [Fri, 16 Mar 2018 14:58:17 +0000 (10:58 -0400)]
Docs: Spell check corrections
I walked through all the docs (except for release notes) and made a
number of small corrections. Most of them are simple typos, but there
are a few special cases:
- In cases where the correction required matching with actual code or
labels in Evergreen, those were checked to make sure the correction
matched.
- Changed spelling of "correct" word "Transcendent" to match database
spelling "transcendant"
- Changed very informal contractions "it'll" and "that'll" to "it
will" and "that will". Same for "whatever's" to "whatever is".
- Changed very informal expressions: "handwaving" to "glossing",
"modernish" to "modern", "deduping" to "deduplicating".
- Changed "unclick" to "uncheck" (regarding a checkbox)
According to commit cac16285aca, the acq admin menu is supposed to be in
alphabetical order. However, one item remains out of place. This commit
fixes that.
Galen Charlton [Mon, 5 Feb 2018 23:04:12 +0000 (18:04 -0500)]
LP#1691263: discourage input of newlines in MARC editor
This patch catches and discards enter keydown events when the
focus is in a contenteditable subfield value div; otherwise, newlines
can infect the MARC record.
Cesar Velez [Mon, 4 Dec 2017 17:45:35 +0000 (12:45 -0500)]
LP#1691263: make webstaff MARC editor wrap long fields
This patch makes the MARC editor wrap long fields (e.g.,
bibliographic 505 fields) so that they fit the width of the enclosing
window or modal. The approach taken is replacing the text input
elements with contenteditable divs, which in turn can be better
styled.
To test
-------
[1] Apply the patch.
[2] Locate a record with a long 505 field and open it in the
MARC editor. Verify that the contents of the field wrap.
[3] Verify that record editing and saving work as expected.
Remington Steed [Wed, 14 Mar 2018 12:54:52 +0000 (08:54 -0400)]
Docs: Fix AsciiDoc list formatting
AsciiDoc lists (numbered or bulleted) generally need to be preceded by a
blank line. If not, they will be absorbed into the previous paragraph of
text. This commit fixes two occurrences of this.
Morkor Quarshie [Wed, 28 Feb 2018 21:27:05 +0000 (16:27 -0500)]
Docs: Update Authorities.adoc
- Revised instructions to match web client.
- Added new screenshots.
- Improved instructions for "Non-filing indicator".
- Minor line formatting changes.
Morkor Quarshie [Tue, 6 Feb 2018 21:24:10 +0000 (16:24 -0500)]
Docs: Add directions for configuring columns
Includes screenshots and instructions on how to expand, shrink and move
columns left and right. Also updates some explanation to match how the
web client stores column settings.