Commit graph

66 commits

Author SHA1 Message Date
93e87ca0b6 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>
2013-06-28 05:19:49 -07:00
7575a8eb8f Bug 7368: POD doc in VirtualShelves.pm
Only moving/adding some documentation in VirtualShelves.pm.
Related to earlier changes in connection with report 7310.
Adding my own signoff, nothing to test here. Does Koha still work? :)

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Passed-QA-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2013-03-21 18:33:28 -04:00
be48d34b4f Bug 9458 - Add sorting to lists - QA Followup 2
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2013-03-13 09:06:19 -04:00
bc9f606ca7 Bug 9458 - Add sorting to lists - QA Followup
Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2013-03-13 09:06:19 -04:00
4b95ee6239 Bug 9458 - Add sorting to lists
Test Plan:
1) Apply patch
2) View list in staff interface, try sorting by title, then author
3) Repeat 2 with same list in OPAC

Signed-off-by: Delaye Stephane <stephane.delaye@biblibre.com>

Signed-off-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2013-03-13 09:06:19 -04:00
aad2599fb1 Bug 8032: Sort lists by call number
Precaution: Joining the items table makes that the table is sorted on
the item call number of the first item (in case there are more items).

Signed-off-by: Melia Meggs <melia@test.bywatersolutions.com>
Passed-QA-by: Jonathan Druart <jonathan.druart@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2012-11-30 07:28:37 -05:00
Jonathan Druart
8dd92940bb Bug 8164: Replace IFNULL with COALESCE
mysql> SELECT IFNULL(0, 123);
+----------------+
| IFNULL(0, 123) |
+----------------+
|              0 |
+----------------+
1 row in set (0.00 sec)

mysql> SELECT IFNULL(1, 123);
+----------------+
| IFNULL(1, 123) |
+----------------+
|              1 |
+----------------+
1 row in set (0.00 sec)

mysql> SELECT IFNULL(NULL, 123);
+-------------------+
| IFNULL(NULL, 123) |
+-------------------+
|               123 |
+-------------------+
1 row in set (0.00 sec)

mysql> SELECT COALESCE(0, 123);
+------------------+
| COALESCE(0, 123) |
+------------------+
|                0 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT COALESCE(1, 123);
+------------------+
| COALESCE(1, 123) |
+------------------+
|                1 |
+------------------+
1 row in set (0.00 sec)

mysql> SELECT COALESCE(NULL, 123);
+---------------------+
| COALESCE(NULL, 123) |
+---------------------+
|                 123 |
+---------------------+
1 row in set (0.00 sec)

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2012-11-28 19:08:29 -05:00
Jared Camins-Esakov
49c7d69561 Bug 9066: VirtualShelves db access not Plack+MariaDB compatible
The $dbh database handle in C4::VirtualShelves was declared at the
module level, which means under Plack it is initialized only once, when
the server first starts. With the default MySQL configuration this is
not a problem, since the MySQL connection does not time out, but the
MariaDB default configuration does time out, resulting in every page
that calls any sub in C4::VirtualShelves failing after a certain period.
This patch eliminates the module-level $dbh variable and replaces it
with $dbh handles in each subroutine that requires it.

To test:
Confirm that Virtual Shelves functionality still works as expected. The
problem is not reproducible when using Apache or Plack+MySQL, but if
everything works after the patch has been applied, the changes are safe.

Signed-off-by: Mason James <mtj@kohaaloha.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2012-11-20 06:49:07 -05:00
32fab74b98 Bug 1963 Problem with deleted biblio in a virtual shelf
This bug reappear in HEAD/3.8. When trying to display a virtual shelf
(list) containing a deleted biblio, this error message is displayed:

Software error:

Can't call method "field" on an undefined value at ....C4/Koha.pm line
1231.

This fix modify SQL query retrieving biblios, just skipping records from
virtual shelf table with no linked record in biblio table: LEFT JOIN
replace with JOIN.

Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
2012-10-17 18:06:21 +02:00
909953c507 Bug 8706 - Private lists can be accessed by anyone
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>

