[ Index ] |
PHP Cross Reference of Joomla 4.2.2 documentation |
[Summary view] [Print] [Text view]
1 (function () { 2 'use strict'; 3 4 /** 5 * @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org> 6 * @license GNU General Public License version 2 or later; see LICENSE.txt 7 */ 8 (function (Awesomplete, Joomla, window, document) { 9 if (!Joomla) { 10 throw new Error('core.js was not properly initialised'); 11 } // Handle the autocomplete 12 13 14 var onInputChange = function onInputChange(_ref) { 15 var target = _ref.target; 16 17 if (target.value.length > 1) { 18 target.awesomplete.list = []; 19 Joomla.request({ 20 url: Joomla.getOptions('finder-search').url + "&q=" + target.value, 21 method: 'GET', 22 data: { 23 q: target.value 24 }, 25 perform: true, 26 headers: { 27 'Content-Type': 'application/x-www-form-urlencoded' 28 }, 29 onSuccess: function onSuccess(resp) { 30 var response = JSON.parse(resp); 31 32 if (Object.prototype.toString.call(response.suggestions) === '[object Array]') { 33 target.awesomplete.list = response.suggestions; 34 } 35 }, 36 onError: function onError(xhr) { 37 if (xhr.status > 0) { 38 Joomla.renderMessages(Joomla.ajaxErrorsMessages(xhr)); 39 } 40 } 41 }); 42 } 43 }; // Handle the submit 44 45 46 var onSubmit = function onSubmit(event) { 47 event.stopPropagation(); 48 var advanced = event.target.querySelector('.js-finder-advanced'); // Disable select boxes with no value selected. 49 50 if (advanced) { 51 var fields = [].slice.call(advanced.querySelectorAll('select')); 52 fields.forEach(function (field) { 53 if (!field.value) { 54 field.setAttribute('disabled', 'disabled'); 55 } 56 }); 57 } 58 }; // Submits the form programmatically 59 60 61 var submitForm = function submitForm(event) { 62 var form = event.target.closest('form'); 63 64 if (form) { 65 form.submit(); 66 } 67 }; // The boot sequence 68 69 70 var onBoot = function onBoot() { 71 var searchWords = [].slice.call(document.querySelectorAll('.js-finder-search-query')); 72 searchWords.forEach(function (searchword) { 73 // Handle the auto suggestion 74 if (Joomla.getOptions('finder-search')) { 75 searchword.awesomplete = new Awesomplete(searchword); // If the current value is empty, set the previous value. 76 77 searchword.addEventListener('input', onInputChange); 78 var advanced = searchword.closest('form').querySelector('.js-finder-advanced'); // Do not submit the form on suggestion selection, in case of advanced form. 79 80 if (!advanced) { 81 searchword.addEventListener('awesomplete-selectcomplete', submitForm); 82 } 83 } 84 }); 85 var forms = [].slice.call(document.querySelectorAll('.js-finder-searchform')); 86 forms.forEach(function (form) { 87 form.addEventListener('submit', onSubmit); 88 }); // Cleanup 89 90 document.removeEventListener('DOMContentLoaded', onBoot); 91 }; 92 93 document.addEventListener('DOMContentLoaded', onBoot); 94 })(window.Awesomplete, window.Joomla, window, document); 95 96 })();
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Wed Sep 7 05:41:13 2022 | Chilli.vc Blog - For Webmaster,Blog-Writer,System Admin and Domainer |