Bug 32939: Have a generic APIClient object
[koha-ffzg.git] / koha-tmpl / intranet-tmpl / prog / js / ill-list-table.js
index 53ae1b2..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('');
@@ -126,7 +146,7 @@ $(document).ready(function() {
                 $('#illfilter_dateplaced_start, #illfilter_dateplaced_end').val('');
             }
         }
-    };
+    }; //END Filterable columns
 
     // Expand any fields we're expanding
     var expandExpand = function(row) {
@@ -154,6 +174,7 @@ $(document).ready(function() {
             }
         });
     };
+    //END Expand
 
     // Strip the expand prefix if it exists, we do this for display
     var stripPrefix = function(value) {
@@ -219,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);
         }
     };
 
@@ -322,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
@@ -362,9 +378,19 @@ $(document).ready(function() {
     // Get our data from the API and process it prior to passing
     // it to datatables
     var filterParam = prefilters ? '&' + prefilters : '';
-    var ajax = $.ajax(
-        '/api/v1/illrequests?embed=metadata,patron,capabilities,library,status_alias,comments,requested_partners'
-        + filterParam
+    // Only fire the request if we're on an appropriate page
+    if (
+        (
+            // ILL list requests page
+            window.location.href.match(/ill\/ill-requests\.pl/) &&
+            window.location.search.length == 0
+        ) ||
+        // Patron profile page
+        window.location.href.match(/members\/ill-requests\.pl/)
+    ) {
+        var ajax = $.ajax(
+            '/api/v1/illrequests?embed=metadata,patron,capabilities,library,status_alias,comments,requested_partners'
+            + filterParam
         ).done(function() {
             var data = JSON.parse(ajax.responseText);
             // Make a copy, we'll be removing columns next and need
@@ -379,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);
@@ -449,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
@@ -467,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;
@@ -496,8 +524,8 @@ $(document).ready(function() {
 
             });
 
-        }
-    );
+        });
+    } //END if window.location.search.length == 0
 
     var clearSearch = function() {
         table.api().search('').columns().search('');