=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);
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 ?, ? ";
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);
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;
barshelvesloop => $barshelves,
pubshelves => $total->{pubtotal},
pubshelvesloop => $pubshelves,
+ sort => $query->param('sort'),
+ direction => $query->param('direction'),
);
output_html_with_http_headers $query, $cookie, $template->output;
<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 %]
alert(alertString2);
}
}
+
+$(document).ready(function() {
+ $('#sort-submit').hide();
+});
+
//]]>
</script>
</head>
<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>