Bug 13170 Remove of prog theme broke the OPAC's "view plain" option for MARC details

In the OPAC if you view the MARC details for a title (and have
OPACXSLTDetailsDisplay enabled) there is a "view plain" link which displays the
output of opac-showmarc.pl. This is broken in master: fixed by this patch.

Test plan:

(1) Set OPACXSLTDetailsDisplay to default
(2) Do a search on OPAC, then display a specific biblio record
(3) Click on MARC view tab. Then click on 'view plain' link. Nothing is
    displayed.
(4) Apply the patch. And refresh the MARC detail page.
(5) Click on 'view plain' link. Check that a plain text MARC record is
    displayed.

Signed-off-by: Chris <chris@bigballofwax.co.nz>

Note: This makes a small change to C4::Templates::themelanguage so that
it works with .xsl files too (They live in the xslt dir)

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>

Works as described, passes tests and QA script.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11126 - Make the holds system optionally give precedence to local holds

This feature will allow libraries to specify that, when an item is returned,
a local hold may be given priority for fulfillment even though it is
of lower priority in the list of unfilled holds.

This feature has three settings:
* LocalHoldsPriority, which enables the feature
* LocalHoldsPriorityPatronControl, which selects for either tha patron's
  home library, or the patron's pickup library for the hold
* LocalHoldsPriorityItemControl, which selects for either the item's
  holding library, or home library.

So, this feature can "give priority for filling holds to
patrons whose (home library|pickup library) matches the item's
(home library|holding library)"

Test Plan:
1) Apply this patch
2) Run t/db_dependent/Holds/LocalHoldsPriority.t

Signed-off-by: Joel Sasse <jsasse@plumcreeklibrary.net>

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11126 [QA Followup] - Make reserves returned by _Findgroupreserve sorted by priority

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11126: qa follow-up

- use Modern::Perl;
- fix a typo
- remove an old comment

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11126: (RM followup) remove diags from tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11126: DBRev 3.17.00.045

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11425: Add item search form in staff interface

Item search is available at catalogue/itemsearch.pl (link is in
catalogue/search.pl)
It only uses SQL (not Zebra)
* Use DataTables and server-side processing to be able to filter on
  individual columns after the first search is done.
* Allow to export results in CSV
* With Javascript disabled, search form still works (and CSV export too)

There is the possibility to define "Custom search fields" in a new admin
page admin/items_search_fields.pl (link is in admin/admin-home.pl)
A custom item search field is defined by:
* a name: its unique identifier
* a label: the text displayed to the user
* a MARC field/subfield: the field/subfield to query (it uses
  ExtractValue)
* an authorised values list (optional): if defined the list is displayed
  in the search form

New Perl dependency: Template::Plugin::JSON::Escape

Test plan:
1/ Apply the patch and run updatedatabase.pl
2/ Go to advanced search (staff interface), then click on "Go to item
search"
3/ Play with the search form! :)
In the 3rd fieldset you can add as many fields as you want and combine them with
boolean operators (AND, OR). You can use SQL jokers characters (%, _)
You can output to screen (in a DataTables table) or to a CSV file.
4/ In the DataTables table, play with filters and try sorting columns.
5/ Disable Javascript (with Firefox: extensions NoScript or YesScript,
or in about:config 'javascript.enabled' = false
6/ Reload the search page and do some searches on screen output. (there
is no sorting or filtering features, but there is still pagination)
7/ Try again CSV output.
8/ You can re-enable Javascript.
9/ Go to Administration > Items search fields
10/ Add a new field. Example for title (in UNIMARC):
  Name: title
  Label: Title
  MARC field: 200
  MARC subfield: a
  Authorised values category: None
(add another field with an authorised values category to see the
difference).
11/ As you are there try to update and delete some fields.
12/ Go back to items search form. You can see in the 3rd fieldset that
your fields have appeared in the selects.
13/ Try searching on them.
14/ I think you're done :)

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Work as described. Good new option.
No koha-qa errors

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 11425: Add unit tests

package Koha::Item::Search::Field
function C4::SQLHelper::GetColumns
function C4::Items::SearchItems

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Tests run without error

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 11425: Add filter on items.notforloan column

and display the 'Processing ...' box when datatables is loading new
data.

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Nice box

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 11425: Get column names using DBIX

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 11425: QA fixes

- Reword 'joker' to 'wildcard'
- Explain what wildcards do
- Reword 'Modify' to 'Edit'

Also fix jQuery plugin columnFilter path

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 11425: Display location label instead of code

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>

Minor conflicts solved
Last three patches signed
No koha-qa errors.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 11425 [QA Followup] - Fix number of unit tests

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Bug 11425 [Template follow-up] Search form for items

This template followup makes several changes to markup and text:

- Replace "Bibliographic reference" with "Title"
- Replace "Callnumber" with "Call number"
- Replace "Home branch" with "Home library"
- Replace "Holding branch" with "Current location"
- Replace "Location" with "Shelving location"
- Replace "Issues" with "Checkouts"
- Replace "Indifferent" with "Ignore"
- Replace "&" with "&amp;" where necessary
- Correct page title and breadcrumbs
- Remove label "for" attribute from labels which do not directly target
  a form field
- Correct label "for" attribute on labels which should target a form
  field
- Correct date format hint

This patch also makes one change to the way the page display works:

The search results section is now in a separate div which uses a
different grid rule, allowing it to take up the full width of the
screen. To keep the page headers from looking weird I've changed the
markup so that each section has its own header.

To test, perform a variety of searches and confirm that the output in
both Screen and CSV views looks correct.

Confirm that search results which are output to the screen are formatted
nicely and that the "edit search" links work correctly to show the
search form. Submitting a new search after editing a search should hide
the form and redisplay the search results table.

Followed test plan, works as expected.
Signed-off-by: Marc Véron <veron@veron.ch>

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works as described, improves display.
Bug 11425: DBRev 3.17.00.046

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11425: (followup) fix number of tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11425: (maniac followup) remove diag from tests

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Bug 11425: Update DBIx

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>