Bug 13986: Printing a list only prints the results of the page you are viewing
[koha.git] / koha-tmpl / intranet-tmpl / prog / en / modules / virtualshelves / shelves.tt
index 0c71a41..30bd124 100644 (file)
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; [% IF ( viewshelf ) %]Lists &rsaquo; Contents of [% shelfname | html %][% ELSE %]Lists[% END %][% IF ( shelves ) %] &rsaquo; Create new list[% END %][% IF ( edit ) %] &rsaquo; Edit list [% shelfname | html %][% END %]</title>
 [% INCLUDE 'doc-head-close.inc' %]
-<script type="text/javascript" src="[% themelang %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
+<link rel="stylesheet" type="text/css" href="[% themelang %]/css/datatables.css" />
+[% INCLUDE 'datatables.inc' %]
+<script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.dataTables.columnFilter.js"></script>
+
+[% IF print %]
+<script type="text/javascript">
+    $( document ).ready(function() {
+        window.print();
+        setTimeout('window.close()', 1);
+    });
+</script>
+[% END %]
+
+[% IF ( viewshelf ) %]
+    <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.checkboxes.min.js"></script>
+    <script type="text/javascript" src="[% interface %]/lib/jquery/plugins/jquery.fixFloat.js"></script>
+[% END %]
 <script type="text/javascript">
 //<![CDATA[ 
 
 var MSG_NO_ITEM_SELECTED = _("Nothing is selected.");
+var MSG_REMOVE_FROM_LIST = _("Are you sure you want to remove these items from the list?");
+var MSG_CONFIRM_DELETE_LIST = _("Are you sure you want to remove this list?");
 
