Bug 19039: (follow-up) Results of virtual shelves (lists) not sortable by date
authorMaryse Simard <maryse.simard@inlibro.com>
Fri, 20 Jul 2018 21:20:23 +0000 (17:20 -0400)
committerNick Clemens <nick@bywatersolutions.com>
Fri, 24 Aug 2018 16:23:27 +0000 (16:23 +0000)
    In the staff client, when viewing the content of a list, it can be sorted by 'title', 'author' or 'call number' but not by 'date added'.

    This patch adds 'date added' as an option for default sorting of lists. It also makes it available as a sorting option while viewing lists.

    Test plan:
    In the staff client and the opac:
    1) View a list containing several items
      => Notice that you can't sort by 'date added'
    2) Try to edit the list or create a new one
      => Notice you can't choose date added as the default sort order
    3) Apply the patch
    4) When viewing the list you should now be able to sort by date added
      => Make sure it orders correctly
    5) Edit or create a list and choose date added as default sorting order
      => Make sure it uses date added as default
      => On the staff client: test that the filter for 'sort by' works for date added
      => On the opac: test that, while viewing the contents, choosing 'default sorting' in the dropdown menu sorts correctly

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

Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>

Signed-off-by: Nick Clemens <nick@bywatersolutions.com>

koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/shelves.tt
koha-tmpl/intranet-tmpl/prog/en/modules/virtualshelves/tables/shelves_results.tt
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-shelves.tt
opac/opac-shelves.pl
virtualshelves/shelves.pl

index 68b47d7..55fdeef 100644 (file)
             [% IF shelf.sortfield == "author" %]<option value="author" selected="selected">Author</option>[% ELSE %]<option value="author">Author</option>[% END %]
             [% IF shelf.sortfield == "copyrightdate" %]<option value="copyrightdate" selected="selected">Copyrightdate</option>[% ELSE %]<option value="copyrightdate">Copyrightdate</option>[% END %]
             [% IF shelf.sortfield == "itemcallnumber" %]<option value="itemcallnumber" selected="selected">Call number</option>[% ELSE %]<option value="itemcallnumber">Call number</option>[% END %]
+            [% IF shelf.sortfield == "dateadded" %]<option value="dateadded" selected="selected">Date added</option>[% ELSE %]<option value="dateadded">Date added</option>[% END %]
             </select></li>
             <li><label for="category">Category: </label>
                 <select id="category" name="category" onchange="AdjustRemark()">
                                 <option value="author">Author</option>
                                 <option value="copyrightdate">Copyrightdate</option>
                                 <option value="itemcallnumber">Call number</option>
+                                <option value="dateadded">Date added</option>
                             </select>
                         </th>
                         <th></th>
index a9c4da5..3cb77ed 100644 (file)
@@ -19,7 +19,7 @@
                 "dt_owner":
                     "<a href='/cgi-bin/koha/members/moremember.pl?borrowernumber=[% data.owner | html %]'>[% data.firstname | html %] [% data.surname | html %]</a>",
                 "dt_sortby":
-                    [% IF data.sortby == "author" %]"Author"[% ELSIF data.sortby == "copyrightdate" %]"Year"[% ELSIF data.sortby == "itemcallnumber" %]"Call number"[% ELSE %]"Title"[% END %],
+                    [% IF data.sortby == "author" %]"Author"[% ELSIF data.sortby == "copyrightdate" %]"Year"[% ELSIF data.sortby == "itemcallnumber" %]"Call number"[% ELSIF data.sortby == "dateadded" %]"Date added"[% ELSE %]"Title"[% END %],
                 "dt_created_on":
                     "[% data.created_on | $KohaDates %]",
                 "dt_modification_time":
index 5dce617..34b7201 100644 (file)
                                         [% ELSE %]
                                             <option value="copyrightdate">Copyright date</option>
                                         [% END %]
+
+                                        [% IF sortfield == "dateadded" %]
+                                            <option value="dateadded" selected="selected">Date added</option>
+                                        [% ELSE %]
+                                            <option value="dateadded">Date added</option>
+                                        [% END %]
                                     </select>
 
                                     <select name="direction" class="resort" onchange="$('#sorting-form').submit()">
                                             [% ELSE %]
                                                 <option value="itemcallnumber">Call number</option>
                                             [% END %]
+                                            [% IF shelf.sortfield == "dateadded" %]
+                                                <option value="dateadded" selected="selected">Date added</option>
+                                            [% ELSE %]
+                                                <option value="dateadded">Date added</option>
+                                            [% END %]
                                         </select>
                                     </li>
                                     [% IF Koha.Preference('OpacAllowPublicListCreation') OR category == PUBLIC %]
index b2799ea..4fc4efb 100755 (executable)
@@ -114,7 +114,7 @@ if ( $op eq 'add_form' ) {
     if ( $shelf ) {
         $op = $referer;
         my $sortfield = $query->param('sortfield');
-        $sortfield = 'title' unless grep {/^$sortfield$/}qw( title author copyrightdate itemcallnumber );
+        $sortfield = 'title' unless grep {/^$sortfield$/}qw( title author copyrightdate itemcallnumber dateadded );
         if ( $shelf->can_be_managed( $loggedinuser ) ) {
             $shelf->shelfname( scalar $query->param('shelfname') );
             $shelf->sortfield( $sortfield );
@@ -235,7 +235,7 @@ if ( $op eq 'view' ) {
         if ( $shelf->can_be_viewed( $loggedinuser ) ) {
             $category = $shelf->category;
             my $sortfield = $query->param('sortfield') || $shelf->sortfield;    # Passed in sorting overrides default sorting
-            $sortfield = 'title' unless grep {/^$sortfield$/}qw( title author copyrightdate itemcallnumber );
+            $sortfield = 'title' unless grep {/^$sortfield$/}qw( title author copyrightdate itemcallnumber dateadded );
             my $direction = $query->param('direction') || 'asc';
             $direction = 'asc' if $direction ne 'asc' and $direction ne 'desc';
             my ( $page, $rows );
index bc54559..2758720 100755 (executable)
@@ -101,7 +101,7 @@ if ( $op eq 'add_form' ) {
     if ( $shelf ) {
         $op = $referer;
         my $sortfield = $query->param('sortfield');
-        $sortfield = 'title' unless grep {/^$sortfield$/}qw( title author copyrightdate itemcallnumber );
+        $sortfield = 'title' unless grep {/^$sortfield$/}qw( title author copyrightdate itemcallnumber dateadded );
         if ( $shelf->can_be_managed( $loggedinuser ) ) {
             $shelf->shelfname( scalar $query->param('shelfname') );
             $shelf->sortfield( $sortfield );