const reihenfolge = ["aktiv", "kalt", "erledigt", "gescheitert"];
const titel = {
  aktiv: "Aktive Quests",
  kalt: "Kalte Spur",
  erledigt: "Abgeschlossen",
  gescheitert: "Gescheitert",
};
 
const alle = dv.pages('"Quests"').where(p => p.type === "quest");
 
for (const status of reihenfolge) {
  const gruppe = alle.where(p => p["quest-status"] === status);
  if (!gruppe.length) continue;
  dv.header(2, titel[status] + " (" + gruppe.length + ")");
  dv.table(
    ["Quest", "Art", "Für", "Auftraggeber"],
    gruppe
      .sort(p => p["quest-type"])
      .map(p => [p.file.link, p["quest-type"], p.owner, p.giver])
  );
}
 
const ohne = alle.where(p => !reihenfolge.includes(p["quest-status"]));
if (ohne.length) {
  dv.header(2, "Ohne Status (" + ohne.length + ")");
  dv.list(ohne.map(p => p.file.link));
}