Bug 22175: Make stock rotation table sortable
authorOwen Leonard <oleonard@myacpl.org>
Fri, 25 Jan 2019 14:02:01 +0000 (14:02 +0000)
committerNick Clemens <nick@bywatersolutions.com>
Thu, 18 Apr 2019 10:53:05 +0000 (10:53 +0000)
This patch adds sorting and column configuration to the stock
rotation tables, both rotas and items. No new defaults for the table are
defined.

To test, apply the patch and clear your browser cache if necessary.

 - Go to Tools -> Stock rotation.
   - In the table of rotas test that sorting works correctly.
   - Test that the "Column visibility" button works to show and hide
     columns. The "actions" column should be excluded.
   - Test that export options (Excel, CSV, etc) exclude the "actions"
     column.
   - Choose a rota with multiple items on it and select manage ->
     items. Repeat the above DataTables functionality tests.

 - Go to Administration -> Columns settings and edit the default
   configuration of the stock rotation tables. Confirm that these
   changes are reflected in the corresponding tables.

Signed-off-by: Jose-Mario Monteiro-Santos <jose-mario.monteiro-santos@inLibro.com>

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

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

admin/columns_settings.yml
koha-tmpl/intranet-tmpl/prog/en/modules/tools/stockrotation.tt
koha-tmpl/intranet-tmpl/prog/js/pages/stockrotation.js

index f033cd3..f484ed9 100644 (file)
@@ -967,3 +967,38 @@ modules:
           columnname: actions
           cannot_be_toggled: 1
           cannot_be_modified: 1
+
+    stockrotation:
+      stock_rotation:
+        -
+          columnname: name
+        -
+          columnname: cyclical
+        -
+          columnname: active
+        -
+          columnname: description
+        -
+          columnname: number_of_items
+        -
+          columnname: actions
+          cannot_be_toggled: 1
+          cannot_be_modified: 1
+
+      stock_rotation_manage_items:
+        -
+          columnname: barcode
+        -
+          columnname: title
+        -
+          columnname: author
+        -
+          columnname: call_number
+        -
+          columnname: in_transit
+        -
+          columnname: stages
+        -
+          columnname: actions
+          cannot_be_toggled: 1
+          cannot_be_modified: 1
index cddab8d..719dac4 100644 (file)
@@ -3,6 +3,7 @@
 [% USE Koha %]
 [% USE Branches %]
 [% USE KohaDates %]
+[% USE ColumnsSettings %]
 [% SET footerjs = 1 %]
 [% INCLUDE 'doc-head-open.inc' %]
 <title>Koha &rsaquo; Stock rotation</title>
                     <h2>Stock rotation</h2>
 
                     [% IF existing_rotas.size > 0 %]
-                        <table class="rotas_table" role="grid">
+                        <table id="stock_rotation" class="rotas_table" role="grid">
                             <thead>
                                 <tr>
-                                <th>Name</th>
+                                <th class="anti-the">Name</th>
                                 <th>Cyclical</th>
                                 <th>Active</th>
                                 <th>Description</th>
                                 <th>Number of items</th>
-                                <th>&nbsp;</th>
+                                <th class="NoSort">&nbsp;</th>
                                 </tr>
                             </thead>
                             <tbody>
                                                 <i class="fa fa-pencil"></i>
                                                 Edit
                                             </a>
-                                            <div class="btn-group" role="group">
+                                            <div class="btn-group dropup" role="group">
                                                 <button type="button" class="btn btn-default btn-xs dropdown-toggle" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">
                                                     Manage
                                                     <i class="fa fa-caret-down"></i>
                                                 </button>
-                                                <ul class="dropdown-menu">
+                                                <ul class="dropdown-menu pull-right">
                                                     <li><a href="?op=manage_stages&amp;rota_id=[% rota.rota_id | uri %]">Stages</a></li>
                                                     [% IF CAN_user_stockrotation_manage_rota_items && rota.stockrotationstages.count > 0 %]
                                                     <li><a href="?op=manage_items&amp;rota_id=[% rota.rota_id | uri %]">Items</a></li>
 
                     [% IF items.count > 0 %]
                         <h3>Manage items assigned to &quot;[% rota.title | html %]&quot;</h3>
-                        <table id="sr_manage_items" class="items_table" role="grid">
+                        <table id="stock_rotation_manage_items" class="items_table" role="grid">
                             <thead>
                                 <tr>
-                                <th>Barcode</th>
-                                <th>Title</th>
-                                <th>Author</th>
-                                <th>Callnumber</th>
-                                <th class="NoSearch">In transit</th>
-                                <th class="NoSort">Stages &amp; duration in days<br>(current stage highlighted)</th>
-                                <th class="NoSort">&nbsp;</th>
+                                    <th>Barcode</th>
+                                    <th>Title</th>
+                                    <th>Author</th>
+                                    <th>Call number</th>
+                                    <th class="NoSearch">In transit</th>
+                                    <th class="NoSort">Stages &amp; duration in days<br>(current stage highlighted)</th>
+                                    <th class="NoSort">&nbsp;</th>
                                 </tr>
                             </thead>
                             <tbody>
 
                 [% END %]
             </div>
+
             </main>
         </div> <!-- /.col-sm-10.col-sm-push-2 -->
 
         </div> <!-- /.col-sm-2.col-sm-pull-10 -->
     </div> <!-- /.row -->
 
-
 [% MACRO jsinclude BLOCK %]
     [% Asset.js("js/tools-menu.js") | $raw %]
     [% INCLUDE 'datatables.inc' %]
+    [% INCLUDE 'columns_settings.inc' %]
     [% Asset.js("js/pages/stockrotation.js") | $raw %]
     <script>
-        $(document).ready(function() {
-            $('#sr_manage_items').dataTable($.extend(true, {}, dataTablesDefaults, {
-                "autoWidth": false,
-                "aoColumnDefs": [
-                    { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
-                    { "bSortable": true, "bSearchable": false, 'aTargets': [ 'NoSearch' ] }
-                ],
-                "sPaginationType": "four_button"
-            }));
-        });
+        var stock_rotation_items_columns_settings = [% ColumnsSettings.GetColumns( 'tools', 'stockrotation', 'stock_rotation_manage_items', 'json' ) | $raw %];
+        var stock_rotation_columns_settings = [% ColumnsSettings.GetColumns( 'tools', 'stockrotation', 'stock_rotation', 'json' ) | $raw %];
     </script>
 [% END %]
 
index 2763945..b9493df 100644 (file)
@@ -1,3 +1,5 @@
+/* global KohaTable columns_settings */
+
 function init() {
     $('#ajax_status').hide();
     $('#ajax_saving_msg').hide();
@@ -62,4 +64,25 @@ $(document).ready(function() {
             })
         }
     });
+
+    KohaTable("stock_rotation_manage_items", {
+        "aoColumnDefs": [
+            { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
+            { "sType": "anti-the", "aTargets": [ "anti-the" ] }
+        ],
+        "sPaginationType": "four_button",
+        "autoWidth": false,
+        "exportColumns": [0,1,2,3,4,5]
+    }, stock_rotation_items_columns_settings);
+
+    KohaTable("stock_rotation", {
+        "aoColumnDefs": [
+            { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
+            { "sType": "anti-the", "aTargets": [ "anti-the" ] }
+        ],
+        "sPaginationType": "four_button",
+        "autoWidth": false,
+        "exportColumns": [0,1,2,3,4]
+    }, stock_rotation_columns_settings);
+
 });