Bug 10566 - Improve OPAC course reserves pages

This patch makes various improvements to the OPAC course reserve pages:

- Descriptive page titles for both pages.
- More compact display of course information on course detail page
  (a list instead of a table, consistent with other displays of similar
  information in Koha).
- Correct capitalization.
- Added label and fieldset to course reserve search form.
- Added breadcrumb navigation to course reserve detail page as a path
  back to course reserves main page.

To test, apply the patch and confirm that the changes haven't broken
anything and are an improvement.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Passes all tests and improves the display.
Tested with only 1 course, 2 courses,
courses with and without items selected.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10566: (follow-up) fix HTML validation issues

These issues predated the previous patch, I just took
this chance to fix them.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10692: add unit tests for C4::Circulation routines about transfers

The tests are wrap in a transaction.

NOTE: Currently, some tests should pass but don't because of incoherences in the code.
These tests are in comments and preceded by FIXME.

To test:
prove t/db_dependent/Circulation_transfers.t
t/db_dependent/Circulation_transfers.t .. ok
All tests successful.
Files=1, Tests=12, 18 wallclock secs ( 0.02 usr  0.01 sys +  0.37 cusr  0.06 csys =  0.46 CPU)
Result: PASS

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10693: CreateBranchTransferLimit's return value in C4::Circulation.pm should be more explicit

This patch test if the parameters $toBranch and $fromBranch are given.
If not, CreateBranchTransferLimit now returns undef.
This patch also fixes and adds some regression tests in
t/db_dependent/Circulation_transfers.t

NOTE:
Currently, we can add a transferlimit to nonexistent branches because
in the database branch_transfer_limits.toBranch
and branch_transfer_limits.fromBranch aren't foreign keys.

To test:
prove t/db_dependent/Circulation_transfers.t
t/db_dependent/Circulation_transfers.t .. ok
All tests successful.
Files=1, Tests=15, 18 wallclock secs ( 0.02 usr  0.01 sys +  0.42 cusr  0.00 csys =  0.45 CPU)
Result: PASS

Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
All tests and QA script pass.
Bug 10693: (follow-up) fix parameter checking in CreateBranchTransferLimit()

There is nothing prevent '0' from being used as a library code.

To test:

Run prove -v t/db_dependent/Circulation_transfers.t and verify that
the tests pass.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10699: add explicit return value for DeleteBranchTransferLimits()

This patch adds return values to DeleteBranchTransferLimits:
1 if a Transfer Limit is deleted
undef if no parameters is given
0E0 if a wrong parameter is given

More, it fixes and adds some tests in t/db_dependent/Circulation_transfers.t

To test :
prove t/db_dependent/Circulation_transfers.t
t/db_dependent/Circulation_transfers.t .. ok
All tests successful.
Files=1, Tests=14, 19 wallclock secs ( 0.02 usr  0.01 sys +  0.39 cusr  0.02 csys =  0.44 CPU)
Result: PASS

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Tested with patch for bug 10692 applied.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10699: (follow-up) fix parameter test in DeleteBranchTransferLimits()

Need to check for definedness, not Perl truth.

Also adds description of the return value to the POD.

To test:

Run prove -v t/db_dependent/Circulation_transfers.t and verify that
the tests pass.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 9782: hide cancel button when importing MARC bibliographic frameworks

When importing frameworks the "cancel" button should be hidden once an
import is initiated since it is not possible to cancel the import in
progress.

This patch uses this bug as an excuse to replace the old import/export
pop-ups with modal dialogs for all import/export functions.

To test:

- Try exporting both the default framework and at least one other
  framework.
- Try importing both a default framework and at least one other
  framework.
- When importing, observe that the modal dialog controls are hidden as
  soon as the import is initiated.

Signed-off-by: David Cook <dcook@prosentient.com.au>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works nicely, passes all tests and QA script.
Also the modal works better on smaller screens.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 6594: (follow-up) remove TT directive embedded in tag

To test:

Verify that prove -v xt/tt_valid.t passes.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10634 - Use datatables for course details items table

We should make the course items table in the course details a datatable
to enable searching or sorting.

Test Plan:
1) Apply this patch
2) View the details page for a course with items
3) Verify the table displays and is now a datatable

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Chris Cormack <chris@bigballofwax.co.nz>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10361: Add option to cleanup_database.pl to purge OPAC search history

Add an option to cleanup_database.pl to purge the search_history
entries older than X days.

Test plan:

- Apply patch
- Check that your test DB has some entries a little older than 30 days
  and a few ones even older than that in search_history:

  SELECT * FROM search_history WHERE time < DATE_SUB( NOW(), INTERVAL 30 DAY );

  If not, modify some existing entries.