Confirmed private lists can be accessed directly before patch is
applied. After applying patch, I can no longer access the list
via the same url.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
2012-09-05 15:29:51 +02:00
Paul Poulain
31a0ed0a43 Merge remote-tracking branch 'origin/new/bug_7805' 2012-09-03 15:58:45 +02:00
8a1fa3cf29 Bug 7805 Followup for perlcritic messages
Signed-off-by: Owen Leonard <oleonard@myacpl.org>

Tested by going to Lists and doubleclicking a list to see
its contents (in opac or staff). It works. No warnings
in the log. I am ready to sign off.

Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
2012-09-03 15:57:13 +02:00
Chris Cormack
509d673f10 Bug 7941 : Fix version numbers in modules
Signed-off-by: Kyle M Hall <kyle@bywatersolutions.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
2012-06-11 17:29:38 +02:00
d7a7aaad7b Bug 7805: Exposing the new list permissions in opac and staff
This report builds on 7310.
Had to correct some lines in ModShelf and AddShelf as well in order to
save 0 values correctly for the permission columns.

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Paul Poulain <paul.poulain@biblibre.com>
2012-06-09 13:19:13 +02:00
a334fec190 7368 Followup for indentation in VirtualShelves.pm
Corrects some further indentation issues, removes last tab from file.
Related to report 7310.

Signed-off-by: Marcel de Rooy <m.de.rooy@rijksmuseum.nl>
2012-04-06 16:01:38 +02:00
26bee7eee7 7310 Indentation followup replacing leading tabs with spaces
March 5, 2012: Rebased for pushed 4912 patch.

Signed-off-by: Ian Walls <koha.sekjal@gmail.com>
2012-03-21 16:47:31 +01:00
2dc8a260c5 Bug 7310: Improving list permissions: Deleting patron
Implements following points from the wiki page List permissions:
5) Delete or move list information when deleting a patron.

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
Signed-off-by: Ian Walls <koha.sekjal@gmail.com>
2012-03-21 16:47:03 +01:00
c4d21bcbfe Bug 7310: Code changes for Improving list permissions
This lays the foundation for further changes for report 7310.
Implements following points from the wiki page List permissions:
1) Preference that controls if users may create public lists in opac.
2) New add/delete own/delete other permissions per list.

Code has been changed (in some cases refactored). New permissions are not yet visible; with this patch current functionality is kept as much as possible while resolving several issues, improving permissions and extending the code for further developments (using the new permissions and sharing lists).

Feb 23, 2012 (revision): Changed defaults for new lists. Could also remove routine GetRecentShelves by using GetSomeShelfNames in catalogue/search.pl just as opac-search.pl already did. (More consistent.)

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>

Feb 29, 2012: Automerge version.
March 5, 2012: Rebase for pushed 4912 patch.
March 21, 2012: Rebased. Resolving some conflicts in relation to pushed report 7719.
2012-03-21 16:46:40 +01:00
Paul Poulain
4d2cfa610e Bug 6875 de-nesting C4::VirtualShelves
* C4::Circulation is unused, removing it
* C4::Members used only in ShelfPossibleAction, switching from use to require
* C4::Auth used only in RefreshShelvesSummary, a sub called only in
opac-addbybiblionumber.pl script, moving the require inside the sub

Signed-off-by: Jared Camins-Esakov <jcamins@cpbibliography.com>
2012-02-15 14:58:40 +01:00
Chris Cormack
e23608a1f9 Bug 6555 : only 10 lists show in the staff client
Signed-off-by: Nicole C. Engard <nengard@bywatersolutions.com>
Signed-off-by: Ian Walls <ian.walls@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
2011-09-07 09:00:38 +12:00
a13194f2cd Fix for Bug 6402, Lists sorted by year appear to be empty
If you create a list, populate it with titles, and then change the sort to
"year" it will appear as if your list is empty. The SQL in VirtualShelves.pm's
GetShelfContents tries to accept "year" as a sort by but 'year' is not a valid
column name.

The SQL pulls biblioitems.publicationyear. Changing this to
'biblioitems.publicationyear as year,'

