Bug 10290: UT: VirtualShelves.t needs to create its own data

Try before the patch:
prove t/db_dependent/VirtualShelves.t

And after, it should produce:
  t/db_dependent/VirtualShelves.t .. ok
  All tests successful.
  Files=1, Tests=82,  6 wallclock secs ( 0.03 usr  0.00 sys +  0.46 cusr  0.03 csys =  0.52 CPU)
  Result: PASS

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 44905ac99cee8ddca6c63752d948a74afae20194)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Tests are good :-D. They look fine and work as expected.
(cherry picked from commit e918450e6ad6e661474479f8890f6b141fe4e15a)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Missed this one from previous release
(cherry picked from commit e918450e6ad6e661474479f8890f6b141fe4e15a)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit a16542961f60f5a77d0af86d605a890a5b23782d)
Bug 10290: Followup for Virtualshelves.t

Put the 10 biblionumbers in a list
Add a FIXME for deleting shelves
Do temporary repair on duplicate name test (Followup via report 10386)

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 1ef99ace2043d75889830c4c0af8af3e9e36104e)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit e26655fe03c2f5181d6a820f40e38a7cebb46e05)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
Missed this one from previous release
(cherry picked from commit e26655fe03c2f5181d6a820f40e38a7cebb46e05)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 2b2457329467e5a30a748903eb60390f1cafd51d)
Bug 10386: improvements to VirtualShelves.t

Most important: Does no longer delete all shelves!
Checks if there are ten borrowers for testing. But even works without them :)
When creating or modifying lists, takes name clashes into consideration.

Small change to _CheckShelfName in VirtualShelves module. Making it possible to
check a name for a list whose owner has been set to NULL. Note that a test
like field=? with undef for placeholder will not work in MySql.

Test plan:
How do you test a test? Well, you could run it on various databases..
But for real hacking, you could also add some debug lines.
I tested this by forcing 10 undefs in @borrowernumbers.
And by overwriting the return value of randomname with an existing name.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 93e87ca0b61611fc35238bf13eb226f477cf9c4e)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit a97b62379f82a94157916959109c7c1a75582d8a)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit a97b62379f82a94157916959109c7c1a75582d8a)

Fixed minor conflicts:
	C4/VirtualShelves.pm
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 5e9db705a5466ff508d45a9bbfcabd9744efa53f)
Bug 10484: serials-edit.pl not checking for barcode field before checking for barcode subfield

The script serials-edit.pl is not checking for the existence of the
barcode field before checking for barcode subfield for autoBarcode =
incremental. If the barcode field doesn't exist, the script dies with
errors.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes tests and QA script.
Checked that adding items on serial receive still works.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 9af08e4e2d2091de489633b3f1c4fb03fcf323cd)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 1d9ac2b10a96800d301524978f00ee393b5bb75e)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 1d9ac2b10a96800d301524978f00ee393b5bb75e)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit d9c39688bcc5f4064763d8e2a6958c94066dbdd8)
Bug 10497 - star ratings not showing right in ccsr detail

Star ratings do not appear correctly in the CCSR theme because it lacks
the image sprite used to display them. This patch adds the required
file.

To test, apply the patch and view a search results set which includes
titles which have an existing rating. Ratings should appear correctly.

View a detail page for an title which has a rating, and add a rating to
a title which has no rating. Ratings should look correct and work
correctly.

Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
All tests pass - including leaving a rating on the newly visible stars

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
In order to test this, make sure you have set OpacStarRatings set
to 'results and details'.

The star images show up in OPAC results with the correct amount
of stars after applying the patch.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 2fccb14a806e9aad18cc9f75df39e09bd64830dd)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 2898cf57e5c3b9c6fd8f4fe8f0d5c180ab28fc06)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 2898cf57e5c3b9c6fd8f4fe8f0d5c180ab28fc06)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 452d6eed5880eb40bbee79c9f0938fbbd1fb3d26)
Bug 10029 - CAS authentication fails in OPAC reserve

If OPAC reserve page is accessed without being logged-in, login form is displayed as well as a CAS authentication link (if enabled). A click on this link will lead to CAS server but one comming back to Koha, page shows an error : "ERROR: No biblionumber received".
This is because CAS link only contains the query path "/cgi-bin/koha/opac-reserve.pl", not the query parameters.

This patch adds query parameters to URI sent to CAS.

Test plan :
- Enable CAS
- Go to opac without been logged-in
- Try to place hold on a record
=> You get to /cgi-bin/koha/opac-reserve.pl?biblionumber=XXX showing authentication page
=> Check that CAS link contains query param "biblionumber"
- Click on CAS link and log in
=> Check you return well logged-in to reserve page with biblionumber param

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
I have followed the test plan as far as I could and the links
contain the biblionumber now, which they didn't before.
I couldn't check the CAS login, but my normal login worked
as expected.
All tests and the QA script pass.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 974ab561ef00e76e7329f61b016b5d6b3103dde7)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 2dff5177f2d7c542175b28adf1832e201c0ae864)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 2dff5177f2d7c542175b28adf1832e201c0ae864)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit bd199ff98c8c34bd6587f12bc3a844827ed07aa9)
Bug 10428: undefined check in add additem.pl

In additem.pl, in the code that generates item form you find:

@values = $itemrecord->field($tag)->subfield($subtag) if ($itemrecord && defined($itemrecord->field($tag)->subfield($subtag)));

This patch adds the check of $itemrecord->field($tag) undef.
I did not found a way to test it because item tag is always defined
when editing an item, but it would be safer/prettier to add this check.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passed-QA-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit e31b158245f4eff36decebf30c8a87c8cfebe472)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 54d414ee2d16a2969c91e5a83cb8c66858fed03c)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 54d414ee2d16a2969c91e5a83cb8c66858fed03c)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 3390a6efc74714f6ebd577d06f344acbff001357)
Bug 5894: Display all titles when confirming copy of items from cart to list

Adds missing code that splits biblios before calling template.

To test:
- Add some items to cart
- Open cart, select some or all items
- Add to list; with patch, following window shold show something
  like "Add 3 items to a list:", followed by list of items

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Passes koha-qa.pl, works as advertised.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit bed99a851646fd0c7a4c906dd9dfe60c485b40c6)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 7c92496cf7f7ee1016b934a8e01e995b680f9761)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 7c92496cf7f7ee1016b934a8e01e995b680f9761)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit e94b493fc7f6217a92d91f78ce6849d73fd8c6e8)
Bug 9113: fix handling of certain characters by item batch modification tool

If you're using the batch modification tool and entering a call number
like "E+ 123 ABC", the tool removes the + and puts a space in its place,
e.g., "E  123 ABC"

This is because the form is posted via Ajax by background-job-progressbar.js.
Values are URI-encoded using escape(), but this method does not escape some
characters: * @ - _ + . /

Also, "+" is considered as a space in a URI.

This patch replaces escape() by encodeURIComponent() which encodes every character.

Test plan :
Perform an items batch modification by setting '* @ - _ + . /' in a field
(notes for example) and see that all characters are saved correctly.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 0397e7ea64c208c140d7178ed34c3bd4b266fcfb)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit dbd52acf2958bca6b126a35a47d03b6d4d4d541d)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit dbd52acf2958bca6b126a35a47d03b6d4d4d541d)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 70cc750a5f96ca72c07f359006730ff92f9ff5b5)
Bug 9533: batch item modification form now shows default field values only by request

This patch makes the pre-population of the fields for the batch
item editor with the default values from the default framework
optional and off by default.

Test Plan:
1) Apply patch
2) Add default values for cost and replacement cost to the
   default framework.
3) Browse to Tools / Batch item modification
4) Choose a file, or entire some barcodes in the text area
5) Ensure that the 'Populate fields with default values from default
   framework' is *not* checked
6) Click 'Continue'
7) Observe that the fields for cost and replacement cost are blank
8) Click the 'back' button on your browser
9) Check the checkbox to enable the default value
10) Click 'Continue'
11) Observe that the fields for cost and replacement cost now contain
    the default values you assigned them in the default MARC framework

Signed-off-by: David Cook <dcook@prosentient.com.au>

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Switch works correctly, all tests and QA script pass.

Note: there is a bug with default values for all non text input
fields. Default values won't be applied for those fields as the
pull downs are not preselected correctly with the default values
defined in the framework.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 2d32ab38148f7d75412a36e928dea799717bc5fb)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 3865b14a57c4e0d4547980acf67060eac181161f)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 3865b14a57c4e0d4547980acf67060eac181161f)

Conflicts:
	tools/batchMod.pl
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 2db1c2b208c53a59bd896af426455122b7b738e5)
Bug 10088: FIX adding an order from a staged file.

Bug 9902 introduced an issue in the C4::Items::PrepareItemrecordDisplay
routine. The existence of $defaulvalue hashref should be tested before
getting to the branchcode key.

Test plan:
Before applying the patch, an error occurred when you try to create an
order from a staged file.
After applying the patch, the error does not appear anymore.

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
(cherry picked from commit f2e44716f60578b9663862d7b2ba3b16f7067143)

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
(cherry picked from commit a8ee942442d42e7ae4f42567eba22f33725188a5)

Conflicts:
	C4/Items.pm
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 424a73e889edf5d8e90150ed504fa802953d8194)
Bug 10384: fall back to normal authentication if LDAP server is not available

This fixes a bug where, assuming LDAP authentication is enabled, if a user
tries to log in while the LDAP server is down, the following fatal error
is displayed:

Can't call method "bind" on an undefined value at C4/Auth_with_ldap.pm line 134, <DATA> line 558.

This patch catches this error to allow normal authentication when LDAP connexion fails.

Test plan :
- Configure LDAP connexion with a host not having LDAP. ie :
 <useldapserver>1</useldapserver>
 <ldapserver id="ldapserver">
    <hostname>localhost</hostname>
    <base>dc=test,dc=com</base>
    <user>cn=Manager,dc=test,dc=com</user>
    <pass>passwd</pass>
    <replicate>0</replicate>
    <update>0</update>
    <auth_by_bind>0</auth_by_bind>
    <mapping>
      <firstname    is="givenname"      ></firstname>
      <surname      is="sn"             ></surname>
      <branchcode   is="branch"         >MAIN</branchcode>
      <userid       is="uid"            ></userid>
      <password     is="userpassword"   ></password>
      <email        is="mail"           ></email>
      <categorycode is="employeetype"   >PT</categorycode>
    </mapping>
 </ldapserver>
- Try to connect with mysql user (defined in koha-conf.xml)
- Try to connect with a user defined in borrowers
You may try to connect with working LDAP connexion

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 96ac578960cb4f2c5a964b3ac7fa4f9ba676b95d)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 85130dafc515363eba8f44973291a7af893a8b52)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 85130dafc515363eba8f44973291a7af893a8b52)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit e29a98f8166df4cad0cb6ea12bd06a39e52a4d47)
Bug 9519: fix code for Italian language search limiter

'ind' rather than 'ita' was set as the ISO639-2 language
code for Italian in the fr-FR, it-IT, pl-PL, ru-RU, and uk-UA
installation SQL.

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
I checked nb-NO and de-DE - language code there had already
been corrected.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 707733ed2992a5d612d22510174301d65d3d7c05)

Conflicts:

	installer/data/mysql/updatedatabase.pl

Trivial merge conflict in the usual suspect, updatedatabase.pl

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 645e80d58783aed46f368e36156ea69e2a34779e)

Conflicts:

	installer/data/mysql/updatedatabase.pl

Solved merge conflict

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 645e80d58783aed46f368e36156ea69e2a34779e)

Conflicts:
	installer/data/mysql/updatedatabase.pl

Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 1140e9c46af8522373ec51fc6282bfc7c4936540)
Bug 10535: by default sort funds by name

In parcels.pl, and other acquisition pages, the funds are not sorted
by name in combo-box.  With a great number of funds, it is difficult
to find one.

