View | Details | Raw Unified | Return to bug 20600
Collapse All | Expand All

(-)a/Koha/REST/V1/Illrequests.pm (-16 / +12 lines)
Lines 58-79 sub list { Link Here
58
    # Get all requests
58
    # Get all requests
59
    my @requests = Koha::Illrequests->as_list;
59
    my @requests = Koha::Illrequests->as_list;
60
60
61
    # Create new "formatted" columns for each date column
62
    # that needs formatting
63
    foreach $req(@requests) {
64
        foreach my $field(@format_dates) {
65
            if (defined $req->{$field}) {
66
                $req->{$field . "_formatted"} = format_sqldatetime(
67
                    $req->{$field},
68
                    undef,
69
                    undef,
70
                    1
71
                );
72
            }
73
        }
74
75
    }
76
77
    # Identify patrons & branches that
61
    # Identify patrons & branches that
78
    # we're going to need and get them
62
    # we're going to need and get them
79
    my $to_fetch = {
63
    my $to_fetch = {
Lines 127-132 sub list { Link Here
127
    my @output = ();
111
    my @output = ();
128
    foreach my $req(@requests) {
112
    foreach my $req(@requests) {
129
        my $to_push = $req->unblessed;
113
        my $to_push = $req->unblessed;
114
        # Create new "formatted" columns for each date column
115
        # that needs formatting
116
        foreach my $field(@format_dates) {
117
            if (defined $to_push->{$field}) {
118
                $to_push->{$field . "_formatted"} = format_sqldatetime(
119
                    $to_push->{$field},
120
                    undef,
121
                    undef,
122
                    1
123
                );
124
            }
125
        }
130
        foreach my $p(@{$patron_arr}) {
126
        foreach my $p(@{$patron_arr}) {
131
            if ($p->{borrowernumber} == $req->borrowernumber) {
127
            if ($p->{borrowernumber} == $req->borrowernumber) {
132
                $to_push->{patron} = {
128
                $to_push->{patron} = {
(-)a/koha-tmpl/intranet-tmpl/prog/en/modules/ill/ill-requests.tt (-521 / +23 lines)
Lines 7-524 Link Here
7
[% INCLUDE 'doc-head-open.inc' %]
7
[% INCLUDE 'doc-head-open.inc' %]
8
<title>Koha &rsaquo; ILL requests</title>
8
<title>Koha &rsaquo; ILL requests</title>
9
[% INCLUDE 'doc-head-close.inc' %]
9
[% INCLUDE 'doc-head-close.inc' %]
10
[% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
11
[% Asset.css("css/datatables.css") | $raw %]
10
[% Asset.css("css/datatables.css") | $raw %]
12
[% INCLUDE 'datatables.inc' %]
13
[% INCLUDE 'calendar.inc' %]
14
<script type="text/javascript">
15
    //<![CDATA[
16
    $(document).ready(function() {
17
18
        // Illview Datatable setup
19
20
        var table;
21
22
        // Filters that are active
23
        var activeFilters = {};
24
25
        // Fields we don't want to display
26
        var ignore = [
27
            'accessurl',
28
            'backend',
29
            'branchcode',
30
            'completed',
31
            'capabilities',
32
            'cost',
33
            'medium',
34
            'notesopac',
35
            'notesstaff',
36
            'replied'
37
        ];
38
39
        // Fields we need to expand (flatten)
40
        var expand = [
41
            'metadata',
42
            'patron'
43
        ];
44
45
        // Expanded fields
46
        // This is auto populated
47
        var expanded = {};
48
49
        // The core fields that should be displayed first
50
        var core = [
51
            'metadata_author',
52
            'metadata_title',
53
            'borrowername',
54
            'patron_cardnumber',
55
            'biblio_id',
56
            'library',
57
            'status',
58
            'placed',
59
            'placed_formatted',
60
            'updated',
61
            'updated_formatted',
62
            'illrequest_id',
63
            'comments',
64
            'action' // Action should always be last
65
        ];
66
67
        // Filterable columns
68
        var filterable = {
69
            status: {
70
                prep: function(tableData, oData) {
71
                    var uniques = {};
72
                    tableData.forEach(function(row) {
73
                        var resolvedName = getStatusName(
74
                            oData[0].capabilities[row.status].name
75
                        );
76
                        uniques[resolvedName] = 1
77
                    });
78
                    Object.keys(uniques).sort().forEach(function(unique) {
79
                        $('#illfilter_status').append(
80
                            '<option value="' + unique  +
81
                            '">' + unique +  '</option>'
82
                        );
83
                    });
84
                },
85
                listener: function() {
86
                    var me = 'status';
87
                    $('#illfilter_status').change(function() {
88
                        var sel = $('#illfilter_status option:selected').val();
89
                        if (sel && sel.length > 0) {
90
                            activeFilters[me] = function() {
91
                                table.column(6).search(sel);
92
                            }
93
                        } else {
94
                            if (activeFilters.hasOwnProperty(me)) {
95
                                delete activeFilters[me];
96
                            }
97
                        }
98
                    });
99
                },
100
                clear: function() {
101
                    $('#illfilter_status').val('');
102
                }
103
            },
104
            pickupBranch: {
105
                prep: function(tableData, oData) {
106
                    var uniques = {};
107
                    tableData.forEach(function(row) {
108
                        uniques[row.library.branchname] = 1
109
                    });
110
                    Object.keys(uniques).sort().forEach(function(unique) {
111
                        $('#illfilter_branchname').append(
112
                            '<option value="' + unique  +
113
                            '">' + unique +  '</option>'
114
                        );
115
                    });
116
                },
117
                listener: function() {
118
                    var me = 'pickupBranch';
119
                    $('#illfilter_branchname').change(function() {
120
                        var sel = $('#illfilter_branchname option:selected').val();
121
                        if (sel && sel.length > 0) {
122
                            activeFilters[me] = function() {
123
                                table.column(5).search(sel);
124
                            }
125
                        } else {
126
                            if (activeFilters.hasOwnProperty(me)) {
127
                                delete activeFilters[me];
128
                            }
129
                        }
130
                    });
131
                },
132
                clear: function() {
133
                    $('#illfilter_branchname').val('');
134
                }
135
            },
136
            barcode: {
137
                listener: function() {
138
                    var me = 'barcode';
139
                    $('#illfilter_barcode').change(function() {
140
                        var val = $('#illfilter_barcode').val();
141
                        if (val && val.length > 0) {
142
                            activeFilters[me] = function() {
143
                                table.column(3).search(val);
144
                            }
145
                        } else {
146
                            if (activeFilters.hasOwnProperty(me)) {
147
                                delete activeFilters[me];
148
                            }
149
                        }
150
                    });
151
                },
152
                clear: function() {
153
                    $('#illfilter_barcode').val('');
154
                }
155
            },
156
            dateModified: {
157
                clear: function() {
158
                    $('#illfilter_datemodified_start, #illfilter_datemodified_end').val('');
159
                }
160
            },
161
            datePlaced: {
162
                clear: function() {
163
                    $('#illfilter_dateplaced_start, #illfilter_dateplaced_end').val('');
164
                }
165
            }
166
        };
167
168
        // Remove any fields we're ignoring
169
        var removeIgnore = function(dataObj) {
170
            dataObj.forEach(function(thisRow) {
171
                ignore.forEach(function(thisIgnore) {
172
                    if (thisRow.hasOwnProperty(thisIgnore)) {
173
                        delete thisRow[thisIgnore];
174
                    }
175
                });
176
            });
177
        };
178
179
        // Expand any fields we're expanding
180
        var expandExpand = function(row) {
181
            expand.forEach(function(thisExpand) {
182
                if (row.hasOwnProperty(thisExpand)) {
183
                    if (!expanded.hasOwnProperty(thisExpand)) {
184
                        expanded[thisExpand] = [];
185
                    }
186
                    var expandObj = row[thisExpand];
187
                    Object.keys(expandObj).forEach(
188
                        function(thisExpandCol) {
189
                            var expColName = thisExpand + '_' + thisExpandCol;
190
                            // Keep a list of fields that have been expanded
191
                            // so we can create toggle links for them
192
                            if (expanded[thisExpand].indexOf(expColName) == -1) {
193
                                expanded[thisExpand].push(expColName);
194
                            }
195
                            expandObj[expColName] =
196
                                expandObj[thisExpandCol];
197
                            delete expandObj[thisExpandCol];
198
                        }
199
                    );
200
                    $.extend(true, row, expandObj);
201
                    delete row[thisExpand];
202
                }
203
            });
204
        };
205
206
        // Build a de-duped list of all column names
207
        var allCols = {};
208
        core.map(function(thisCore) {
209
            allCols[thisCore] = 1;
210
        });
211
212
        // Strip the expand prefix if it exists, we do this for display
213
        var stripPrefix = function(value) {
214
            expand.forEach(function(thisExpand) {
215
                var regex = new RegExp(thisExpand + '_', 'g');
216
                value = value.replace(regex, '');
217
            });
218
            return value;
219
        };
220
221
        // Our 'render' function for borrowerlink
222
        var createPatronLink = function(data, type, row) {
223
            var patronLink = '<a title="' + _("View borrower details") + '" ' +
224
                'href="/cgi-bin/koha/members/moremember.pl?' +
225
                'borrowernumber='+row.borrowernumber+'">';
226
                if ( row.patron_firstname ) {
227
                    patronLink = patronLink + row.patron_firstname + ' ';
228
                }
229
                patronLink = patronLink + row.patron_surname + '</a>';
230
            return patronLink
231
        };
232
233
        // Our 'render' function for biblio_id
234
        var createBiblioLink = function(data, type, row) {
235
            return (row.biblio_id) ?
236
                '<a title="' + _("View biblio details") + '" ' +
237
                'href="/cgi-bin/koha/catalogue/detail.pl?biblionumber=' +
238
                row.biblio_id + '">' +
239
                row.biblio_id +
240
                '</a>' : '';
241
        };
242
243
        // Our 'render' function for the library name
244
        var createLibrary = function(data, type, row) {
245
            return row.library.branchname;
246
        };
247
248
        // Render function for request ID
249
        var createRequestId = function(data, type, row) {
250
            return row.id_prefix + row.illrequest_id;
251
        };
252
253
        // Render function for request status
254
        var createStatus = function(data, type, row, meta) {
255
            var origData = meta.settings.oInit.originalData;
256
            if (origData.length > 0) {
257
                var status_name = meta.settings.oInit.originalData[0].capabilities[
258
                    row.status
259
                ].name;
260
                return getStatusName(status_name);
261
            } else {
262
                return '';
263
            }
264
        };
265
266
        var getStatusName = function(origName) {
267
            switch( origName ) {
268
                case "New request":
269
                    return _("New request");
270
                case "Requested":
271
                    return _("Requested");
272
                case "Requested from partners":
273
                    return _("Requested from partners");
274
                case "Request reverted":
275
                    return _("Request reverted");
276
                case "Queued request":
277
                    return _("Queued request");
278
                case "Cancellation requested":
279
                    return _("Cancellation requested");
280
                case "Completed":
281
                    return _("Completed");
282
                case "Delete request":
283
                    return _("Delete request");
284
                default:
285
                    return origName;
286
            }
287
        };
288
289
        // Render function for creating a row's action link
290
        var createActionLink = function(data, type, row) {
291
            return '<a class="btn btn-default btn-sm" ' +
292
                'href="/cgi-bin/koha/ill/ill-requests.pl?' +
293
                'method=illview&amp;illrequest_id=' +
294
                row.illrequest_id +
295
                '">' + _("Manage request") + '</a>';
296
        };
297
298
        // Columns that require special treatment
299
        var specialCols = {
300
            action: {
301
                name: '',
302
                func: createActionLink
303
            },
304
            borrowername: {
305
                name: _("Patron"),
306
                func: createPatronLink
307
            },
308
            illrequest_id: {
309
                name: _("Request number"),
310
                func: createRequestId
311
            },
312
            status: {
313
                name: _("Status"),
314
                func: createStatus
315
            },
316
            biblio_id: {
317
                name: _("Bibliograpic record ID"),
318
                func: createBiblioLink
319
            },
320
            library: {
321
                name: _("Library"),
322
                func: createLibrary
323
            },
324
            updated: {
325
                name: _("Updated on"),
326
            },
327
            patron_cardnumber: {
328
                name: _("Patron barcode")
329
            }
330
        };
331
332
        // Toggle request attributes in Illview
333
        $('#toggle_requestattributes').on('click', function(e) {
334
            e.preventDefault();
335
            $('#requestattributes').toggleClass('content_hidden');
336
        });
337
338
        // Toggle new comment form in Illview
339
        $('#toggle_addcomment').on('click', function(e) {
340
            e.preventDefault();
341
            $('#addcomment').toggleClass('content_hidden');
342
        });
343
344
        // Filter partner list
345
        $('#partner_filter').keyup(function() {
346
            var needle = $('#partner_filter').val();
347
            $('#partners > option').each(function() {
348
                var regex = new RegExp(needle, 'i');
349
                if (
350
                    needle.length == 0 ||
351
                    $(this).is(':selected') ||
352
                    $(this).text().match(regex)
353
                ) {
354
                    $(this).show();
355
                } else {
356
                    $(this).hide();
357
                }
358
            });
359
        });
360
361
        // Display the modal containing request supplier metadata
362
        $('#ill-request-display-metadata').on('click', function(e) {
363
            e.preventDefault();
364
            $('#dataPreview').modal({show:true});
365
        });
366
367
        // Get our data from the API and process it prior to passing
368
        // it to datatables
369
        var ajax = $.ajax(
370
            '/api/v1/illrequests?embed=metadata,patron,capabilities,library,comments'
371
            ).done(function() {
372
                var data = JSON.parse(ajax.responseText);
373
                // Make a copy, we'll be removing columns next and need
374
                // to be able to refer to data that has been removed
375
                var dataCopy = $.extend(true, [], data);
376
                // Remove all columns we're not interested in
377
                removeIgnore(dataCopy);
378
                // Expand columns that need it and create an array
379
                // of all column names
380
                $.each(dataCopy, function(k, row) {
381
                    expandExpand(row);
382
                });
383
384
                // Assemble an array of column definitions for passing
385
                // to datatables
386
                var colData = [];
387
                Object.keys(allCols).forEach(function(thisCol) {
388
                    // Create the base column object
389
                    var colObj = {
390
                        name: thisCol,
391
                        className: thisCol,
392
                        defaultContent: ''
393
                    };
394
                    // We may need to process the data going in this
395
                    // column, so do it if necessary
396
                    if (
397
                        specialCols.hasOwnProperty(thisCol) &&
398
                        specialCols[thisCol].hasOwnProperty('func')
399
                    ) {
400
                        colObj.render = specialCols[thisCol].func;
401
                    } else {
402
                        colObj.data = thisCol;
403
                    }
404
                    colData.push(colObj);
405
                });
406
407
                // Initialise the datatable
408
                table = $('#ill-requests').DataTable($.extend(true, {}, dataTablesDefaults, {
409
                    'aoColumnDefs': [
410
                        { // Last column shouldn't be sortable or searchable
411
                            'aTargets': [ 'actions' ],
412
                            'bSortable': false,
413
                            'bSearchable': false
414
                        },
415
                        { // Hide the two date columns we use just for sorting
416
                            'aTargets': [ 'placed', 'updated' ],
417
                            'bVisible': false,
418
                            'bSearchable': true
419
                        },
420
                        { // When sorting 'placed', we want to use the
421
                          // unformatted column
422
                          'aTargets': [ 'placed_formatted'],
423
                          'iDataSort': 7
424
                        },
425
                        { // When sorting 'updated', we want to use the
426
                          // unformatted column
427
                          'aTargets': [ 'updated_formatted'],
428
                          'iDataSort': 9
429
                        }
430
                    ],
431
                    'aaSorting': [[ 9, 'desc' ]], // Default sort, updated descending
432
                    'processing': true, // Display a message when manipulating
433
                    'iDisplayLength': 10, // 10 results per page
434
                    'sPaginationType': "full_numbers", // Pagination display
435
                    'deferRender': true, // Improve performance on big datasets
436
                    'data': dataCopy,
437
                    'columns': colData,
438
                    'originalData': data, // Enable render functions to access
439
                                          // our original data
440
                    'initComplete': function() {
441
442
                        // Prepare any filter elements that need it
443
                        for (var el in filterable) {
444
                            if (filterable.hasOwnProperty(el)) {
445
                                if (filterable[el].hasOwnProperty('prep')) {
446
                                    filterable[el].prep(dataCopy, data);
447
                                }
448
                                if (filterable[el].hasOwnProperty('listener')) {
449
                                    filterable[el].listener();
450
                                }
451
                            }
452
                        }
453
454
                    }
455
                }));
456
457
                // Custom date range filtering
458
                $.fn.dataTable.ext.search.push(function(settings, data, dataIndex) {
459
                    var placedStart = $('#illfilter_dateplaced_start').datepicker('getDate');
460
                    var placedEnd = $('#illfilter_dateplaced_end').datepicker('getDate');
461
                    var modifiedStart = $('#illfilter_datemodified_start').datepicker('getDate');
462
                    var modifiedEnd = $('#illfilter_datemodified_end').datepicker('getDate');
463
                    var rowPlaced = data[7] ? new Date(data[7]) : null;
464
                    var rowModified = data[9] ? new Date(data[9]) : null;
465
                    var placedPassed = true;
466
                    var modifiedPassed = true;
467
                    if (placedStart && rowPlaced && rowPlaced < placedStart) {
468
                        placedPassed = false
469
                    };
470
                    if (placedEnd && rowPlaced && rowPlaced > placedEnd) {
471
                        placedPassed = false;
472
                    }
473
                    if (modifiedStart && rowModified && rowModified < modifiedStart) {
474
                        modifiedPassed = false
475
                    };
476
                    if (modifiedEnd && rowModified && rowModified > modifiedEnd) {
477
                        modifiedPassed = false;
478
                    }
479
480
                    return placedPassed && modifiedPassed;
481
482
                });
483
484
            }
485
        );
486
487
        var clearSearch = function() {
488
            table.search('').columns().search('');
489
            activeFilters = {};
490
            for (var filter in filterable) {
491
                if (
492
                    filterable.hasOwnProperty(filter) &&
493
                    filterable[filter].hasOwnProperty('clear')
494
                ) {
495
                    filterable[filter].clear();
496
                }
497
            }
498
            table.draw();
499
        };
500
501
        // Apply any search filters, or clear any previous
502
        // ones
503
        $('#illfilter_form').submit(function(event) {
504
            event.preventDefault();
505
            table.search('').columns().search('');
506
            for (var active in activeFilters) {
507
                if (activeFilters.hasOwnProperty(active)) {
508
                    activeFilters[active]();
509
                }
510
            }
511
            table.draw();
512
        });
513
514
        // Clear all filters
515
        $('#clear_search').click(function() {
516
            clearSearch();
517
        });
518
519
    });
520
    //]]>
521
</script>
522
</head>
11
</head>
523
12
524
<body id="illrequests" class="ill">
13
<body id="illrequests" class="ill">
Lines 942-947 Link Here
942
                                    <th class="updated_formatted">Updated on</th>
431
                                    <th class="updated_formatted">Updated on</th>
943
                                    <th>Request number</th>
432
                                    <th>Request number</th>
944
                                    <th>Comments</th>
433
                                    <th>Comments</th>
434
                                    <th class="patron_cardnumber">Patron barcode</th>
945
                                    <th class="actions"></th>
435
                                    <th class="actions"></th>
946
                                </tr>
436
                                </tr>
947
                            </thead>
437
                            </thead>
Lines 968-973 Link Here
968
[% MACRO jsinclude BLOCK %]
458
[% MACRO jsinclude BLOCK %]
969
    [% INCLUDE 'datatables.inc' %]
459
    [% INCLUDE 'datatables.inc' %]
970
    [% INCLUDE 'calendar.inc' %]
460
    [% INCLUDE 'calendar.inc' %]
461
    [% Asset.js("lib/jquery/plugins/jquery.checkboxes.min.js") | $raw %]
971
    <script>
462
    <script>
972
        $(document).ready(function() {
463
        $(document).ready(function() {
973
464
Lines 1004-1013 Link Here
1004
495
1005
            // The core fields that should be displayed first
496
            // The core fields that should be displayed first
1006
            var core = [
497
            var core = [
1007
                'metadata_Author',
498
                'metadata_author',
1008
                'metadata_Title',
499
                'metadata_title',
1009
                'borrowername',
500
                'borrowername',
1010
                'patron_cardnumber',
1011
                'biblio_id',
501
                'biblio_id',
1012
                'library',
502
                'library',
1013
                'status',
503
                'status',
Lines 1016-1021 Link Here
1016
                'updated',
506
                'updated',
1017
                'updated_formatted',
507
                'updated_formatted',
1018
                'illrequest_id',
508
                'illrequest_id',
509
                'comments',
510
                'patron_cardnumber',
1019
                'action'
511
                'action'
1020
            ];
512
            ];
1021
513
Lines 1043-1049 Link Here
1043
                            var sel = $('#illfilter_status option:selected').val();
535
                            var sel = $('#illfilter_status option:selected').val();
1044
                            if (sel && sel.length > 0) {
536
                            if (sel && sel.length > 0) {
1045
                                activeFilters[me] = function() {
537
                                activeFilters[me] = function() {
1046
                                    table.column(6).search(sel);
538
                                    table.column(5).search(sel);
1047
                                }
539
                                }
1048
                            } else {
540
                            } else {
1049
                                if (activeFilters.hasOwnProperty(me)) {
541
                                if (activeFilters.hasOwnProperty(me)) {
Lines 1075-1081 Link Here
1075
                            var sel = $('#illfilter_branchname option:selected').val();
567
                            var sel = $('#illfilter_branchname option:selected').val();
1076
                            if (sel && sel.length > 0) {
568
                            if (sel && sel.length > 0) {
1077
                                activeFilters[me] = function() {
569
                                activeFilters[me] = function() {
1078
                                    table.column(5).search(sel);
570
                                    table.column(4).search(sel);
1079
                                }
571
                                }
1080
                            } else {
572
                            } else {
1081
                                if (activeFilters.hasOwnProperty(me)) {
573
                                if (activeFilters.hasOwnProperty(me)) {
Lines 1095-1101 Link Here
1095
                            var val = $('#illfilter_barcode').val();
587
                            var val = $('#illfilter_barcode').val();
1096
                            if (val && val.length > 0) {
588
                            if (val && val.length > 0) {
1097
                                activeFilters[me] = function() {
589
                                activeFilters[me] = function() {
1098
                                    table.column(3).search(val);
590
                                    table.column(12).search(val);
1099
                                }
591
                                }
1100
                            } else {
592
                            } else {
1101
                                if (activeFilters.hasOwnProperty(me)) {
593
                                if (activeFilters.hasOwnProperty(me)) {
Lines 1276-1281 Link Here
1276
                $('#requestattributes').toggleClass('content_hidden');
768
                $('#requestattributes').toggleClass('content_hidden');
1277
            });
769
            });
1278
770
771
            // Toggle new comment form in Illview
772
            $('#toggle_addcomment').on('click', function(e) {
773
                e.preventDefault();
774
                $('#addcomment').toggleClass('content_hidden');
775
            });
776
1279
            // Filter partner list
777
            // Filter partner list
1280
            $('#partner_filter').keyup(function() {
778
            $('#partner_filter').keyup(function() {
1281
                var needle = $('#partner_filter').val();
779
                var needle = $('#partner_filter').val();
Lines 1302-1308 Link Here
1302
            // Get our data from the API and process it prior to passing
800
            // Get our data from the API and process it prior to passing
1303
            // it to datatables
801
            // it to datatables
1304
            var ajax = $.ajax(
802
            var ajax = $.ajax(
1305
                '/api/v1/illrequests?embed=metadata,patron,capabilities,library'
803
                '/api/v1/illrequests?embed=metadata,patron,capabilities,library,comments'
1306
                ).done(function() {
804
                ).done(function() {
1307
                    var data = JSON.parse(ajax.responseText);
805
                    var data = JSON.parse(ajax.responseText);
1308
                    // Make a copy, we'll be removing columns next and need
806
                    // Make a copy, we'll be removing columns next and need
Lines 1361-1366 Link Here
1361
                              // unformatted column
859
                              // unformatted column
1362
                              'aTargets': [ 'updated_formatted'],
860
                              'aTargets': [ 'updated_formatted'],
1363
                              'iDataSort': 9
861
                              'iDataSort': 9
862
                            },
863
                            {
864
                                'aTargets': [ 'patron_cardnumber' ],
865
                                'bVisible': false,
866
                                'bSearchable': true
1364
                            }
867
                            }
1365
                        ],
868
                        ],
1366
                        'aaSorting': [[ 9, 'desc' ]], // Default sort, updated descending
869
                        'aaSorting': [[ 9, 'desc' ]], // Default sort, updated descending
Lines 1394-1401 Link Here
1394
                        var placedEnd = $('#illfilter_dateplaced_end').datepicker('getDate');
897
                        var placedEnd = $('#illfilter_dateplaced_end').datepicker('getDate');
1395
                        var modifiedStart = $('#illfilter_datemodified_start').datepicker('getDate');
898
                        var modifiedStart = $('#illfilter_datemodified_start').datepicker('getDate');
1396
                        var modifiedEnd = $('#illfilter_datemodified_end').datepicker('getDate');
899
                        var modifiedEnd = $('#illfilter_datemodified_end').datepicker('getDate');
1397
                        var rowPlaced = data[7] ? new Date(data[7]) : null;
900
                        var rowPlaced = data[6] ? new Date(data[6]) : null;
1398
                        var rowModified = data[9] ? new Date(data[9]) : null;
901
                        var rowModified = data[8] ? new Date(data[8]) : null;
1399
                        var placedPassed = true;
902
                        var placedPassed = true;
1400
                        var modifiedPassed = true;
903
                        var modifiedPassed = true;
1401
                        if (placedStart && rowPlaced && rowPlaced < placedStart) {
904
                        if (placedStart && rowPlaced && rowPlaced < placedStart) {
1402
- 

Return to bug 20600