fix(webui): recreate missing datalist-QuestKeys entries after refreshing inventory (#2452)
Closes #2448 Reviewed-on: #2452 Co-authored-by: Sainan <63328889+Sainan@users.noreply.github.com> Co-committed-by: Sainan <63328889+Sainan@users.noreply.github.com>
This commit is contained in:
parent
08d4a03c50
commit
ba70ba88dd
@ -273,6 +273,8 @@ function fetchItemList() {
|
|||||||
window.itemListPromise = new Promise(resolve => {
|
window.itemListPromise = new Promise(resolve => {
|
||||||
const req = $.get("/custom/getItemLists?lang=" + window.lang);
|
const req = $.get("/custom/getItemLists?lang=" + window.lang);
|
||||||
req.done(async data => {
|
req.done(async data => {
|
||||||
|
window.allQuestKeys = data.QuestKeys;
|
||||||
|
|
||||||
await dictPromise;
|
await dictPromise;
|
||||||
|
|
||||||
document.querySelectorAll('[id^="datalist-"]').forEach(datalist => {
|
document.querySelectorAll('[id^="datalist-"]').forEach(datalist => {
|
||||||
@ -879,6 +881,14 @@ function updateInventory() {
|
|||||||
|
|
||||||
// Populate quests route
|
// Populate quests route
|
||||||
document.getElementById("QuestKeys-list").innerHTML = "";
|
document.getElementById("QuestKeys-list").innerHTML = "";
|
||||||
|
window.allQuestKeys.forEach(questKey => {
|
||||||
|
if (!data.QuestKeys.some(x => x.ItemType == questKey.uniqueName)) {
|
||||||
|
const datalist = document.getElementById("datalist-QuestKeys");
|
||||||
|
if (!datalist.querySelector(`option[data-key="${questKey.uniqueName}"]`)) {
|
||||||
|
readdQuestKey(itemMap, questKey.uniqueName);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
data.QuestKeys.forEach(item => {
|
data.QuestKeys.forEach(item => {
|
||||||
const tr = document.createElement("tr");
|
const tr = document.createElement("tr");
|
||||||
tr.setAttribute("data-item-type", item.ItemType);
|
tr.setAttribute("data-item-type", item.ItemType);
|
||||||
@ -972,10 +982,7 @@ function updateInventory() {
|
|||||||
a.href = "#";
|
a.href = "#";
|
||||||
a.onclick = function (event) {
|
a.onclick = function (event) {
|
||||||
event.preventDefault();
|
event.preventDefault();
|
||||||
const option = document.createElement("option");
|
readdQuestKey(itemMap, item.ItemType);
|
||||||
option.setAttribute("data-key", item.ItemType);
|
|
||||||
option.value = itemMap[item.ItemType]?.name ?? item.ItemType;
|
|
||||||
document.getElementById("datalist-QuestKeys").appendChild(option);
|
|
||||||
doQuestUpdate("deleteKey", item.ItemType);
|
doQuestUpdate("deleteKey", item.ItemType);
|
||||||
};
|
};
|
||||||
a.title = loc("code_remove");
|
a.title = loc("code_remove");
|
||||||
@ -2270,6 +2277,13 @@ function doAddCurrency(currency) {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function readdQuestKey(itemMap, itemType) {
|
||||||
|
const option = document.createElement("option");
|
||||||
|
option.setAttribute("data-key", itemType);
|
||||||
|
option.value = itemMap[itemType]?.name ?? itemType;
|
||||||
|
document.getElementById("datalist-QuestKeys").appendChild(option);
|
||||||
|
}
|
||||||
|
|
||||||
function doQuestUpdate(operation, itemType) {
|
function doQuestUpdate(operation, itemType) {
|
||||||
revalidateAuthz().then(() => {
|
revalidateAuthz().then(() => {
|
||||||
$.post({
|
$.post({
|
||||||
|
Loading…
x
Reference in New Issue
Block a user