This patch adds a default value to $orderby arg of C4::Budgets::GetBudgets.

Test plan :
- Create a new fund with a name beginning with 'z' and set you as owner.
- Create a new fund with a name beginning with 'a' and set you as owner.
- Go to a vendor and click "Receive shipments"
- Look at fund combobox
=> Funds are sorted by name

Signed-off-by: Silvia Simonetti <s.simonetti@cineca.it>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and QA script.
When testing make sure your funds would sort the other way
around when sorting by code instead of description.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit aa6cdb60a9ab2581ffef08796a349242d3d2ff66)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit f56768adba9fb1d39861e04796fac2be8cfdf914)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit f56768adba9fb1d39861e04796fac2be8cfdf914)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 58f7b60bf3d718a9d76e87632086adbc734a1117)
Bug 10560: make it possible for default interface language to not be English

If you enable another translation, and disable English, then if you dont
have a cookie set, or your browser is not set to that language, you will
get English. So you can not disable English in either the staff client
or the OPAC.

This patch fixes the language selection to do the right thing.

To test you must have at least one other language installed besides
English. Apply the patch and disable the en translation. Koha should
fall back to one of the enabled translations.

Signed-off-by: Owen Leonard <oleonard@myacpl.org>

I added a patch description and test plan, missing from the
original patch.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
I have tested with various combinations of activated languages
and have found no regression. If the cookie is set, the right
language is shown accordingly. Else the first language in the
list seems to be picked. It did never fall back to English
in my tests, when English was explicitly deactivated.

Passes all tests and QA script.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 38f596d48e19c8f7890caea7a6eb59b6174cf5fa)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Works as advertised.
(cherry picked from commit 8f0ce3c1a0e43e6fb8b7bae56e4d658bfc315631)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 8f0ce3c1a0e43e6fb8b7bae56e4d658bfc315631)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit e510a73acf53f76f73168466ee80f5f98d2c8e82)
Bug 10560: add regression test

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit e2bb7af21666ca61f65fb3163d8449823f5cab4b)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit a8ed0e52c65f3fed53108fc1cbe9b860e63f98b5)
Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit a8ed0e52c65f3fed53108fc1cbe9b860e63f98b5)
Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 4cae5281851983d59fb6a463aebc868398e6f2ba)
Bug 10490: Overdue fines cap can't store decimal values

When overduefinescap was added to the issuingrules the datatype
given was decimal. This translates in MySQL to decimal(10,0).
This doesn't allow you to store decimal values and therefore
values like 4.5 are saved as 5 in the database.

To test:

On a current installation:
1) Try to enter 4.5 as Overdue fines cap. Verify that the value
   is not correctly saved.
2) Apply patch and run database update.
3) Try adding/changing an issuing rule setting Overdue fines cap
   to 4.5 again.
4) Verify the value is saved correctly.

Create a new Koha installation from scratch:
1) Verify that the issuingrules table has been created correctly
   and that you can add/mofidy issuingrules correctly.

Because this bug can create data loss, the old database update
has also been changed to avoid this problem for people updating
at a later point in time. Checkout an older version of Koha
pre 3.09.00.027.

1) Run the database updates.
2) Verify again, that adding/modifying issuingrules works correctly.

Signed-off-by: Srdjan <srdjan@catalyst.net.nz>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
(cherry picked from commit 16c57940441aac62c1c90538f3c7b7cd386e6d92)
Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
(cherry picked from commit 47df7c9641321b70cd132790d4cfeab500bc34be)

Conflicts:

	installer/data/mysql/updatedatabase.pl

Solved

Signed-off-by: Bernardo Gonzalez Kriegel <bgkriegel@gmail.com>
(cherry picked from commit 47df7c9641321b70cd132790d4cfeab500bc34be)

Conflicts:
	installer/data/mysql/kohastructure.sql
	installer/data/mysql/updatedatabase.pl

Signed-off-by: Chris Hall <followingthepath@gmail.com>
(cherry picked from commit 2727ca9512ad9e06fbba9a3c299dbdd78289da7c)