first commit

This commit is contained in:
2025-06-17 11:53:18 +02:00
commit 9f0f7ba12b
8804 changed files with 1369176 additions and 0 deletions

View File

@ -0,0 +1,24 @@
#finder-filter-window {
width: 100%;
padding: 0;
margin: 10px 0;
overflow: auto;
}
ul#finder-filter-select-dates {
padding: 0;
margin: 0;
list-style: none;
}
ul#finder-filter-select-dates li.filter-date {
width: 49%;
padding: 5px 0;
margin: 0;
list-style: none;
background: none;
}
ul#finder-filter-select-dates li.filter-date select.filter-date-operator {
margin-inline-end: 10px;
}

1
media/com_finder/css/dates.min.css vendored Normal file
View File

@ -0,0 +1 @@
#finder-filter-window{margin:10px 0;overflow:auto;padding:0;width:100%}ul#finder-filter-select-dates{list-style:none;margin:0;padding:0}ul#finder-filter-select-dates li.filter-date{background:none;list-style:none;margin:0;padding:5px 0;width:49%}ul#finder-filter-select-dates li.filter-date select.filter-date-operator{-webkit-margin-end:10px;margin-inline-end:10px}

Binary file not shown.

View File

@ -0,0 +1,152 @@
/**
* Styling search results page
*/
.com-finder * {
margin-bottom: 0;
}
.com-finder > * + *,
.com-finder__results > * + * {
margin-top: 1.5em;
}
/**
* Styling search explained
*/
.com-finder__explained span.term,
.com-finder__explained span.date,
.com-finder__explained span.when,
.com-finder__explained span.branch,
.com-finder__explained span.node,
.com-finder__explained span.op {
font-weight: 800;
}
.com-finder__explained span.op {
text-transform: uppercase;
}
/**
* Styling search result items list
*/
.com-finder__results-list {
padding: 0;
list-style: none;
}
/**
* Styling search result item
*/
.result__item + .result__item {
padding-top: 1.5em;
margin-top: 1.5em;
border-top: 1px solid currentColor;
}
.result__item > * {
margin-bottom: 0;
}
.result__item > * + * {
margin-top: .25em;
}
.result__title-link {
display: flex;
flex-direction: column;
}
.result__title-text {
font-size: 1.3rem;
}
.result__title-url {
order: -1;
margin-bottom: .25em;
font-style: normal;
color: hsl(0, 0%, 34%);
}
.result__title-link:focus,
.result__title-link:hover {
text-decoration: none;
}
.result__title-link:focus .result__title-text,
.result__title-link:hover .result__title-text {
text-decoration: underline;
}
.result__date {
color: hsl(0, 0%, 34%);
}
.result__date:after {
content: "-";
}
.result__taxonomy {
padding: 0;
list-style: none;
}
.result__taxonomy-item {
display: inline-block;
}
.result__taxonomy-item + .result__taxonomy-item {
margin-inline-start: .5em;
}
.result__taxonomy-item + .result__taxonomy-item:before {
content: "|";
padding-inline-end: .5em;
}
/**
* Styling search word highlight
*/
.result__item .highlight {
position: relative;
}
.result__item .highlight:before {
position: absolute;
top: 50%;
left: 50%;
z-index: -1;
width: calc(100% + 6px);
height: calc(100% + 2px);
pointer-events: none;
content: "";
background: hsla(60, 100%, 50%, .5);
border-radius: 3px;
/* stylelint-disable */
-webkit-transform: translate(-50%, -50%);
/* stylelint-enable */
transform: translate(-50%, -50%);
}
/**
* Styling the sorting drop-down
*/
#sorting_label {
margin-inline-end: .3rem;
}
#sorting_btn {
min-width: 8rem;
}
.sorting .sorting__select {
margin-bottom: 0;
}
.sorting__list-li {
display: block;
text-align: start;
}
.sorting__list-li-active {
background-color: #f0f0f0;
}

1
media/com_finder/css/finder.min.css vendored Normal file
View File

