Files
old-experiments/backend/wordpress/wp-content/plugins/gravityflow-master/js/frontend.js
2018-06-28 10:02:07 +02:00

80 lines
2.2 KiB
JavaScript

(function (GravityFlowFrontEnd, $) {
$(document).ready(function () {
var checks, first, last, checked, sliced, mobileEvent, transitionTimeout, focusedRowActions, $firstHeading,
lastClicked = false;
// check all checkboxes
$('tbody').children().children('.check-column').find(':checkbox').click(function (e) {
if ('undefined' == e.shiftKey) {
return true;
}
if (e.shiftKey) {
if (!lastClicked) {
return true;
}
checks = $(lastClicked).closest('form').find(':checkbox');
first = checks.index(lastClicked);
last = checks.index(this);
checked = $(this).prop('checked');
if (0 < first && 0 < last && first != last) {
sliced = ( last > first ) ? checks.slice(first, last) : checks.slice(last, first);
sliced.prop('checked', function () {
if ($(this).closest('tr').is(':visible'))
return checked;
return false;
});
}
}
lastClicked = this;
// toggle "check all" checkboxes
var unchecked = $(this).closest('tbody').find(':checkbox').filter(':visible').not(':checked');
$(this).closest('table').children('thead, tfoot').find(':checkbox').prop('checked', function () {
return ( 0 === unchecked.length );
});
return true;
});
$('thead, tfoot').find('.check-column :checkbox').on('click.wp-toggle-checkboxes', function (event) {
var $this = $(this),
$table = $this.closest('table'),
controlChecked = $this.prop('checked'),
toggle = event.shiftKey || $this.data('wp-toggle');
$table.children('tbody').filter(':visible')
.children().children('.check-column').find(':checkbox')
.prop('checked', function () {
if ($(this).is(':hidden')) {
return false;
}
if (toggle) {
return !$(this).prop('checked');
} else if (controlChecked) {
return true;
}
return false;
});
$table.children('thead, tfoot').filter(':visible')
.children().children('.check-column').find(':checkbox')
.prop('checked', function () {
if (toggle) {
return false;
} else if (controlChecked) {
return true;
}
return false;
});
});
});
}(window.GravityFlowFrontEnd = window.GravityFlowFrontEnd || {}, jQuery));