forked from OpenWF/SpaceNinjaServer
		
	feat(webui): add "max rank all warframes" & "max rank all weapons" (#783)
Co-authored-by: Sainan <sainan@calamity.inc>
This commit is contained in:
		
							parent
							
								
									7d7466cbc1
								
							
						
					
					
						commit
						a545d4f047
					
				@ -96,9 +96,9 @@
 | 
				
			|||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
                <div class="row g-3">
 | 
					                <div class="row g-3">
 | 
				
			||||||
                    <div class="col-lg-6">
 | 
					                    <div class="col-lg-6">
 | 
				
			||||||
                        <div class="card mb-3">
 | 
					                        <div class="card mb-3" style="height: 480px;">
 | 
				
			||||||
                            <h5 class="card-header">Warframes</h5>
 | 
					                            <h5 class="card-header">Warframes</h5>
 | 
				
			||||||
                            <div class="card-body">
 | 
					                            <div class="card-body overflow-auto">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireWarframe();return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireWarframe();return false;">
 | 
				
			||||||
                                    <input class="form-control" id="warframe-to-acquire" list="datalist-warframes" />
 | 
					                                    <input class="form-control" id="warframe-to-acquire" list="datalist-warframes" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit">Add</button>
 | 
					                                    <button class="btn btn-primary" type="submit">Add</button>
 | 
				
			||||||
@ -108,18 +108,11 @@
 | 
				
			|||||||
                                </table>
 | 
					                                </table>
 | 
				
			||||||
                            </div>
 | 
					                            </div>
 | 
				
			||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                        <div class="card mb-3">
 | 
					 | 
				
			||||||
                            <h5 class="card-header">Bulk Actions</h5>
 | 
					 | 
				
			||||||
                            <div class="card-body">
 | 
					 | 
				
			||||||
                                <button class="btn btn-primary" onclick="addMissingWarframes();">Add Missing Warframes</button>
 | 
					 | 
				
			||||||
                                <button class="btn btn-primary" onclick="addMissingWeapons();">Add Missing Weapons</button>
 | 
					 | 
				
			||||||
                            </div>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                    <div class="col-lg-6">
 | 
					                    <div class="col-lg-6">
 | 
				
			||||||
                        <div class="card mb-3">
 | 
					                        <div class="card mb-3" style="height: 480px;">
 | 
				
			||||||
                            <h5 class="card-header">Weapons</h5>
 | 
					                            <h5 class="card-header">Weapons</h5>
 | 
				
			||||||
                            <div class="card-body">
 | 
					                            <div class="card-body overflow-auto">
 | 
				
			||||||
                                <form class="input-group mb-3" onsubmit="doAcquireWeapon();return false;">
 | 
					                                <form class="input-group mb-3" onsubmit="doAcquireWeapon();return false;">
 | 
				
			||||||
                                    <input class="form-control" id="weapon-to-acquire" list="datalist-weapons" />
 | 
					                                    <input class="form-control" id="weapon-to-acquire" list="datalist-weapons" />
 | 
				
			||||||
                                    <button class="btn btn-primary" type="submit">Add</button>
 | 
					                                    <button class="btn btn-primary" type="submit">Add</button>
 | 
				
			||||||
@ -131,6 +124,15 @@
 | 
				
			|||||||
                        </div>
 | 
					                        </div>
 | 
				
			||||||
                    </div>
 | 
					                    </div>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
 | 
					                <div class="card mb-3">
 | 
				
			||||||
 | 
					                    <h5 class="card-header">Bulk Actions</h5>
 | 
				
			||||||
 | 
					                    <div class="card-body d-flex flex-wrap gap-2">
 | 
				
			||||||
 | 
					                        <button class="btn btn-primary" onclick="addMissingWarframes();">Add Missing Warframes</button>
 | 
				
			||||||
 | 
					                        <button class="btn btn-primary" onclick="addMissingWeapons();">Add Missing Weapons</button>
 | 
				
			||||||
 | 
					                        <button class="btn btn-success" onclick="maxRankAllWarframes()">Max Rank All Warframes</button>
 | 
				
			||||||
 | 
					                        <button class="btn btn-success" onclick="maxRankAllWeapons()">Max Rank All Weapons</button>
 | 
				
			||||||
 | 
					                    </div>
 | 
				
			||||||
 | 
					                </div>
 | 
				
			||||||
            </div>
 | 
					            </div>
 | 
				
			||||||
            <div id="powersuit-route" data-route="~ /webui/powersuit/(.+)" data-title="Inventory | OpenWF WebUI">
 | 
					            <div id="powersuit-route" data-route="~ /webui/powersuit/(.+)" data-title="Inventory | OpenWF WebUI">
 | 
				
			||||||
                <h3 class="mb-0"></h3>
 | 
					                <h3 class="mb-0"></h3>
 | 
				
			||||||
 | 
				
			|||||||
@ -605,6 +605,46 @@ function addMissingWarframes() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function maxRankAllWarframes() {
 | 
				
			||||||
 | 
					    const req = $.get("/api/inventory.php?" + window.authz + "&xpBasedLevelCapDisabled=1");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    req.done(data => {
 | 
				
			||||||
 | 
					        window.itemListPromise.then(itemMap => {
 | 
				
			||||||
 | 
					            const batchData = { Suits: [], SpecialItems: [] };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            data.Suits.forEach(item => {
 | 
				
			||||||
 | 
					                if (item.XP < 1_600_000) {
 | 
				
			||||||
 | 
					                    batchData.Suits.push({
 | 
				
			||||||
 | 
					                        ItemId: { $oid: item.ItemId.$oid },
 | 
				
			||||||
 | 
					                        XP: 1_600_000 - item.XP
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if ("exalted" in itemMap[item.ItemType]) {
 | 
				
			||||||
 | 
					                    for (const exaltedType of itemMap[item.ItemType].exalted) {
 | 
				
			||||||
 | 
					                        const exaltedItem = data.SpecialItems.find(x => x.ItemType == exaltedType);
 | 
				
			||||||
 | 
					                        if (exaltedItem) {
 | 
				
			||||||
 | 
					                            const exaltedCap = itemMap[exaltedType]?.type == "weapons" ? 800_000 : 1_600_000;
 | 
				
			||||||
 | 
					                            if (exaltedItem.XP < exaltedCap) {
 | 
				
			||||||
 | 
					                                batchData.SpecialItems.push({
 | 
				
			||||||
 | 
					                                    ItemId: { $oid: exaltedItem.ItemId.$oid },
 | 
				
			||||||
 | 
					                                    XP: exaltedCap
 | 
				
			||||||
 | 
					                                });
 | 
				
			||||||
 | 
					                            }
 | 
				
			||||||
 | 
					                        }
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if (batchData.Suits.length > 0 || batchData.SpecialItems.length > 0) {
 | 
				
			||||||
 | 
					                return sendBatchGearExp(batchData);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            alert("No Warframes to rank up.");
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function addMissingWeapons() {
 | 
					function addMissingWeapons() {
 | 
				
			||||||
    const requests = [];
 | 
					    const requests = [];
 | 
				
			||||||
    document.querySelectorAll("#datalist-weapons option").forEach(elm => {
 | 
					    document.querySelectorAll("#datalist-weapons option").forEach(elm => {
 | 
				
			||||||
@ -620,6 +660,34 @@ function addMissingWeapons() {
 | 
				
			|||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function maxRankAllWeapons() {
 | 
				
			||||||
 | 
					    const req = $.get("/api/inventory.php?" + window.authz + "&xpBasedLevelCapDisabled=1");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    req.done(data => {
 | 
				
			||||||
 | 
					        const batchData = {};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        ["LongGuns", "Pistols", "Melee"].forEach(category => {
 | 
				
			||||||
 | 
					            data[category].forEach(item => {
 | 
				
			||||||
 | 
					                if (item.XP < 800_000) {
 | 
				
			||||||
 | 
					                    if (!batchData[category]) {
 | 
				
			||||||
 | 
					                        batchData[category] = [];
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
 | 
					                    batchData[category].push({
 | 
				
			||||||
 | 
					                        ItemId: { $oid: item.ItemId.$oid },
 | 
				
			||||||
 | 
					                        XP: 800_000 - item.XP
 | 
				
			||||||
 | 
					                    });
 | 
				
			||||||
 | 
					                }
 | 
				
			||||||
 | 
					            });
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if (Object.keys(batchData).length > 0) {
 | 
				
			||||||
 | 
					            return sendBatchGearExp(batchData);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        alert("No weapons to rank up.");
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function addGearExp(category, oid, xp) {
 | 
					function addGearExp(category, oid, xp) {
 | 
				
			||||||
    const data = {};
 | 
					    const data = {};
 | 
				
			||||||
    data[category] = [
 | 
					    data[category] = [
 | 
				
			||||||
@ -641,6 +709,18 @@ function addGearExp(category, oid, xp) {
 | 
				
			|||||||
    });
 | 
					    });
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					function sendBatchGearExp(data) {
 | 
				
			||||||
 | 
					    revalidateAuthz(() => {
 | 
				
			||||||
 | 
					        $.post({
 | 
				
			||||||
 | 
					            url: "/api/missionInventoryUpdate.php?" + window.authz,
 | 
				
			||||||
 | 
					            contentType: "text/plain",
 | 
				
			||||||
 | 
					            data: JSON.stringify(data)
 | 
				
			||||||
 | 
					        }).done(() => {
 | 
				
			||||||
 | 
					            updateInventory();
 | 
				
			||||||
 | 
					        });
 | 
				
			||||||
 | 
					    });
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
function renameGear(category, oid, name) {
 | 
					function renameGear(category, oid, name) {
 | 
				
			||||||
    revalidateAuthz(() => {
 | 
					    revalidateAuthz(() => {
 | 
				
			||||||
        $.post({
 | 
					        $.post({
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user