chore(webui): exclude always available items from Add Missing

This commit is contained in:
AMelonInsideLemon 2025-09-15 19:58:06 +02:00
parent 6a6683fb25
commit c4c1bc68ca
2 changed files with 15 additions and 7 deletions

View File

@ -36,6 +36,7 @@ interface ListedItem {
partType?: string;
chainLength?: number;
parazon?: boolean;
excludeFromAddMissing?: boolean;
}
interface ItemLists {
@ -454,10 +455,12 @@ const getItemListsController: RequestHandler = (req, response) => {
}
for (const [uniqueName, item] of Object.entries(ExportFlavour)) {
res.FlavourItems.push({
uniqueName: uniqueName,
const flavourItem: ListedItem = {
uniqueName,
name: getString(item.name, lang)
});
};
if (item.alwaysAvailable) flavourItem.excludeFromAddMissing = true;
res.FlavourItems.push(flavourItem);
}
response.json(res);

View File

@ -598,6 +598,7 @@ function fetchItemList() {
option.setAttribute("data-key", item.uniqueName);
option.value = item.name;
document.getElementById("datalist-" + type).appendChild(option);
if (item.excludeFromAddMissing) option.setAttribute("data-exclude-from-add-missing", "");
itemMap[item.uniqueName] = { ...item, type };
});
} else {
@ -993,12 +994,12 @@ function updateInventory() {
document.getElementById("FlavourItems-list").innerHTML = "";
data.FlavourItems.forEach(item => {
const datalist = document.getElementById("datalist-FlavourItems");
if (!data.FlavourItems.some(x => x.ItemType == item.uniqueName)) {
if (!datalist.querySelector(`option[value="${item.uniqueName}"]`)) {
if (!data.FlavourItems.some(x => x.ItemType == item.ItemType)) {
if (!datalist.querySelector(`option[data-key="${item.ItemType}"]`)) {
reAddToItemList(itemMap, "FlavourItems", item.ItemType);
}
}
const optionToRemove = datalist.querySelector(`option[value="${item.ItemType}"]`);
const optionToRemove = datalist.querySelector(`option[data-key="${item.ItemType}"]`);
optionToRemove?.remove();
const tr = document.createElement("tr");
@ -2265,7 +2266,10 @@ function addMissingEquipment(categories) {
"#" + category + "-list [data-item-type='" + elm.getAttribute("data-key") + "']"
)
) {
if (!webUiModularWeapons.includes(elm.getAttribute("data-key"))) {
if (
!webUiModularWeapons.includes(elm.getAttribute("data-key")) &&
!elm.hasAttribute("data-exclude-from-add-missing")
) {
let ItemCount = 1;
if (category == "ShipDecorations") ItemCount = 100;
requests.push({ ItemType: elm.getAttribute("data-key"), ItemCount });
@ -3411,6 +3415,7 @@ function reAddToItemList(itemMap, datalist, itemType) {
const option = document.createElement("option");
option.setAttribute("data-key", itemType);
option.value = itemMap[itemType]?.name ?? itemType;
if (itemMap[itemType]?.excludeFromAddMissing) option.setAttribute("data-exclude-from-add-missing", "");
document.getElementById("datalist-" + datalist).appendChild(option);
}