accomodate deleted files in search result display

This commit is contained in:
buzz-lightsnack-2007 2024-04-14 13:01:53 +08:00
parent 7eb0b86640
commit 2ddf2876cd

View file

@ -1,4 +1,6 @@
const secretariat = await import(chrome.runtime.getURL(`scripts/secretariat.js`)); import {read, write, observe} from "/scripts/secretariat.js";
import alerts from "/gui/scripts/alerts.js"
import texts from "/gui/scripts/read.js";
export function search() { export function search() {
if (document.querySelectorAll(`[data-result]`)) { if (document.querySelectorAll(`[data-result]`)) {
@ -25,9 +27,12 @@ export function search() {
SEARCH[TARGET_NAME][`selected`] = (element) ? (Object.keys(RESULTS))[(Array.prototype.slice.call(element.parentElement.parentElement.querySelectorAll(`a`))).indexOf(element)] : null; SEARCH[TARGET_NAME][`selected`] = (element) ? (Object.keys(RESULTS))[(Array.prototype.slice.call(element.parentElement.parentElement.querySelectorAll(`a`))).indexOf(element)] : null;
// Array.prototype.slice.call(element.parentElement.children) // Array.prototype.slice.call(element.parentElement.children)
if (element) {(element.parentElement).parentElement.querySelectorAll(`li`).forEach((element_others) => { if (element) {
(element.parentElement).parentElement.querySelectorAll(`li`).forEach((element_others) => {
element_others.classList.remove(`active`); element_others.classList.remove(`active`);
}); element.parentElement.classList.add(`active`)}; });
element.parentElement.classList.add(`active`)
};
} }
// Display the results. // Display the results.
@ -107,7 +112,7 @@ export function search() {
var DATA = {}; var DATA = {};
DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))]; DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))];
DATA[`value`] = ((Object.keys(ITEM).includes(ELEMENT.getAttribute(`data-result-store`))) ? ITEM[ELEMENT.getAttribute(`data-result-store`)] : await secretariat.read(DATA[`target`], (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1)); DATA[`value`] = ((Object.keys(ITEM).includes(ELEMENT.getAttribute(`data-result-store`))) ? ITEM[ELEMENT.getAttribute(`data-result-store`)] : await read(DATA[`target`], (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1));
switch (ELEMENT[`type`]) { switch (ELEMENT[`type`]) {
case `checkbox`: case `checkbox`:
@ -115,7 +120,7 @@ export function search() {
ELEMENT[`function`] = function() { ELEMENT[`function`] = function() {
DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))]; DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))];
secretariat.write(DATA[`target`], ELEMENT.checked, (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1); write(DATA[`target`], ELEMENT.checked, (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1);
}; };
break; break;
default: default:
@ -126,7 +131,7 @@ export function search() {
try { try {
DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))]; DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))];
DATA[`value`] = JSON.parse(ELEMENT.value.trim()); DATA[`value`] = JSON.parse(ELEMENT.value.trim());
secretariat.write(DATA[`target`], DATA[`value`], (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1); write(DATA[`target`], DATA[`value`], (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1);
} catch(err) { } catch(err) {
// The JSON isn't valid. // The JSON isn't valid.
alerts.error(err.name, texts.localized(`JSON_parse_error`), err.stack, false); alerts.error(err.name, texts.localized(`JSON_parse_error`), err.stack, false);
@ -137,7 +142,7 @@ export function search() {
ELEMENT[`function`] = function() { ELEMENT[`function`] = function() {
DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))]; DATA[`target`] = ((ELEMENT.getAttribute(`data-result-store`).split(`,`))[0] == ``) ? [...(ELEMENT.getAttribute(`data-result-store`).split(`,`).slice(1)), ...[NAME]] : [...AREA, ...[NAME], ...(ELEMENT.getAttribute(`data-result-store`).split(`,`))];
secretariat.write(DATA[`target`], ELEMENT.value.trim(), (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1); write(DATA[`target`], ELEMENT.value.trim(), (ELEMENT.hasAttribute(`data-store-location`)) ? parseInt(ELEMENT.getAttribute(`data-store-location`)) : -1);
} }
} }
break; break;
@ -155,7 +160,7 @@ export function search() {
: ITEM[ELEMENT.getAttribute(`data-result-content`)]) : ITEM[ELEMENT.getAttribute(`data-result-content`)])
: ((ITEM[ELEMENT.getAttribute(`data-result-store`)]) : ((ITEM[ELEMENT.getAttribute(`data-result-store`)])
? (ITEM[ELEMENT.getAttribute(`data-result-store`)]) ? (ITEM[ELEMENT.getAttribute(`data-result-store`)])
: null) /*secretariat.read(((ITEM[(ELEMENT.getAttribute(`data-result-store`).split(`,`))])[ITEM])));*/ : null) /*read(((ITEM[(ELEMENT.getAttribute(`data-result-store`).split(`,`))])[ITEM])));*/
} }
} else { } else {
if (ELEMENT.getAttribute(`data-result-store`) && ELEMENT.type) { if (ELEMENT.getAttribute(`data-result-store`) && ELEMENT.type) {
@ -205,40 +210,32 @@ export function search() {
.getAttribute(`data-results-filters`) .getAttribute(`data-results-filters`)
.split(`,`); .split(`,`);
} }
SEARCH[element.getAttribute(`data-result`)][`results`] = await (async () => { SEARCH[element.getAttribute(`data-result`)][`results`] = await search(
const secretariat = await import(
chrome.runtime.getURL(`scripts/secretariat.js`)
);
return await secretariat.search(
element.getAttribute(`data-result`), element.getAttribute(`data-result`),
SEARCH[element.getAttribute(`data-result`)][`criteria`], SEARCH[element.getAttribute(`data-result`)][`criteria`],
SEARCH[element.getAttribute(`data-result`)][`additional criteria`], SEARCH[element.getAttribute(`data-result`)][`additional criteria`],
); );
})();
} else { } else {
SEARCH[element.getAttribute(`data-result`)][`results`] = await (async () => { SEARCH[element.getAttribute(`data-result`)][`results`] = await read(element.getAttribute(`data-result`));
const secretariat = await import( };
chrome.runtime.getURL(`scripts/secretariat.js`)
);
// Return the selected result.
return await secretariat.read(element.getAttribute(`data-result`));
})();
}
display(element.getAttribute(`data-result`), SEARCH[element.getAttribute(`data-result`)][`results`], `name`); display(element.getAttribute(`data-result`), SEARCH[element.getAttribute(`data-result`)][`results`], `name`);
if (( // Make sure it compensates vanished objects and no results detection.
if (((
!(SEARCH[element.getAttribute(`data-result`)][`selected`]) !(SEARCH[element.getAttribute(`data-result`)][`selected`])
|| (typeof SEARCH[element.getAttribute(`data-result`)][`results`]).includes(`obj`) && SEARCH[element.getAttribute(`data-result`)][`results`] != null) || (typeof SEARCH[element.getAttribute(`data-result`)][`results`]).includes(`obj`) && SEARCH[element.getAttribute(`data-result`)][`results`] != null)
? (((SEARCH[element.getAttribute(`data-result`)][`results`] != null) ? (Object.keys(SEARCH[element.getAttribute(`data-result`)][`results`]).length <= 0) : false) ? (((SEARCH[element.getAttribute(`data-result`)][`results`] != null) ? (Object.keys(SEARCH[element.getAttribute(`data-result`)][`results`]).length <= 0) : false)
|| !((SEARCH[element.getAttribute(`data-result`)][`selected`]))) || !((SEARCH[element.getAttribute(`data-result`)][`selected`])))
: true) : true) ||
{ (SEARCH[element.getAttribute(`data-result`)][`results`] && SEARCH[element.getAttribute(`data-result`)][`selected`])
? !(Object.keys(SEARCH[element.getAttribute(`data-result`)][`results`]).includes(SEARCH[element.getAttribute(`data-result`)][`selected`]))
: false
) {
pick(null, null, element.getAttribute(`data-result`)); pick(null, null, element.getAttribute(`data-result`));
} }
secretariat.observe((what) => { observe((what) => {
find(element); find(element);
}); });
} }