jQuery(document).ready(function($) { // @awt2542 PR #867 var lastChecked = null; $(document).on('click', '.InputfieldCheckboxes ul input[type=checkbox]', function(e) { var $checkboxes = $(this).closest('ul').find('input[type=checkbox]'); if(!lastChecked) { lastChecked = this; return; } if(e.shiftKey) { var start = $checkboxes.index(this); var end = $checkboxes.index(lastChecked); // $checkboxes.slice(Math.min(start,end), Math.max(start,end)+ 1).attr('checked', lastChecked.checked); // JQM $checkboxes.slice(Math.min(start,end), Math.max(start,end)+ 1).prop('checked', lastChecked.checked ? true : false); } lastChecked = this; }); // abandon columns if it results in multi-line label wrapping $(document).on('resized', '.InputfieldCheckboxes, .InputfieldPage', function(e) { $(this).find('.InputfieldCheckboxesColumns').each(function() { var $ul = $(this); var height = 0; var collapseColumns = false; $ul.children('li').each(function() { var $li = $(this); if(collapseColumns) return; if(!height) { height = $li.height(); return; } var diff = Math.abs($li.height() - height); if(diff > 5) collapseColumns = true; }); if(collapseColumns) { $ul.removeClass('InputfieldCheckboxesColumns'); $ul.find('li').css('width', '100%'); } }); }); $(document).on('reloaded', '.InputfieldCheckboxes, .InputfieldPage', function(e) { if($(this).find('.InputfieldCheckboxesColumns').length) $(this).trigger('resized'); }); $(".InputfieldCheckboxesColumns").closest('.Inputfield').trigger('resized'); });