@ -0,0 +1 @@
.com-finder *{margin-bottom:0}.com-finder>*+*,.com-finder__results>*+*{margin-top:1.5em}.com-finder__explained span.branch,.com-finder__explained span.date,.com-finder__explained span.node,.com-finder__explained span.op,.com-finder__explained span.term,.com-finder__explained span.when{font-weight:800}.com-finder__explained span.op{text-transform:uppercase}.com-finder__results-list{list-style:none;padding:0}.result__item+.result__item{border-top:1px solid;margin-top:1.5em;padding-top:1.5em}.result__item>*{margin-bottom:0}.result__item>*+*{margin-top:.25em}.result__title-link{-webkit-box-orient:vertical;-webkit-box-direction:normal;display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}.result__title-text{font-size:1.3rem}.result__title-url{-webkit-box-ordinal-group:0;-ms-flex-order:-1;color:#575757;font-style:normal;margin-bottom:.25em;order:-1}.result__title-link:focus,.result__title-link:hover{text-decoration:none}.result__title-link:focus .result__title-text,.result__title-link:hover .result__title-text{text-decoration:underline}.result__date{color:#575757}.result__date:after{content:"-"}.result__taxonomy{list-style:none;padding:0}.result__taxonomy-item{display:inline-block}.result__taxonomy-item+.result__taxonomy-item{-webkit-margin-start:.5em;margin-inline-start:.5em}.result__taxonomy-item+.result__taxonomy-item:before{-webkit-padding-end:.5em;content:"|";padding-inline-end:.5em}.result__item .highlight{position:relative}.result__item .highlight:before{background:rgba(255,255,0,.5);border-radius:3px;content:"";height:calc(100% + 2px);left:50%;pointer-events:none;position:absolute;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);width:calc(100% + 6px);z-index:-1}#sorting_label{-webkit-margin-end:.3rem;margin-inline-end:.3rem}#sorting_btn{min-width:8rem}.sorting .sorting__select{margin-bottom:0}.sorting__list-li{display:block;text-align:start}.sorting__list-li-active{background-color:#f0f0f0}

Binary file not shown.

View File

@ -0,0 +1,13 @@
#finder-progress-container {
width: 350px;
margin: 0 auto;
}
h1.finder-error {
color: #f00;
}
p.finder-error {
font-weight: bold;
color: #f00;
}

1
media/com_finder/css/indexer.min.css vendored Normal file
View File

@ -0,0 +1 @@
#finder-progress-container{margin:0 auto;width:350px}h1.finder-error{color:red}p.finder-error{color:red;font-weight:700}

Binary file not shown.

View File

@ -0,0 +1,99 @@
{
"$schema": "https://developer.joomla.org/schemas/json-schema/web_assets.json",
"name": "com_finder",
"version": "4.0.0",
"description": "Joomla CMS",
"license": "GPL-2.0-or-later",
"assets": [
{
"name": "com_finder.dates",
"type": "style",
"uri": "com_finder/dates.min.css",
"version": "d29da4"
},
{
"name": "com_finder.finder-edit",
"type": "script",
"uri": "com_finder/finder-edit.min.js",
"dependencies": [
"core"
],
"attributes": {
"type": "module"
},
"version": "efd79c"
},
{
"name": "com_finder.filters",
"type": "script",
"uri": "com_finder/filters.min.js",
"dependencies": [
"core"
],
"attributes": {
"type": "module"
},
"version": "dcfa38"
},
{
"name": "com_finder.debug",
"type": "script",
"uri": "com_finder/debug.min.js",
"dependencies": [
"core"
],
"attributes": {
"type": "module"
},
"version": "f95d12"
},
{
"name": "com_finder.finder",
"type": "style",
"uri": "com_finder/finder.min.css",
"version": "e2f2f1"
},
{
"name": "com_finder.finder",
"type": "script",
"uri": "com_finder/finder.min.js",
"dependencies": [
"core"
],
"attributes": {
"type": "module"
},
"version": "d82ed7"
},
{
"name": "com_finder.indexer",
"type": "style",
"uri": "com_finder/indexer.min.css",
"version": "d28072"
},
{
"name": "com_finder.indexer",
"type": "script",
"uri": "com_finder/indexer.min.js",
"dependencies": [
"core"
],
"attributes": {
"type": "module"
},
"version": "2b53c8"
},
{
"name": "com_finder.maps",
"type": "script",
"uri": "com_finder/maps.min.js",
"dependencies": [
"core"
],
"attributes": {
"type": "module"
},
"version": "09b36f"
}
]
}

View File