+[% IF op == 'list' %]
 $(document).ready(function(){
-       $("#addbarcode").focus();
-    $("span.clearall").html("<a id=\"CheckNone\" href=\"/cgi-bin/koha/shelves.pl\">"+_('Clear all')+"<\/a>");
-    $("span.checkall").html("<a id=\"CheckAll\" href=\"/cgi-bin/koha/shelves.pl\">"+_('Select all')+"<\/a>");
+    var type = 1;
+    var dtListResults = $("#listresultst").dataTable($.extend(true, {}, dataTablesDefaults, {
+        'bServerSide': true,
+        'sAjaxSource': "/cgi-bin/koha/svc/virtualshelves/search",
+        'fnServerData': function(sSource, aoData, fnCallback) {
+            aoData.push({
+                'name': 'type',
+                'value': type,
+            },{
+                'name': 'shelfname',
+                'value': $("#searchshelfname_filter").val(),
+            },{
+                'name': 'owner',
+                'value': $("#searchowner_filter").val(),
+            },{
+                'name': 'sortby',
+                'value': $("#searchsortby_filter").val(),
+            },{
+                'name': 'template_path',
+                'value': 'virtualshelves/tables/shelves_results.tt',
+            });
+            $.ajax({
+                'dataType': 'json',
+                'type': 'POST',
+                'url': sSource,
+                'data': aoData,
+                'success': function(json){
+                    fnCallback(json);
+                }
+            });
+        },
+        'aoColumns':[
+            { 'mDataProp': 'dt_type' },
+            { 'mDataProp': 'dt_shelfname' },
+            { 'mDataProp': 'dt_count' },
+            { 'mDataProp': 'dt_owner' },
+            { 'mDataProp': 'dt_sortby' },
+            { 'mDataProp': 'dt_created_on' },
+            { 'mDataProp': 'dt_modification_time' },
+            { 'mDataProp': 'dt_action', 'bSortable': false }
+        ],
+        "aoColumnDefs": [
+            { "bVisible": false, "aTargets": [ 'NoVisible' ] }
+        ],
+        'bAutoWidth': false,
+        'sPaginationType': 'full_numbers',
+        'bFilter': false,
+        "bProcessing": true,
+        "bSortCellsTop": true
+    }));
+
+    dtListResults.fnAddFilters("filter", 750);
+
+    var tabs = $("#tabs").tabs({
+        activate: function(e, ui) {
+            var active = tabs.tabs("option", "active" );
+            if ( active == 0 ) {
+                type = 1; // private
+                dtListResults.fnDraw();
+            } else if ( active == 1 ) {
+                type = 2; // public
+                dtListResults.fnDraw();
+            }
+        }
+    });
+});
+[% END %]
+
+[% IF ( viewshelf ) %]
+$(document).ready(function(){
+    [% IF ( itemsloop ) %]$('#searchheader').fixFloat();[% END %]
+    $("span.clearall").html("<a id=\"CheckNone\" href=\"/cgi-bin/koha/shelves.pl\">"+_("Clear all")+"<\/a>");
+    $("span.checkall").html("<a id=\"CheckAll\" href=\"/cgi-bin/koha/shelves.pl\">"+_("Select all")+"<\/a>");
     $("#CheckAll").click(function(){
         $(".checkboxed").checkCheckboxes();
         return false;
@@ -19,8 +108,70 @@ $(document).ready(function(){
         $(".checkboxed").unCheckCheckboxes();
         return false;
     });
-    $("#placehold").show();
+    $(".placehold").on("click",function(e){
+        placeHold();
+        e.preventDefault();
+    });
+    $(".addtocart").show();
+    var param1 = "| <label for=\"addto\">"+_("Add to:")+"<\/label><select name=\"addto\" id=\"addto\"><option value=\"\"><\/option>";
+    [% IF ( intranetbookbag ) %]
+         param1 += "<option value=\"addtocart\">"+_("Cart")+"<\/option>";
+    [% END %]
+    [% IF ( virtualshelves ) %]
+        [% IF ( addbarshelves ) %]
+            param1 += "<optgroup label=\""+_("Your lists:")+"\">";
+            [% FOREACH addbarshelvesloo IN addbarshelvesloop %]
+                [% IF ( shelfnumber != addbarshelvesloo.shelfnumber ) %]
+                    param1 += "<option id=\"s[% addbarshelvesloo.shelfnumber %]\" value=\"addtolist\">[% addbarshelvesloo.shelfname |html %]<\/option>";
+                [% END %]
+            [% END %]
+            param1 += "<\/optgroup>";
+        [% END %]
+        [% IF ( addpubshelves ) %]
+            param1 += "<optgroup label=\""+_("Public lists:")+"\">";
+            [% FOREACH addpubshelvesloo IN addpubshelvesloop %]
+                [% IF ( shelfnumber != addpubshelvesloo.shelfnumber ) %]
+                    param1 += "<option id=\"s[% addpubshelvesloo.shelfnumber %]\" value=\"addtolist\">[% addpubshelvesloo.shelfname |html %]<\/option>";
+                [% END %]
+            [% END %]
+            param1 += "<\/optgroup>";
+        [% END %]
+        [% IF ( ( addbarshelvesloop && addbarshelvesloop.size > 9 ) || (addpubshelvesloop && addpubshelvesloop.size > 9 )) %]
+            param1 += "<option value=\"morelists\">[ "+_("More lists")+" ]<\/option>";
+        [% END %]
+        param1 +="<option value=\"newlist\">"+_("[ New list ]")+"<\/option>"
+    [% END %]
+    param1 += "<\/select> <button id=\"cartsubmit\" type=\"submit\" class=\"btn btn-mini\">"+_("Save")+"</button>";
+    $("span.addto").html(param1);
+    $("#cartsubmit").on("click",function(e){
+        cartList();
+        e.preventDefault();
+    });
+    $("#addto").change(function(){
+        cartList();
+    });
+    $(".addto").find("input:submit").click(function(e){
+        e.preventDefault();
+        cartList();
+    });
+    $("#selection_ops").show();
+    $(".merge-items").on("click",function(e){
+        e.preventDefault();
+        MergeItems();
+    });
+    $("#listform").on("submit",function(e){
+
+    });
+    $(".list-remove").on("click",function(e){
+        if($(".selection").filter(":checked").length > 0){
+            return confirm(MSG_REMOVE_FROM_LIST);
+        } else {
+            alert(MSG_NO_ITEM_SELECTED);
+            e.preventDefault();
+        }
+    });
 });
+[% END %]
 
        function confirmDelete(message){
                if (window.confirm(message)) {
@@ -37,7 +188,7 @@ $(document).ready(function(){
        var checkboxes = $("input:checkbox:checked");
         var nbCheckbox = checkboxes.length;
        if (nbCheckbox != 2) {
-           alert(_('Two records must be selected for merging.'));
+           alert(_("Two records must be selected for merging."));
        } else {
            location.href='/cgi-bin/koha/cataloguing/merge.pl?biblionumber=' + checkboxes[0].value + '&amp;biblionumber=' + checkboxes[1].value;
        }
@@ -73,7 +224,7 @@ $(document).ready(function(){
         }
         return true;
     }
-    
+
 function placeHold () {
     var checkedItems = $(".selection:checked");
     if ($(checkedItems).size() == 0) {
@@ -88,26 +239,32 @@ function placeHold () {
     $("#hold_form").submit();
     return false;
 }
-    /**
-     * This function checks to make sure a list title is assigned
-     */
-      function Check(f) {
-               var _alertString="";
-               var alertString2;
-
-           if($("#shelfname").val() == ""){
-                       _alertString += _("- You must enter a List Name") + "\n";
-               }
 
-               if (_alertString.length==0) {
-            f.submit();
-               } else {
-                       alertString2 = _("Form not submitted because of the following problem(s)");
-                       alertString2 += "\n------------------------------------------------------------------------------------\n\n";
-                       alertString2 += _alertString;
-                       alert(alertString2);
-               }
-       }
+    function cartList(){
+        var checkboxes = $("#searchresults").find(":checkbox");
+        var vshelf = vShelfAdd(checkboxes);
+        if($("#addto").find("option:selected").attr("value") == "addtolist"){
+            var shelfnumber = $("#addto").find("option:selected").attr("id").replace("s","");
+            if (vshelf) {
+                 openWindow('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?shelfnumber='+shelfnumber+'&confirm=1&' + vshelf,'popup',500,500);
+            }
+            return false;
+        } else if($("#addto").find("option:selected").attr("value") == "newlist"){
+            if (vshelf) {
+                openWindow('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?newshelf=1&' + vshelf,'popup',500,500);
+            }
+            return false;
+        } else if($("#addto").find("option:selected").attr("value") == "morelists"){
+            if (vshelf) {
+                openWindow('/cgi-bin/koha/virtualshelves/addbybiblionumber.pl?' + vshelf,'popup',500,500);
+            }
+            return false;
+        }
+        if($("#addto").find("option:selected").attr("value") == "addtocart"){
+            addMultiple(checkboxes);
+            return false;
+        }
+    }
 //]]>
 </script>
 </head>
@@ -145,7 +302,7 @@ function placeHold () {
 
 [% IF ( viewshelf ) %]&rsaquo; Contents of <i>[% shelfname | html %]</i>[% END %][% IF ( shelves ) %] &rsaquo; Create new list[% END %][% IF ( edit ) %] &rsaquo; Edit list <i>[% shelfname | html %]</i>[% END %]</div>
 
-<div id="doc" class="yui-t7">
+<div id="doc2" class="yui-t7">
  <div id="bd">
   <div id="yui-main">
    <div class="yui-g">[% INCLUDE 'virtualshelves-toolbar.inc' %]
@@ -155,12 +312,17 @@ function placeHold () {
 <div class="yui-ge">
     <div class="yui-u first">
         [% IF ( paramsloo.already ) %]<div class="dialog alert">A List named [% paramsloo.already %] already exists!</div>[% END %]
+        [% IF ( paramsloo.addshelf_failed ) %]<div class="dialog alert">List could not be created. [% IF loggedinuser==0 %](Do not use the database administrator account.)[% END %]</div>[% END %]
                [% IF ( paramsloo.status ) %]<div class="dialog alert">[% paramsloo.string %]</div>[% END %]
                [% IF ( paramsloo.nobarcode ) %]<div class="dialog alert">ERROR: No barcode given.</div>[% END %] 
-               [% IF ( paramsloo.noshelfnumber ) %]<div class="dialog alert">ERROR: No shelfnumber given.</div>[% END %] 
+        [% IF ( paramsloo.noshelfnumber ) %]<div class="dialog alert">ERROR: No list number given.</div>[% END %]
                [% IF ( paramsloo.need_confirm ) %]
                <div class="dialog alert">The list <i>[% paramsloo.need_confirm %]</i> is not empty.
-                       <br />It has <b>[% paramsloo.count %]</b> entries.
+            [% IF ( paramsloo.single ) %]
+                <br />It has <b>[% paramsloo.count %]</b> entry.
+            [% ELSE %]
+                <br />It has <b>[% paramsloo.count %]</b> entries.
+            [% END %]
                        <br />Use the "Confirm" button below to confirm deletion.
                </div>
                [% END %]
@@ -174,10 +336,10 @@ function placeHold () {
                <div class="dialog alert">A record matching barcode <b>[% paramsloo.duplicatebiblio %]</b> has already been added.</div>
                [% END %]
                 [% IF ( paramsloo.nothingdeleted) %]
-                      <div class="dialog message">Warning: You could not delete any selected items from this shelf.</div>
+                      <div class="dialog message">Warning: You could not delete any of the selected items from this list.</div>
                 [% END %]
                 [% IF ( paramsloo.somedeleted) %]
-                      <div class="dialog message">Warning: You could not delete all selected items from this shelf.</div>
+                      <div class="dialog message">Warning: You could not delete all selected items from this list.</div>
                 [% END %]
                 [% IF ( paramsloo.modifyfailure) %]
                       <div class="dialog message">ERROR: List could not be modified.</div>
@@ -191,26 +353,67 @@ function placeHold () {
    <div class="yui-g">
     [% IF ( itemsloop ) %]
 
-       <form action="/cgi-bin/koha/virtualshelves/shelves.pl" method="post" class="checkboxed">
+    <h3>Contents of <i>[% shelfname | html %]</i></h3>
+    <div class="pages">[% pagination_bar %]</div>
+    <form action="/cgi-bin/koha/virtualshelves/shelves.pl" id="listform" method="post" class="checkboxed">
         <input type="hidden" name="viewshelf" value="[% shelfnumber %]" />
         <input type="hidden" name="modifyshelfcontents" value="1" />
- <fieldset>
-  <legend>Contents of <i>[% shelfname | html %]</i></legend>
-   
- [% IF ( itemsloop ) %]
-     <p><span class="checkall"></span> |
-     <span class="clearall"></span></p>
- [% END %]
-       
- <div class="pages">[% pagination_bar %]</div>
-    <table>
+
+[% IF direction == 'asc' %]
+    [% SET new_direction = 'desc' %]
+[% ELSE %]
+    [% SET direction = 'desc' %]
+    [% SET new_direction = 'asc' %]
+[% END %]
+
+<div id="searchheader" class="noprint">
+    [% IF ( itemsloop ) %]
+        <div id="selection_ops"><span class="checkall"></span> |
+        <span class="clearall"></span>
+
+        <span class="addto">| </span>
+        &nbsp;
+        [% IF ( CAN_user_reserveforothers && DisplayMultiPlaceHold ) %]
+            <div class="btn-group"><button class="btn btn-mini placehold"><i class="icon-hold"></i> Place hold</button></div>
+        [% END %]
+        [% IF ( allowremovingitems ) %]
+            <div class="btn-group"><button type="submit" class="btn btn-mini list-remove"><i class="icon-remove-sign"></i> Remove selected</button></div>
+        [% END %]
+        [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]<div class="btn-group"><button type="submit" class="btn btn-mini merge-items"><i class="icon-merge"></i> Merge selected</button></div>[% END %]
+        </div>
+    [% END %]
+</div>
+
+    <table id="searchresults">
             <tr>
                 [% IF ( itemsloop ) %]<th class="checkall">&nbsp;</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 %]&amp;sort=title&amp;direction=[% IF sort != 'title' %]asc[% ELSE %][% new_direction %][% END %]">Title</a>
+                    [% IF sort == 'title' %]
+                        <img src="[% interface %]/[% theme %]/img/[% direction %].gif" alt="[% direction %] sort" />
+                    [% ELSE %]
+                        <img src="[% interface %]/[% theme %]/img/ascdesc.gif" alt="" />
+                    [% END %]
+                </th>
+                <th>
+                    <a href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=[% shelfnumber %]&amp;sort=author&amp;direction=[% IF sort != 'author' %]asc[% ELSE %][% new_direction %][% END %]">Author</a>
+                   [% IF sort == 'author' %]
+                        <img src="[% interface %]/[% theme %]/img/[% direction %].gif" alt="[% direction %] sort" />
+                   [% ELSE %]
+                       <img src="[% interface %]/[% theme %]/img/ascdesc.gif" alt="" />
+                   [% END %]
+                 </th>
                 <th>Date added</th>
-                <th>&nbsp;</th>
+                <th>
+                    <a href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=[% shelfnumber %]&amp;sort=itemcallnumber&amp;direction=[% IF sort != 'itemcallnumber' %]asc[% ELSE %][% new_direction %][% END %]">Call number</a>
+                   [% IF sort == 'itemcallnumber' %]
+                        <img src="[% interface %]/[% theme %]/img/[% direction %].gif" alt="[% direction %] sort" />
+                   [% ELSE %]
+                       <img src="[% interface %]/[% theme %]/img/ascdesc.gif" alt="" />
+                   [% END %]
+                 </th>
             </tr>
                [% FOREACH itemsloo IN itemsloop %]
                        [% UNLESS ( loop.odd ) %]
@@ -232,28 +435,50 @@ function placeHold () {
                 [% UNLESS ( noItemTypeImages || !itemsloo.imageurl ) %]<img src="[% itemsloo.imageurl %]" alt="[% itemsloo.description %]" title="[% itemsloo.description %]" />[% END %][% itemsloo.description %]
                        </td>[% END %]
                        <td>
-                       [% INCLUDE 'biblio-default-view.inc' biblionumber = itemsloo.biblionumber %]
-                       [% itemsloo.title |html %][% FOREACH subtitl IN itemsloo.subtitle %] [% subtitl.subfield %][% END %]</a>
+                [% IF ( itemsloo.XSLTBloc ) %]
+                    [% itemsloo.XSLTBloc %]
+                [% ELSE %]
+                    [% INCLUDE 'biblio-default-view.inc' biblionumber = itemsloo.biblionumber %]
+                    [% itemsloo.title |html %][% FOREACH subtitl IN itemsloo.subtitle %] [% subtitl.subfield %][% END %]</a>
+                [% END %]
+                    <p class="hold">
+                        [% IF ( itemsloo.notforloan ) %]
+                            <span class="noholdstext">No holds allowed</span>
+                        [% ELSE %]
+                            [% IF ( itemsloo.ITEM_RESULTS.size ) %]
+                                <a id="reserve_[% itemsloo.biblionumber %]" href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% itemsloo.biblionumber %]">Holds</a>
+                                [% IF ( holdfor ) %] <span class="holdforlink">| <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% itemsloo.biblionumber %]&amp;findborrower=[% holdfor_cardnumber %]">Place hold for [% holdfor_firstname %] [% holdfor_surname %] ([% holdfor_cardnumber %])</a></span>[% END %]
+                            [% ELSE %]
+                                <span class="noholdstext">No holds allowed</span>
+                            [% END %]
+                        [% END %]
+                        [% IF ( CAN_user_editcatalogue_edit_catalogue ) %]
+                            | <a href="/cgi-bin/koha/cataloguing/addbiblio.pl?biblionumber=[% itemsloo.biblionumber %]">Edit record</a>
+                        [% END %]
+                        [% IF ( CAN_user_editcatalogue_edit_items ) %]
+                            | <a href="/cgi-bin/koha/cataloguing/additem.pl?biblionumber=[% itemsloo.biblionumber %]">Edit items</a>
+                        [% END %]
+                    </p>
                        </td>
                        <td>[% itemsloo.author %]</td>
                        <td>[% itemsloo.dateadded %]</td>
                        <td>
-                       [% UNLESS ( itemsloo.notforloan ) %]
-                       <a href="/cgi-bin/koha/reserve/request.pl?biblionumber=[% itemsloo.biblionumber %]">Holds</a>
-                       [% END %]
-                       </td>
+                <ul>
+                [% FOREACH result IN itemsloo.ITEM_RESULTS %]
+                    <li>[% result.holdingbranch %] [% IF ( result.location_intranet ) %] ([% result.location_intranet %]) [% END %]
+                        [% IF ( result.itemcallnumber ) %]
+                            [<a href="/cgi-bin/koha/catalogue/search.pl?idx=callnum&amp;q=%22[% result.itemcallnumber |uri %]%22">[% result.itemcallnumber %]</a>]
+                        [% END %]
+                    </li>
+                [% END %]
+                </ul>
+            </td>
                        </tr>
                [% END %]<!-- /itemsloop -->
-    </table><fieldset class="action">
-        [% IF ( itemsloop ) %]
-            <input type="button" id="placehold" style="display:none" onclick="placeHold(); return false;" value="Place holds" />
-            [% IF ( allowremovingitems ) %]<input type="submit" value="Remove selected records" onclick="return confirm(_('Are you sure you want to remove these records from the shelf?'));" />[% END %]
-            <input type="submit" value="Merge selected records" onclick="return MergeItems();" />
-        [% END %]
- </fieldset>
- </fieldset>
+    </table>
+    <div class="pages">[% pagination_bar %]</div>
 </form>
+
        [% END %]
    </div>
 [% END %]<!-- /viewshelf -->
@@ -261,7 +486,7 @@ function placeHold () {
 [% IF ( allowaddingitem ) %]
 <div class="yui-g">
 <form action="/cgi-bin/koha/virtualshelves/shelves.pl" method="post">
- <fieldset class="brief">
+ <fieldset class="brief noprint">
     <legend>Add an item to <i>[% shelfname | html %]</i></legend>
         <ol>
             <li>
@@ -285,23 +510,26 @@ function placeHold () {
 [% IF ( seflag ) %]
 <div class="yui-ge">
     <div class="yui-u first">
-    <form method="post" action="/cgi-bin/koha/virtualshelves/shelves.pl">
+    <form method="post" action="/cgi-bin/koha/virtualshelves/shelves.pl" class="validated">
         <fieldset class="rows">
 
     [% IF ( shelves ) %]
-        <input type="hidden" name="shelves" value="1" />
         <legend>Create a new list</legend>
+        <input type="hidden" name="shelves" value="1" />
         <ol>
-        <li><label class="required" for="addshelf">List name:</label><input id="addshelf" type="text" name="addshelf" size="25" /></li>
+        <li><label class="required" for="addshelf">List name:</label><input id="addshelf" type="text" name="addshelf" size="25" required="required" class="required" />
+            <span class="required">Required</span>
+        </li>
         <li><span class="label">Owner: </span><input type="hidden" name="owner" id="owner" value="[% loggedinuser %]" />[% loggedinusername %]</li>
-               <li><label for="sortfield" >Sort this list by: </label>
-               <select name="sortfield" id="sortfield">
-               [% IF ( sort_title ) %]<option value="title" selected="selected">Title</option>[% ELSE %]<option value="title">Title</option>[% END %]
-               [% IF ( sort_author ) %]<option value="author" selected="selected">Author</option>[% ELSE %]<option value="author">Author</option>[% END %]
-               [% IF ( sort_copyrightdate ) %]<option value="copyrightdate" selected="selected">Copyrightdate</option>[% ELSE %]<option value="copyrightdate">Copyrightdate</option>[% END %]
-               </select></li>
+        <li><label for="sortfield" >Sort this list by: </label>
+        <select name="sortfield" id="sortfield">
+            <option value="title">Title</option>
+            <option value="author">Author</option>
+            <option value="copyrightdate">Copyrightdate</option>
+            <option value="itemcallnumber">Call number</option>
+        </select></li>
         <li><label for="category">Category: </label>
-                       <select name="category" id="category">
+            <select name="category" id="category">
                   <option value="1">Private</option>
                   <option value="2">Public</option>
                      </select></li>
@@ -310,18 +538,22 @@ function placeHold () {
     [% END %]
 
     [% IF ( edit ) %]
-               <input type="hidden" name="op" value="modifsave" />
-        [% IF ( showprivateshelves ) %]<input type="hidden" name="display" value="privateshelves" />[% END %]
-               <input type="hidden" name="shelfnumber" value="[% shelfnumber %]" />
         <legend>Edit list <i>[% shelfname | html %]</i></legend>
+        <input type="hidden" name="display" value="[% display %]" />
+        <input type="hidden" name="op" value="modifsave" />
+        [% IF ( showprivateshelves ) %]<input type="hidden" name="display" value="privateshelves" />[% END %]
+        <input type="hidden" name="shelfnumber" value="[% shelfnumber %]" />
                <ol>
-               <li><label for="shelfname">Name: </label><input type="text" id="shelfname" name="shelfname" size="25" value="[% shelfname |html %]" /></li>
+            <li><label for="shelfname" class="required">Name: </label><input type="text" id="shelfname" name="shelfname" size="25" value="[% shelfname |html %]" required="required" class="required" />
+            <span class="required">Required</span>
+        </li>
                <li><label for="owner">Owner: </label><input type="hidden" id="owner" name="owner" value="[% IF ( owner ) %][% ownername %][% ELSE %][% loggedinusername %][% END %]" />[% IF ( owner ) %][% ownername %][% ELSE %][% loggedinusername %][% END %]</li>
                <li><label for="sortfield" >Sort this list by: </label>
                <select name="sortfield">
-               [% IF ( sort_title ) %]<option value="title" selected="selected">Title</option>[% ELSE %]<option value="title">Title</option>[% END %]
-               [% IF ( sort_author ) %]<option value="author" selected="selected">Author</option>[% ELSE %]<option value="author">Author</option>[% END %]
-               [% IF ( sort_copyrightdate ) %]<option value="copyrightdate" selected="selected">Copyrightdate</option>[% ELSE %]<option value="copyrightdate">Copyrightdate</option>[% END %]
+        [% IF ( sortfield == "title" ) %]<option value="title" selected="selected">Title</option>[% ELSE %]<option value="title">Title</option>[% END %]
+        [% IF ( sortfield == "author" ) %]<option value="author" selected="selected">Author</option>[% ELSE %]<option value="author">Author</option>[% END %]
+        [% IF ( sortfield == "copyrightdate" ) %]<option value="copyrightdate" selected="selected">Copyrightdate</option>[% ELSE %]<option value="copyrightdate">Copyrightdate</option>[% END %]
+        [% IF ( sortfield == "itemcallnumber" ) %]<option value="itemcallnumber" selected="selected">Call number</option>[% ELSE %]<option value="itemcallnumber">Call number</option>[% END %]
                </select></li>
                <li><label for="category">Category: </label>
                        <select id="category" name="category">
@@ -341,16 +573,24 @@ function placeHold () {
        [% END %]
 
                </fieldset>
-               <fieldset class="action"><input type="submit" onclick="Check(this.form); return false;" value="Save" class="submit" />
-        [% IF ( showprivateshelves ) %]<a href="/cgi-bin/koha/virtualshelves/shelves.pl?display=privateshelves" class="cancel">Cancel</a>[% ELSE %]<a href="/cgi-bin/koha/virtualshelves/shelves.pl" class="cancel">Cancel</a>[% END %]
+
+    <fieldset class="action"><input type="submit" value="Save" class="submit" />
+        [% IF ( showprivateshelves ) %]
+            <a href="/cgi-bin/koha/virtualshelves/shelves.pl?display=privateshelves" class="cancel">Cancel</a>
+        [% ELSE %]
+            [% IF ( display == "viewshelf" ) %]
+               <a href="/cgi-bin/koha/virtualshelves/shelves.pl?viewshelf=[% shelfnumber %]" class="cancel">Cancel</a>
+            [% ELSE %]
+                <a href="/cgi-bin/koha/virtualshelves/shelves.pl" class="cancel">Cancel</a>
+            [% END %]
+        [% END %]
     </fieldset>
     </form>
     </div>
     <div class="yui-u">
         <div class="help"><ul>
-            <li>A <b>Private</b> list is managed by you and can be seen only by you.</li>
-            <li> A <b>Public</b> list can be seen by everybody, but managed only by you.</li>
-            <br/>
+            <li><b>Private list:</b> Is managed by you and can be seen only by you.</li>
+            <li><b>Public list:</b> Can be seen by everybody, but managed only by you.</li>
             <li>The owner of a list is always allowed to add entries, but needs permission to remove.</li>
         </ul>
         </div>
@@ -358,121 +598,50 @@ function placeHold () {
 </div>
 [% END %]<!-- /seflag -->
 
-[% UNLESS ( vseflag ) %]
-        <h2>Lists</h2>
-        <div class="statictabs">
+[% IF op == 'list' %]
+    <h2>Lists</h2>
+    <div id="tabs" class="toptabs">
         <ul>
-        [% IF ( showprivateshelves ) %]
-            <li id="privateshelves_tab" class="active"><a href="/cgi-bin/koha/virtualshelves/shelves.pl?display=privateshelves">Your lists</a></li>
-        [% ELSE %]
-            <li id="privateshelves_tab" class=""><a href="/cgi-bin/koha/virtualshelves/shelves.pl?display=privateshelves">Your lists</a></li>
-        [% END %]
-        [% IF ( showpublicshelves ) %]
-            <li id="publicshelves_tab" class="active"><a href="/cgi-bin/koha/virtualshelves/shelves.pl?display=publicshelves">Public lists</a></li>
-        [% ELSE %]
-            <li id="publicshelves_tab" class=""><a href="/cgi-bin/koha/virtualshelves/shelves.pl?display=publicshelves">Public lists</a></li>
-        [% END %]
+            <li id="privateshelves_tab" class="active"><a href="#tab_content">Your lists</a></li>
+            <li id="publicshelves_tab" class="active"><a href="#tab_content">Public lists</a></li>
         </ul>
-        [% IF ( showprivateshelves ) %]
-        <div id="privateshelves" class="tabs-container" style="display:block;">
-               [% ELSE %]
-        <div id="privateshelves" class="tabs-container" style="display:none;">
-               [% END %]
-            [% IF ( shelveslooppriv ) %]
-                       <div class="pages">[% pagination_bar %]</div>
-                       <table>
-                       <tr><th>List Name</th><th>Contents</th><th>Sort by</th><th>Type</th><th>Options</th></tr>
-                [% FOREACH shelveslooppri IN shelveslooppriv %]
-                    [% IF ( shelveslooppri.toggle ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
-        <td><a href="shelves.pl?[% IF ( shelveslooppri.showprivateshelves ) %]display=privateshelves&amp;[% END %]viewshelf=[% shelveslooppri.shelf %]&amp;shelfoff=[% shelfoff %]">[% shelveslooppri.shelfname |html %]</a></td>
-        <td>[% shelveslooppri.count %] item(s)</td>
-        <td>[% IF ( shelveslooppri.authorsort ) %]Author[% ELSIF ( shelveslooppri.yearsort ) %]Year[% ELSE %]Title[% END %]</td>
-        <td>[% IF ( shelveslooppri.viewcategory1 ) %]Private[% END %]
-                       [% IF ( shelveslooppri.viewcategory2 ) %]Public[% END %]
-               </td>
-        <td>
-            [% IF ( shelveslooppri.mine ) %]
-                               <form action="merge.pl" method="get">
-                                       <input type="hidden" name="shelf" value="[% shelveslooppri.shelf %]" />
-                               </form>
-                               <form action="shelves.pl" method="get">
-                                       <input type="hidden" name="shelfnumber" value="[% shelveslooppri.shelf %]" />
-                                       <input type="hidden" name="op" value="modif" />
-                    <input type="hidden" name="display" value="privateshelves" />
-                                       <input type="submit" class="editshelf" value="Edit" />
-                               </form>
-                               <form action="shelves.pl" method="post">
-                                   <input type="hidden" name="shelfoff" value="[% shelfoff %]" />
-                                       <input type="hidden" name="shelves" value="1" />
-                    <input type="hidden" name="display" value="privateshelves" />
-                                       <input type="hidden" name="DEL-[% shelveslooppri.shelf %]" value="1" />
-                                       [% IF ( shelveslooppri.confirm ) %]
-                                       <input type="hidden" name="CONFIRM-[% shelveslooppri.confirm %]" value="1" />
-                                       <input type="submit" class="approve" value="Confirm" />
-                                       [% ELSE %]
-                    <input type="submit" class="deleteshelf" onclick="return confirmDelete(_('Are you sure you want to remove this list?'));" value="Delete" />
-                                       [% END %]
-                               </form>
-                       [% ELSE %]
-                               None
-                       [% END %]
-               </td>
-               </tr>
-                [% END %]
-        </table>
-            [% ELSE %]
-            <p>No private lists.</p>
-            [% END %]<!-- /shelveslooppriv -->
-               </div><!-- /privateshelves -->
-
-        [% IF ( showpublicshelves ) %]
-        <div id="publicshelves" class="tabs-container" style="display:block;">
-               [% ELSE %]
-        <div id="publicshelves" class="tabs-container" style="display:none;">
-               [% END %]
-        [% IF ( shelvesloop ) %]
-               <div class="pages">[% pagination_bar %]</div>
-        <table>
-        <tr><th>List Name</th><th>Created by</th><th>Contents</th><th>Sort By</th><th>Type</th><th>Options</th></tr>
-            [% FOREACH shelvesloo IN shelvesloop %]
-                [% IF ( shelvesloo.toggle ) %]<tr class="highlight">[% ELSE %]<tr>[% END %]
-               <td><a href="shelves.pl?viewshelf=[% shelvesloo.shelf %]">[% shelvesloo.shelfname |html %]</a></td>
-        <td><a href="/cgi-bin/koha/members/moremember.pl?borrowernumber=[% shelvesloo.owner %]">[% shelvesloo.ownername %]</td>
-               <td>[% shelvesloo.count %] item(s)</td>
-        <td>[% IF ( shelvesloo.authorsort ) %]Author[% ELSIF ( shelvesloo.yearsort ) %]Year[% ELSE %]Title[% END %]</td>
-        <td>[% IF ( shelvesloo.viewcategory1 ) %]Private[% END %]
-                       [% IF ( shelvesloo.viewcategory2 ) %]Public[% END %]
-               </td>
-        <td>
-            [% IF ( shelvesloo.manageshelf ) %]
-                               <form action="shelves.pl" method="get">
-                                       <input type="hidden" name="shelfnumber" value="[% shelvesloo.shelf %]" />
-                                       <input type="hidden" name="op" value="modif" />
-                                       <input type="submit" class="editshelf" value="Edit" />
-                               </form>
-                               <form action="shelves.pl" method="post">
-                                       <input type="hidden" name="shelfoff" value="[% shelfoff %]" />
-                                       <input type="hidden" name="shelves" value="1" />
-                                       <input type="hidden" name="DEL-[% shelvesloo.shelf %]" value="1" />
-                                       [% IF ( shelvesloo.confirm ) %]
-                                       <input type="hidden" name="CONFIRM-[% shelvesloo.confirm %]" value="1" />
-                                       <input type="submit" class="approve" value="Confirm" />
-                                       [% ELSE %]
-                    <input type="submit" class="deleteshelf" onclick="return confirmDelete(_('Are you sure you want to remove this list?'));" value="Delete" />
-                                       [% END %]
-                               </form>
-                       [% ELSE %]
-                               None
-                       [% END %]
-               </td>
-               </tr>
-            [% END %]
-        </table>
-        [% ELSE %]
-            [% IF ( showpublicshelves ) %]<p>No public lists.</p>[% END %]
-        [% END %]<!-- /shelvesloop -->
-        </div><!-- /publicshelves -->
-               </div>
+
+        <div id="tab_content">
+            <table id="listresultst">
+                <thead>
+                    <tr>
+                        <th class="NoVisible">Type</th>
+                        <th>List name</th>
+                        <th>Contents</th>
+                        <th>Owner</th>
+                        <th>Sort by</th>
+                        <th>Creation date</th>
+                        <th>Modification date</th>
+                        <th>Actions</th>
+                    </tr>
+                    <tr class="filters_row">
+                        <th></th>
+                        <th><input class="filter text_filter" id="searchshelfname_filter" placeholder="List name"></th>
+                        <th></th>
+                        <th><input class="filter text_filter" id="searchowner_filter" placeholder="Owner"></th>
+                        <th>
+                            <select class="filter text_filter" id="searchsortby_filter">
+                                <option value=""></option>
+                                <option value="title">Title</option>
+                                <option value="author">Author</option>
+                                <option value="copyrightdate">Copyrightdate</option>
+                                <option value="itemcallnumber">Call number</option>
+                            </select>
+                        </th>
+                        <th></th>
+                        <th></th>
+                        <th></th>
+                    </tr>
+                </thead>
+                <tbody></tbody>
+            </table>
+        </div>
+    </div>
 [% END %]
 
 <form id="hold_form" method="get" action="/cgi-bin/koha/reserve/request.pl">