Bug 20600: (follow-up) Add date range filtering
authorAndrew Isherwood <andrew.isherwood@ptfs-europe.com>
Mon, 4 Jun 2018 11:43:37 +0000 (12:43 +0100)
committerNick Clemens <nick@bywatersolutions.com>
Tue, 19 Feb 2019 16:36:43 +0000 (16:36 +0000)
It makes more sense to be able to filter placed and updated dates by
range. This patch adds that.

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

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

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

koha-tmpl/intranet-tmpl/prog/css/src/staff-global.scss
koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt

index b2647fe..d4acb08 100644 (file)
@@ -4093,8 +4093,10 @@ span {
     }
 }
 
-#illfilter_dateplaced,
-#illfilter_datemodified {
+#illfilter_dateplaced_start,
+#illfilter_datemodified_start,
+#illfilter_dateplaced_end,
+#illfilter_datemodified_end {
     width: 80%;
 }
 
index 293935f..cfc5e59 100644 (file)
                 }
             },
             dateModified: {
-                listener: function() {
-                    var me = 'dateModified';
-                    $('#illfilter_datemodified').change(function() {
-                        var val = $('#illfilter_datemodified').val();
-                        if (val && val.length > 0) {
-                            activeFilters[me] = function() {
-                                table.column(10).search(val);
-                            }
-                        } else {
-                            if (activeFilters.hasOwnProperty(me)) {
-                                delete activeFilters[me];
-                            }
-                        }
-                    });
-                },
                 clear: function() {
-                    $('#illfilter_datemodified').val('');
+                    $('#illfilter_datemodified_start, #illfilter_datemodified_end').val('');
                 }
             },
             datePlaced: {
-                listener: function() {
-                    var me = 'datePlaced';
-                    $('#illfilter_dateplaced').change(function() {
-                        var val = $('#illfilter_dateplaced').val();
-                        if (val && val.length > 0) {
-                            activeFilters[me] = function() {
-                                table.column(8).search(val);
-                            }
-                        } else {
-                            if (activeFilters.hasOwnProperty(me)) {
-                                delete activeFilters[me];
-                            }
-                        }
-                    });
-                },
                 clear: function() {
-                    $('#illfilter_dateplaced').val('');
+                    $('#illfilter_dateplaced_start, #illfilter_dateplaced_end').val('');
                 }
             }
         };
                     }
                 }));
 
+                // 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 rowPlaced = data[8] ? new Date(data[8]) : null;
+                    var rowModified = data[10] ? new Date(data[10]) : null;
+                    var placedPassed = true;
+                    var modifiedPassed = true;
+                    if (placedStart && rowPlaced && rowPlaced < placedStart) {
+                        placedPassed = false
+                    };
+                    if (placedEnd && rowPlaced && rowPlaced > placedEnd) {
+                        placedPassed = false;
+                    }
+                    if (modifiedStart && rowModified && rowModified < modifiedStart) {
+                        modifiedPassed = false
+                    };
+                    if (modifiedEnd && rowModified && rowModified > modifiedEnd) {
+                        modifiedPassed = false;
+                    }
+
+                    return placedPassed && modifiedPassed;
+
+                });
+
             }
         );
 
                             </select>
                         </li>
                         <li>
-                            <label for="illfilter_dateplaced">Date placed:</label>
-                            <input type="text" name="illfilter_dateplaced" id="illfilter_dateplaced" class="datepicker">
+                            <label for="illfilter_dateplaced_start">Date placed between:</label>
+                            <input type="text" name="illfilter_dateplaced_start" id="illfilter_dateplaced_start" class="datepicker">
+                        </li>
+                        <li>
+                            <label for="illfilter_dateplaced_end">and:</label>
+                            <input type="text" name="illfilter_dateplaced_end" id="illfilter_dateplaced_end" class="datepicker">
+                        </li>
+                        <li>
+                            <label for="illfilter_datemodified_start">Updated between:</label>
+                            <input type="text" name="illfilter_datemodified_start" id="illfilter_datemodified_start" class="datepicker">
                         </li>
                         <li>
-                            <label for="illfilter_datemodified">Updated on:</label>
-                            <input type="text" name="illfilter_datemodified" id="illfilter_datemodified" class="datepicker">
+                            <label for="illfilter_datemodified_end">and:</label>
+                            <input type="text" name="illfilter_datemodified_end" id="illfilter_datemodified_end" class="datepicker">
                         </li>
                         <li>
                             <label for="illfilter_branchname">Library:</label>