Bug 26234: Teach our KohaTable constructor the specific th classes
authorJonathan Druart <jonathan.druart@bugs.koha-community.org>
Tue, 18 Aug 2020 09:59:24 +0000 (09:59 +0000)
committerJonathan Druart <jonathan.druart@bugs.koha-community.org>
Wed, 19 Aug 2020 06:24:04 +0000 (08:24 +0200)
We have different classes we can use to set specific behaviours on
table columns: title-string, string-sort, anti-the and NoSort.
We should not need to pass them to the DataTable constructor, we could
teach it that we always want to apply them.

It will avoid bug like bug 26233

The goal is to define them in a centralised place
(columns_settings.inc) then only use the class on the th

Test plan:
Different behaviour and tables must be tested to confirm it works
correctly. Focus must be put on table when aoColumnsDefs is passed from
the template and confirm that this will add more info to aoColumnsDefs
and not remove the existing ones.

Note that this only work when KohaTable is used.

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

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

Signed-off-by: Jonathan Druart <jonathan.druart@bugs.koha-community.org>

31 files changed:
koha-tmpl/intranet-tmpl/prog/en/includes/columns_settings.inc
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/basket.tt
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/duplicate_orders.tt
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/histsearch.tt
koha-tmpl/intranet-tmpl/prog/en/modules/acqui/lateorders.tt
koha-tmpl/intranet-tmpl/prog/en/modules/admin/authorised_values.tt
koha-tmpl/intranet-tmpl/prog/en/modules/admin/currency.tt
koha-tmpl/intranet-tmpl/prog/en/modules/admin/itemtypes.tt
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/detail.tt
koha-tmpl/intranet-tmpl/prog/en/modules/catalogue/issuehistory.tt
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/additem.tt
koha-tmpl/intranet-tmpl/prog/en/modules/cataloguing/z3950_search.tt
koha-tmpl/intranet-tmpl/prog/en/modules/circ/overdue.tt
koha-tmpl/intranet-tmpl/prog/en/modules/circ/pendingreserves.tt
koha-tmpl/intranet-tmpl/prog/en/modules/circ/view_holdsqueue.tt
koha-tmpl/intranet-tmpl/prog/en/modules/circ/waitingreserves.tt
koha-tmpl/intranet-tmpl/prog/en/modules/course_reserves/course-details.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/boraccount.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/holdshistory.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/pay.tt
koha-tmpl/intranet-tmpl/prog/en/modules/members/readingrec.tt
koha-tmpl/intranet-tmpl/prog/en/modules/patron_lists/list.tt
koha-tmpl/intranet-tmpl/prog/en/modules/pos/pay.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/guided_reports_start.tt
koha-tmpl/intranet-tmpl/prog/en/modules/reports/orders_by_budget.tt
koha-tmpl/intranet-tmpl/prog/en/modules/serials/subscription-detail.tt
koha-tmpl/intranet-tmpl/prog/en/modules/suggestion/suggestion.tt
koha-tmpl/intranet-tmpl/prog/js/cataloging_additem.js
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-details.tt
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-course-reserves.tt
koha-tmpl/opac-tmpl/bootstrap/en/modules/opac-detail.tt

index c8b01e0..9a5eb31 100644 (file)
@@ -127,8 +127,21 @@ function KohaTable(id_selector, dt_parameters, columns_settings, add_filters) {
         thead_row.before(clone);
     }
 
-    table.dataTable($.extend(true, {}, dataTablesDefaults, dt_parameters));
+    var new_parameters = {}
+    $.extend(true, new_parameters, dataTablesDefaults, dt_parameters);
+    var default_column_defs = [
+        { "aTargets": [ "title-string" ], "sType": "title-string" },
+       { "aTargets": [ "string-sort" ],  "sType": "string" },
+       { "aTargets": [ "anti-the" ],     "sType": "anti-the" },
+       { "aTargets": [ "NoSort" ],       "bSortable": false, "bSearchable": false },
+    ];
+    if ( new_parameters["aoColumnDefs"] === undefined ) {
+        new_parameters["aoColumnDefs"] = default_column_defs;
+    } else {
+        $.extend(true, new_parameters, default_column_defs);
+    }
 
