Instead of calling them "Detailed View" and "Simple View" label them as
"Show More Details" and "Show Fewer Details", to make it obvious that
clicking will change the view.
Credit goes to other MassLNC members for the initial idea, and those in
IRC for hashing out the wording.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Michael Peters [Fri, 2 Mar 2012 16:31:35 +0000 (11:31 -0500)]
Improve the readability of the rdetail_extras headers in TTPAC
The previous version included green text, on a light green background, which
was very difficult to read, especially for visually impaired patrons.
This commit serves to change the header background to a darker green, along
with a high contrast white text.
Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Dan Wells <dbw2@calvin.edu>
This ensures most of the rest goes without error first
Disable triggers on the table before doing update
This speeds the update up significantly as we don't need to re-calc the
additional column's new data.
Allow new column to be null (at first) with no default
This allows the column to be added *without* re-writing every row. We still
re-write every row with the update, but at least we aren't doing that
*twice* this way.
And add the not null/default to new column and re-enable triggers as our
last action.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org>
Bill Erickson [Thu, 19 Jan 2012 16:03:44 +0000 (11:03 -0500)]
Default Vandelay merge profiles
Adds 2 default vandelay merge profiles, in part so users will have some
useful sample data, but also so the community can have some
basic/consistent profiles for documentation purposes.
1. Match-Only Merge
This is a no-op merge. It's only purpose is to allow Vandelay, which
requires a profile of some sort to do anything, to find matching
records. This is useful for importing holdings when the MARC from the
source record is not desired. It will also be useful in the
(forthecoming) Vandelay-driven Acquisitions lineitem linking (LP
pending).
The target/incumbent record is not affected.
2. Full Overlay
Used for overlaying an entire inbound MARC record over its target
record. The target/incumbent record is completely replaced by the
inbound record.
For both, 901c is used because it's automatically updated on the target
record to match the internal ID, regardless of any field
preservation/stripping.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Mon, 19 Dec 2011 22:08:12 +0000 (17:08 -0500)]
Vandelay: refresh upload and inspect queue pages
Vandley sub-pages are currently managed as hidden divs that come into
view when the requested tab is selected. This creates two types of
problems in the interface. The first is that newly created data (e.g. a
new queue) is not available in the UI, because it's not getting
re-fetched from the server when the tab is opened (or added to local
data stores). Second, certain form elements misbehave when the form is
re-rendered without a refresh. Elements, typically checkboxes, will
appear to be selected when they are not. (Or, perhaps they are, and the
method to detect their selection is not sufficient). The simplest
solution to both problems is to simply reload the page....
This patch changes the tabs for Import Records and Inspect Queue so that
they reload the page (focused on the selected tab) instead of just
showing the hidden div. These pages were chosen because they are the
only interfaces that don't automatically refresh their own data and (for
Import Record) have forms that need refreshing.
Additionally, since the user may spend more time loading Vandelay
pages, this also fixes the long-standing annoyance of seeing the
Vandelay UI partially render while waiting for the page to load. Now,
it all remains hidden, except for a brief "Loading..." message.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Because crappy documentation is better than no documentation ;)
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Replace the old "Circ Mod Test" limit system with a more flexible system.
In addition to circ modifiers this system supports "Limit Groups" that are
automatically applied (by default) to any circulation checking them. This
can be overidden by setting the "Check Only" flag when linking a Limit
Group to a Limit Set.
Both the limit groups and circ modifiers are linked to "Limit Sets" that
act similarly to rules. Each Set can be attached to 0 or more circulation
matchpoints.
Each Limit set supports a number of items out (0 replaces infinite), depth
in the org tree to start counting at (0 for up to the top, 1 for 1 below,
etc), and a global flag (to check everywhere below the depth point, rather
than just those circulations that happend at ancestors/descendants).
When a Limit Set is linked to a Circulation Matchpoint it can be made
inactive and has a fallthrough flag. When the fallthrough flag is enabled
the Limit Set will be used whenever the matchpoint is involved with making
a decision. When it is disabled the Limit Set will only be used when the
matchpoint is the most specific matchpoint used in making the decision.
Limit Groups management can be found on the server administration menu.
Limit Sets management can be found on the local administration menu.
Limit Set -> Matchpoint linking is done via editing Circulation Policies.
The upgrade script does not remove the old tables in case something goes
wrong with migrating the information contained within them.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Conflicts:
Bill Erickson [Wed, 15 Feb 2012 22:07:24 +0000 (17:07 -0500)]
Update pickup lib from holds shelf status test repair
When determining whether a hold is getting updated while already on the
holds shelf, it's important to also treat hold status 5 as an on-shelf
status. Status 5 comes into play when the circ.hold_shelf_status_delay
org unit setting is activated and acts as a virtual status indicating
the item is physically en route to the shelf.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
AutoSuggest: more UI tweaks regarding typing after selecting
Avoid highlighting text in the textbox part of the autosuggest widget,
so that if the user wants to type more after selecting a suggestion with the
arrow keys, s/he doesn't clobber the existing part.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
AutoSuggest: Make directly clicking a suggestion initiate search
Formerly, I thought it best not to do this, so that users could choose a
suggestion and refine their search term further, but that put the
widget's behavior at odds with that of certain ubiquitous search
engines.
Users can still highlight a suggestion and press tab to modify their
search further before submitting, if they wish (and if they know this or
figure it out somehow).
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Get an autocompleting dialog underneath basic search boxes.
If activated, the dialog appears in both the JavaScript OPAC and the Template
Toolkit OPAC.
Mike Rylander and Bill Erickson largely designed and spec'ed out this
feature, especially at the database level. Lebbeous Fogle-Weekley and
Mike Rylander did the programming.
How it works, for site administrators
-------------------------------------
Once the code is installed, including database stored procedures,
(re)ingesting your bibliographic records will populate two new tables
needed by AutoSuggest: metabib.browse_entry and metabib.browse_entry_def_map.
Yes, for now this means that the size of your database in per-record terms
will be greater. The browse_entry data we generate is extremely similar to
facet data, so it's possible that in the future we can blend them into the
same thing at the database level, and save some space.
To control what gets indexed in the metabib.browse_* tables, set the
boolean 'browse_field' column for each row in config.metabib_field as desired
Numbers 15 (keyword|keyword) and 16 (subject|complete) should generally be set
to false.
The config.metabib_class table has a new 'bouyant'
column. Setting this to true means that when a user is typing in the OPAC
search box with a search class selector set to, say, 'Subject', and the cmc row
for 'Subject' has 'bouyant' set to true, the top suggestions will definitely
come from the Subject fields of MARC records (if any). 'restrict' is like
'bouyant', only stronger. In that case suggestions /only/ come from the
selected class.
This is the idea behind the 'restrict' column (in both the
config.metabib_class table and the config.metabib_field table):
For any given class or field, if restrict is true AND the user at the OPAC
has selected that same class or field from the search class dropdown, then
autosuggestions will only come from that class or field in the record.
You never want this column to be true for keyword, because we don't index
keywords for browse/autosuggest purposes (we would get giant blobs of
information as autosuggestions, and you don't want that (really)).
You don't really want it to be true for most classes and fields.
If the user sets the dropdown to "subject" and start typing "harry potter",
the user really wants matches from the "title" class too (although other
things being equal, matches from the "subject" class will rise to the top).
If you have a speciality index, you *may* want to set restrict to true
for that particular field. For a song title index, for example. To take
advantage of this, you would also have to customize your OPAC to have an
entry in the search class dropdown for 'title|songtitle' (or whatever's
appropriate for your specialty index). This is easy to do and should be
covered somewhere in documentation for both the JSPAC and the TPAC.
The order of suggestions otherwise has mostly to do with how well what users
have typed matches what's in your bib records, and the value of the weight
column of the relevant config.metabib_field row. Examine the code if you're
curious to know more or want to make adjustments.
The master on/off switch for AutoSuggest is a new row in in config.global_flag
named 'opac.use_autosuggest'. Set its 'enabled' column to false to turn
off AutoSuggest. If you don't want your suggestions to be limited to whatever's
OPAC visible at the search org, set the 'value' column to anything that
does not contain the string 'opac_visible'. This could be a good idea
if AutoSuggest seems slow on a large site.
Turning this on means introducing Dojo in your TPAC. I tried to
keep it minimal, for load time's sake. There's no fieldmapper or IDL stuff
play. For now, turning this feature off will avoid loading Dojo in your
TPAC.
Managing the little stuff
-------------------------
CSS classes that affect the look of suggestions are in this file for the TPAC:
Open-ILS/web/css/skin/default/opac/style.css
and in this file for the JSPAC:
Open-ILS/web/opac/skin/default/css/layout.css
At bottom, autosuggest is shaped by PostgreSQL's Full Text Search features.
Some of the arguments that are passed to TS_RANK_CD() and TS_HEADLINE() are
expoposed via options to the openils.widget.AutoSuggest and
openils.AutoSuggestStore modules, which have comments. You can customize your
OPAC files to invoke these with your desired options without touching much
actual code.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Tue, 14 Feb 2012 16:09:41 +0000 (11:09 -0500)]
Correct special winter handling in predictions
The current serials prediction code has an exception for handling
cases where 'Winter 2010' is followed by 'Spring 2010' rather than
'Spring 2011'. This exception assumed the more common case of a
combined subfield $y, e.g.:
$yps21,22,23,24
In doing so, it incorrectly handled less common cases where the $y
is listed separately:
$yps21$yps22$yps23$yps24
This change (with test data) ensures we only check the first $y
for our 'early winter' exception.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Scott [Thu, 16 Feb 2012 17:49:54 +0000 (12:49 -0500)]
Escape content when generating DTD for fieldmapper
Noticed by Thomas Berezansky, if a translation in a PO or POT file
contains an unescaped left angle bracket, a DTD will be generated that
contains the unescaped left angle bracket - and that isn't valid.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
but the root cause was a problem in dojoize_match_set_tree(), which
was failing to generate unique identifiers for each item in the data
store it's responsible for generating.
Since that function is only ever used to deal with trees where all the
nodes come from the database and have actual IDs, that function now uses
the database IDs as is rather than attempting to generate new ones.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Bill Erickson [Wed, 4 Jan 2012 18:03:01 +0000 (13:03 -0500)]
TPac: facet display filtering and sorting
Provides the ability (via config.tt2) to define which facets should
display and the order of facet display. The behavior is consistent with
the openils.widget.FacetSidebar Dojo class, used in JSPAC.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Mon, 17 Oct 2011 16:27:04 +0000 (12:27 -0400)]
Stream results from targetable holds list retrieval
Tested and slightly modified patch from Mike R. to improve multi-session
hold targeting. This patch includes an update to the targetable holds
API call to stream results instead of returning them in 1 big chunk,
which has been known to result in messages too large for jabber
(max_stanza_size). hold_targer.pl is updated to handle the stream.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Galen Charlton <gmc@esilibrary.com>
A commit written in October and merged quickly (80d5c4a4) was designed
to avoid problems with a middle layer method that sometimes returns hash
refs and sometimes returns array refs.
A commit written in September but not merged until January (a663dfed)
affected neighboring code, but was not aware of the other code to dance
around hash refs and array refs (just read the commit messages of each
to see what I mean, with attention to the changes in
WWW/EGCatLoader/Account.pm).
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Jason Stephenson [Wed, 12 Oct 2011 13:19:49 +0000 (09:19 -0400)]
Add restrict_copy_delete field to config.copy_status.
Add the column definition in 002.schema.config.sql.
Add the field to the class ccs in fm_IDL.xml.
Set the restrict_copy_delete column to true for the "magical"
statuses (1,3,6,8) in 950.data.seed-values.sql.
Add restrict_delete as essential column to config.copy_status in
OpenILS::Application::Storage::CDBI::config
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Jason Etheridge [Thu, 19 Jan 2012 22:01:22 +0000 (17:01 -0500)]
Handle search timeouts more gracefully
Another tweak courtesy of berick
Returns 0 results if open-ils.storage timeouts instead of a nasty uncaught
undefined ARRAY exception resulting in an OPAC "spinning wheel of death"
(formerly the "green knight rider bar of death".
Note that in the event of storage timeouts, you should tune and/or beef-up
your database.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
If a page that executes a search is accessed with no viable search
query, cut the search short to avoid meaningless, long-running searches.
This primarily affects direct links to record detail pages. For
example:
http://example.org/eg/opac/record/123
The RD page attempts to load the currrently active search (for paging) and,
if there is no query, will search for strings like 'site(BR1) depth(2)',
which are unintended and quite slow, which delays page rendering.
---
While we're in there, let's silence the following Apache error log
warning by ensuring that int() gets a value.
Use of uninitialized value in int at
/usr/local/share/perl/5.10.1/OpenILS/WWW/EGCatLoader/Search.pm line 192.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Bill Erickson [Mon, 23 Jan 2012 22:04:01 +0000 (17:04 -0500)]
TPac: avoid SMS org setting check for non-SMS pages
Avoid an unnecessary org unit setting lookup on a large swath of
(mostly myopac) pages. Instead, check to see if the current page is the
SMS page in question and the lookup is necessary before making the
lookup.
This change also inserts the physical location as the first org unit to
use in the org setting test.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Bill Erickson [Thu, 20 Oct 2011 13:06:20 +0000 (09:06 -0400)]
ACQ: remove piles of unused cancel_reasons
There is a large set of of acq.cancel_reason's in Evergreen that come
from the EDI spec and will never be used in practice. Since there are
scenarios where cancel reasons are manually chosen by staff, let's
remove all of the extras so the process of selecting a cancel reason is
not so fraught with "Poultry" and "Airline attendants", etc.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Dan Scott [Sun, 22 Jan 2012 21:34:31 +0000 (16:34 -0500)]
TPAC: Cleaner title display in simple and detailed views
The TPAC uses a simple 245a display for the "simple view" in search
results, so records like the concerto.sql "Violin concerto no. 3 in G,
K. 216 ;" display with a trailing semicolon that is rather
disconcerting.
Similarly, the subfields in the extended title as displayed in the
record detail view was simply concatenating subfields together. This
resulted in titles like:
Violin concerto no. 3 in G, K. 216 ;Sinfonia ...
rather than:
Violin concerto no. 3 in G, K. 216 ; Sinfonia ...
This commit strips trailing punctuation that suggests a continuation
(:;/) from the brief title and joins the subfields with a space for the
extended title.
Also, enable the detailed view in search results to display the complete
title.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Dan Scott [Sun, 22 Jan 2012 16:42:08 +0000 (11:42 -0500)]
Fix "prefered_language" typo that blocked preferred language
"preferred_language" is used everywhere else, but in the crucial core of
metabib.pm the "prefered_language" variant is used to check on the value
- hence, nothing other than the default "eng" is being used. Fix that.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Stephenson [Mon, 30 Jan 2012 21:38:34 +0000 (16:38 -0500)]
Fix "Add Volumes" entry in "Actions for this Record" menu
A typo in Open-ILS/xul/staff_client/chrome/content/cat/opac.js (cbdObj
instead of cbsObj) led to the exception "Reference error: cbdObj is not
defined" being thrown any time the "Add Volumes" entry was chosen.
Signed-off-by: Jason Stephenson <jstephenson@mvlc.org> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Michael Peters [Fri, 20 Jan 2012 22:49:16 +0000 (17:49 -0500)]
Modifications to the TTPac color scheme to be more with logo guidelines
Tweaked the buttons, gradients, etc. in TTPac to eradicate the blue/grey elements.
Began with the Evergreen Logo's official color (Pantone 340 as found at http://www.georgialibraries.org/lib/pines/evergreenlogo/)
and complimented the colors accordingly, replacing dark blues with dark greens, light blues with light greens, etc.
This also adds two new selectors in styles.css to control the logo placement. Logos were also centered on the page, rather than being crowded
into neighboring elements.
Signed-off-by: Michael Peters <mrpeters@library.in.gov>
Fixed Conflicts:
Jason Etheridge [Mon, 9 Jan 2012 20:18:15 +0000 (15:18 -0500)]
Fix self-fetching callnumber columns
The callnumber (and related) columns from circ.util.columns() is meant to
retrieve call number objects if given call number id's instead of objects,
but there was a bug preventing that.
This fixes LP#906523, no call number information in billing interface
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
James Fournie [Wed, 7 Dec 2011 19:27:45 +0000 (11:27 -0800)]
Acq fix for LP#901378
Proratable invoice charges do not have a fund_debit, we need to check for
this before attempting to delete the charge. If there's no fund_debit
we can generally assume that there's no corresponding debit to this charge
and skip trying to delete it.
Signed-off-by: James Fournie <jfournie@sitka.bclibraries.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Tue, 20 Dec 2011 16:54:30 +0000 (11:54 -0500)]
Move RELEASE_NOTES into the docs subdirectory
We will begin maintaining release notes inside the source directory,
with one RELEASE_NOTES.txt file per major release series (2.2, 2.3,
etc). The release notes will primarily consist of an overview of new
features and important behaviour changes in that particular release
series, as well as a cumulative list of bugs that have been fixed in the
point releases for that series.
Also, mention the existence of the release notes in the top-level
README.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Tue, 29 Nov 2011 20:11:55 +0000 (15:11 -0500)]
Note located URI changes in Release Notes
Located URIs now define what org unit and below in the hierarchy will be
matched for a given search scope, rather than the copy-like behaviour
from before; for example, a located URI at BR1 will no longer be found
in a SYS1 search scope; rather, a located URI at SYS1 will be found with
either a SYS1 or a BR1 search scope.
Put some info and rough suggested fix into the release notes.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Jason Etheridge [Wed, 11 Jan 2012 03:15:31 +0000 (22:15 -0500)]
Make Delete User failure overridable
Make mrpeter's new ACTOR_USER_DELETE_OPEN_XACTS event overridable to preserve
existing functionality (the delete user code will wipe out all transactions if
allowed to, and will leave copy statuses as "Checked Out" if needed, which is
okay in EG even if there aren't corresponding circ records--some libraries
migrate data like this if the information available is sparse).
So if you want to be able to do this without a super user, you'll need to create
an ACTOR_USER_DELETE_OPEN_XACTS.override perm and assign it to perm groups
and/or users.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Michael Peters [Wed, 12 Oct 2011 15:46:12 +0000 (11:46 -0400)]
LP872862, delete user function and open xacts
Prevent deletion of a user with open circulations or unpaid bills
Link up an error message on attempt to delete a patron with open xacts
Signed-off-by: Michael Peters <mrpeters@library.in.gov> Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Mon, 9 Jan 2012 02:04:37 +0000 (21:04 -0500)]
TPAC: Regular justification of columns in search result
The search results page was constituted via a table, enclosing one table
per row for each result, enclosing one further table per result for the
attributes such as call number / publisher / edition that have been
chosen to be displayed in the simple and detailed views.
The column widths for each search result row were being calculated per
result, with the effect that title columns were starting at different
offsets - a rather unpolished effect.
By eliminating the middle table, we can let the widths be determined by
all of the search result rows together, providing a normalized result as
the HTML deities intended.
We also move some inline CSS into style.css.
Note that IE 7, at least, ignores the :nth-child() usage to deliver the
borders; because we no longer wrap the set of rows (including optional
Content Cafe and ChiliFresh rows) in an intermediate table, we had to
switch to a border-top attribute. We could have gone with a straight "tr
> td" approach, but that would have added a line at the top of the first
result, which looked weird. Still an option if one really wants to.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Scott [Sun, 8 Jan 2012 22:53:03 +0000 (17:53 -0500)]
TPAC: Simply record summary navigation markup
Currently we have the next / previous links on the far right side of the
record summary page, whereas the "Showing item # of #" is on the left
hand side of the page. On wide screens, this leads to a large gap
between the two informational elements. In addition, as the elements are
floated, the vertical alignment is thrown off if you attempt to bring
them together.
The solution is to group the elements inside a SPAN with inline-block
displays for the embedded DIVs. This enables the elements to reflow
appropriately on mobile sized screens while keeping the alignment clean.
In addition, some inline style gets moved to style.css and some
unnecessary elements are removed.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Sun, 8 Jan 2012 21:14:29 +0000 (16:14 -0500)]
TPAC: Improve copy display in record summary
In the copy counts, offer a link to display the copies at parent
libraries that have available copies. For example, if you are browsing
at BR1 and there are no available copies, but you see that SYS1 has
available copies, clicking "(Show)" beside the SYS1 available copy count
will change the search scope to SYS1 and display the copies for BR1 and
BR2.
Also, avoid displaying the copy table header if there are no physical
copies to display (for example, if there are located URIs that make the
copy show up in search results).
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Mon, 9 Jan 2012 02:43:58 +0000 (21:43 -0500)]
Prevent expand and cnoffset params from propagating
The expand and cnoffset params in record summary might result in
unexpected behaviour if allowed to propagate by default, as mkurl()
enables, so stop them in their tracks.
Also, fix an overenthusiastic URI-encoding of subjects that led to a
space getting doubly-encoded (and thereby breaking searches).
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Fri, 6 Jan 2012 03:51:00 +0000 (22:51 -0500)]
TPAC: Preserve loc, query, qtype, and sort params
In some cases, mkurl() is not enough to preserve our desired CGI params
- such as when redirects are triggered from within a Perl module, or
forms are submitted. Accordingly, the following changes address these
cases where the chosen location / query / query type was being dropped:
* Switching between account preferences
* Creating / deleting / sharing / editing bookbags
* Moving items from temporary list to bookbags
* Adding notes to items in a bookbag
* Placing holds
The primary mechanism for forms is the "preserve_params.tt2" block that
can accept a "params" list of the CGI params that you want to preserve,
but which defaults to location/query/qtype/sort. Similarly, we add the
same preservation steps to the OpenILS::WWW::EGCatLoader::Account module
for most actions.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Dan Scott [Thu, 29 Dec 2011 05:11:25 +0000 (00:11 -0500)]
TPAC: Propagate CGI params via mkurl()
Fix many instances where params such as "loc" are dropped during a
normal workflow, resulting in unexpected changes to the user's chosen
search scope. mkurl() preserves the existing CGI params by default
and passes them on to the created URL; for now we err on the side of
caution (preserving all params) rather than filtering any out. Manual
testing suggests this does not introduce any problems, and resolves
many.
Signed-off-by: Dan Scott <dan@coffeecode.net> Signed-off-by: Bill Erickson <berick@esilibrary.com>
This alters the backend to watch when so much as one copy failed only due
to age protection. If so, a flag is set and returned back up the calling
tree for examination.
In JSPac when the flag is set an alternate confirm message is shown.
In TTPac when the flag is set the failure message is changed and override
is always allowed for the hold in question.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Move csp definitions from 002 to 950, so they can use i18n.
I don't /think/ there's a point in having an upgrade script to go along
with this, but someone who understands oils_18n_gettext() better should
weigh in.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Thomas Berezansky <tsbere@mvlc.org>
Bill Erickson [Wed, 11 Jan 2012 14:32:58 +0000 (09:32 -0500)]
Use org_depth for INVALID penalties
* Honor the org_depth setting on the penalties when applied
* Default to org_depth 0 (i.e. global) penalty application for invalid penalties
* Use the patrons' home_ou as the penalty org unit for patron reg invalidate actions.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
This comes from an idea from Jeff Godin. For staff to indicate an
email address or phone number "invalid," for whatever definition of
"invalid" has meaning at the institution (as in invalid addresses
today), there is now a UI control in the patron editor.
This UI control invokes a middle layer method that will clear the email
(or phone) field from actor.usr, and create a corresponding standing penalty
against the user, for staff to notice next time they bring up said patron in
the staff client. Such penalties will be archived whenever that patron's
email address or phone number is updated again.
The middle layer method is a wrapper around a method that may take
different parameters (like an email address instead of a patron ID) to
potentially support future uses such as invalidating email addresses
automatically in batch.
Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com> Signed-off-by: Bill Erickson <berick@esilibrary.com>
Jason Etheridge [Tue, 10 Jan 2012 20:49:23 +0000 (15:49 -0500)]
fix breakage from recent merges
Also, a good argument for keeping all perm additions in the same INSERT in the
950 file, since git would have reported a merge conflict against master had I
done that instead of simply appending the upgrade script to the file.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>