Signed-off-by: Katrin Fischer <Katrin.Fischer.83@web.de>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
2011-06-10 12:14:52 +12:00
Colin Campbell
c0655aabe4 Bug 6096 Correctly return arrayref from GetAllShelves
Follow on from bug 5529 GetAllShelves was also vaguely stuffing
an arrayref into an array
Some signs of cut and paste (unnecessary @params variable)
Calling code now does not have to shuffle the return about
to get the reference. Also removed a debug warn

Signed-off-by: fdurand <frederic.durand@univ-lyon2.fr>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
2011-04-08 11:17:04 +12:00
Colin Campbell
0cf2eccfe9 Bug 5529 Absence or Presence of lists not being reliably returned
C4::VirtualShelves::GetRecentShelves contained some rather confused
code The contents of the requested list are returned in an arrayref
which was in its turn being wrapped needlessly in an array
As a result the returned array always consisted of a single element
irrespective of the number of lists.
Made the routine return the arrayref, which can now be tested directly
Unfortunately rather than fixing this we had previously coded around it
assuming it to be a "design" decision. Have amended other calls of
the subroutine resulting in some hopefully less obscure code

Fixed logic error in the results template which displayed new list
within a test for the presence of lists

Removed the offset parameter from the sql in the routine as it was hardcoded
to 0 i.e. the default value

Signed-off-by: fdurand <frederic.durand@univ-lyon2.fr>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
2011-04-08 10:51:47 +12:00
731b933d51 Fix for Bug 3523 - Menu of existing lists limited to 10
- adding "more" option to the search results dropdown
- offering a scrolling list on the add-to-list popup
- lists add popup shows the full list of all
  the patron's lists, divided into groups of private and
  public lists.

Can be improved by a fix for Bug 5529

Signed-off-by: Julian Maurice <julian.maurice@biblibre.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
2011-03-31 21:08:40 +13:00
6d8f4f8868 Fix for Bug 3347 - Inconsistencies with tables in opac-shelves.tmpl
Changes to list contents view to make it consistent with search results

My intention is to make the OPAC more consistent in the way it displays
lists of items, whether it be in search results, lists, etc. This patch
adds data to the list contents output and reformats it to that end.

The other significant change is the removal of jQuery table sorting.
Since list contents are both sorted and paginated on the server
side. Adding a client-side sort to one page of many doesn't make sense.

Other changes include:

- Change "Your lists" to "Your private lists"
- Remove "sort by" column because it seems unnecessary
- Adding logic to control display of count (item or items
  rather than item(s)
- Styling pagination bar and placing at the bottom of the page,
  consistent with other instances of pagination navigation

Signed-off-by: Nicole Engard <nengard@bywatersolutions.com>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
2011-01-06 08:40:49 +13:00
Chris Cormack
c5b55d1c40 Bug 5526: Follow up patch removing a warn statement 2010-12-29 20:36:37 +13:00
cdbf872bd5 Fix for Bug 5526, List of lists should be in alphabetical order by list name
Signed-off-by: Liz Rea <lrea@nekls.org>
Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
2010-12-29 20:35:16 +13:00
552a648648 removed AddToShelfFromBiblio from C4::VirtualShelves
Back in the day, lists could contain item records instead or in addition
to bibs, but that hasn't been the case for a while.  Therefore, removed
AddToShelfFromBiblio, which does exactly the same thing that AddToShelf does.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-10-06 10:39:36 -04:00
7c0e441d50 replace references to defunct info email address
Now links to Koha project website.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-06-25 05:18:44 -04:00
Andrew Elwell
546a0244bb More POD cleanups
Signed-off-by: Andrew Elwell <Andrew.Elwell@gmail.com>
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-06-09 08:38:58 -04:00
64daee5495 fix a common "developement" typo
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-05-25 14:38:38 -04:00
David Birmingham
816dbb2420 Fix to ORDER BY SQL in lists feature
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-04-29 23:07:40 -04:00
Lars Wirzenius
7279f55b60 Fix FSF address in directory C4/
Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2010-03-16 20:17:56 -04:00
Nahuel ANGELINETTI
800494a5ef (bug #4004) disallow access for non-logged in users in opac
This doesn't define borrowernumber = 0 if a borrower is NOT logged.
We know borrowernumber 0 is mysqluser... So in virtualshelves, a non logged user have all permissions.
2010-01-28 15:11:52 +01:00
Matthias Meusburger
5b754c1927 Function GetRecentShelves modified so it can tell "koha" user and no user apart 2009-10-02 16:06:13 +02:00
Henri-Damien LAURENT
8068171fb2 Bug Fixing Merge and addbybiblionumber.pl 2009-09-30 11:30:10 +02:00
6b90ec566c bug 1003: tweak GetBibliosShelves
* correct POD - returns *public* lists that bib
  belongs to
* use fetchall_arrayref to return results in
  one fell swoop
* corrected indentation

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-06 13:06:42 -04:00
Nicole Engard
b9f4fa6260 Bug 1003 Added lists to bib details pages
This patch adds links to all public lists that a bib
record belongs to to the detail page in the OPAC and
the Inranet. If the item is not in any lists nothing
shows on the detail page.  The same goes if virtualshelves
is turned OFF.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-09-06 12:58:36 -04:00
Nahuel ANGELINETTI
47ecf39e75 (bug #3497) show publication year, or copyrightdate
This change the shelf view in opac, to show publication year, in the column "Year"(that was previously copyrightdate), and is there is no publication year, show copyright date.

Signed-off-by: Galen Charlton <gmcharlt@gmail.com>
2009-08-05 20:11:00 -04:00
Galen Charlton
a244ff6671 bug 2505: turn on warnings in seven modules
C4::XSLT
C4::VirtualShelves
C4::Review
C4::Output
C4::Boolean
C4::Charset
C4::Stats

Signed-off-by: Chris Cormack <chrisc@catalyst.net.nz>
Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-06-07 20:09:16 -05:00
Nahuel ANGELINETTI
bfebda4ad9 (bug #2908) adding send shelf by e-mail feature
This patch add the form for sending shelf by e-mail, and add a button in shelves that allow the user to send a shelf.
It's an approximate copy of the send basket feature.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
2009-01-12 15:51:59 -06:00
Galen Charlton
0bf4cdba9a bug 2459: fix module depedency error blocking SIP2
Ror a poorly understood (by me) reason, use of 'use
UNIVERSAL' and 'use C4::Auth' in the SIP2 code is resulting
in a compilation error, thus blocking SIP2 from working.

The error (prior to this patch) could be reproduced as follows:

cd C4/SIP
perl -I. -wc Sip/MsgType.pm
"get_session" is not exported by the C4::Auth module
Can't continue after import errors at /home/gmc/koha/dev/C4/VirtualShelves.pm
line 51
BEGIN failed--compilation aborted at /home/gmc/koha/dev/C4/VirtualShelves.pm
line 51.
Compilation failed in require at /home/gmc/koha/dev/C4/Auth.pm line 34.
BEGIN failed--compilation aborted at /home/gmc/koha/dev/C4/Auth.pm line 34.
Compilation failed in require at Sip/MsgType.pm line 21.
BEGIN failed--compilation aborted at Sip/MsgType.pm line 21.

or more minimally

perl -ce 'use UNIVERSAL; use C4::Auth;'

This patch works around the problem by making C4::Auth
and C4::VirtualShelves not import any symbols
from each other.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-08-04 15:26:54 -05:00
Chris Nighswonger
8bbef6380a kohabug 2456 Moving certain C4::VirtualShelves.pm subs from EXPORT
to EXPORT_OK and correcting associated syntax

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-08-04 15:26:52 -05:00
Chris Nighswonger
542c54e067 kohabug 2392 Changing array dereferencing syntax
It appears that Perl 5.10 does not like ${@$foo}[0] but rather wants $foo->[0]
The latter is also much more readable. This patch makes the change.

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-24 11:26:16 -05:00
Chris Nighswonger
4d8963d9c9 Correcting C4::VirtualShelves::ShelfPossibleAction to handle the case where the staff user is the superlibrarian ($user == 0)
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-23 06:49:53 -05:00
Chris Nighswonger
9971756a24 kohabug 2159 Improving "Lists" button list refreshes after adding/changing lists/shelves
Adding code to refresh "Lists" button lists display in OPAC masthead.inc

Adding javascript to force refresh of parent window to update "Lists" button menu

Adding query limits and ability to specify row count and offset in queries related to Virtualshelves.
Also added the ability to return total record counts for specified virtualshelves.

Adding C4::VirtualShelves::GetRecentShelves which returns a list of the most recently modified shelves for
a given set of parameters. This allows the user to be offered active private and open lists to add books
to in drop down menus while also allowing drop down menus to be limited to a reasonable length.
This also limits the shelves stored in the user's session to a fixed number. A further enhancement might
be to add a syspref to enable a staff member to define the limit. Currently it is hardcoded at 10 per
list type (private/public-open).

Adding pagination to list/shelf related screens

Moving refresh shelves code into C4::VirtualShelves::RefreshShelvesSummary and tidying up a bit

Correcting several inconsistancies in the shelves templates as well as handling shelf management on
the intranet side correctly.

Correcting "Add To:" drop-down list to show only lists the patron has permission to add to

Correcting a few C4::VirtualShelves::GetShelvesSummary API calls

Modifications for template consistancy

Breaking up a 1367 char line of javascript in opac-results.tmpl

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-22 15:48:13 -05:00
Chris Nighswonger
39d2d593c6 Allow anyone with superlibrarian permission to edit/delete public patron lists
Edit functions here are limited to renaming and changing the type. No one can view
a list except the list owner unless it is public.

Signed-off-by: Galen Charlton <galen.charlton@liblime.com>
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-07-22 15:47:58 -05:00
Chris Nighswonger
813f4ae9d1 kohabug 1873 Fixes shelves.pl so that the date is displayed in the 'date added' column of the virtual shelf contents
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-20 12:48:01 -05:00
Chris Nighswonger
3d377cd7c1 kohabug 1875 Public lists/virtualshelves are displayed and viewable whether a patron is logged in or not.
NOTE: This patch introduces code which generates an anonymous session when a patron first browses to OPAC.
This anonymous session contains a minimal amount of information including the results of a query to discover
all public lists/shevles. When the user logs in, the anonymous session is cleared and a new session created
for that user.

kohabug 1875 - fix error when editing a patron record

C4::Auth::checkauth was not distinguishing between a
'userid' input from an OPAC or staff login form and
a 'userid' input from (e.g.,) the patron editor.
Consequently, adding or editing a patron record would
result in Koha trying to log in as the new patron.

To resolve this, added a hidden input to all login
forms, 'koha_login_context', to explicitly signal
when a login is occurring.  The value of this input
can be 'opac', 'intranet', or 'sco' - the value is
not used at present, but may be of use later.

C4::Auth - added debug flag to two warns

kohabug 1875 - create anonymous sessions only for OPAC

No need to create an anonymous session for the intranet.

set yuipath correct for login pages

When preparing the template parameters for a login form,
C4::Auth was overriding the value of yuipath set
by C4::Output::gettemplate(), thus causing 404 errors
if the 'yuipath' syspref was set to 'local'.

kohabug 1875 - avoid warns viewing lists anonymously

During an anonymous OPAC session, the $loggedinuser variable
is not set.  As the undefined value causes warns in
C4::VirtualShelves::Page::shelfpage, for the purpose of the
shelfpage call the loggedinuser is set to -1, which should
not correspond to any real borrower number.

This is admittedly a hack to avoid digging through all
of C4::VirtualShelves to deal with lists viewed anonymously.

kohabug 1875 Refactoring of &ModShelf to avoid overwriting list owner needlessly

kohabug 1875 Avoid warning if can't find owner of shelf

Since virtualshelves.owner is not a true FK of borrowersnumber.number,
set ownername to '' if can't find the patron

Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-20 12:44:27 -05:00
Joe Atzberger
e70e3bcd6d Change order of checks, and avoid warnings if args undef (i.e. anonymous login).
Signed-off-by: Joshua Ferraro <jmf@liblime.com>
2008-06-12 12:09:24 -05:00