+    table.dataTable(new_parameters);
     table.DataTable().on("column-visibility.dt", function(){
         if( typeof columnsInit == 'function' ){
             // This function can be created separately and used to trigger
index a9359d3..0c3cd0e 100644 (file)
         [% SET table_settings = TablesSettings.GetTableSettings( 'acqui', 'basket', 'orders' ) %];
         $(document).ready(function() {
             KohaTable("orders", {
-                [% IF ( active ) %]
-                    "aoColumnDefs": [
-                        { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
-                        { "sType": "anti-the", "aTargets": [ "anti-the" ] }
-                    ],
-                [% END %]
                 "sPaginationType": "full",
                 "autoWidth": false,
                 "exportColumns": [0,1,2,3,4,5,6,7,8,9,10,11,12,13],
index e6300bb..34f2332 100644 (file)
@@ -321,10 +321,6 @@ Basket [% basket.basketno | html %] &rsaquo; Duplicate existing orders
             $('span.hint').hide();
             var columns_settings;// = [% TablesSettings.GetColumns( 'acqui', 'histsearch', 'histsearcht', 'json' ) | $raw %];
             KohaTable("table_orders", {
-                "aoColumnDefs": [
-                    { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                ],
                 "bPaginate": false
             }, columns_settings );
 
index 06b2a5b..e4f0f2f 100644 (file)
         $(document).ready(function() {
             var columns_settings = [% TablesSettings.GetColumns( 'acqui', 'histsearch', 'histsearcht', 'json' ) | $raw %];
             KohaTable("histsearcht", {
-                "aoColumnDefs": [
-                    { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                ],
                 "sPaginationType": "full"
             }, columns_settings );
 
index d573938..1c81deb 100644 (file)
 
             var columns_settings = [% TablesSettings.GetColumns( 'acqui', 'lateorders', 'late_orders', 'json' ) | $raw %];
             late_orderst = KohaTable("late_orders", {
-                "aoColumnDefs": [
-                    { "targets": [ "NoSort" ],"sortable": false,"searchable": false },
-                    { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                ],
                 "sorting": [[ 1, "asc" ]],
                 "sPaginationType": "full",
                 "bAutoWidth": false,
index 17bd962..57a8379 100644 (file)
         <th>Description (OPAC)</th>
         <th>Icon</th>
         <th>Library limitations</th>
-        <th class="noExport">Actions</th>
+        <th class="noExport NoSort">Actions</th>
         </tr>
     </thead><tbody>
     [% FOREACH loo IN loop %]
             var columns_settings = []; // Empty because there are no columns we want to be configurable
 
             KohaTable("categoriest", {
-                "aoColumnDefs": [
-                    { "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
-                ],
                 "aaSorting": [[ 0, "asc" ]],
                 "sPaginationType": "full"
             }, columns_settings);
index 874ae51..90279ac 100644 (file)
             <th class="title-string">Last updated</th>
             <th>Active</th>
             <th>Archived</th>
-            <th>Actions</th>
+            <th class="NoSort">Actions</th>
         </tr>
       </thead>
       <tbody>
             columns_settings = [% TablesSettings.GetColumns( 'admin', 'currency', 'currencies-table', 'json' ) | $raw %]
             var issuest = KohaTable("currencies-table", {
                 dom: 'B<"clearfix">t',
-                "columnDefs": [
-                    { "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                    ],
             }, columns_settings );
 
             // prevents users to check active with a currency != 1
index 87d5c82..53ab7d2 100644 (file)
@@ -404,7 +404,7 @@ Item types administration
             <th>Processing fee (when lost)</th>
             <th>Checkin message</th>
             <th>Library limitations</th>
-            <th class="noExport">Actions</th>
+            <th class="noExport NoSort">Actions</th>
           </thead>
           [% FOREACH itemtype IN itemtypes %]
             <tr>
@@ -538,9 +538,6 @@ Item types administration
 
             $(document).ready(function() {
                 KohaTable("table_item_type", {
-                    "aoColumnDefs": [
-                        { "aTargets": [ -1 ], "bSortable": false, "bSearchable": false },
-                    ],
                 "aaSorting": [[ 1, "asc" ]],
                 "iDisplayLength": 10,
                 "sPaginationType": "full"
index 0d8a3f6..0c7576a 100644 (file)
@@ -1233,10 +1233,6 @@ Note that permanent location is a code, and location may be an authval.
                     'sDom': 't',
                     'bPaginate': false,
                     'bAutoWidth': false,
-                    "aoColumnDefs": [
-                        { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
-                        { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                    ],
                     "bKohaColumnsUseNames": true,
                     "sDom": 'C<"top pager"ilpfB><"#filter_c">tr<"bottom pager"ip>',
                 };
@@ -1250,9 +1246,6 @@ Note that permanent location is a code, and location may be an authval.
                     'bPaginate': false,
                     'bAutoWidth': false,
                     "aaSorting": [[ 4, "desc" ]],
-                    "aoColumnDefs": [
-                        { "aTargets": "title-string", "sType": "title-string" }
-                    ]
                 }, columns_settings);
             [% END %]
 
index 7ced03d..f9dab56 100644 (file)
             columns_settings.splice(0,1);
             [% END %]
             var table = KohaTable("table_issues", {
-                "aoColumnDefs": [
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                ],
                 "sDom": 'C<"top pager"ilpfB><"#filter_c">tr<"bottom pager"ip>',
                 "aaSorting": [[ 4, "desc" ]],
                 "sPaginationType": "full_numbers"
index 0516957..c31441b 100644 (file)
@@ -51,7 +51,7 @@
         <table id="itemst">
           <thead>
             <tr>
-                <th>&nbsp;</th>
+                <th class="NoSort">&nbsp;</th>
                 [% FOREACH item_header IN item_header_loop %]
                     [% IF item_header.column_name %]
                         [% IF date_fields.grep(item_header.column_name).size %]
index 5481a8c..1eade10 100644 (file)
             var columns_settings = [% TablesSettings.GetColumns( 'cataloguing', 'z3950_search', 'resultst', 'json' ) | $raw %];
             var thetable = KohaTable("resultst", {
                 "aoColumnDefs": [
-                    { "targets": [ "NoSort" ],"sortable": false,"searchable": false },
                     { "aTargets": [ 1 ], "sType": "nsb-nse" },
                 ],
                 "aaSorting": [[ 1, "asc" ]],
index 9cdf671..422b42f 100644 (file)
             KohaTable("overduest", {
                 "sPaginationType": "full",
                 "aaSorting": [[0, 'asc']],
-                "aoColumnDefs": [
-                    { "sType": "title-string", "aTargets": [ "title-string" ] },
-                    { "sType": "anti-the", "aTargets" : [ "anti-the" ] }
-                ],
                 "autoWidth": false,
                 "stateSave": true
             }, columns_settings);
index af6c811..09ab989 100644 (file)
         $(document).ready(function() {
           var columns_settings = [% TablesSettings.GetColumns('circ', 'holds', 'holds-to-pull', 'json') | $raw %];
           var holdst = KohaTable("holdst", {
-            "aoColumnDefs": [
-                { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                { "sType": "title-string", "aTargets" : [ "title-string" ] },
-                { "sType": "string", "aTargets": [ "string-sort" ] }
-            ],
             "sPaginationType": "full_numbers"
           }, columns_settings);
           holdst.fnAddFilters("filter");
index a261345..2fe8d4e 100644 (file)
@@ -50,7 +50,7 @@
 <table id="holdst">
        <thead>
     <tr>
-        <th class="hq-title">Title</th>
+        <th class="hq-title anti-the">Title</th>
         <th class="hq-collection">Collection</th>
         <th class="hq-itemtype">Item type</th>
         <th class="hq-callnumber">Call number</th>
@@ -59,7 +59,7 @@
         <th class="hq-barcode">Barcode</th>
         <th class="hq-patron">Patron</th>
         <th class="hq-sendto">Send to</th>
-        <th class="hq-date">Date</th>
+        <th class="hq-date title-string">Date</th>
         <th class="hq-notes">Notes</th>
     </tr>
     <tr>
             var columns_settings = [% TablesSettings.GetColumns('circ', 'view_holdsqueue', 'holds-table', 'json') | $raw %];
             var holdst = KohaTable("holdst", {
                 "aaSorting": [[ 3, "asc" ]],
-                "aoColumns": [
-                    { "sType": "anti-the" },null,null,null,null,null,null,null,null,{ "sType": "title-string" },null
-                ],
                 "sDom": 'B<"clearfix">t',
                 "bSortCellsTop": true,
                 "bPaginate": false
index b1a49e4..38882f3 100644 (file)
         $(document).ready(function() {
 
             KohaTable("holdst", {
-                "aoColumnDefs": [
-                    { "sortable": false, "searchable": false, 'targets': [ 'NoSort' ] },
-                    { "type": "anti-the", "targets" : [ "anti-the" ] },
-                    { "type": "title-string", "targets" : [ "title-string" ] }
-                ],
                 "sPaginationType": "full"
             }, holdst_columns_settings);
 
             KohaTable("holdso", {
-                "aoColumnDefs": [
-                    { "sortable": false, "searchable": false, 'targets': [ 'NoSort' ] },
-                    { "type": "anti-the", "targets" : [ "anti-the" ] },
-                    { "type": "title-string", "targets" : [ "title-string" ] }
-                ],
                 "sPaginationType": "full"
             }, holdso_columns_settings);
 
index 7e9855f..317a304 100644 (file)
@@ -77,7 +77,7 @@
             <table id="course_reserves_table">
                 <thead>
                     <tr>
-                        <th class="antithe">Title</th>
+                        <th class="anti-the">Title</th>
                         <th>Author</th>
                         <th>Barcode</th>
                         <th>Call number</th>
             var rtable = KohaTable("course_reserves_table", {
                 "sPaginationType": "full",
                 "bAutoWidth": false,
-                "aoColumnDefs": [
-                    { 'bSortable': false, 'aTargets': [ 'NoSort' ] },
-                    { 'sType': "anti-the", 'aTargets' : [ 'antithe'] }
-                ]
             }, columns_settings );
 
             $(".delete_item").click(function(){
index 94f0b96..ec554de 100644 (file)
@@ -55,7 +55,7 @@
           <th>Note</th>
           <th>Amount</th>
           <th>Outstanding</th>
-          <th>Actions</th>
+          <th class="NoSort">Actions</th>
         </tr>
     </thead>
 
                 "sPaginationType": "full",
                 'aaSorting': [[0, 'desc']],
                 "sDom": 'C<"top pager"ilpfB><"#filter_c">tr<"bottom pager"ip>',
-                "aoColumnDefs": [
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] },
-                    { "bSortable": false, "bSearchable": false, "aTargets": [-1] }
-                ]
             }, columns_settings);
             $("#filter_c").html('<p><a href="#" id="filter_transacs"><i class="fa fa-filter"></i> '+txtActivefilter+'</a>');
             $('#filter_transacs').click(function(e) {
index 5b93bce..0e8ab42 100644 (file)
                 "sPaginationType": "full",
                 "aaSorting": [[4, 'desc']],
                 "sDom": 'C<"top pager"ilpfB><"#filter_c">tr<"bottom pager"ip>',
-                "aoColumnDefs": [
-                    { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                ]
             }, columns_settings);
         });
     </script>
index 3ca90b4..fa6c646 100644 (file)
 
             var columns_settings = [% TablesSettings.GetColumns('members', 'pay', 'pay-fines-table', 'json') | $raw %];
             KohaTable("finest", {
-                "columnDefs": [
-                    { "bSortable": false, "bSearchable": false, 'aTargets': [ 'NoSort' ] },
-                    { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                ],
                 "paging": false,
                 'sorting': [[ 3, "asc" ]],
                 "autoWidth": false
index 2e45c50..f7aec9e 100644 (file)
                 "sPaginationType": "full",
                 "aaSorting": [[10, 'desc']],
                 "sDom": 'C<"top pager"ilpfB><"#filter_c">tr<"bottom pager"ip>',
-                "aoColumnDefs": [
-                    { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                    { "sType": "title-string", "aTargets" : [ "title-string" ] }
-                ]
             }, columns_settings);
 
             var tabs = $("#tabs").tabs({
index 2f68bdc..65f340b 100644 (file)
             <table id="patron-list-table">
                 <thead>
                     <tr>
-                        <th>&nbsp;</th>
+                        <th class="NoSort">&nbsp;</th>
                         <th>Card</th>
                         <th>First name</th>
                         <th>Surname</th>
                         <th>Address</th>
                         <th>Category</th>
                         <th>Library</th>
-                        <th>Expires on</th>
+                        <th class="title-string">Expires on</th>
                         <th>Circ notes</th>
                     </tr>
                 </thead>
                 var columns_settings_table = [% TablesSettings.GetColumns('members', 'patron-lists', 'patron-list-table', 'json') | $raw %]
                 KohaTable('patron-list-table', {
                     "order": [[ 3, "asc" ]],
-                    "aoColumns": [
-                        null,null,null,null,null,null,null,{ "sType": "title-string" },null
-                    ],
-                    "aoColumnDefs": [
-                        { "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
-                    ],
                     "sPaginationType": "full"
                 }, columns_settings_table);
 
index 43b8d32..663c6d6 100644 (file)
@@ -53,8 +53,8 @@
                                 <tr>
                                     <th>Code</th>
                                     <th>Description</th>
-                                    <th>Cost</th>
-                                    <th>Action</th>
+                                    <th class="NoSort">Cost</th>
+                                    <th class="NoSort">Action</th>
                                 </tr>
                             </thead>
                             <tbody>
         var items_table = KohaTable("invoices", {
                "sPaginationType": "full",
                "aaSorting": [[ 0, "asc" ]],
-               "aoColumnDefs": [
-                  { "aTargets": [ -1, -2 ], "bSortable": false, "bSearchable":false },
-               ],
         }, items_columns_settings);
 
         $(".add_button").on("click", function(e) {
index a7a52b7..658cef5 100644 (file)
                                     <table id="table_reports">
                                         <thead>
                                             <tr>
-                                                <th>&nbsp;</th>
+                                                <th class="NoSort">&nbsp;</th>
                                                 <th>ID</th>
                                                 <th>Report name</th>
                                                 <th>Type</th>
                                                 [% ELSE %]
                                                     <th class="hidden">&nbsp;</th>
                                                 [% END %]
-                                                <th>Actions</th>
+                                                <th class="NoSort">Actions</th>
                                             </tr>
                                         </thead>
                                         <tbody>
                     'sPaginationType': 'full',
                     'aaSorting': [[ 1, "asc" ]],
                     'aoColumnDefs': [
-                        { 'bSortable': false, 'bSearchable':false, 'aTargets': [0, -1] },
                         { 'bSearchable': false, 'aTargets': [3] },
                         { "aTargets": [ 1, 2 ], "sType": "natural"  },
-                        { "sType": "title-string", "aTargets" : [ "title-string" ] },
                         { "visible": false, "aTargets" : [ "hidden" ] }
                     ],
                     'oLanguage': {
index 274bf4c..6c23dc7 100644 (file)
         [% SET table_settings = TablesSettings.GetTableSettings( 'reports', 'orders_by_fund', 'funds-table' ) %];
         $(document).ready( function () {
             var funds_table = KohaTable("funds", {
-                "columnDefs": [
-                    { "sortable": false, "searchable": false, 'targets': [ 'NoSort' ] },
-                    { "type": "title-string", "targets" : [ "title-string" ] }
-                ],
                 "pageLength": [% table_settings.default_display_length | html %],
                 "order": [[ [% table_settings.default_sort_order | html %], 'asc']],
                 'autoWidth': false,
index d707974..a651a7e 100644 (file)
                 "aoColumnDefs": [
                     { "bVisible": false, "aTargets": [ 'NoVisible' ] },
                     { "bSortable": false, "aTargets": ["_all"] },
-                    { "aTargets": "title-string", "sType": "title-string" }
                 ],
 
                 'bPaginate': false,
index 02321e8..17d1363 100644 (file)
                         KohaTable("table_[% loop.count| html %]", {
                             "sorting": [[ 1, "asc" ]],
                             "autoWidth": false,
-                            "columnDefs": [
-                                { "sortable": false, "searchable": false, 'targets': [ 'NoSort' ] },
-                                { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
-                            ]
                         }, columns_settings );
                     [% END %]
                 [% END %]
index e3e7467..a453411 100644 (file)
@@ -45,9 +45,6 @@ $(document).ready(function(){
     columns_settings.unshift( { cannot_be_toggled: "1" } );
 
     var itemst = KohaTable("itemst", {
-        "aoColumnDefs": [
-            { "aTargets": [ 0 ], "bSortable": false, "bSearchable": false },
-        ],
         'bPaginate': false,
         'bInfo': false,
         "bAutoWidth": false,
index c7bd1a1..9813cfb 100644 (file)
             "dom": '<"top"flp>rt<"clear">',
             "sorting": [[ 1, "asc" ]],
             "autoWidth": false,
-            "asColumnDefs": [
-                { "type": "anti-the", "targets" : [ "anti-the" ] },
-                { "type": "title-string", "targets" : [ "title-string" ] },
-            ]
         }, columns_settings );
     });
     </script>
index 1ef6d43..6149ce1 100644 (file)
@@ -76,8 +76,6 @@
             "sorting": [[ 1, "asc" ]],
             "autoWidth": false,
             "asColumnDefs": [
-                { "sortable": false, "searchable": false, 'targets': [ 'NoSort' ] },
-                { "sType": "anti-the", "aTargets" : [ "anti-the" ] },
                 { "aTargets": [ 1 ], "sType": "nsb-nse" },
             ]
         }, columns_settings );
index 1e3f2ac..6d9bc45 100644 (file)
             dom: '<"clearfix">t',
             "columnDefs": [
                 { "targets": [ -1 ], "sortable": false, "searchable": false },
-                { "type": "title-string", "targets" : [ "title-string" ] }
                 ],
             "bKohaColumnsUseNames": true,
             "autoWidth": false
             dom: '<"clearfix">t',
             "columnDefs": [
                 { "targets": [ -1 ], "sortable": false, "searchable": false },
-                { "type": "title-string", "targets" : [ "title-string" ] }
                 ],
             "bKohaColumnsUseNames": true,
             "autoWidth": false
         KohaTable("#subscriptionst", {
             dom: '<"clearfix">t',
             "sorting": [[ 1, "desc" ]],
-            "columnDefs": [
-                { "type": "title-string", "targets" : [ "title-string" ] }
-                ],
             "autoWidth": false,
             "bKohaColumnsUseNames": true
         }, serial_column_settings);