Bug 32939: Have a generic APIClient object
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / ill-list-table.js
index 1365174..d6e92cc 100644 (file)
@@ -32,7 +32,7 @@ $(document).ready(function() {
                         resolvedName = row.status_alias.lib;
                     } else {
                         resolvedName = getStatusName(
-                            oData[0].capabilities[row.status].name,
+                            row.capabilities[row.status].name,
                             row
                         );
                     }
@@ -116,6 +116,26 @@ $(document).ready(function() {
                 $('#illfilter_patron').val('');
             }
         },
+        keyword: {
+            listener: function () {
+                var me = 'keyword';
+                $('#illfilter_keyword').change(function () {
+                    var val = $('#illfilter_keyword').val();
+                    if (val && val.length > 0) {
+                        activeFilters[me] = function () {
+                            table.api().search(val);
+                        }
+                    } else {
+                        if (activeFilters.hasOwnProperty(me)) {
+                            delete activeFilters[me];
+                        }
+                    }
+                });
+            },
+            clear: function () {
+                $('#illfilter_keyword').val('');
+            }
+        },
         dateModified: {
             clear: function() {
                 $('#illfilter_datemodified_start, #illfilter_datemodified_end').val('');
@@ -220,15 +240,8 @@ $(document).ready(function() {
                 ? row.status_alias.lib
                 : row.status_alias.authorised_value;
         } else {
-            var origData = meta.settings.oInit.originalData;
-            if (origData.length > 0) {
-                var status_name = meta.settings.oInit.originalData[0].capabilities[
-                    row.status
-                ].name;
-                return getStatusName(status_name, row);
-            } else {
-                return '';
-            }
+            var status_name = row.capabilities[row.status].name;
+            return getStatusName(status_name, row);
         }
     };
 
@@ -323,20 +336,22 @@ $(document).ready(function() {
     });
 
     // Filter partner list
+    // Record the list of all options
+    var ill_partner_options = $('#partners > option');
     $('#partner_filter').keyup(function() {
         var needle = $('#partner_filter').val();
-        $('#partners > option').each(function() {
-            var regex = new RegExp(needle, 'i');
+        var regex = new RegExp(needle, 'i');
+        var filtered = [];
+        ill_partner_options.each(function() {
             if (
                 needle.length == 0 ||
                 $(this).is(':selected') ||
                 $(this).text().match(regex)
             ) {
-                $(this).show();
-            } else {
-                $(this).hide();
+                filtered.push($(this));
             }
         });
+        $('#partners').empty().append(filtered);
     });
 
     // Display the modal containing request supplier metadata
@@ -390,7 +405,8 @@ $(document).ready(function() {
             // Assemble an array of column definitions for passing
             // to datatables
             var colData = [];
-            columns_settings.forEach(function(thisCol) {
+            var columns = table_settings['columns'];
+            columns.forEach(function(thisCol) {
                 var colName = thisCol.columnname;
                 // Create the base column object
                 var colObj = $.extend({}, thisCol);
@@ -460,6 +476,7 @@ $(document).ready(function() {
                 'sPaginationType': "full_numbers", // Pagination display
                 'deferRender': true, // Improve performance on big datasets
                 'data': dataCopy,
+                "dom": '<"top pager"<"table_entries"ilp><"table_controls"B>>tr<"bottom pager"ip>',
                 'columns': colData,
                 'originalData': data, // Enable render functions to access
                                         // our original data
@@ -478,14 +495,14 @@ $(document).ready(function() {
                     }
 
                 }
-            }, columns_settings);
+            }, table_settings);
 
             // Custom date range filtering
             $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {
-                var placedStart = $('#illfilter_dateplaced_start').datepicker('getDate');
-                var placedEnd = $('#illfilter_dateplaced_end').datepicker('getDate');
-                var modifiedStart = $('#illfilter_datemodified_start').datepicker('getDate');
-                var modifiedEnd = $('#illfilter_datemodified_end').datepicker('getDate');
+                var placedStart = $('#illfilter_dateplaced_start').get(0)._flatpickr.selectedDates[0];
+                var placedEnd = $('#illfilter_dateplaced_end').get(0)._flatpickr.selectedDates[0];
+                var modifiedStart = $('#illfilter_datemodified_start').get(0)._flatpickr.selectedDates[0];
+                var modifiedEnd = $('#illfilter_datemodified_end').get(0)._flatpickr.selectedDates[0];
                 var rowPlaced = data[14] ? new Date(data[14]) : null;
                 var rowModified = data[16] ? new Date(data[16]) : null;
                 var placedPassed = true;