Bugzilla – Attachment 14792 Details for
Bug 9458
Add sorting to lists
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Bug 9458 - Add sorting to lists
Bug-9458---Add-sorting-to-lists.patch (text/plain), 7.81 KB, created by
Kyle M Hall (khall)
on 2013-01-23 16:20:27 UTC
(
hide
)
Description:
Bug 9458 - Add sorting to lists
Filename:
MIME Type:
Creator:
Kyle M Hall (khall)
Created:
2013-01-23 16:20:27 UTC
Size:
7.81 KB
patch
obsolete
>From eca00b0e076afe0a6a95c4c8ce6e553e0576bd17 Mon Sep 17 00:00:00 2001 >From: Kyle M Hall <kyle@bywatersolutions.com> >Date: Wed, 23 Jan 2013 09:05:20 -0500 >Subject: [PATCH] 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 >--- > C4/VirtualShelves.pm | 4 +- > C4/VirtualShelves/Page.pm | 8 +++- > .../prog/en/modules/virtualshelves/shelves.tt | 35 ++++++++++++++++++-- > .../opac-tmpl/prog/en/modules/opac-shelves.tt | 34 +++++++++++++++++++ > 4 files changed, 74 insertions(+), 7 deletions(-) > >diff --git a/C4/VirtualShelves.pm b/C4/VirtualShelves.pm >index 0bb4b56..f632416 100644 >--- a/C4/VirtualShelves.pm >+++ b/C4/VirtualShelves.pm >@@ -255,7 +255,7 @@ from C4::Circulation. > =cut > > sub GetShelfContents { >- my ($shelfnumber, $row_count, $offset, $sortfield) = @_; >+ my ($shelfnumber, $row_count, $offset, $sortfield, $sort_direction ) = @_; > my $dbh=C4::Context->dbh(); > my $sth1 = $dbh->prepare("SELECT count(*) FROM virtualshelfcontents WHERE shelfnumber = ?"); > $sth1->execute($shelfnumber); >@@ -277,7 +277,7 @@ sub GetShelfContents { > my @params = ($shelfnumber); > if($sortfield) { > $query .= " ORDER BY " . $sortfield; >- $query .= " DESC " if ($sortfield eq 'copyrightdate'); >+ $query .= " DESC " if ( ( $sortfield eq 'copyrightdate' ) || ( $sort_direction eq 'desc' ) ); > } > if($row_count){ > $query .= " LIMIT ?, ? "; >diff --git a/C4/VirtualShelves/Page.pm b/C4/VirtualShelves/Page.pm >index 6a4d431..d0fcf30 100644 >--- a/C4/VirtualShelves/Page.pm >+++ b/C4/VirtualShelves/Page.pm >@@ -249,7 +249,9 @@ sub shelfpage { > my $items; > my $tag_quantity; > my $sortfield = ( $sorton ? $sorton : 'title' ); >- ( $items, $totitems ) = GetShelfContents( $shelfnumber, $shelflimit, $shelfoffset, $sortfield ); >+ $sortfield = $query->param('sort') || $sortfield; ## Passed in sorting overrides default sorting >+ my $direction = $query->param('direction'); >+ ( $items, $totitems ) = GetShelfContents( $shelfnumber, $shelflimit, $shelfoffset, $sortfield, $direction ); > for my $this_item (@$items) { > my $biblionumber = $this_item->{'biblionumber'}; > my $record = GetMarcBiblio($biblionumber); >@@ -419,7 +421,7 @@ sub shelfpage { > > my $url = $type eq 'opac' ? "/cgi-bin/koha/opac-shelves.pl" : "/cgi-bin/koha/virtualshelves/shelves.pl"; > my %qhash = (); >- foreach (qw(display viewshelf sortfield)) { >+ foreach (qw(display viewshelf sortfield sort direction)) { > $qhash{$_} = $query->param($_) if $query->param($_); > } > ( scalar keys %qhash ) and $url .= '?' . join '&', map { "$_=$qhash{$_}" } keys %qhash; >@@ -459,6 +461,8 @@ sub shelfpage { > barshelvesloop => $barshelves, > pubshelves => $total->{pubtotal}, > pubshelvesloop => $pubshelves, >+ sort => $query->param('sort'), >+ direction => $query->param('direction'), > ); > > output_html_with_http_headers $query, $cookie, $template->output; >diff --git a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt >index 81fe513..cdc0f69 100644 >--- a/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt >+++ b/koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt >@@ -202,15 +202,44 @@ function placeHold () { > <span class="clearall"></span></p> > [% END %] > >+ [% IF direction == 'asc' %][% direction = 'desc' %][% ELSE %][% direction = 'asc' %][% END %] > <div class="pages">[% pagination_bar %]</div> > <table> > <tr> > [% IF ( itemsloop ) %]<th class="checkall"> </th>[% END %] >+ > [% UNLESS ( item_level_itypes ) %]<th>Item type</th>[% END %] >- <th>Title</th> >- <th>Author</th> >+ <th> >+ <a href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=[% shelfnumber %]&sort=title&direction=[% direction %]">Title</a> >+ [% IF sort == 'title' %] >+ [% IF direction == 'asc' %] >+ <img src="/intranet-tmpl/prog/img/asc.gif" /> >+ [% ELSIF direction == 'desc' %] >+ <img src="/intranet-tmpl/prog/img/desc.gif" /> >+ [% END %] >+ [% END %] >+ </th> >+ <th> >+ <a href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=[% shelfnumber %]&sort=author&direction=[% direction %]">Author</a> >+ [% IF sort == 'author' %] >+ [% IF direction == 'asc' %] >+ <img src="/intranet-tmpl/prog/img/asc.gif" /> >+ [% ELSIF direction == 'desc' %] >+ <img src="/intranet-tmpl/prog/img/desc.gif" /> >+ [% END %] >+ [% END %] >+ </th> > <th>Date added</th> >- <th>Call number</th> >+ <th> >+ <a href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=[% shelfnumber %]&sort=itemcallnumber&direction=[% direction %]">Call number</a> >+ [% IF sort == 'itemcallnumber' %] >+ [% IF direction == 'asc' %] >+ <img src="/intranet-tmpl/prog/img/asc.gif" /> >+ [% ELSIF direction == 'desc' %] >+ <img src="/intranet-tmpl/prog/img/desc.gif" /> >+ [% END %] >+ [% END %] >+ </th> > <th> </th> > </tr> > [% FOREACH itemsloo IN itemsloop %] >diff --git a/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tt b/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tt >index 8f31917..70ab103 100644 >--- a/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tt >+++ b/koha-tmpl/opac-tmpl/prog/en/modules/opac-shelves.tt >@@ -188,6 +188,11 @@ $(function() { > alert(alertString2); > } > } >+ >+$(document).ready(function() { >+ $('#sort-submit').hide(); >+}); >+ > //]]> > </script> > </head> >@@ -287,6 +292,35 @@ $(function() { > > <a class="print" href="opac-shelves.pl" onclick="print(); return false;">Print list</a> > >+<form action="/cgi-bin/koha/opac-shelves.pl" id="sorting-form"> >+ <input type="hidden" name="viewshelf" value="[% shelfnumber %]" /> >+ >+ <label for="sort">Sort by: </label> >+ <select name="sort" onchange="$('#sorting-form').submit()"> >+ <option value="">Default sorting</option> >+ >+ [% IF sort == 'author' %] >+ <option value="author" selected="selected">Author</option> >+ [% ELSE %] >+ <option value="author">Author</option> >+ [% END %] >+ >+ [% IF sort == 'title' %] >+ <option value="title" selected="selected">Title</option> >+ [% ELSE %] >+ <option value="title">Title</option> >+ [% END %] >+ >+ [% IF sort == 'itemcallnumber' %] >+ <option value="itemcallnumber" selected="selected">Call number</option> >+ [% ELSE %] >+ <option value="itemcallnumber">Call number</option> >+ [% END %] >+ >+ <input type="submit" id="sort-submit" value="Resort list" /> >+ </select> >+</form> >+ > [% IF ( manageshelf ) %] <span class="sep">|</span> <form method="get" action="opac-shelves.pl"><input type="hidden" name="op" value="modif" /> > <input type="hidden" name="display" value="viewshelf" /> > <input type="hidden" name="shelfnumber" value="[% shelfnumber %]" /> <input type="submit" class="editshelf" value="Edit list" /></form> >-- >1.7.2.5
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 9458
:
14781
|
14790
|
14791
|
14792
|
15363
|
15543
|
15545
|
15554
|
15674
|
15675
|
15694
|
15891
|
15952
|
16031