annotate core/modules/system/js/system.modules.js @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 /**
Chris@0 2 * DO NOT EDIT THIS FILE.
Chris@0 3 * See the following change record for more information,
Chris@0 4 * https://www.drupal.org/node/2815083
Chris@0 5 * @preserve
Chris@0 6 **/
Chris@0 7
Chris@0 8 (function ($, Drupal, debounce) {
Chris@0 9 Drupal.behaviors.tableFilterByText = {
Chris@0 10 attach: function attach(context, settings) {
Chris@0 11 var $input = $('input.table-filter-text').once('table-filter-text');
Chris@0 12 var $table = $($input.attr('data-table'));
Chris@0 13 var $rowsAndDetails = void 0;
Chris@0 14 var $rows = void 0;
Chris@0 15 var $details = void 0;
Chris@0 16 var searching = false;
Chris@0 17
Chris@0 18 function hidePackageDetails(index, element) {
Chris@0 19 var $packDetails = $(element);
Chris@0 20 var $visibleRows = $packDetails.find('tbody tr:visible');
Chris@0 21 $packDetails.toggle($visibleRows.length > 0);
Chris@0 22 }
Chris@0 23
Chris@0 24 function filterModuleList(e) {
Chris@0 25 var query = $(e.target).val();
Chris@0 26
Chris@0 27 var re = new RegExp('\\b' + query, 'i');
Chris@0 28
Chris@0 29 function showModuleRow(index, row) {
Chris@0 30 var $row = $(row);
Chris@0 31 var $sources = $row.find('.table-filter-text-source, .module-name, .module-description');
Chris@0 32 var textMatch = $sources.text().search(re) !== -1;
Chris@0 33 $row.closest('tr').toggle(textMatch);
Chris@0 34 }
Chris@0 35
Chris@0 36 $rowsAndDetails.show();
Chris@0 37
Chris@0 38 if (query.length >= 2) {
Chris@0 39 searching = true;
Chris@0 40 $rows.each(showModuleRow);
Chris@0 41
Chris@0 42 $details.not('[open]').attr('data-drupal-system-state', 'forced-open');
Chris@0 43
Chris@0 44 $details.attr('open', true).each(hidePackageDetails);
Chris@0 45
Chris@17 46 Drupal.announce(Drupal.t('!modules modules are available in the modified list.', {
Chris@17 47 '!modules': $rowsAndDetails.find('tbody tr:visible').length
Chris@17 48 }));
Chris@0 49 } else if (searching) {
Chris@0 50 searching = false;
Chris@0 51 $rowsAndDetails.show();
Chris@0 52
Chris@0 53 $details.filter('[data-drupal-system-state="forced-open"]').removeAttr('data-drupal-system-state').attr('open', false);
Chris@0 54 }
Chris@0 55 }
Chris@0 56
Chris@0 57 function preventEnterKey(event) {
Chris@0 58 if (event.which === 13) {
Chris@0 59 event.preventDefault();
Chris@0 60 event.stopPropagation();
Chris@0 61 }
Chris@0 62 }
Chris@0 63
Chris@0 64 if ($table.length) {
Chris@0 65 $rowsAndDetails = $table.find('tr, details');
Chris@0 66 $rows = $table.find('tbody tr');
Chris@0 67 $details = $rowsAndDetails.filter('.package-listing');
Chris@0 68
Chris@0 69 $input.on({
Chris@0 70 keyup: debounce(filterModuleList, 200),
Chris@0 71 keydown: preventEnterKey
Chris@0 72 });
Chris@0 73 }
Chris@0 74 }
Chris@0 75 };
Chris@0 76 })(jQuery, Drupal, Drupal.debounce);