dbs [Mon, 14 Mar 2011 04:21:20 +0000 (04:21 +0000)]
Apply jshint suggestions for cleanup to dojo.fieldmapper
Mostly consisting of missing semicolons and avoiding the redeclaration
of variables (generally for iterators) within the same function scope.
Some tightening of null and '' checks to avoid implicit type-casting.
dbs [Sun, 13 Mar 2011 22:09:06 +0000 (22:09 +0000)]
Normalize patron profile search function in "Search for Patrons" UI
Use util.widgets.make_menulist for a more consistent approach to
generating the menulist and use a row/label/hbox layout to normalize the
appearance of the patron profile filter in the search menu.
dbs [Sun, 13 Mar 2011 22:02:19 +0000 (22:02 +0000)]
Apply patch to add a patron profile filter to the "Search for Patrons" UI
Thanks to Michael Peters <mrpeters@library.in.gov> and
Thomas Berezansky <tsbere@mvlc.org> for their work on this additional
functionality to the patron search UI, supplied as a patch in LP# 715837.
dbs [Sat, 12 Mar 2011 23:37:45 +0000 (23:37 +0000)]
Clean up build errors when creating/recreating database schema
Dropping the evergreen schema cascaded and wiped out some previously
defined functions, so move it ahead of the other functions. (And maybe
we can start moving those public functions into the evergreen schema?)
DROP AGGREGATE IF EXISTS exists on any version of PostgreSQL that we
care about for Evergreen 2.0, so we can use it to avoid false errors
during schema creation.
FTS config was complaining about public.english_nostop in the ALTER
statement, so remove the schema qualification. This seems to have
been there for a long time?
Use IF EXISTS when dropping the unapi schema to avoid an error.
dbs [Sat, 12 Mar 2011 02:57:32 +0000 (02:57 +0000)]
Resolve inconsistent results when invoking LOWER() in C vs. UTF8 locale databases
As reported by the Fundamental Science Library of Armenia, patron searches
were not retrieving patrons who were known to be part of the patron database.
While the initial approach to solve this problem used an encode_utf8() call
to encode the data before passing it on to the database, this turned out to
break the patron search function in other environments.
Testing by Dan Wells confirmed that the LOWER() function returned different
results when invoked against text in a database created with LC_CTYPE=C vs
a database created with LC_CTYPE=*.UTF-8. As the patron search function
used a Perl lc() function call to convert the incoming data to lowercase,
the success of the call depended on the LC_CTYPE value of the database.
To avoid this problem in the future, we define our own evergreen.lowercase()
function that can reliably produce lowercase text for characters outside
the Latin1 range, and we convert our indexes and function calls to use that
function consistently.
dbs [Fri, 11 Mar 2011 20:37:50 +0000 (20:37 +0000)]
LANG=C results in SQL_ASCII encoding by default for PostgreSQL, which isn't cool
We want LC_CTYPE=C and LC_COLLATE=C, and SERVER_ENCODING=UTF8.
The docs have been adjusted as 8.4 and up now offer database-level
--lc-ctype / --lc-collate options for createdb command.
dbs [Fri, 11 Mar 2011 16:42:01 +0000 (16:42 +0000)]
Ensure incoming query values to patron search are UTF8-encoded
Addresses the problem reported with searching for patrons with
Armenian names, where Unicode query params were getting corrupted
on its way to the database.
senator [Thu, 10 Mar 2011 22:24:08 +0000 (17:24 -0500)]
Foundational work for temporary/anon lists and per-user lists (bookbags)
There were already some features in EGCatLoader for adding and
deleting items from lists, but there's more to do, as that code only
dealt with numeric IDs, and we need records avaiable. Also, to avoid
search bots creating temporary/anon lists all the time, and just because
the following is good practice, our "add to my list" links need to be
forms that POST, not links that GET.
erickson [Thu, 10 Mar 2011 14:24:18 +0000 (14:24 +0000)]
as an alternate/addition to applying per-setting permissions, use the existing VIEW_ORG_SETTINGS permission as a general gateway into the org settings UI
miker [Wed, 9 Mar 2011 19:23:55 +0000 (19:23 +0000)]
Patch from Thomas Berezansky:
The attached patch adds a collection of settings for patron registration, as well as a new display mode.
The new display mode is "Suggested" compared to "Required" or "All". It shows everything "Required" does, but also shows fields flagged as "Suggested", stat cats, and surveys.
To control this and other things are the settings. They come in a few general categories, named ui.patron.edit.<fmclass>.<fmfield>.? where ? is one of the following:
require - Flag the field as required when it otherwise wouldn't be.
show - Show the field like required fields, but don't actually require it.
suggest - Show the field with required/shown fields in "show suggested fields" mode
example - An example string for a field
regex - A regular expression for validating a field
Not all fields have all of the above options by default, although the initial list is the main limiter compared to the code side.
Also included are the following settings:
ui.patron.edit.au.dob.calendar - If true, shows the calendar widget for the date of birth field
ui.patron.edit.phone.example - Example for all phone fields without their own
ui.patron.edit.phone.regex - Regex validator for all phone fields without their own
ui.patron.edit.default_suggested - Default to showing suggested fields instead of all fields
dbs [Wed, 9 Mar 2011 19:12:45 +0000 (19:12 +0000)]
Draw pre-cataloged items (author and title) in My Account checkedout screen
Two problems: FETCH_MODS_FROM_COPY returns an object, so we weren't
getting to the point of fetching the raw copy itself, and there was
some confusion about pre-cataloged vs. non-cataloged items that is
hopefully straightened out now.
dbs [Tue, 8 Mar 2011 21:42:29 +0000 (21:42 +0000)]
Be more defensive when parsing SFX target results
SFX in the wild has been observed returning targets for getFullTxt
requests that have no target URLs, which makes it rather impossible
to provide a link to the full text resource. Skip such targets (and
for good measure, skip them if they don't have a name either).
Also, change from the SID "conifer" to the more generic and accurate
"evergreen".
miker [Mon, 7 Mar 2011 16:03:30 +0000 (16:03 +0000)]
fetch ccvm's directly for item_form/type/lit_form/bib_level/audience via fielder in opac; leave api constants around for other skins that may be using them. ML code now fetches ccvms, but returns data in original config.*_map objects for backwards compat + deprecation warning log
dbs [Mon, 7 Mar 2011 15:07:39 +0000 (15:07 +0000)]
Fix cloning of AutoField widgets: LP #728055
Cloning Action/Trigger event definitions was not working properly, as
all values were being copied from the original object using their display
strings rather than the underlying values.
Bill Erickson suggested a fix in IRC that works, so full credit to him
for this change!
dbs [Sat, 5 Mar 2011 03:14:47 +0000 (03:14 +0000)]
Correct search index definitions for subject|complete and identifier|bibcn
Dan Wells reported in LP# 729385 that the index definitions for
subject|complete and identifier|bibcn were not working, and traced
the problem to a change in how indexes are generated in 2.0+. Dropping
the trailing '//text()' on these two indexes addresses the problem.
Sites upgrading from a previous version of Evergreen 2.0 will want
to refresh the indexes after applying this schema change to enable
searches against subject|complete and identifier|bibcn to work.
dbs [Fri, 4 Mar 2011 20:58:27 +0000 (20:58 +0000)]
Teach marc_export how to export bibs for specified libraries
Useful shortcut for getting the bibs for libraries based on the
non-deleted callnumbers they have attached to non-deleted bibs.
Doesn't guarantee that they also have either a visible copy or
localized URI attached but whaddya want, magic? :)
berick [Fri, 4 Mar 2011 19:43:36 +0000 (14:43 -0500)]
added bookbag CRUD+ interface which supports create/delete/rename/show/hide/add_rec/del_item actions; some I18N and cleanup of lists.tt2; added generic redirect sub to replace the bare REDIRECTs spread throughout w/ a more consistent mechanism for finding where to redirect
dbs [Fri, 4 Mar 2011 18:03:12 +0000 (18:03 +0000)]
Teac marc_export how to replace the 001 field value with the record ID
This is option is probably more useful prior to 2.0 where we introduced
the automated "munge control numbers" option, but new features go
here, right? A site that wants to export their bibliographic records
to send to a large library consortium for control number matching
may find this a useful way to send out records with a local 001 record
ID and get standard identifier control numbers back that they can
add as a 035, per MARC standards.
dbs [Fri, 4 Mar 2011 02:39:53 +0000 (02:39 +0000)]
SRU: Restructure the hash returned from open-ils.supercat.biblio.search_aliases
By returning explicit index and title elements from the method,
we can backport cleanly to 2.0 and set the stage for pulling the
title element directly from the database in 2.1 and beyond.
In addition, the enriched object enables us to get rid of the
hardcoded nested qualifier map for bibs, and also enables us to
fix the explain document for SRU for authority records.
Finally, we also fix the mappings of SRU qualifiers to Evergreen
search aliases (in many cases we had been quietly falling back
to plain kw searches, which was not cool).
dbs [Thu, 3 Mar 2011 20:47:23 +0000 (20:47 +0000)]
Add complete set of Evergreen search aliases and attributes to SRU explain
Original "pull from database" code had limited the search aliases to those
that were qualified; now we pull all of them, and if they are not qualified,
we qualify them as "eg".
In addition, for some of the non-index attributes (sort, direction, site,
available), restore the descriptive title that was previously available.
Slightly longer term we will add a "description" column to
config.metabib_search_alias to store this information.
Also, we had always been using the global %qualifier_map in
return_sru_explain(), even though the intention was to enable the authority
explain index to pass in an overriding set of values. This commit breaks the
authority SRU explain, but as it had been incorrectly dumping the bib explain,
this brings us a step closer to proper explain support for authorities.
dbs [Thu, 3 Mar 2011 05:44:33 +0000 (05:44 +0000)]
Draw SRU search indexes from config.metabib_search_alias
We had hardcoded search indexes for SRU, but thanks to the work
of Mike Rylander, it is fairly easy to remove that brittle code
and replace it with code that polls the contents of
config.metabib_search_alias and dumps it into the explain document.
miker [Wed, 2 Mar 2011 20:43:17 +0000 (20:43 +0000)]
Call number sorting "before" the context needs to be segregated based on directly on the label, "here-and-after" on the bytea version. Testing bears this out, but more eyes would be appreciated.
dbs [Wed, 2 Mar 2011 02:53:23 +0000 (02:53 +0000)]
Add example intervals to some library setting descriptions
Based on a patch provided by Michael Peters <mrpeters@library.in.gov>
in Launchpad bug 717308, provide examples of intervals in several
descriptions that lacked them.
erickson [Tue, 1 Mar 2011 16:20:52 +0000 (16:20 +0000)]
merging in some useful changes from the opac-tt-poc branch, including capture of authtime in CStoreEditor, some holds retrieval de-fleshing options, and a total_count field added to user opac vital stats api
dbs [Tue, 1 Mar 2011 04:16:07 +0000 (04:16 +0000)]
Add a TT helper to encode email headers in UTF-8
This can and should be used to encode any headers (To, From, Subject, etc)
in an email that might include text outside of the ASCII 7-bit range. Names
of people or libraries, for example, that might otherwise come out garbled.
senator [Mon, 28 Feb 2011 13:36:43 +0000 (08:36 -0500)]
Implement mike's suggestions from #esi-dev on 27 Feb 2011
This makes an "exact" search build a query with starting and ending
anchors, and adds a new contains-value called "phrase" which does what
"exact" was doing before.
senator [Thu, 24 Feb 2011 23:11:04 +0000 (18:11 -0500)]
lot of things, including:
- crib subjects support from regular opac poc
- get rid of adv search form inclusion on results page, but keep the link to
it. Show a special version of just the "compiled" QP query
- better and more generic handling of search terms (compiling CGI params
to QP string)
- make limit to avail and sort work from basic search results page
- genericize search cgi params -> qp. filter:foo, s/class/qtype/, etc
- more!
dbwells [Thu, 24 Feb 2011 20:00:09 +0000 (20:00 +0000)]
Fix regex in maintain 901c
The previous regex would delete any 901 fields *and* any fields which followed. Since the 901 is typically the last field, this problem didn't surface during testing.