forked from OpenWF/SpaceNinjaServer
		
	chore(webui): exclude always available items from Add Missing
				
					
				
			This commit is contained in:
		
							parent
							
								
									6a6683fb25
								
							
						
					
					
						commit
						c4c1bc68ca
					
				@ -36,6 +36,7 @@ interface ListedItem {
 | 
				
			|||||||
    partType?: string;
 | 
					    partType?: string;
 | 
				
			||||||
    chainLength?: number;
 | 
					    chainLength?: number;
 | 
				
			||||||
    parazon?: boolean;
 | 
					    parazon?: boolean;
 | 
				
			||||||
 | 
					    excludeFromAddMissing?: boolean;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
interface ItemLists {
 | 
					interface ItemLists {
 | 
				
			||||||
@ -454,10 +455,12 @@ const getItemListsController: RequestHandler = (req, response) => {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (const [uniqueName, item] of Object.entries(ExportFlavour)) {
 | 
					    for (const [uniqueName, item] of Object.entries(ExportFlavour)) {
 | 
				
			||||||
        res.FlavourItems.push({
 | 
					        const flavourItem: ListedItem = {
 | 
				
			||||||
            uniqueName: uniqueName,
 | 
					            uniqueName,
 | 
				
			||||||
            name: getString(item.name, lang)
 | 
					            name: getString(item.name, lang)
 | 
				
			||||||
        });
 | 
					        };
 | 
				
			||||||
 | 
					        if (item.alwaysAvailable) flavourItem.excludeFromAddMissing = true;
 | 
				
			||||||
 | 
					        res.FlavourItems.push(flavourItem);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    response.json(res);
 | 
					    response.json(res);
 | 
				
			||||||
 | 
				
			|||||||
@ -598,6 +598,7 @@ function fetchItemList() {
 | 
				
			|||||||
                        option.setAttribute("data-key", item.uniqueName);
 | 
					                        option.setAttribute("data-key", item.uniqueName);
 | 
				
			||||||
                        option.value = item.name;
 | 
					                        option.value = item.name;
 | 
				
			||||||
                        document.getElementById("datalist-" + type).appendChild(option);
 | 
					                        document.getElementById("datalist-" + type).appendChild(option);
 | 
				
			||||||
 | 
					                        if (item.excludeFromAddMissing) option.setAttribute("data-exclude-from-add-missing", "");
 | 
				
			||||||
                        itemMap[item.uniqueName] = { ...item, type };
 | 
					                        itemMap[item.uniqueName] = { ...item, type };
 | 
				
			||||||
                    });
 | 
					                    });
 | 
				
			||||||
                } else {
 | 
					                } else {
 | 
				
			||||||
@ -993,12 +994,12 @@ function updateInventory() {
 | 
				
			|||||||
            document.getElementById("FlavourItems-list").innerHTML = "";
 | 
					            document.getElementById("FlavourItems-list").innerHTML = "";
 | 
				
			||||||
            data.FlavourItems.forEach(item => {
 | 
					            data.FlavourItems.forEach(item => {
 | 
				
			||||||
                const datalist = document.getElementById("datalist-FlavourItems");
 | 
					                const datalist = document.getElementById("datalist-FlavourItems");
 | 
				
			||||||
                if (!data.FlavourItems.some(x => x.ItemType == item.uniqueName)) {
 | 
					                if (!data.FlavourItems.some(x => x.ItemType == item.ItemType)) {
 | 
				
			||||||
                    if (!datalist.querySelector(`option[value="${item.uniqueName}"]`)) {
 | 
					                    if (!datalist.querySelector(`option[data-key="${item.ItemType}"]`)) {
 | 
				
			||||||
                        reAddToItemList(itemMap, "FlavourItems", 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();
 | 
					                optionToRemove?.remove();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                const tr = document.createElement("tr");
 | 
					                const tr = document.createElement("tr");
 | 
				
			||||||
@ -2265,7 +2266,10 @@ function addMissingEquipment(categories) {
 | 
				
			|||||||
                    "#" + category + "-list [data-item-type='" + elm.getAttribute("data-key") + "']"
 | 
					                    "#" + 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;
 | 
					                    let ItemCount = 1;
 | 
				
			||||||
                    if (category == "ShipDecorations") ItemCount = 100;
 | 
					                    if (category == "ShipDecorations") ItemCount = 100;
 | 
				
			||||||
                    requests.push({ ItemType: elm.getAttribute("data-key"), ItemCount });
 | 
					                    requests.push({ ItemType: elm.getAttribute("data-key"), ItemCount });
 | 
				
			||||||
@ -3411,6 +3415,7 @@ function reAddToItemList(itemMap, datalist, itemType) {
 | 
				
			|||||||
    const option = document.createElement("option");
 | 
					    const option = document.createElement("option");
 | 
				
			||||||
    option.setAttribute("data-key", itemType);
 | 
					    option.setAttribute("data-key", itemType);
 | 
				
			||||||
    option.value = itemMap[itemType]?.name ?? itemType;
 | 
					    option.value = itemMap[itemType]?.name ?? itemType;
 | 
				
			||||||
 | 
					    if (itemMap[itemType]?.excludeFromAddMissing) option.setAttribute("data-exclude-from-add-missing", "");
 | 
				
			||||||
    document.getElementById("datalist-" + datalist).appendChild(option);
 | 
					    document.getElementById("datalist-" + datalist).appendChild(option);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user