(options)
| 445 | } |
| 446 | |
| 447 | function DateCell(options) { |
| 448 | return _.defaults(options, { |
| 449 | title: options.title |
| 450 | , defaultOrder: 'desc' |
| 451 | , build: function() { |
| 452 | var td = document.createElement('td') |
| 453 | td.appendChild(document.createTextNode('')) |
| 454 | return td |
| 455 | } |
| 456 | , update: function(td, item) { |
| 457 | var t = td.firstChild |
| 458 | var date = options.value(item) |
| 459 | if (date) { |
| 460 | t.nodeValue = date.getFullYear() |
| 461 | + '-' |
| 462 | + zeroPadTwoDigit(date.getMonth() + 1) |
| 463 | + '-' |
| 464 | + zeroPadTwoDigit(date.getDate()) |
| 465 | } |
| 466 | else { |
| 467 | t.nodeValue = '' |
| 468 | } |
| 469 | return td |
| 470 | } |
| 471 | , compare: function(a, b) { |
| 472 | var va = options.value(a) || 0 |
| 473 | var vb = options.value(b) || 0 |
| 474 | return va - vb |
| 475 | } |
| 476 | , filter: (function() { |
| 477 | function dateNumber(d) { |
| 478 | return d |
| 479 | ? d.getFullYear() * 10000 + d.getMonth() * 100 + d.getDate() |
| 480 | : 0 |
| 481 | } |
| 482 | return function(item, filter) { |
| 483 | var filterDate = new Date(filter.query) |
| 484 | var va = dateNumber(options.value(item)) |
| 485 | var vb = dateNumber(filterDate) |
| 486 | return filterOps[filter.op || '='](va, vb) |
| 487 | } |
| 488 | })() |
| 489 | }) |
| 490 | } |
| 491 | |
| 492 | function LinkCell(options) { |
| 493 | return _.defaults(options, { |
no test coverage detected