[1] Removed hardcoded path to original developer's
Koha configuration file; now checks KOHA_CONF.
[2] Now attempts to figure out if a task was successfully
added to the task queue; if it wasn't, the failure
is now reported in the task scheduler page.
[3] When traveling to the task scheduler page from a
saved report, the report in question is now
selected by default.
[4] Removed the button to edit a queued task; this is
not supported.
This patch is essentially a bandage; I've added a BUGS
section and some FIXMEs to the POD for C4::Scheduler
detailing some issues - a refactoring of the task
scheduler is in order at some point.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Currently, the heading sort order is a required parameter, but was
not supplied to the template or used in the search results. As
a result of this patch, clicking a link to view another page
of the authority search results will now work.
Outstanding issue not addressed by this patch: when searching
authorities in both the staff interface and the OPAC, choosing
sort order "none" results in a crash.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This applies to the list of system preferences in
the syspref editor - the OPACUserCSS syspref had
angle brackets in its description.
Used template change to accomplish this. Note that
syspref value is escaped by the script, note the template.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This change helps the staff side catch up w/ the OPAC display and be
more useful to librarians dealing with serials.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
That is, a term is either approved, or rejected, or neither.
Without an external dictionary, most terms will fall into the
latter category.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Fix several validation errors in RSS and Atom feeds
generated from the OPAC:
- add missing guid to RSS elements
- add missing feed ID and element ID to Atom elements
- reflect OPACBaseURL changes
- fix atom:link self links
- add HTML escaping to fields comming from bib record
- set default timestamp for Atom updated elements
Issues identified but not solved in this patch:
- setting Atom updated element for each bib (presumably
from biblio.timestamp)
- possible problems performing paging of Atom feed
Based on successful validation of feeds by feedvalidatory.org,
it is expected that feeds should now work in IE7 and IE6.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Calculate OPACBaseURL from the
CGI environment variables instead of using the
system preference. As a result of this patch,
it should be possible to change the hostname,
protocol, or port of the OPAC without having to
reset a system preference.
Also added a FIXME to opac/unapi - the URL of
the SRU/W server has no necessary relationship
to the URL of the OPAC.
Once this patch is confirmed, the syspref can
be removed.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
If a patron's fine balance is over the limit set by the
noissuecharges syspref, checkouts are blocked. However,
this was not made very clear in the interface.
Improved the display by doing the following:
[1] If the fine balance is over the noissuecharges limit, use the "blocker"
styling (i.e., make all of the text red).
[2] Add wording to explicitly signal whether or not the fine balance is
blocking charges.
Documentation changes: new screenshots of blocked checkouts.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
But that is a separate bug from whether they display or not.
Also added basic error handling if biblionumber is not received, or
if biblionumber is bad, since that otherwise crashes the page.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Note that when the user is not logged in, the Tags input box/button will not display.
The user will see a message telling them to log in to add tags. However, in order to
keep the results display clean, the message will display only once, utilizing the loop
context variable "__first__". Useful stuff!
I also threw OPACShelfBrowser sysprefs.sql, but it still needs added to updatedatabase.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
[1] Display the "No records have been staged" message only
if no import batches exist.
[2] When displaying a batch that has no bibs in it, display
a "There are no records in this batch to import". Also,
do not display the "import record into catalogue" button
for an empty batch.
[3] Add CSS class "problem" to both messages.
Documentation changes: minor; only required if screenshots
exist of the manage staged MARC records page that has no
import batches on it.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Major FIXME's still remain, like the use of GET instead of POST.
The code is also a bit too INCLUDE-happy to net good performance.
The entire mechanism of adding to a batch should probably be proper
AJAX instead of the GET-centric opener.location approach.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
When editing a child or professional patron, display
the drop-down of relationship types only if at least
one relationship type is defined by the borrowerRelationship
syspref.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Also, prevent duplicate tags (same user, biblio and term). Strip
leading/trailing whitespace from term. Block whitespace terms.
The CSS for details could be enhanced to emphasize tagstatus more.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Note: we CANNOT rely on window.close in onSubmit or $().submit to close our popups.
On a relatively slow connection with a relatively large POST, commonly the close finishes
*before* the POST completes, as reported with our New Zealand clients. Despite success in
trivial cases, this should be obvious, since the event is necessarily before the submission.
It also assumes success and prevents any kind of error feedback. Other popups are likely
to exhibit this same defective behavior.
Some FIXME's outstanding: need to allow users to delete their own comments,
need to enforce and feedback on max comment length.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Obviously if we are going to allow good markup, we can't then escape it.
Documentation reference: allowed tags for comments are:
br b i em big small strong
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Note, all Tags js will live under KOHA.Tags namespace.
See opac-tags.pl perldoc for AJAX/JSON examples. The capability is already
there to be very web-servicey, even moreso than the current OPAC implementation
will utilize.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Pushes modified facets display from OPAC to librarian interface.
Corrects also OPAC version which were omitting Titles facet.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch allows to translate facets label with standart
templates / PO files. Facets are still hard coded in Koha.pm.
Template wait those hard coded facets: Topics, Places, Titles,
Autors and Libraries.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
[1] Added MARC-8 as an encoding choice on the target
administration page.
[2] Fixed TMPL coding errors.
[3] Set the correct encoding (as it happens, 'MARC-8')
for all of the English sample Z39.50 targets.
Documentation note: due to this patch and the ones from
Frederic, screenshots of the page for editing a Z39.50
target should be redone.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
from circulation dashboard, creates new sysprefs, assigns
the sysprefs to the proper tab in sysprefs (Circulation),
updatedatabase changes to do the previous, and fixing one
redundent limit in the query for build_holds_queue.pl
Note: still need to address item-level holds
pagination bar was not in template, so only the first 20 hits were
visible. Probably it wasn't included because the script referenced a bogus base URL.
Also debugified warn statement in script. Note FIXME for bogus template reference.
We probably don't need that template or the related selector lines for it.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Third attempt to correct a bug affecting this page.
Combo lists wasn't reflecting DB content in modification.
To Joshua: You have to apply patch 2 first (patch 1 isn't required)
since I applied this quick fix without rolling back to original state!
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Improve previous patch which was badly coded as pointed out by
Henri-Damien. <TMPL_IF> clauses were included in HTML tags:
it fails translator tool.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
On /admin/z3950servers.pl page, modifying a z3950 host wasn't working
properly. Selected values in Syntax and Encoding combo boxes were hard
coded rather than selected based on record values.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Problem with ModMember : parameters were not passed safely
memberentrygen.tmpl deleted guarantorid for a children if step2 or step3 used fore edition.
Changeing TMPL_IF EXPR into TMPL_IF Name
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Including the subtitle in search results and OPAC and staff
details templates. The subtitle is expected to be in the
MARC subfield that is mapped to the (now nonexistant) column
bibliosubtitle.subtitle.
This is a fairly hackish patch that is meant to be minimally
disruptive while allowing subtitles to be displayed for those
not using the experimental XSLT bib display feature. It
does *not* cover all cases where you have a MARC
record and want to display its subtitle.
UNIMARC notes: at the moment, none of the fr-FR UNIMARC
frameworks appear to be map any subfields to bibliosubtitle.subtitle.
This could be changed, but caveat programmer: the UNIMARC 200$e
is repeatable (meaning that get_koha_field_from_marc will put in ' | '
between multiple subtitles) and one may want to also include the
200$d (parallel title). A GetMarcSubtitle routine may be in order
if absolutely necessary.
This points to a long-term need to make display of MARC (and later, hopefully,
non-MARC) bib records more flexible - the XSLT feature is one approach;
there may be others.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Adding a new routine GetBorrowercategoryList in C4/Member
Displaying categoryname when listing categories in memberentrygen.pl
using categorytype returned with GetMember wherever it is possible.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
this patch introduce the same behaviour as for additem.pl, ie : edit only own homebranch items, except for superlibrarians
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
When ExtendedPatronAttributes is ON, the batch
patron import tool's behavior changes as follows:
[1] A new (required) column is added to the input CSV
format. This column should contain a list of
attributes to set for the record, each value
preceded by its type code. For example, if
the superlibrarian has defined two types,
a unique identifier INSTID and a repeatable
BASEBALL, this field could contain:
"INSTID:12345,BASEBALL:Cubs"
This field must be wrapped in quotes if multiple
values are defined. Since values can contain
spaces, additional doubled-quotes may be required:
"INSTID:12345,BASEBALL:Cubs,""BASEBALL:White Sox"""
When replacing a patron record, any attributes specified
in the input file replace all of the attribute values
of any type that were previously assigned to the patron
record.
[2] It is possible to specify a field other than the
cardnumber to use for looking for matching patrons.
Specifically, any attribute marked as a unique ID
can be used. The operator is asked to specify
which ID type to use; if an input record has an
attribute value of that type, and exactly one patron
record in the database has that value, then the
record will be overlaid or ignored according to the
overlay setting.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
If ExtendedPatronAttributes is ON, patron attributes
can be displayed and edited by staff members.
The patron attributes are displayed and edited
in a new section (step 4) of the patron details page. Each
attribute is identified by its type (including type code
and type description) and value (included value description
if the attribute is controlled by an authorised value category).
Note: if, for a repeatable attribute type, the staff member
enters multiple copies of that type with the same value, duplicates
are removed when the patron record is saved. Also, if the type
is repeatable, a JavaScript link allows the staff member to
create new attributes of that type.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Added new script under the Administration menu
to create, update, and delete patron attribute types.
Some things to note:
- once an attribute is created, its code cannot be changed
- the repeatibility and unique_id settings of an
attribute type cannot be changed after creation -
this is to avoid having to deal with changing
constraints if an attribute type is already in use
by patron records
- an attribute type cannot be deleted if it is
used by any patron records
- this administration page is always displayed regardless
of the value of the ExtendedPatronAttributes syspref. If
the syspref is off, the page will prompt the superlibrarian
to turn it on if desired.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch adds a drop-down to the lost items report to let the user select a
particular lost status to display. Only items with that particluar lost status
will be dispolayed.
The documentation for the lost items report on the staff client will need to be slightly adjusted.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Adding New Systempreference AddPatronLists
This systempreference allow administrator to choose if patrons are created on categorycode lists or category_type ones.
Overloading GetBorrowerCategory so that if no parameter provided, it returns the list of category records
Changing memberentry.pl in order to use the categorycode when provided.
Bug Fixing Circulation.pl so that doesnot come up with Error 500
with no category selected for GetBorrowerCategory
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
say you want to edit 6 fields 630:
Provided you have those in your catalogue frameworks, you just selet 6 values and it puts values into that.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This is a partial, perhaps temporary fix. "<", ">",
and "&" characters in patron comments (AKA reviews)
are converted to "<", ">", and "&" to avoid
certain attacks, e.g., a user entering a <script> tag
in a comment.
A more permanent fix should scrub all (or perhaps just
unsafe) tags from submitted comments entirely.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Enhanced the ability of catalogers to specify how
bib and item records should be added, replaced, or
ignored during a staging import.
When an import batch of bib records is staged and commit,
the user can now explicitly specify what should occur
when an incoming bib record has, or does not have, a match
with a record already in the database. The options are:
if match found (overlay_action):
create_new (just add the incoming record)
replace (replace the matched record with the incoming one)
use_template (option not implemented)
ignore (do nothing with the incoming bib; however, the
items attached to it may still be processed
based on the item action)
if no match is found (nomatch_action):
create_new (just add the incoming record)
ignore (do nothing with the incoming bib; in this
case, any items attached to it will be
ignored since there will be nothing to
attach them to)
The following options for handling items embedded in the
bib record are now available:
always_add (add the items to the new or replaced bib)
add_only_if_match (add the items only if the incoming bib
matches an existing bib)
add_only_if_add (add the items only if the incoming bib
does *not* match an existing bib)
ignore (ignore the items entirely)
With these changes, it is now possible to support the following use cases:
[1] A library joining an existing Koha database wishes to add their
items to existing bib records if they match, but does not want
to overlay the bib records themselves.
[2] A library wants to load a file of records, but only handle
the new ones, not ones that are already in the database.
[3] A library wants to load a file of records, but only
handle the ones that match existing records (e.g., if
the records are coming back from an authority control vendor).
Documentation changes:
* See description above; also, screenshots of the 'stage MARC records
for import' and 'manage staged MARC records' should be updated.
Test cases:
* Added test cases to exercise staging and committing import batches.
UI changes:
* The pages for staging and managing import batches now have
controls for setting the overlay action, action if no match,
and item action separately.
* in the manage import batch tool, user is notified when they
change overlay action, no-match action, and item action
* HTML for manage import batch tool now uses fieldsets
Database changes (DB rev 076):
* added import_batches.item_action
* added import_batches.nomatch_action
* added 'ignore' as a valid value for import_batches.overlay_action
* added 'ignored' as a valid value for import_records.status
* added 'status' as a valid value for import_items.status
API changes:
* new accessor routines for C4::ImportBatch
GetImportBatchNoMatchAction
SetImportBatchNoMatchAction
GetImportBatchItemAction
SetImportBatchItemAction
* new internal functions for C4::ImportBatch to
determine how a given bib and item are to be
processed, based on overlay_action, nomatch_action,
and item_action:
_get_commit_action
_get_revert_action
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
I've refactored the subs I added in the previous commit so that they make a little
more sense and are in better places in the code base. I was really hoping to make use
of existing subs, but they all seemed so specific to particular uses.
The icons now show up on the OPAC item details page.
TODO: The icons still don't show up in the OPAC search results page.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This patch adds the ability to associate icon images with authorized values.
They're not displayed anywhere yet, though. There's also a database update
in here. I took version "3.00.00.075", but I can change that later if it gets
taken before I commit these patches.
DOCUMENTATION CHANGES: When you add or edit authorized values, you can now
associate image icons with them. These icons come from the same icon sets
that you can have with your itemtypes, such as media type. They don't show
up anywhere yet, but that's coming. Keep an eye on
http://bugs.koha.org/cgi-bin/bugzilla/show_bug.cgi?id=2047
for more updates.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
I'm extracting some of the icon manipulation logic so that I can get to it from the authorized values pages.
There should be no functionality or documentation changes with this commit.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
I've rearranged the two directories where media type icons live.
I've also added two more collections of icons, one from
http://apps.carleton.edu/campus/library/bridge_icons/
and one from liblime (Tina). The first has a license restriction that I added
to the "Licenses" tab on the "About" page.
Then, I've adjusted the Item Types Administration page so that it can deal
with multiple collections of icons.
I also added a test script to verify that the two identical icon directories
are actually identical.
DOCUMENTATION CHANGE: It's possible that we need to add something to the administration
documentation to indicate how you can add more sets of icons if you want. You simply add
directory to koha-tmpl/intranet-tmpl/prog/img/itemtypeimg/ and to
koha-tmpl/opac-tmpl/prog/itemtypeimg. The icons should start showing up.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Make any MARC data available to labels module;
Also add a csv output option, allowing export of relevant
biblio data do a 3rd party label layout application.
Note: This patch REQUIRES a forthcoming updatedatabase patch !
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
The patch update the DB by adding a row in the subscription table (serialsadditems), that is filled with the value of the syspref.
then, the syspref is deleted.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Check verifies that all subfields for each tag
are assigned to the same editor tab (or are ignored).
This situation can lead to data corruption, because
if an incoming MARC record has a field whose subfields
are assigned to different tabs, the first time that
record is saved in the bib editor, the field
will be split into multiple versions, each containing
the subfields assigned to a given tab.
Errors identified by this test known
in the MARC21 frameworks - I'm working on a patch to
correct those.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Improving workflow : A suggestion can be edited and status can be changed if mistaken as soon as it is not deleted or acquired.
Adding dates display.
Adding deletion of suggestions.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
In the list of bibs for an import batch, the sequence
number is now a link to a preview of the original
MARC record - uses the same JavaScript widget as the
preview for Z39.50 search results.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
This plugin by Jörn Zaeffererr handles creating an
expandable and collapsible tree from an unordered list, and
will initially be used for the enhanced user permissions page.
The plugin is dual-licensed: MIT and GPL.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Updated all scripts appearing on the tools page
to respect a granular permission defined for
each of them.
The tools menu and home page have been changed so
that only the specific tools that a user has
access are displayed. This is simple, but depending on
the module and circumstance, it may be better to
display functions that the user has does not have
access to, but disable the links and do some sort
of visual styling to indicate that a function exists
but requires additional privileges to access.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Adjusted the user permissions editing page as follows:
* Replaced table with a list
* Implemented a tree control using the jQuery Treeview plugin
* When CheckSpecificUserPermissions is ON, if a module
flag has specific (i.e., children) permissions, allow
them to be edited - this is where the tree control
comes in.
* Added some hooks and an initial stab at the CSS
to style the permissions editor tree.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
Adjusted so that there wasn't a difference between
the 'permissions' code in userflags.flag and the
template variable.
Signed-off-by: Joshua Ferraro <jmf@liblime.com>