senator [Wed, 16 Mar 2011 18:48:52 +0000 (14:48 -0400)]
"Add to my list" becomes "remove from my list", and
it now works on the record detail page as well as the results page.
Also, I fixed a bug by which an HTML form was rendered wrongly, totally
breaking the display of the results page in IE and preventing the first
result on any page of search results from adding to the anonymous list.
dbs [Wed, 16 Mar 2011 03:46:43 +0000 (03:46 +0000)]
Set default db schema search path to public,pg_catalog
With the addition of the 'evergreen' schema, we discovered that
all of the unqualified database objects were being created in
the 'evergreen' schema if the database user name was 'evergreen'
(as the default search path is "$user",public we started matching
"$user").
Thomas Berezansky proposed a variation of the function provided
here for changing database settings. By creating the function in
the first schema file, the subsequent connections pick up the
new default search path and all works blissfully as it once did.
Long term, we should probably move towards explicitly qualified
database objects.
dbs [Wed, 16 Mar 2011 03:38:26 +0000 (03:38 +0000)]
Make DROP statement match new basetype for agg_tsvector
When the CREATE AGGREGATE function was changed to have a basetype
of pg_catalog.agg_tsvector, the corresponding DROP statement was
not changed in a similar fashion; ergo, on creating the schema
a subsequent time, the CREATE statement would fail because the
aggregate function already existed and the transaction would be
rolled back.
Also - do we need to differentiate between PostgreSQL 8.4 and 9.0
here?
phasefx [Tue, 15 Mar 2011 21:05:49 +0000 (21:05 +0000)]
With some hints from eeevil, tweaked 002.functions.aggregate.sql to work after some search_path mangling. Haven't smoketested yet, just got past the eg_db_config --create-schema bit with this.
senator [Tue, 15 Mar 2011 19:16:23 +0000 (15:16 -0400)]
bib record subject search terms: painstaking translation of BibTemplate to TT
the reference implementation I used is in
Open-ILS/web/opac/skin/default/xml/rdetail/rdetail_summary.xml starting
at line 93 as of this commit.
Only now that I've imitated the default skin's behavior exactly, I note
that the subject search links produced don't actually work on my test server.
Seems to be a local configuration issue though; will investigate.
senator [Tue, 15 Mar 2011 17:47:10 +0000 (13:47 -0400)]
Improve search term propagation from page to page
Also, for things like the author link on the record detail page, build a
link with 'qtype=author&query=JK Rowling' instead of 'query=au:JK Rowling'
The latter works, but causes the search form to look stupid.
Query type dropdown will be set to keyword by default, and the term will
be "au:JK Rowling", which will be a head scratcher for 99% of real
users.
phasefx [Tue, 15 Mar 2011 15:52:12 +0000 (15:52 +0000)]
Misc. changes to installer including:
1 - Fix profile manager links
2 - Add tag at top (currently "Trunk") for easy changing
3 - Add optional extras.nsi for easy additions of extra install/uninstall lines
4 - Run uninstaller if installing to a directory with one (old style OR new style)
5 - Allow license override and only show license page if one defined
Ex. With NSIS_EXTRAOPTS set to "-DPRODUCT_LICENSE=some/path"
Or to disable use "-DPRODUCT_LICENSE"
6 - Similar to devbuild, allow for registration per-machine by default
This includes needing to not wipe out the folder this is stored in
7 - Make "Everyone" able to write to the install folder when:
Autoupdate is an option
Per-machine registration is an option
8 - Make silent uninstall function
Author: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
git-svn-id: svn://svn.open-ils.org/ILS/trunk@19750 dcc99617-32d9-48b4-a31d-7c20da2025e4
phasefx [Tue, 15 Mar 2011 11:59:04 +0000 (11:59 +0000)]
Default workstation name to something sensible.
Like the computer's hostname. But not localhost.
Author: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
git-svn-id: svn://svn.open-ils.org/ILS/trunk@19747 dcc99617-32d9-48b4-a31d-7c20da2025e4
senator [Mon, 14 Mar 2011 21:48:25 +0000 (17:48 -0400)]
If the TT stuff loads CGI w/o -utf8, that "instance" (not really instance)...
... will compete with use CGI in EGCatloader.pm. Really. Normally I enjoy
perl but the awful, horrendous, unspeakable black magic used in CGI.pm
has given me a great deal of trouble today.
Specifically, I could not really succeed in subclassing it. I had a kind
of half success before, but I could only really replace methods in my
subclass, but not call the methods unchanged from the original base
class (CGI). This manifested in a bug where I had been using
the query_string() method preserve search terms across some pages, but
that method had stopped working since I introduced the CGI subclass.
In an attempt to fix that, I discovered this document
http://stein.cshl.org/WWW/CGI/#subclassing
and tried the advice therein, and several variations thereof, but
everything I produced caused mod_perl to consume memory until it keeled
over from OOM.
Finally, I discovered that I never really needed the subclass in the
first place, so long as 'use CGI' with no module parameters doesn't
happen in the same process as 'use CGI qw/-utf8/'.
erickson [Mon, 14 Mar 2011 16:34:25 +0000 (16:34 +0000)]
More menu work for record attr/coded map config UIs
menu entry for config.coded_value_maps,
updated menu label and page title for config.record_attr_definition page;
in some cases (that probabl need investigating), widget.validate function is not defined. in those cases, don't attempt to call the function
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.