- Run cleanup_database with a fixed number of days (replace XX with
  something higher than 30)

  /misc/cronjobs/cleanup_database.pl --searchhistory XX

- Check that entries older than XX days got deleted from search_history
- Run without the day parameter
  /misc/cronjobs/cleanup_database.pl --searchhistory
- Check that entries older than 30 days got deleted from search_history

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10361: (follow-up) add tests for search history functions

This adds tests for the new PurgeSearchHistory function and
AddSearchHistory.  GetSearchHistory is not tested due to its
current broken state (see bug 10667).

To test:

[1] Run prove -v t/db_dependent/Search_SearchHistory.t
[2] Verify that all tests pass.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Signed-off-by: Mirko Tietgen <mirko@abunchofthings.net>
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10755 - Add "Keyword as Phrase" to staff client advanced search indexes

This patch adds a "Keyword as Phrase" index to the search options in
the staff client.

Test Plan:

1) Go to the Advanced Search in the staff client and click on the "Keyword"
drop-down list.
2) Note that there is only a "Keyword" not a "Keyword as Phrase" option
3) Apply the patch
4) Reload the Advanced Search
5) Note that there is now a "Keyword as Phrase" option as well

If you want to test the functionality...it will depend on your catalogue
data.

Basically, a phrase search will allow you to find "Keyword Adjacent To
Keyword" rather than a more scattershot search that finds the keywords
regardless of their position to each other.

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

Template change is correct, and in my tests the searching behavior was
correctly modified: Using "keyword as phrase" returned only results
where the terms were adjacent.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Passes koha-qa.pl, trivial patch with no possible side effects.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 5904: make patron search autocompletion respect IndependentBranches

Test plan:
- Add a staff user foo in a library A
- Add a staff user bar in a library B
- log in as foo and try to search 'bar'
- Switch on (Prevent) the syspref IndependentBranches
- the search returns no result
- log in as a superlibrarian
- Check that you are allowed to search all patrons.

Signed-off-by: Srdjan <srdjan@catalyst.net.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>
Bug 10786: fix Javascript error on the parcel page

The include of the yui json file generates a js error: YAHOO is not
defined.

This file seems not to be in use (patches for bug 8382 remove the use).

To test:
- go on acqui/parcel.pl?invoiceid=XXX
- verify the error occurs (with firebug)
- apply this patch
- refresh the page
- verify this error does not appear anymore
- Verify there is no regression on this page

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Patch fixes the javascript error pointed out by Firebug.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 10588: improve selection of default branch for OPAC popular items pag

In OPAC most popular items page:
With user is logged-in his branch should be selected by default.
When a branch is manually selected and form is submitted, this branch
should be selected in results page.
When looking at HTML, you see that all options are selected in combobox.

This patch corrects by using the hidden input 'do_it' to distinguish
form display and no branch filter selected.

Test plan :
- Make sure there are issues on records created in the past 3 month
- Go to OPAC not logged-in
- Click on "Most popular"
=> You get to page with results, "All libraries" is selected
- Select a branch and submit
=> You get to page with results, the branch is selected [testing opac-topissues.inc from]
- Select a branch and perform a search that does not have results (for example an item type never issued)
=> You get to page without results, the branch is selected [testing opac-topissues.tt form]
- Log-in with a user
- Click on "Most popular"
=> You get to page with results, user's branch is selected
- Select "All libraries" and submit
=> You get to page with results, "All libraries" is selected [testing opac-topissues.inc from]
- Select "All libraries" and perform a search that does not have results (for example an item type never issued)
=> You get to page without results, "All libraries" is selected [testing opac-topissues.tt form]

Signed-off-by: Srdjan <srdjan@catalyst.net.nz>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Works nicely and passes all tests.

Signed-off-by: Galen Charlton <gmc@esilibrary.com>
Bug 9603 - Fix layout of Patron Card Creator Layout screen for display in IE

Currently, the layout for the Edit/Add Layout screen of the Patron
Card Creator is in complete disarray, when viewed in Internet Explorer
(of any version).

The nav bar is pushed to the bottom of the page, every fieldset is
empty (as their contents have been pushed out into different parts
of the page), and the checkboxes don't work.

The cause appears to be some extraneous mark-up (a few extra fieldset
and li elements)and some missing mark-up (ol elements to wrap the list
elements, especially when nesting lists within each other and within
div elements).

Signed-off-by: Owen Leonard <oleonard@myacpl.org>
Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
I didn't test this in IE, but changes are fixing general
problems with HTML validity.

Checking the page with the W3C validator:
Before: 27 Errors, 7 warning(s)
After:  6 Errors, 7 warning(s)

All tests and QA script pass, page looks alright.
Would be nice to see the remaining problems fixed in
a follow-up.

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