Dan Scott [Thu, 19 Sep 2013 14:38:40 +0000 (10:38 -0400)]
Respect adv_break with clear: both
This keeps the old behaviour, in all ways, but rather than using a specific
/ arbitrary pixel width it uses clear:both to start a new line for a new
adv_break.
Dan Scott [Thu, 19 Sep 2013 14:02:45 +0000 (10:02 -0400)]
More responsive advanced search
By default, rather than having blocks of search filters with an explicit
width of 800px or 850px, just have one line of filters that wraps
according to the width of the page (truly responsive).
Also move all inline styles into style.css so we can more easily
manipulate them based on media queries. And notice silly styles that can
be easily swapped out with clean styles.
Ben Shum [Thu, 19 Sep 2013 03:56:00 +0000 (23:56 -0400)]
Resize advanced search filters to allow more space by default
By default, the space allotted was perfect at 800px which worked in
Chrome browser just fine. But viewing in Firefox rendered the elements
slightly larger and wrapped some filters instead of displaying four
in a row as expected.
Increase the adv_search_filters from 800px to 850px to allow for more
space.
Ben Shum [Wed, 18 Sep 2013 21:57:00 +0000 (17:57 -0400)]
Some CSS tweaks
1) Remove the login height to prevent problems with larger fonts at entry
2) Add some top and bottom padding between search results
3) Make the titles larger by default in search results
4) Add some right padding to the results block
Tweak the padding and margins for My Account buttons so that they fit on
one line for small screens. Also fits well for users with very, very long
names.
Bill Ott [Wed, 18 Sep 2013 18:55:40 +0000 (14:55 -0400)]
Various mobile style and display changes.
Try to reduce the size of the search bar and search type option links.
Remove completely from login page (problem or make user rely on back button?)
Introduce mobile_hide class for cheap/easy method to alter pieces for mobile.
Dan Scott [Wed, 18 Sep 2013 17:55:40 +0000 (13:55 -0400)]
Improve rdetail action formatting when no cover art
When there is no cover art, the format label gets the actions hung oddly
to the right in the record detail view. Just wrap the whole block in a
div and float that instead.
Dan Scott [Wed, 18 Sep 2013 17:36:15 +0000 (13:36 -0400)]
Set explicit width for result metadata in main view
We were getting ragged edges for search results with titles longer than
the "# of # available copies..." statement and the placement of the
place hold action buttons, so set an explicit width, and then deset that
in mobile mode.
Bill Ott [Wed, 18 Sep 2013 11:31:58 +0000 (07:31 -0400)]
De-table the advanced search to allow for mobile resizing.
A first stab at allowing the advanced search page to resize for mobile use.
Much of the style included was borrowed from Jason Boyer. Critical changes
occur in the adv_search_xxx type id's in the non-mobile style.
to-do: See if there's any hope for the search rows. Not sure what can be
done to make them fit any better.
Signed-off-by: Bill Ott <bott@grpl.org> Signed-off-by: Ben Shum <bshum@biblio.org>
Conflicts:
Open-ILS/src/templates/opac/css/style.css.tt2
Open-ILS/src/templates/opac/parts/advanced/search.tt2
Dan Scott [Wed, 18 Sep 2013 13:35:47 +0000 (09:35 -0400)]
Move search result "actions" below result metadata
Rather than the tabular layout, add the place hold / add to my list
actions underneath the record metadata for each result. This results in
a narrower required width and enables us to actually display the actions
in mobile mode.
Dan Scott [Wed, 18 Sep 2013 13:09:20 +0000 (09:09 -0400)]
Just use a format label in results + pubdate
Rather than having the format icon, which requires either hovering (not
generally available in mobile) or guessing what the strange symbol
means, just use the plain text format label.
In addition, move the brief pubdate from beside the author name to
beside the format label. This avoids confusion if the author name
already has birth or death dates beside it, like "Scott, Dan 1972-
2006". He's not dead yet!
As a bonus, this enables us to remove one table cell from the search
results.
Dan Scott [Tue, 17 Sep 2013 19:16:49 +0000 (15:16 -0400)]
Facets after results, then DOMinate them into place
We can use a media query in JavaScript to detect a given width and then
drop the facets into their left-hand column if needed; if the browser
window resizes, then potentially put the facets back on the bottom.
Also add a rudimentary "Refine these results" link at the top of the
page that is only visible when the facets are at the bottom to
facilitate navigation.
Mike Rylander [Wed, 28 Aug 2013 19:05:36 +0000 (15:05 -0400)]
Stream facet data
For certain shapes of facet datasets, the .atomic version of the
json_query call can produce an XMPP message large enough to cause
ejabberd to fall over unceremoniously. Switch to a streaming
CStoreEditor-based call instead to avoid this.
Ideally, this would use message bundling (aka, chunking) as well,
but the C parts of OpenSRF don't seem to support that yet.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Dan Wells [Fri, 6 Sep 2013 20:36:47 +0000 (16:36 -0400)]
'Opportunistic' Acq In-process Copy Overlay
It is both normal and common to overlay brief acquisitions bib
records with more complete records, and it is simple to create
copies as part of the overlay process, but there is no *simple* way
to have the imported copies overlay the acq copies.
This code builds off the existing copy overlay code (which matches
and overlays using specified IDs), but uses broader matching criteria.
By selecting the new option, "Auto Overlay In-process Acquisitions
Copies", the system will potentially overlay copies which:
* have associated lineitem details (that is, they were created
by the acquisitions process), and
* that lineitem detail has the same owning_lib as the incoming
copy's owning_lib
* the current copy associated with that lineitem detail is "In
process"
Also, fix two small bugs, one which prevented overlay using the
'Available' status (change 'if $val' to 'if defined $val', since
'Available' is '0'), and another which prevented item overlay when
selecting the match record manually (as_imported was null in the DB).
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Thu, 8 Aug 2013 20:47:28 +0000 (16:47 -0400)]
LP1210291 Long Overdue Standing Penalty
Adds a new PATRON_EXCEEDS_LONGOVERDUE_COUNT patron standing penalty.
It behaves the same as the PATRON_EXCEEDS_LOST_COUNT penalty for
long-overdue circulations.
Release notes included.
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Conflicts [resolved, normal seed data order stuff]:
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Dan Wells [Fri, 13 Sep 2013 16:59:59 +0000 (12:59 -0400)]
Tweaks to 'my lists' paging code
1) Don't set and refetch the 'my lists' settings if nothing changed.
(minor nit)
2) Get the count through the same code where we get the bookbag data.
For #2, I am concerned with the current duplication of logic. At best
we are doing things twice, and at worst we end up counting a set which
is slightly different than our actual bookbag search results.
In the updated code, I think the count accuracy is subject to
search/superpage limit settings, so lists are effectively limited by
the search settings. If that is a valid concern, we can beef up the
settings for this query.
Signed-off-by: Dan Wells <dbw2@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Clear the cancel reason when a canceled lineitem is marked as received.
With items, clear the cancel reason and re-generate fund debits if they
were removed during cancelation (because the keep_debits flag in the
cancel reason was set to false).
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Wed, 14 Aug 2013 13:44:45 +0000 (09:44 -0400)]
Billing UI style lost and longoverdue circulations
When a LOST or LONGOVERDUE circulation, which has not yet been returned,
appears in the patron's list of billed transactions, style them
differently from other not-yet-returned items.
Similar to regular not-yet-returned items, display a helpful message to
staff indicating what colors map to what types of circulations.
The default colors are maroon for LOST and organge for LONGOVERDUE.
To change the colors, a change to circ.css (for the style) and lang.dtd
(for the hint) are required.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Added pagination with page numbers when viewing the items in
a list. Also made the number of list items per page a user
setting, per the suggestions of Pasi Kallinen and Jason
Stephenson.
The setting is located in, Account Preferences -> My Lists Preferences
Update: Added i18n part to allow for translation. Removed hard-coded
bre.source.
Signed-off-by: Kyle Tomita <ktomita@catalystitservices.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Bill Erickson [Fri, 30 Aug 2013 20:49:58 +0000 (16:49 -0400)]
LP#856688 OUS to disable org unit as hold pickup lib
YAOUS that removes an org unit from consideration as a hold pickup
library. This setting only affects the OPAC display and does not
otherwise affect the display of the org unit in the OPAC. (In other
words, it's not the same thing as actor.org_unit.opac_visible). It also
has no affect on hold targeting / capturing.
[LFW: Numbered upgrade script.]
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Lebbeous Fogle-Weekley <lebbeous@esilibrary.com>
Remington Steed [Mon, 5 Aug 2013 13:57:04 +0000 (09:57 -0400)]
Allow action trigger events to be repeated
Currently, there is no way to repeat an event (action/trigger) when a
real-world event occurs more than once for the same target. This only
matters for targets that are persistent (such as a library card)
combined with events that can reoccur (such as expiration, if the
expiration can be removed). To address this, we add a new field to the
action_trigger.event_definition table that sets the amount of time
after which the event is allowed to repeat.
This commit adds the new field to the IDL, database schema and template
files and also provides the simple db upgrade script. It is worth noting
that we chose to base the repeatability on the start_time of the previous
event, which is more predictable than complete_time (which could be null
if the event fails).
Signed-off-by: Remington Steed <rjs7@calvin.edu> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Wed, 12 Dec 2012 01:02:38 +0000 (20:02 -0500)]
P.V. SUPA GoodStuff integration
This impliments a "Server Add-ons" module for integrating P.V. Supa's RFID
product known as GoodStuff with the Evergreen staff client.
To activate it, you should add the identifier "pv_supa_goodstuff" (without the
quotes) to the list managed by the Admin->Workstation Administration->Server
Add-ons menu action within the staff client. You will need the
ADMIN_SERVER_ADDON_FOR_WORKSTATION permission to do this.
After doing this and clicking the Update Active Add-Ons button, the interface
will refresh and show a GoodStuff tab in the Add-on Preferences section. Within
this tab you will have the option of specifying the hostname and port for the
GoodStuff hardware. There is also an "Enabled" setting that needs to be checked.
Currently three interfaces have been integrated:
* Circulation -> Check In Items
* Circulation -> Check Out Items (where you scan the patron barcode)
* Circulation -> Check Out Items (where you scan the item barcodes)
Each interface gets an RFID checkbox if the "Enabled" preference has been set,
that can activate/deactivate the functionality on a per interface basis. The
checkbox states persist (i.e. are sticky).
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Fri, 21 Dec 2012 05:19:37 +0000 (00:19 -0500)]
JSAN module autoloader for "add-ons"
This adds a "Server Add-ons" menu entry under Admin -> Workstation
Administration in the staff client. Choosing this allows you to edit or set a
list of identifiers that correspond to JSAN-style modules found in
/server/addons/, and is meant mainly for activating 3rd party modules within the
staff client on a per-workstation basis. You need the
ADMIN_SERVER_ADDON_FOR_WORKSTATION permission to use it.
Configuration options for activated add-ons may also show up in this interface.
More technical details:
This Server Add-ons list is stored as a JSON array in the Mozilla preference
'oils.addon.autoload.list'.
We also add an addon.autoloader module that gets called in most XUL interfaces
via the util_overlay file. This autoloader will loop through the modules
specified in 'oils.addon.autoload.list' and instantiate each, storing a
reference to each of the newly created objects in a data structure in
window.oils_autoloaded.
So, as an example, let's say there is a module: /xul/server/addon/uber_scan.js
And we have the identifier 'uber_scan' in our Server Add-ons list. Then, on
every page load of a XUL interface using the stock util overlay, we will
effectively call:
new addon.uber_scan();
Causing the code in the module to execute. It is up to the module to determine
whether it needs to do anything within a given interface.
Signed-off-by: Jason Etheridge <jason@esilibrary.com>
Conflicts [permission numbering]:
Open-ILS/src/sql/Pg/950.data.seed-values.sql
Jason Etheridge [Thu, 20 Dec 2012 21:10:57 +0000 (16:10 -0500)]
internal: default_focus not called
Minor bug. Was being called in an else clause dependent on some help context
logic for new tabs, but should be called for every new tab. Shouldn't result
in any end-user visible change, but if interfaces wrapped in browser.js were
to have a default_focus function, then this could come into play.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Mike Rylander [Thu, 12 Sep 2013 17:13:23 +0000 (13:13 -0400)]
Optimize container filters in QueryParser
When a container filter is used at the top level of a QueryParser
query (that is, in a simple query with no OR-logic branches or explicit
nesting groups) we can use an INNER join instead of LEFT + IS NOT NULL.
On some production datasets this showed an increase in performance from
20+ seconds to 1ms for the core query.
Signed-off-by: Mike Rylander <mrylander@gmail.com> Signed-off-by: Dan Scott <dscott@laurentian.ca>
Bill Erickson [Wed, 11 Sep 2013 17:49:07 +0000 (13:49 -0400)]
LP#1084758 store staff client tpac (etc) zoom pref
Staff client pages loaded via browser.xul which have a name (via
internal XUL URL param) now have the ability to store and load a per-
page zoom value preference. This includes (at minimum) the embedded
TPAC.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Currently tied to CTRL with +/-/0 like Firefox uses.
Signed-off-by: Thomas Berezansky <tsbere@mvlc.org> Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Thu, 20 Jun 2013 19:46:33 +0000 (15:46 -0400)]
LP1193095 lineitem batch actions sanity filters
Avoid applying the following actions to lineitems which are in a state
where each action makes no sense.
The following actions are affected. For each, the set of states for
which a lineitem must be in for the action to proceed is listed.
create PO
- new selector-ready order-ready approved
add to PO
- new selector-ready order-ready approved
create invoice
- !cancelled
add to invoice
- !cancelled
cancel lineitem
- !cancelled
mark selector ready
- new
mark order ready
- new selector-ready
mark received
- pending-order on-order
Depending on the interface, some top-level lineitem actions may be
globally disabled. The list of states listed above represent the bare
minimum requirements.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Mike Rylander <mrylander@gmail.com>
Jason Etheridge [Thu, 8 Nov 2012 16:27:13 +0000 (11:27 -0500)]
reset title variable when looping with biblio A/T
Two templates that I'm concerned with, though there may be others that could use
this treatment: biblio.record_entry.email and biblio.record_entry.print
Basically, they can group events from the same user and consolidate bibs, but as
they loop through the bibs they're not clearing the temporary variable that
contains the bib title, so we get duplicated and run-on titles in the output.
Signed-off-by: Jason Etheridge <jason@esilibrary.com> Signed-off-by: Ben Shum <bshum@biblio.org>
Conflicts:
Open-ILS/src/sql/Pg/002.schema.config.sql
Pasi Kallinen [Thu, 23 May 2013 20:24:04 +0000 (13:24 -0700)]
LP1183553 (continued) - Fix applied filters
The filter dialog kept the previous filter around and then joined the
new one with it. This repairs that issue and applies the new filter
options on subsequent loading.
Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi> Signed-off-by: Ben Shum <bshum@biblio.org>
Steven Chan [Thu, 23 May 2013 20:24:04 +0000 (13:24 -0700)]
LP1183553 - Default filter option for configuration screens
In the staff client, the AutoGrid widget is used to render configuration
lists, and by default, the setting 'showLoadFilter' is turned off. It
seems more useful to turn it on by default so that any configuration
screen can use it unless its template sets it off.
Signed-off-by: Steven Chan <schan@sitka.bclibraries.ca> Signed-off-by: Pasi Kallinen <pasi.kallinen@pttk.fi> Signed-off-by: Ben Shum <bshum@biblio.org>
Chris Sharp [Mon, 19 Aug 2013 18:29:23 +0000 (14:29 -0400)]
The ILS User reports source branches to an All Hold Requests linked source
that was marked class="circ" instead of class="ahr". This corrects that problem.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Ben Shum <bshum@biblio.org>
Mike Rylander [Tue, 3 Sep 2013 15:45:25 +0000 (11:45 -0400)]
PgTAP tests for 0824
As promised at the August 2013 dev meeting, I'll be adding PgTAP tests
for any database work that I create, and where possible for any that
I commit for others.
Signed-off-by: Mike Rylander <mrylander@gmail.com>
Bill Erickson [Wed, 7 Aug 2013 16:05:30 +0000 (12:05 -0400)]
LP1209291 vandelay item import defaults
Via org settings, support auto-generation of call numbers and barcodes
for items imported via Vandelay's Item Import interface. Support
settings for applying a local prefix string to auto-generated call
numbers and barcodes. For both, the prefix defaults to "VAN".
Similarly, support default copy location and circ modifiers.
The alternate view in the Item Status screen shows a "Total Circs"
field that was under-counting circulations because UNION filtered
out duplicates. This commit replaces UNION with UNION ALL, which
allows duplicate rows.
Signed-off-by: Chris Sharp <csharp@georgialibraries.org> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Sun, 25 Aug 2013 04:41:37 +0000 (00:41 -0400)]
Schema.org authors: relate properties to the right context
While the approach of using the existing <a href> to launch a new search
based on the author name was workable, it may have been confusing for
schema.org processors such as Google Rich Snippets who expected that URI
to identify a resource for the author, not a set of search results.
Using @resource / @about attribute pairing, and wrapping the whole type
in an extra <span> element, enables us to avoid associating the
properties within the <a href> with the implicitly chained type.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Thu, 22 Aug 2013 22:30:34 +0000 (18:30 -0400)]
Schema.org: relate offers to record explicitly
Although schema.org defines the nested child elements as implicit
relationships that should be good enough for the Offer-to-Product
relationship, defining that relationship explicitly can't hurt.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Tue, 20 Aug 2013 16:45:44 +0000 (12:45 -0400)]
Map the bound-with relationship in schema.org
We don't know what type the target record is, so fall back to Product
and just point at it. At least this way schema.org processors will know
that the target bib is related to the current bib.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Sun, 25 Aug 2013 04:40:46 +0000 (00:40 -0400)]
Add structured data for holdings via http://schema.org/Offer
Map library name to Offer/seller, shelving location to
Offer/availableAtOrFrom, call number to Offer/sku, barcode to
Offer/serialNumber, copy status to Offer/availability, and ISBN-13 to
gtin13. Use the additionalType of Product to give these offers an
obvious relationship.
Surface copy counts as AggregateOffer instances.
Cut over to RDFa Lite instead of microdata for schema.org, as RDFa Lite
is more easily extensible with other vocabularies, and is as accepted as
microdata by schema.org processors.
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Dan Scott [Sun, 25 Aug 2013 04:39:46 +0000 (00:39 -0400)]
Schema.org: improve MusicGroup vs. Person parsing
Take a stricter approach to defining MusicGroups instead of Persons for
the main authors of MusicAlbums. Music groups are generally catalogued
as a 110 or 710 tag, and this avoids defining birthDates and deathDates
for groups (which, however valid that might be in the real world, is not
valid for schema.org).
Signed-off-by: Dan Scott <dscott@laurentian.ca> Signed-off-by: Ben Shum <bshum@biblio.org>
Bill Erickson [Tue, 6 Aug 2013 13:31:11 +0000 (09:31 -0400)]
LP1207396 TPAC org_selector supports org filter
When building and org unit selector via the build_org_selector MARCO,
the caller can now pass in a "valid_org_list" array which contains org
unit IDs. When such a list is provided, any org units in the selector
which are not in the list are marke as disabled.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Bill Erickson [Thu, 1 Aug 2013 20:52:18 +0000 (16:52 -0400)]
LP1207396 Patron self-registration web form
Web form for allowing patrons to submit thier own library registration
requests. The form collects various bits of user data and creates a
pending user account, which has no privileges. These pending accounts
must be approved and completed by staff from the staff client "Pending
Patrons" action in the Cirulation menu.
Control of whether to show a field, treat a field as required, show
example text, and validate the field format is managed with existing org
unit settings.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>
Bill Erickson [Tue, 6 Aug 2013 14:10:19 +0000 (10:10 -0400)]
LP1207396 user stage allows username selection
The caller may now pass a value for username. If unset, it still falls
back to using a uuid. If the username clashes with an existing staged
username, a USERNAME_EXISTS event is returned.
Signed-off-by: Bill Erickson <berick@esilibrary.com> Signed-off-by: Dan Wells <dbw2@calvin.edu>