From 27bc891ca1237c22d27befdf30e2a5ee02a8ce81 Mon Sep 17 00:00:00 2001 From: David Kinzer Date: Thu, 2 Feb 2023 16:46:53 -0500 Subject: [PATCH] Update javascript assets. --- .../javascripts/blacklight/blacklight.js | 134 +++++++----------- 1 file changed, 52 insertions(+), 82 deletions(-) diff --git a/app/assets/javascripts/blacklight/blacklight.js b/app/assets/javascripts/blacklight/blacklight.js index ca85c669ec..1c51ee6f99 100644 --- a/app/assets/javascripts/blacklight/blacklight.js +++ b/app/assets/javascripts/blacklight/blacklight.js @@ -13,7 +13,6 @@ var Blacklight = function () { }, listeners: function listeners() { var listeners = []; - if (typeof Turbo !== 'undefined') { listeners.push('turbo:load'); } else if (typeof Turbolinks !== 'undefined' && Turbolinks.supported) { @@ -27,23 +26,23 @@ var Blacklight = function () { } else { listeners.push('DOMContentLoaded'); } - return listeners; } }; -}(); // turbolinks triggers page:load events on page transition -// If app isn't using turbolinks, this event will never be triggered, no prob. - +}(); +// turbolinks triggers page:load events on page transition +// If app isn't using turbolinks, this event will never be triggered, no prob. Blacklight.listeners().forEach(function (listener) { document.addEventListener(listener, function () { Blacklight.activate(); }); }); Blacklight.onLoad(function () { - var elem = document.querySelector('.no-js'); // The "no-js" class may already have been removed because this function is - // run on every turbo:load event, in that case, it won't find an element. + var elem = document.querySelector('.no-js'); + // The "no-js" class may already have been removed because this function is + // run on every turbo:load event, in that case, it won't find an element. if (!elem) return; elem.classList.remove('no-js'); elem.classList.add('js'); @@ -56,11 +55,9 @@ Blacklight.onLoad(function () { $('[data-autocomplete-enabled="true"]').each(function () { var $el = $(this); - if ($el.hasClass('tt-hint')) { return; } - var suggestUrl = $el.data().autocompletePath; var terms = new Bloodhound({ datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'), @@ -82,7 +79,6 @@ Blacklight.onLoad(function () { }); }); }); - (function ($) { //change form submit toggle to checkbox Blacklight.doBookmarkToggleBehavior = function () { @@ -90,7 +86,6 @@ Blacklight.onLoad(function () { console.warn("do_bookmark_toggle_behavior is deprecated. Use doBookmarkToggleBehavior instead."); return Blacklight.do_bookmark_toggle_behavior(); } - $(Blacklight.doBookmarkToggleBehavior.selector).blCheckboxSubmit({ // cssClass is added to elements added, plus used for id base cssClass: 'toggle-bookmark', @@ -101,13 +96,11 @@ Blacklight.onLoad(function () { } }); }; - Blacklight.doBookmarkToggleBehavior.selector = 'form.bookmark-toggle'; Blacklight.onLoad(function () { Blacklight.doBookmarkToggleBehavior(); }); })(jQuery); - Blacklight.onLoad(function () { // Button clicks should change focus. As of 10/3/19, Firefox for Mac and // Safari both do not set focus to a button on button click. @@ -148,23 +141,23 @@ Blacklight.onLoad(function () { } }); */ - (function ($) { $.fn.blCheckboxSubmit = function (argOpts) { this.each(function () { var options = $.extend({}, $.fn.blCheckboxSubmit.defaults, argOpts); var form = $(this); - form.children().hide(); //We're going to use the existing form to actually send our add/removes + form.children().hide(); + //We're going to use the existing form to actually send our add/removes //This works conveneintly because the exact same action href is used //for both bookmarks/$doc_id. But let's take out the irrelevant parts //of the form to avoid any future confusion. + form.find('input[type=submit]').remove(); - form.find('input[type=submit]').remove(); //View needs to set data-doc-id so we know a unique value + //View needs to set data-doc-id so we know a unique value //for making DOM id - - var uniqueId = form.attr('data-doc-id') || Math.random(); // if form is currently using method delete to change state, + var uniqueId = form.attr('data-doc-id') || Math.random(); + // if form is currently using method delete to change state, // then checkbox is currently checked - var checked = form.find('input[name=_method][value=delete]').length != 0; var checkbox = $('').addClass(options.cssClass).attr('id', options.cssClass + '_' + uniqueId); var label = $('