Bug 5349: add ability to transfer order lines from one basket to another

On basket.pl and parcel.pl there is a 'Transfer' link which allow you to
transfer order lines from a basket to another.

The link leads to a new page which allow you to search for a bookseller,
then display this bookseller's baskets. Then you can pick a basket and
the transfer will be done.

Signed-off-by: Marc Veron <veron@veron.ch>
Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: sonia <koha@univ-lyon3.fr>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: (follow-up) run transferorder.pl in a popup

Signed-off-by: Marc Veron <veron@veron.ch>
Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: sonia <koha@univ-lyon3.fr>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: Fix a logical test in TransferOrder

Signed-off-by: Mathieu Saby <mathieu.saby@univ-rennes2.fr>
Signed-off-by: sonia <koha@univ-lyon3.fr>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: Add unit tests for TransferOrder

Signed-off-by: sonia <koha@univ-lyon3.fr>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>

Signing off on this because a following patch fixes the test to use
transactions

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: Use DB transaction/rollback in unit tests

Signed-off-by: sonia <koha@univ-lyon3.fr>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: Create a table for order line transfers

This allow to keep transfers informations without having untranslatable
strings in database.

Signed-off-by: sonia <koha@univ-lyon3.fr>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: (follow-up) update license version to GPL3+ for new file

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: DBrev 3.13.00.018

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5349: (follow-up) tweak order transfer form

This patch implements some of the suggestions made
by Owen Leonard and brings the form closer in line
with other popup forms.  In particular:

- sets dimensions for the popup so that clicking on the
  link is more likely to open a new browser window, not
  a tab.
- ensures that the vendor search form is always visible
- adds a cancel link to make it more clear to library
  staff that they can abort the process.
- tweaks markup to better match the patron guarantor
  popup search form

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10802: make Debian package install history.txt

While bug 8911 fixed a problem regarding history.txt, a proper fix for
packages was missing.
This patch does three things:

 - Adds docs/history.txt to debian/koha-common.docs so it gets installed.
 - Moves the line installing the release notes from debian/koha-common.install
   to debian/koha-common.docs.
 - Adds an override_dh_compress entry in debian/rules that excludes
   history.txt from the dh_compress routine [1]

To test:
 - Take a picture of how /usr/share/doc/koha-common looks.
 - Apply the patch and build a package.
 - Upgrade and/or install using your package.
 - Look for the contents of the /usr/share/doc/koha-common, it should
   look the same, but history.txt must be there.
 - More > About Koha > Koha Timeline should show the history lines.

[1] As 'man dh_compress' says, it is needed as every file considered for
    the doc dir that is plain text and is more than 4k size will be
    gzipped unless stated otherwise. We need it uncompressed for about.pl.

Sponsored-by: Universidad Nacional de Cordoba
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10792: fix sorting of funds table on acquisitions home page

This patch introduces a DataTables sorting plugin, title-numeric,
for sorting cells based on a decimal number embedded in a span title
attribute.  This allows currency amounts to be formatted properly
for display without having to writing a sorting plugin that's
super-smart about removing the formatting, particularly for locales
that use a comma as the decimal mark.

The sorter plugin can be used like this:

- In the DataTables config:

"aoColumns": [
   { "sType": "title-numeric" },
]

- In the table data

<td><span title="[% decimal_number_that_JS_parseFloat_accepts %]">
    [% formatted currency %]
</span></td>

To test:

[1] Ensure that there is at least one active budget and at least
    one inactive one.
[2] Go to the acquisitions home page.  Note that changing the sort order
    on the amount, ordered, spent, or avail columns results in incorrect
    sorting that is either ASCII-betical or which ignores any component
    of large numbers that occur after the thousands separator.
[3] Apply the patch.
[4] Verify that the sorting now works correctly and that no JavaScript
    errors appear in the JS debug console of your choice.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Sorting now works correctly, for active and inactive funds.
Passes all tests and QA script.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10840: restore OPACResultsSidebar in opac-facets.inc

Bug 10405 rightly added id's to items, but inadvertently removed
[% OPACResultsSidebar %] from the opac-facets.inc file. This
bug rectifies that problem.

Test Plan:
Confirm the problem
===================
1) Set OPACResultsSidebar system preference to some text.
2) In the OPAC, search for something
3) The facets will not have the text, though viewing the source, there
   is an empty <div id="opacresultssidebar">.

Correct the problem
===================
1) Apply the patch to the master system
2) In the OPAC, search again for something
3) The facets on the left will now have the text from the
   OPACResultsSidebar system preference.

Signed-off-by: Tomas Cohen Arazi <tomascohen@gmail.com>
Is back! OPACResultsSidebar is back!

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Copied test plan from bug report into commit message.
Template only change, works as expected.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10810 - Fix synopsis for -html option to overdue_notices.pl

