claro-8.x-1.x-dev/js/claro.tableselect.js
js/claro.tableselect.js
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 | /** * DO NOT EDIT THIS FILE. * See the following change record for more information, * @preserve **/ ( function ($, Drupal) { Drupal.tableSelect = function (index, value) { if ($(value).find( 'td input[type="checkbox"]' ).length === 0) { return ; } var table = value; var checkboxes = void 0; var lastChecked = void 0; var $table = $(table); var strings = { selectAll: Drupal.t( 'Select all rows in this table' ), selectNone: Drupal.t( 'Deselect all rows in this table' ) }; var updateSelectAll = function updateSelectAll(state) { $table.prev( 'table.sticky-header' ).addBack().find( 'th.select-all input[type="checkbox"]' ).each( function (i, element) { var $checkbox = $(element); var stateChanged = $checkbox.prop( 'checked' ) !== state; $checkbox.attr( 'title' , state ? strings.selectNone : strings.selectAll); if (stateChanged) { $checkbox.prop( 'checked' , state).trigger( 'change' ); } }); }; $table.find( 'th.select-all' ).prepend($(Drupal.theme( 'checkbox' )).attr( 'title' , strings.selectAll)).on( 'click' , function (event) { if ($(event.target).is( 'input[type="checkbox"]' )) { checkboxes.each( function (i, element) { var $checkbox = $(element); var stateChanged = $checkbox.prop( 'checked' ) !== event.target.checked; if (stateChanged) { $checkbox.prop( 'checked' , event.target.checked).trigger( 'change' ); } $checkbox.closest( 'tr' ).toggleClass( 'selected' , event.target.checked); }); updateSelectAll(event.target.checked); } }); checkboxes = $table.find( 'td input[type="checkbox"]:enabled' ).on( 'click' , function (e) { $(e.target).closest( 'tr' ).toggleClass( 'selected' , e.target.checked); if (e.shiftKey && lastChecked && lastChecked !== e.target) { Drupal.tableSelectRange($(e.target).closest( 'tr' )[0], $(lastChecked).closest( 'tr' )[0], e.target.checked); } updateSelectAll(checkboxes.length === checkboxes.filter( ':checked' ).length); lastChecked = e.target; }); updateSelectAll(checkboxes.length === checkboxes.filter( ':checked' ).length); }; })(jQuery, Drupal); |