@ -0,0 +1,45 @@
/**
* @copyright (C) 2022 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// eslint-disable no-alert
((Joomla, document) => {
if (!Joomla) {
throw new Error('core.js was not properly initialised');
}
Joomla.finderIndexer = () => {
const path = 'index.php?option=com_finder&task=indexer.debug&tmpl=component&format=json';
const token = `&${document.getElementById('finder-indexer-token').getAttribute('name')}=1`;
Joomla.debugIndexing = () => {
const formEls = new URLSearchParams(Array.from(new FormData(document.getElementById('debug-form')))).toString();
Joomla.request({
url: `${path}${token}&${formEls}`,
method: 'GET',
data: '',
perform: true,
headers: {
'Content-Type': 'application/x-www-form-urlencoded'
},
onSuccess: response => {
const output = document.getElementById('indexer-output');
try {
const parsed = JSON.parse(response);
output.innerHTML = parsed.rendered;
} catch (e) {
output.innerHTML = response;
}
},
onError: xhr => {
const output = document.getElementById('indexer-output');
output.innerHTML = xhr.response;
}
});
};
};
})(Joomla, document);
// @todo use directly the Joomla.finderIndexer() instead of the Indexer()!!!
document.addEventListener('DOMContentLoaded', () => {
window.Indexer = Joomla.finderIndexer();
});

1
media/com_finder/js/debug.min.js vendored Normal file
View File

@ -0,0 +1 @@
((e,n)=>{if(!e)throw new Error("core.js was not properly initialised");e.finderIndexer=()=>{const r=`&${n.getElementById("finder-indexer-token").getAttribute("name")}=1`;e.debugIndexing=()=>{const t=new URLSearchParams(Array.from(new FormData(n.getElementById("debug-form")))).toString();e.request({url:`index.php?option=com_finder&task=indexer.debug&tmpl=component&format=json${r}&${t}`,method:"GET",data:"",perform:!0,headers:{"Content-Type":"application/x-www-form-urlencoded"},onSuccess:e=>{const r=n.getElementById("indexer-output");try{const n=JSON.parse(e);r.innerHTML=n.rendered}catch(n){r.innerHTML=e}},onError:e=>{n.getElementById("indexer-output").innerHTML=e.response}})}}})(Joomla,document),document.addEventListener("DOMContentLoaded",(()=>{window.Indexer=Joomla.finderIndexer()}));

Binary file not shown.

View File

@ -0,0 +1,23 @@
/**
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
(Joomla => {
if (!Joomla) {
window.Joomla = {};
}
const onBoot = () => {
Joomla.submitbutton = pressbutton => {
if (pressbutton === 'filters.delete' && !window.confirm(Joomla.Text._('COM_FINDER_INDEX_CONFIRM_DELETE_PROMPT'))) {
return false;
}
Joomla.submitform(pressbutton);
return true;
};
// Cleanup
document.addEventListener('DOMContentLoaded', onBoot);
};
document.addEventListener('DOMContentLoaded', onBoot);
})(Joomla);

1
media/com_finder/js/filters.min.js vendored Normal file
View File

@ -0,0 +1 @@
(t=>{t||(window.Joomla={});const e=()=>{t.submitbutton=e=>!("filters.delete"===e&&!window.confirm(t.Text._("COM_FINDER_INDEX_CONFIRM_DELETE_PROMPT")))&&(t.submitform(e),!0),document.addEventListener("DOMContentLoaded",e)};document.addEventListener("DOMContentLoaded",e)})(Joomla);

Binary file not shown.

View File

@ -0,0 +1,54 @@
/**
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
Joomla = window.Joomla || {};
(() => {
document.addEventListener('DOMContentLoaded', () => {
// Handle toggle all
[].slice.call(document.querySelectorAll('.filter-toggle-all')).forEach(button => {
button.addEventListener('click', () => {
[].slice.call(document.querySelectorAll('.filter-node')).forEach(node => {
node.click();
});
});
});
// Update the count
[].slice.call(document.querySelectorAll('.filter-node')).forEach(() => {
const count = document.getElementById('jform_map_count');
if (count) {
count.value = document.querySelectorAll('input[type="checkbox"]:checked').length;
}
});
Array.from(document.querySelectorAll('.js-filter')).forEach(button => {
button.addEventListener('click', event => {
const btn = event.currentTarget;
Array.from(document.querySelectorAll(`.${btn.dataset.id}`)).map(el => el.click());
});
});
// Expand/collapse
const expandAccordion = document.getElementById('expandAccordion');
if (expandAccordion) {
expandAccordion.addEventListener('click', event => {
event.preventDefault();
let elements;
if (event.target.innerText === Joomla.Text._('COM_FINDER_FILTER_SHOW_ALL')) {
event.target.innerText = Joomla.Text._('COM_FINDER_FILTER_HIDE_ALL');
elements = [].slice.call(document.querySelectorAll('.accordion-button.collapsed'));
} else {
event.target.innerText = Joomla.Text._('COM_FINDER_FILTER_SHOW_ALL');
elements = [].slice.call(document.querySelectorAll('.accordion-button:not(.collapsed)'));
}
if (elements) {
elements.forEach(element => {
element.click();
});
}
});
}
});
})();

View File

@ -0,0 +1 @@
Joomla=window.Joomla||{},document.addEventListener("DOMContentLoaded",(()=>{[].slice.call(document.querySelectorAll(".filter-toggle-all")).forEach((e=>{e.addEventListener("click",(()=>{[].slice.call(document.querySelectorAll(".filter-node")).forEach((e=>{e.click()}))}))})),[].slice.call(document.querySelectorAll(".filter-node")).forEach((()=>{const e=document.getElementById("jform_map_count");e&&(e.value=document.querySelectorAll('input[type="checkbox"]:checked').length)})),Array.from(document.querySelectorAll(".js-filter")).forEach((e=>{e.addEventListener("click",(e=>{const t=e.currentTarget;Array.from(document.querySelectorAll(`.${t.dataset.id}`)).map((e=>e.click()))}))}));const e=document.getElementById("expandAccordion");e&&e.addEventListener("click",(e=>{let t;e.preventDefault(),e.target.innerText===Joomla.Text._("COM_FINDER_FILTER_SHOW_ALL")?(e.target.innerText=Joomla.Text._("COM_FINDER_FILTER_HIDE_ALL"),t=[].slice.call(document.querySelectorAll(".accordion-button.collapsed"))):(e.target.innerText=Joomla.Text._("COM_FINDER_FILTER_SHOW_ALL"),t=[].slice.call(document.querySelectorAll(".accordion-button:not(.collapsed)"))),t&&t.forEach((e=>{e.click()}))}))}));

Binary file not shown.

View File

@ -0,0 +1,88 @@
/**
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
((Awesomplete, Joomla, window, document) => {
if (!Joomla) {
throw new Error('core.js was not properly initialised');
}
// Handle the autocomplete
const onInputChange = ({
target
}) => {
if (target.value.length > 1) {
target.awesomplete.list = [];
Joomla.request({
url: `${Joomla.getOptions('finder-search').url}&q=${target.value}`,
promise: true
}).then(xhr => {
let response;
try {
response = JSON.parse(xhr.responseText);
} catch (e) {
Joomla.renderMessages(Joomla.ajaxErrorsMessages(xhr, 'parsererror'));
return;
}
if (Object.prototype.toString.call(response.suggestions) === '[object Array]') {
target.awesomplete.list = response.suggestions;
}
}).catch(xhr => {
Joomla.renderMessages(Joomla.ajaxErrorsMessages(xhr));
});
}
};
// Handle the submit
const onSubmit = event => {
event.stopPropagation();
const advanced = event.target.querySelector('.js-finder-advanced');
// Disable select boxes with no value selected.
if (advanced) {
const fields = [].slice.call(advanced.querySelectorAll('select'));
fields.forEach(field => {
if (!field.value) {
field.setAttribute('disabled', 'disabled');
}
});
}
};
// Submits the form programmatically
const submitForm = event => {
const form = event.target.closest('form');
if (form) {
form.submit();
}
};
// The boot sequence
const onBoot = () => {
const searchWords = [].slice.call(document.querySelectorAll('.js-finder-search-query'));
searchWords.forEach(searchword => {
// Handle the auto suggestion
if (Joomla.getOptions('finder-search')) {
searchword.awesomplete = new Awesomplete(searchword);
// If the current value is empty, set the previous value.
searchword.addEventListener('input', onInputChange);
const advanced = searchword.closest('form').querySelector('.js-finder-advanced');
// Do not submit the form on suggestion selection, in case of advanced form.
if (!advanced) {
searchword.addEventListener('awesomplete-selectcomplete', submitForm);
}
}
});
const forms = [].slice.call(document.querySelectorAll('.js-finder-searchform'));
forms.forEach(form => {
form.addEventListener('submit', onSubmit);
});
// Cleanup
document.removeEventListener('DOMContentLoaded', onBoot);
};
document.addEventListener('DOMContentLoaded', onBoot);
})(window.Awesomplete, window.Joomla, window, document);

1
media/com_finder/js/finder.min.js vendored Normal file
View File

@ -0,0 +1 @@
((e,t,r,s)=>{if(!t)throw new Error("core.js was not properly initialised");const o=({target:e})=>{e.value.length>1&&(e.awesomplete.list=[],t.request({url:`${t.getOptions("finder-search").url}&q=${e.value}`,promise:!0}).then((r=>{let s;try{s=JSON.parse(r.responseText)}catch(e){return void t.renderMessages(t.ajaxErrorsMessages(r,"parsererror"))}"[object Array]"===Object.prototype.toString.call(s.suggestions)&&(e.awesomplete.list=s.suggestions)})).catch((e=>{t.renderMessages(t.ajaxErrorsMessages(e))})))},a=e=>{e.stopPropagation();const t=e.target.querySelector(".js-finder-advanced");if(t){[].slice.call(t.querySelectorAll("select")).forEach((e=>{e.value||e.setAttribute("disabled","disabled")}))}},l=e=>{const t=e.target.closest("form");t&&t.submit()},n=()=>{[].slice.call(s.querySelectorAll(".js-finder-search-query")).forEach((r=>{if(t.getOptions("finder-search")){r.awesomplete=new e(r),r.addEventListener("input",o);r.closest("form").querySelector(".js-finder-advanced")||r.addEventListener("awesomplete-selectcomplete",l)}}));[].slice.call(s.querySelectorAll(".js-finder-searchform")).forEach((e=>{e.addEventListener("submit",a)})),s.removeEventListener("DOMContentLoaded",n)};s.addEventListener("DOMContentLoaded",n)})(window.Awesomplete,window.Joomla,window,document);

Binary file not shown.

View File

@ -0,0 +1,179 @@
/**
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
// eslint-disable no-alert
((Joomla, document) => {
if (!Joomla) {
throw new Error('core.js was not properly initialised');
}
Joomla.finderIndexer = () => {
let getRequest;
let totalItems = null;
let offset = null;
let progress = null;
let optimized = false;
const path = 'index.php?option=com_finder&tmpl=component&format=json';
const token = `&${document.getElementById('finder-indexer-token').getAttribute('name')}=1`;
const removeElement = id => {
const element = document.getElementById(id);
if (element) {
return element.parentNode.removeChild(element);
}
return null;
};
const updateProgress = (header, message) => {
progress = offset / totalItems * 100;
const progressBar = document.getElementById('progress-bar');
const progressHeader = document.getElementById('finder-progress-header');
const progressMessage = document.getElementById('finder-progress-message');
if (progressHeader) {
progressHeader.innerText = header;
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(message);
}
if (progressBar) {
if (progress < 100) {
progressBar.style.width = `${progress}%`;
progressBar.setAttribute('aria-valuenow', progress);
} else {
progressBar.classList.remove('bar-success');
progressBar.classList.add('bar-warning');
progressBar.setAttribute('aria-valuemin', 100);
progressBar.setAttribute('aria-valuemax', 200);
progressBar.style.width = `${progress}%`;
progressBar.setAttribute('aria-valuenow', progress);
}
// Auto close the window
if (message === Joomla.Text._('COM_FINDER_INDEXER_MESSAGE_COMPLETE')) {
removeElement('progress');
window.parent.location.reload();
}
}
};
const handleResponse = (json, resp) => {
const progressHeader = document.getElementById('finder-progress-header');
const progressMessage = document.getElementById('finder-progress-message');
try {
if (json === null) {
throw new Error(resp);
}
if (json.error) {
throw new Error(json);
}
if (json.start) {
// eslint-disable-next-line prefer-destructuring
totalItems = json.totalItems;
if (document.getElementById('finder-debug-data')) {
const debuglist = document.getElementById('finder-debug-data');
Object.entries(json.pluginState).forEach(context => {
let item = `<dt class="col-sm-3">${context[0]}</dt>`;
item += `<dd id="finder-${context[0].replace(/\s+/g, '-').toLowerCase()}" class="col-sm-9"></dd>`;
debuglist.insertAdjacentHTML('beforeend', Joomla.sanitizeHtml(item, {
dd: ['class', 'id'],
dt: ['class']
}));
});
}
}
offset += json.batchOffset;
updateProgress(json.header, json.message);
if (document.getElementById('finder-debug-data')) {
Object.entries(json.pluginState).forEach(context => {
document.getElementById(`finder-${context[0].replace(/\s+/g, '-').toLowerCase()}`).innerHTML = Joomla.sanitizeHtml(`${json.pluginState[context[0]].offset} of ${json.pluginState[context[0]].total}`);
});
}
if (offset < totalItems) {
getRequest('indexer.batch');
} else if (!optimized) {
optimized = true;
getRequest('indexer.optimize');
}
} catch (error) {
removeElement('progress');
try {
if (json.error) {
if (progressHeader) {
progressHeader.innerText = json.header;
progressHeader.classList.add('finder-error');
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(json.message);
progressMessage.classList.add('finder-error');
}
}
} catch (ignore) {
if (error === '') {
// eslint-disable-next-line no-ex-assign
error = Joomla.Text._('COM_FINDER_NO_ERROR_RETURNED');
}
if (progressHeader) {
progressHeader.innerText = Joomla.Text._('COM_FINDER_AN_ERROR_HAS_OCCURRED');
progressHeader.classList.add('finder-error');
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(error);
progressMessage.classList.add('finder-error');
}
}
}
return true;
};
const handleFailure = error => {
const progressHeader = document.getElementById('finder-progress-header');
const progressMessage = document.getElementById('finder-progress-message');
let data;
if (error instanceof Error) {
// Encode any html in the message
const div = document.createElement('div');
div.textContent = error.message;
data = div.innerHTML;
if (error instanceof SyntaxError) {
data = Joomla.Text._('JLIB_JS_AJAX_ERROR_PARSE').replace('%s', data);
}
} else if (typeof error === 'object' && error.responseText) {
data = error.responseText;
try {
data = JSON.parse(data);
} catch (e) {
data = Joomla.Text._('JLIB_JS_AJAX_ERROR_OTHER').replace('%s', error.status);
}
}
removeElement('progress');
const header = data && data.header ? data.header : Joomla.Text._('COM_FINDER_AN_ERROR_HAS_OCCURRED');
const message = data && data.message ? data.message : `${Joomla.Text._('COM_FINDER_MESSAGE_RETURNED')}<br>${data}`;
if (progressHeader) {
progressHeader.innerText = header;
progressHeader.classList.add('finder-error');
}
if (progressMessage) {
progressMessage.innerHTML = Joomla.sanitizeHtml(message);
progressMessage.classList.add('finder-error');
}
};
getRequest = task => {
Joomla.request({
url: `${path}&task=${task}${token}`,
promise: true
}).then(xhr => {
handleResponse(JSON.parse(xhr.responseText));
}).catch(error => {
handleFailure(error);
});
};
const initialize = () => {
offset = 0;
progress = 0;
getRequest('indexer.start');
};
initialize();
};
})(Joomla, document);
// @todo use directly the Joomla.finderIndexer() instead of the Indexer()!!!
document.addEventListener('DOMContentLoaded', () => {
window.Indexer = Joomla.finderIndexer();
});

1
media/com_finder/js/indexer.min.js vendored Normal file
View File

@ -0,0 +1 @@
((e,t)=>{if(!e)throw new Error("core.js was not properly initialised");e.finderIndexer=()=>{let r,n=null,s=null,a=null,i=!1;const d=`&${t.getElementById("finder-indexer-token").getAttribute("name")}=1`,o=e=>{const r=t.getElementById(e);return r?r.parentNode.removeChild(r):null},l=(d,l)=>{const c=t.getElementById("finder-progress-header"),E=t.getElementById("finder-progress-message");try{if(null===d)throw new Error(l);if(d.error)throw new Error(d);if(d.start&&(n=d.totalItems,t.getElementById("finder-debug-data"))){const r=t.getElementById("finder-debug-data");Object.entries(d.pluginState).forEach((t=>{let n=`<dt class="col-sm-3">${t[0]}</dt>`;n+=`<dd id="finder-${t[0].replace(/\s+/g,"-").toLowerCase()}" class="col-sm-9"></dd>`,r.insertAdjacentHTML("beforeend",e.sanitizeHtml(n,{dd:["class","id"],dt:["class"]}))}))}s+=d.batchOffset,((r,i)=>{a=s/n*100;const d=t.getElementById("progress-bar"),l=t.getElementById("finder-progress-header"),c=t.getElementById("finder-progress-message");l&&(l.innerText=r),c&&(c.innerHTML=e.sanitizeHtml(i)),d&&(a<100?(d.style.width=`${a}%`,d.setAttribute("aria-valuenow",a)):(d.classList.remove("bar-success"),d.classList.add("bar-warning"),d.setAttribute("aria-valuemin",100),d.setAttribute("aria-valuemax",200),d.style.width=`${a}%`,d.setAttribute("aria-valuenow",a)),i===e.Text._("COM_FINDER_INDEXER_MESSAGE_COMPLETE")&&(o("progress"),window.parent.location.reload()))})(d.header,d.message),t.getElementById("finder-debug-data")&&Object.entries(d.pluginState).forEach((r=>{t.getElementById(`finder-${r[0].replace(/\s+/g,"-").toLowerCase()}`).innerHTML=e.sanitizeHtml(`${d.pluginState[r[0]].offset} of ${d.pluginState[r[0]].total}`)})),s<n?r("indexer.batch"):i||(i=!0,r("indexer.optimize"))}catch(t){o("progress");try{d.error&&(c&&(c.innerText=d.header,c.classList.add("finder-error")),E&&(E.innerHTML=e.sanitizeHtml(d.message),E.classList.add("finder-error")))}catch(r){""===t&&(t=e.Text._("COM_FINDER_NO_ERROR_RETURNED")),c&&(c.innerText=e.Text._("COM_FINDER_AN_ERROR_HAS_OCCURRED"),c.classList.add("finder-error")),E&&(E.innerHTML=e.sanitizeHtml(t),E.classList.add("finder-error"))}}return!0};r=r=>{e.request({url:`index.php?option=com_finder&tmpl=component&format=json&task=${r}${d}`,promise:!0}).then((e=>{l(JSON.parse(e.responseText))})).catch((r=>{(r=>{const n=t.getElementById("finder-progress-header"),s=t.getElementById("finder-progress-message");let a;if(r instanceof Error){const n=t.createElement("div");n.textContent=r.message,a=n.innerHTML,r instanceof SyntaxError&&(a=e.Text._("JLIB_JS_AJAX_ERROR_PARSE").replace("%s",a))}else if("object"==typeof r&&r.responseText){a=r.responseText;try{a=JSON.parse(a)}catch(t){a=e.Text._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",r.status)}}o("progress");const i=a&&a.header?a.header:e.Text._("COM_FINDER_AN_ERROR_HAS_OCCURRED"),d=a&&a.message?a.message:`${e.Text._("COM_FINDER_MESSAGE_RETURNED")}<br>${a}`;n&&(n.innerText=i,n.classList.add("finder-error")),s&&(s.innerHTML=e.sanitizeHtml(d),s.classList.add("finder-error"))})(r)}))};s=0,a=0,r("indexer.start")}})(Joomla,document),document.addEventListener("DOMContentLoaded",(()=>{window.Indexer=Joomla.finderIndexer()}));

Binary file not shown.

View File

@ -0,0 +1,19 @@
/**
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
Joomla = window.Joomla || {};
(() => {
document.addEventListener('DOMContentLoaded', () => {
Joomla.submitbutton = pressbutton => {
// @todo replace with joomla-alert
if (pressbutton === 'map.delete' && !window.confirm(Joomla.Text._('COM_FINDER_MAPS_CONFIRM_DELETE_PROMPT'))) {
return false;
}
Joomla.submitform(pressbutton);
return true;
};
});
})();

1
media/com_finder/js/maps.min.js vendored Normal file
View File

@ -0,0 +1 @@
Joomla=window.Joomla||{},document.addEventListener("DOMContentLoaded",(()=>{Joomla.submitbutton=o=>!("map.delete"===o&&!window.confirm(Joomla.Text._("COM_FINDER_MAPS_CONFIRM_DELETE_PROMPT"))||(Joomla.submitform(o),0))}));

Binary file not shown.