The synopsis for the -html option used to be:
  -html <filename> Output html to file
but the argument to this option should actually be a directory,
not a filename. This patch fixes the synopsis.

To test:
- Run perldoc misc/cronjobs/overdue_notices.pl
- Check that the synopsis is as shown above
- Apply this patch
- Run perldoc misc/cronjobs/overdue_notices.pl
- Check that
  - the synopsis asks for a directory, not a filename
  - that the description of the -html option further down in the
    perldoc now mentions the filename that the HTML file will be
    created with.

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

If feeded with a filename -html option fails with many messages like
print() on closed filehandle $html_fh at misc/cronjobs/overdue_notices.pl line 384.
Perhaps it could be improved, but that was the old behavior.

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Improves documentation, no negative side effects found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10838: Silence warns in members/member.pl

To test

1/ Uncomment the use warnings line
2/ Search for a patron, notice all the warnings
3/ Browse for a patron, notice warnings
4/ Apply patch
5/ Repeat 3 and 4
6/ Notice no errors and the search still works

This depends on the patch for Bug 10835

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests, no regressions found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10838: (follow-up) silence another warn

To test:

[1] In the staff interface, enter nothing in the patron search box
    and hit the search button.
[2] Note the errors in the logs concerning an uninitialized $count
    variable.
[3] Apply the patch and repeat step 1.  Note that this time, no
    warnings are logged.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 7469: put focus on 1st field of creation form instead of search box (Acquisition)

When a user creates a new vendor, a new borrower or a new basket
(maybe on others page too, to be listed), a creation form is displayed,
but the focus is still on the search textbox on page top.

It would be probably better to switch the focus to the first field of
the creation form.

This patch adds the focus, for acquisitions module, on first input for
pages with a data creation or modification or pages with only one form
(like Z3950 search).

Test plan :
Go to pages and look where is the focus :
- acqui/basketgroup.pl : focus on "Basket group name:"
- acqui/basketheader.pl : focus on "Basket name:"
- acqui/invoices.tt : focus on "Invoice no:"
- acqui/modordernotes.pl : focus on "Notes:"
- acqui/neworderempty.pl : focus on "Title:"
- acqui/supplier.pl : focus on "Name:"
- acqui/z3950_search.pl : focus on "Title:"

Signed-off-by: Melia Meggs <melia@bywatersolutions.com>
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
The focus choice is relevant and works as described.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 7469: (follow-up) update shipment receiving form

To test:

[1] From (e.g.) vendor search results, click on one of the
    receive shipment buttons.  Verify that the focus
    is on the 'vendor invoice' field.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 9618: Add support for intranetuserjs to labels/spinelabel-print.pl

The template for printing a single spine label is a stripped-down
version of a standard Koha template, but it should include
intranetuserjs and IntranetUserCSS so that libraries can make local
customizations.

This patch updates the page's DOCTYPE to HTML5 and adds the missing
markup for including those preferences. Also added is jQuery, since
there's a good chance local customizations are using jQuery.

To test, make sure there is something in your intranetuserjs and
IntranetUserCSS system preferences. Visit
/cgi-bin/koha/labels/spinelabel-home.pl and submit a barcode. View
source on the spine label output page and confirm that your custom js
and css were included correctly.

Signed-off-by: Campbell Reid-Tait <campbellreidtait@gmail.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Template only change, works nicely.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 9618: (follow-up) include link to jQuery only if needed

The jQuery lib is useful only if js code is filled into the
intranetuserjs pref.

Signed-off-by: Campbell Reid-Tait <campbellreidtait@gmail.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>

To test:
- Use Quick spine label creator
- Make sure you have Javascript in your intranetuserjs system
  preference
- Validate Javascript effect on screen or check source code
  to make sure your code is visible there.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10650 - export merge-record.inc javascript into a file

Bug 9755 added a refactoring of records merge adding the include
merge-record.inc. This include contains a block "mergejs" containing all
JavaScript code that was in merge.tt.
This patch exports this code into a js file.
Translatable strings contained in this file are in
merge-record-strings.inc.

Test plan :
- Put two records is a list
- Go to this list and check the two records
- Click on "Merge selected"
- Click on next
- Go to second source record
- Click on a repeatable field
=> The field is added to destination record
- Click on a subfield of a field existing in destination record
=> The subfield is added to destination record
- Click on a non repeatable field existing in destination record
=> You get an alert and field is not added
- Click on a subfield of a field not existing in destination record
=> You get an alert and subfield is not added
- Click on Merge
=> Records are merged

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes tests and test plan, no regressions found.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>