Fix: Job DataTable Hide Closed

This commit is contained in:
Gary Sharp
2013-03-12 15:11:10 +11:00
parent 7020a4b02f
commit 5b7fc95786
9 changed files with 71 additions and 63 deletions
@@ -35,32 +35,40 @@
// hideStatusClosed Extension
if ($table.hasClass('hideStatusClosed')) {
var wrapper = $(this).closest('.dataTables_wrapper');
var wrapperContext = wrapper;
if (wrapper.parent('.jobTable').length > 0)
wrapperContext = wrapper.parent();
var wrapperPrev = wrapperContext.prev();
if (wrapperPrev.length > 0 && (wrapperPrev.is('h1') || wrapperPrev.is('h2') || wrapperPrev.is('h3'))) {
wrapperPrev.data('dataTable_originalContent', wrapperPrev.html()).text('Active ' + wrapperPrev.text());
} else {
wrapperPrev = null;
// Contains Closed Jobs?
var $tbody = $table.children('tbody');
var $closedJobs = $tbody.children('tr[data-status="Closed"]');
if ($closedJobs.length > 0) {
var wrapper = $(this).closest('.dataTables_wrapper');
var wrapperContext = wrapper;
if (wrapper.parent('.jobTable').length > 0)
wrapperContext = wrapper.parent();
var wrapperPrev = wrapperContext.prev();
if (wrapperPrev.length > 0 && (wrapperPrev.is('h1') || wrapperPrev.is('h2') || wrapperPrev.is('h3'))) {
wrapperPrev.data('dataTable_originalContent', wrapperPrev.html()).text('Active ' + wrapperPrev.text());
} else {
wrapperPrev = null;
}
var showClosedAnchor = $('<a class="dataTables_showStatusClosed" href="#">').text('Show Closed (' + $closedJobs.length + ')');
wrapper.prepend(showClosedAnchor);
showClosedAnchor.click(function () {
$table.removeClass('hideStatusClosed');
showClosedAnchor.remove();
if (wrapperPrev)
wrapperPrev.html(wrapperPrev.data('dataTable_originalContent'));
scrollCheck.apply($table[0]);
return false;
});
}
var showClosedAnchor = $('<a class="dataTables_showStatusClosed" href="#">').text('Show Closed');
wrapper.prepend(showClosedAnchor);
showClosedAnchor.click(function () {
$table.removeClass('hideStatusClosed');
showClosedAnchor.remove();
if (wrapperPrev)
wrapperPrev.html(wrapperPrev.data('dataTable_originalContent'));
scrollCheck.apply($table[0]);
return false;
});
}
dataTables.push(this);
});