Bug fixes for search engine filtering
Fixed URL matches on encoded links, and fixed issue displaying wikis that have multiple originspull/227/head
parent
2e0caebaf9
commit
e79091df8e
|
@ -140,7 +140,7 @@ function filterSearchResults(searchResults, searchEngine, storage) {
|
||||||
}
|
}
|
||||||
// Check if site is in our list of wikis:
|
// Check if site is in our list of wikis:
|
||||||
let matchingSites = sites.filter(el =>
|
let matchingSites = sites.filter(el =>
|
||||||
String(searchResultLink).match('https(:\/\/|%3a%2f%2f)' + escapeRegex(el.origin_base_url))
|
String(decodeURIComponent(searchResultLink)).includes('https://' + el.origin_base_url)
|
||||||
);
|
);
|
||||||
if (matchingSites.length > 0) {
|
if (matchingSites.length > 0) {
|
||||||
// Select match with longest base URL
|
// Select match with longest base URL
|
||||||
|
@ -186,12 +186,14 @@ function filterSearchResults(searchResults, searchEngine, storage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Insert search result removal notice
|
// Insert search result removal notice
|
||||||
if (!filteredWikis.includes(site.origin_group)) {
|
if (!filteredWikis.includes(site.lang + ' ' + site.origin_group)) {
|
||||||
filteredWikis.push(site.origin_group);
|
filteredWikis.push(site.lang + ' ' + site.origin_group);
|
||||||
hiddenWikisRevealed[stringToId(site.origin)] = false;
|
|
||||||
|
let elementId = stringToId(site.lang + '-' + site.origin_group);
|
||||||
|
hiddenWikisRevealed[elementId] = false;
|
||||||
|
|
||||||
let searchRemovalNotice = document.createElement('aside');
|
let searchRemovalNotice = document.createElement('aside');
|
||||||
searchRemovalNotice.id = 'iwb-notice-' + stringToId(site.origin);
|
searchRemovalNotice.id = 'iwb-notice-' + elementId;
|
||||||
searchRemovalNotice.classList.add('iwb-notice');
|
searchRemovalNotice.classList.add('iwb-notice');
|
||||||
let searchRemovalNoticeLink = document.createElement('a');
|
let searchRemovalNoticeLink = document.createElement('a');
|
||||||
searchRemovalNoticeLink.href = 'https://' + site.destination_base_url;
|
searchRemovalNoticeLink.href = 'https://' + site.destination_base_url;
|
||||||
|
@ -207,20 +209,20 @@ function filterSearchResults(searchResults, searchEngine, storage) {
|
||||||
// Output "show results" button
|
// Output "show results" button
|
||||||
let showResultsButton = document.createElement('button');
|
let showResultsButton = document.createElement('button');
|
||||||
showResultsButton.classList.add('iwb-show-results-button');
|
showResultsButton.classList.add('iwb-show-results-button');
|
||||||
showResultsButton.setAttribute('data-group', 'iwb-search-result-' + stringToId(site.origin));
|
showResultsButton.setAttribute('data-group', 'iwb-search-result-' + elementId);
|
||||||
showResultsButton.textContent = 'Show filtered results';
|
showResultsButton.textContent = 'Show filtered results';
|
||||||
searchRemovalNotice.appendChild(showResultsButton);
|
searchRemovalNotice.appendChild(showResultsButton);
|
||||||
showResultsButton.onclick = function (e) {
|
showResultsButton.onclick = function (e) {
|
||||||
if(e.target.textContent.includes('Show')) {
|
if(e.target.textContent.includes('Show')) {
|
||||||
e.target.textContent = 'Re-hide filtered results';
|
e.target.textContent = 'Re-hide filtered results';
|
||||||
hiddenWikisRevealed[stringToId(site.origin)] = true;
|
hiddenWikisRevealed[elementId] = true;
|
||||||
const selector = e.currentTarget.dataset.group;
|
const selector = e.currentTarget.dataset.group;
|
||||||
document.querySelectorAll('.' + selector).forEach(el => {
|
document.querySelectorAll('.' + selector).forEach(el => {
|
||||||
el.classList.add('iwb-show');
|
el.classList.add('iwb-show');
|
||||||
})
|
})
|
||||||
} else {
|
} else {
|
||||||
e.target.textContent = 'Show filtered results';
|
e.target.textContent = 'Show filtered results';
|
||||||
hiddenWikisRevealed[stringToId(site.origin)] = false;
|
hiddenWikisRevealed[elementId] = false;
|
||||||
const selector = e.currentTarget.dataset.group;
|
const selector = e.currentTarget.dataset.group;
|
||||||
document.querySelectorAll('.' + selector).forEach(el => {
|
document.querySelectorAll('.' + selector).forEach(el => {
|
||||||
el.classList.remove('iwb-show');
|
el.classList.remove('iwb-show');
|
||||||
|
@ -346,10 +348,11 @@ function filterSearchResults(searchResults, searchEngine, storage) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if(!Array.from(searchResultContainer.classList).includes('iwb-hide')) {
|
if(!Array.from(searchResultContainer.classList).includes('iwb-hide')) {
|
||||||
searchResultContainer.classList.add('iwb-search-result-' + stringToId(site.origin));
|
let elementId = stringToId(site.lang + '-' + site.origin_group);
|
||||||
|
searchResultContainer.classList.add('iwb-search-result-' + elementId);
|
||||||
searchResultContainer.classList.add('iwb-hide');
|
searchResultContainer.classList.add('iwb-hide');
|
||||||
countFiltered++;
|
countFiltered++;
|
||||||
if (hiddenWikisRevealed[stringToId(site.origin)]) {
|
if (hiddenWikisRevealed[elementId]) {
|
||||||
searchResultContainer.classList.add('iwb-show');
|
searchResultContainer.classList.add('iwb-show');
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue