From 22c029c8ad96733d14de81eb6c77c6ce3053dc49 Mon Sep 17 00:00:00 2001 From: Justin Coyne Date: Fri, 13 Dec 2024 11:29:11 -0600 Subject: [PATCH] Remove Bootstrap 4 custom file input plugin We use Bootstrap 5 --- app/assets/javascripts/application.js | 2 - app/assets/javascripts/custom-file-input.js | 3 - .../javascripts/bs-custom-file-input.js | 166 ------------------ 3 files changed, 171 deletions(-) delete mode 100644 app/assets/javascripts/custom-file-input.js delete mode 100644 vendor/assets/javascripts/bs-custom-file-input.js diff --git a/app/assets/javascripts/application.js b/app/assets/javascripts/application.js index 517b1cd84..2661203dc 100644 --- a/app/assets/javascripts/application.js +++ b/app/assets/javascripts/application.js @@ -22,7 +22,6 @@ //= require popper //= require twitter/typeahead //= require bootstrap -//= require bs-custom-file-input //= require bibliography //= require cited_documents @@ -36,6 +35,5 @@ //= require openseadragon //= require spotlight //= require table_of_contents -//= require custom-file-input //= require site_search_type_toggle //= require blacklight_heatmaps_overrides diff --git a/app/assets/javascripts/custom-file-input.js b/app/assets/javascripts/custom-file-input.js deleted file mode 100644 index 1ac36e43e..000000000 --- a/app/assets/javascripts/custom-file-input.js +++ /dev/null @@ -1,3 +0,0 @@ -Blacklight.onLoad(function() { - bsCustomFileInput.init() -}); diff --git a/vendor/assets/javascripts/bs-custom-file-input.js b/vendor/assets/javascripts/bs-custom-file-input.js deleted file mode 100644 index 50b76dd20..000000000 --- a/vendor/assets/javascripts/bs-custom-file-input.js +++ /dev/null @@ -1,166 +0,0 @@ -/*! - * bsCustomFileInput v1.3.2 (https://github.com/Johann-S/bs-custom-file-input) - * Copyright 2018 - 2019 Johann-S - * Licensed under MIT (https://github.com/Johann-S/bs-custom-file-input/blob/master/LICENSE) - */ -(function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : - typeof define === 'function' && define.amd ? define(factory) : - (global = global || self, global.bsCustomFileInput = factory()); -}(this, function () { 'use strict'; - - var Selector = { - CUSTOMFILE: '.custom-file input[type="file"]', - CUSTOMFILELABEL: '.custom-file-label', - FORM: 'form', - INPUT: 'input' - }; - - var textNodeType = 3; - - var getDefaultText = function getDefaultText(input) { - var defaultText = ''; - var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL); - - if (label) { - defaultText = label.innerHTML; - } - - return defaultText; - }; - - var findFirstChildNode = function findFirstChildNode(element) { - if (element.childNodes.length > 0) { - var childNodes = [].slice.call(element.childNodes); - - for (var i = 0; i < childNodes.length; i++) { - var node = childNodes[i]; - - if (node.nodeType !== textNodeType) { - return node; - } - } - } - - return element; - }; - - var restoreDefaultText = function restoreDefaultText(input) { - var defaultText = input.bsCustomFileInput.defaultText; - var label = input.parentNode.querySelector(Selector.CUSTOMFILELABEL); - - if (label) { - var element = findFirstChildNode(label); - element.innerHTML = defaultText; - } - }; - - var fileApi = !!window.File; - var FAKE_PATH = 'fakepath'; - var FAKE_PATH_SEPARATOR = '\\'; - - var getSelectedFiles = function getSelectedFiles(input) { - if (input.hasAttribute('multiple') && fileApi) { - return [].slice.call(input.files).map(function (file) { - return file.name; - }).join(', '); - } - - if (input.value.indexOf(FAKE_PATH) !== -1) { - var splittedValue = input.value.split(FAKE_PATH_SEPARATOR); - return splittedValue[splittedValue.length - 1]; - } - - return input.value; - }; - - function handleInputChange() { - var label = this.parentNode.querySelector(Selector.CUSTOMFILELABEL); - - if (label) { - var element = findFirstChildNode(label); - var inputValue = getSelectedFiles(this); - - if (inputValue.length) { - element.innerHTML = inputValue; - } else { - restoreDefaultText(this); - } - } - } - - function handleFormReset() { - var customFileList = [].slice.call(this.querySelectorAll(Selector.INPUT)).filter(function (input) { - return !!input.bsCustomFileInput; - }); - - for (var i = 0, len = customFileList.length; i < len; i++) { - restoreDefaultText(customFileList[i]); - } - } - - var customProperty = 'bsCustomFileInput'; - var Event = { - FORMRESET: 'reset', - INPUTCHANGE: 'change' - }; - var bsCustomFileInput = { - init: function init(inputSelector, formSelector) { - if (inputSelector === void 0) { - inputSelector = Selector.CUSTOMFILE; - } - - if (formSelector === void 0) { - formSelector = Selector.FORM; - } - - var customFileInputList = [].slice.call(document.querySelectorAll(inputSelector)); - var formList = [].slice.call(document.querySelectorAll(formSelector)); - - for (var i = 0, len = customFileInputList.length; i < len; i++) { - var input = customFileInputList[i]; - Object.defineProperty(input, customProperty, { - value: { - defaultText: getDefaultText(input) - }, - writable: true - }); - handleInputChange.call(input); - input.addEventListener(Event.INPUTCHANGE, handleInputChange); - } - - for (var _i = 0, _len = formList.length; _i < _len; _i++) { - formList[_i].addEventListener(Event.FORMRESET, handleFormReset); - - Object.defineProperty(formList[_i], customProperty, { - value: true, - writable: true - }); - } - }, - destroy: function destroy() { - var formList = [].slice.call(document.querySelectorAll(Selector.FORM)).filter(function (form) { - return !!form.bsCustomFileInput; - }); - var customFileInputList = [].slice.call(document.querySelectorAll(Selector.INPUT)).filter(function (input) { - return !!input.bsCustomFileInput; - }); - - for (var i = 0, len = customFileInputList.length; i < len; i++) { - var input = customFileInputList[i]; - restoreDefaultText(input); - input[customProperty] = undefined; - input.removeEventListener(Event.INPUTCHANGE, handleInputChange); - } - - for (var _i2 = 0, _len2 = formList.length; _i2 < _len2; _i2++) { - formList[_i2].removeEventListener(Event.FORMRESET, handleFormReset); - - formList[_i2][customProperty] = undefined; - } - } - }; - - return bsCustomFileInput; - -}));