improve sorting
parent
e0841dbc3b
commit
e7170f166a
|
@ -800,128 +800,82 @@ class CompendiumBrowser extends Application {
|
||||||
}
|
}
|
||||||
|
|
||||||
sortSpells(list, byName) {
|
sortSpells(list, byName) {
|
||||||
if (byName) {
|
list.sort((a, b) => {
|
||||||
list.sort((a, b) => {
|
const aName = $(a).find(".item-name a")[0].innerHTML;
|
||||||
let aName = $(a).find(".item-name a")[0].innerHTML;
|
const bName = $(b).find(".item-name a")[0].innerHTML;
|
||||||
let bName = $(b).find(".item-name a")[0].innerHTML;
|
|
||||||
if (aName < bName) return -1;
|
if (!byName) {
|
||||||
if (aName > bName) return 1;
|
const aLevel = $(a).find("input[name=level]").val();
|
||||||
return 0;
|
const bLevel = $(b).find("input[name=level]").val();
|
||||||
});
|
const levelComparison = aLevel.localeCompare(bLevel);
|
||||||
} else {
|
|
||||||
list.sort((a, b) => {
|
if (levelComparison !== 0) {
|
||||||
let aVal = $(a).find("input[name=level]").val();
|
return levelComparison;
|
||||||
let bVal = $(b).find("input[name=level]").val();
|
|
||||||
if (aVal < bVal) return -1;
|
|
||||||
if (aVal > bVal) return 1;
|
|
||||||
if (aVal == bVal) {
|
|
||||||
let aName = $(a).find(".item-name a")[0].innerHTML;
|
|
||||||
let bName = $(b).find(".item-name a")[0].innerHTML;
|
|
||||||
if (aName < bName) return -1;
|
|
||||||
if (aName > bName) return 1;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
return aName.localeCompare(bName);
|
||||||
|
});
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
sortFeats(list, byName) {
|
sortFeats(list, byName) {
|
||||||
if (byName) {
|
list.sort((a, b) => {
|
||||||
list.sort((a, b) => {
|
const aName = $(a).find(".item-name a")[0].innerHTML;
|
||||||
let aName = $(a).find(".item-name a")[0].innerHTML;
|
const bName = $(b).find(".item-name a")[0].innerHTML;
|
||||||
let bName = $(b).find(".item-name a")[0].innerHTML;
|
|
||||||
if (aName < bName) return -1;
|
if (!byName) {
|
||||||
if (aName > bName) return 1;
|
const aLevel = $(a).find("input[name=class]").val();
|
||||||
return 0;
|
const bLevel = $(b).find("input[name=class]").val();
|
||||||
});
|
const levelComparison = aLevel.localeCompare(bLevel);
|
||||||
} else {
|
|
||||||
list.sort((a, b) => {
|
if (levelComparison !== 0) {
|
||||||
let aVal = $(a).find("input[name=class]").val();
|
return levelComparison;
|
||||||
let bVal = $(b).find("input[name=class]").val();
|
|
||||||
if (aVal < bVal) return -1;
|
|
||||||
if (aVal > bVal) return 1;
|
|
||||||
if (aVal == bVal) {
|
|
||||||
let aName = $(a).find(".item-name a")[0].innerHTML;
|
|
||||||
let bName = $(b).find(".item-name a")[0].innerHTML;
|
|
||||||
if (aName < bName) return -1;
|
|
||||||
if (aName > bName) return 1;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
return aName.localeCompare(bName);
|
||||||
|
});
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
sortItems(list, byName) {
|
sortItems(list, byName) {
|
||||||
if (byName) {
|
list.sort((a, b) => {
|
||||||
list.sort((a, b) => {
|
const aName = $(a).find(".item-name a")[0].innerHTML;
|
||||||
let aName = $(a).find(".item-name a")[0].innerHTML;
|
const bName = $(b).find(".item-name a")[0].innerHTML;
|
||||||
let bName = $(b).find(".item-name a")[0].innerHTML;
|
|
||||||
if (aName < bName) return -1;
|
if (!byName) {
|
||||||
if (aName > bName) return 1;
|
const aLevel = $(a).find("input[name=type]").val();
|
||||||
return 0;
|
const bLevel = $(b).find("input[name=type]").val();
|
||||||
});
|
const levelComparison = aLevel.localeCompare(bLevel);
|
||||||
} else {
|
|
||||||
list.sort((a, b) => {
|
if (levelComparison !== 0) {
|
||||||
let aVal = $(a).find("input[name=type]").val();
|
return levelComparison;
|
||||||
let bVal = $(b).find("input[name=type]").val();
|
|
||||||
if (aVal < bVal) return -1;
|
|
||||||
if (aVal > bVal) return 1;
|
|
||||||
if (aVal == bVal) {
|
|
||||||
let aName = $(a).find(".item-name a")[0].innerHTML;
|
|
||||||
let bName = $(b).find(".item-name a")[0].innerHTML;
|
|
||||||
if (aName < bName) return -1;
|
|
||||||
if (aName > bName) return 1;
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
});
|
}
|
||||||
}
|
return aName.localeCompare(bName);
|
||||||
|
});
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
sortNpcs(list, orderBy) {
|
sortNpcs(list, orderBy) {
|
||||||
switch (orderBy) {
|
list.sort((a, b) => {
|
||||||
case "name":
|
const aName = $(a).find(".item-name a")[0].innerHTML;
|
||||||
list.sort((a, b) => {
|
const bName = $(b).find(".item-name a")[0].innerHTML;
|
||||||
let aName = $(a).find(".npc-name a")[0].innerHTML;
|
|
||||||
let bName = $(b).find(".npc-name a")[0].innerHTML;
|
if (orderBy === "cr") {
|
||||||
if (aName < bName) return -1;
|
const aLevel = Number($(a).find('input[name="order.cr"]').val());
|
||||||
if (aName > bName) return 1;
|
const bLevel = Number($(b).find('input[name="order.cr"]').val());
|
||||||
return 0;
|
if (aLevel !== bLevel) {
|
||||||
});
|
return aLevel - bLevel;
|
||||||
break;
|
}
|
||||||
case "cr":
|
} else if (orderBy === "size") {
|
||||||
list.sort((a, b) => {
|
const aLevel = Number($(a).find('input[name="order.size"]').val());
|
||||||
let aVal = Number($(a).find('input[name="order.cr"]').val());
|
const bLevel = Number($(b).find('input[name="order.size"]').val());
|
||||||
let bVal = Number($(b).find('input[name="order.cr"]').val());
|
if (aLevel !== bLevel) {
|
||||||
if (aVal < bVal) return -1;
|
return aLevel - bLevel;
|
||||||
if (aVal > bVal) return 1;
|
}
|
||||||
if (aVal == bVal) {
|
}
|
||||||
let aName = $(a).find(".npc-name a")[0].innerHTML;
|
return aName.localeCompare(bName);
|
||||||
let bName = $(b).find(".npc-name a")[0].innerHTML;
|
});
|
||||||
if (aName < bName) return -1;
|
|
||||||
if (aName > bName) return 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
case "size":
|
|
||||||
list.sort((a, b) => {
|
|
||||||
let aVal = $(a).find('input[name="order.size"]').val();
|
|
||||||
let bVal = $(b).find('input[name="order.size"]').val();
|
|
||||||
if (aVal < bVal) return -1;
|
|
||||||
if (aVal > bVal) return 1;
|
|
||||||
if (aVal == bVal) {
|
|
||||||
let aName = $(a).find(".npc-name a")[0].innerHTML;
|
|
||||||
let bName = $(b).find(".npc-name a")[0].innerHTML;
|
|
||||||
if (aName < bName) return -1;
|
|
||||||
if (aName > bName) return 1;
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue