in ui/changes/src/common.js [2640:2800]
export async function getFilteredBugSummaries() {
let data = await landingsData;
let metaBugID = getOption("metaBugID");
let testingTags = getOption("testingTags");
let products = getOption("products");
let components = getOption("components");
let teams = getOption("teams");
let whiteBoard = getOption("whiteBoard");
let releaseVersions = getOption("releaseVersions");
let types = getOption("types");
let severities = getOption("severities");
let riskiness = getOption("riskiness");
let bugSummaries = [].concat.apply([], Object.values(data));
if (metaBugID) {
bugSummaries = bugSummaries.filter((bugSummary) =>
bugSummary["meta_ids"].includes(Number(metaBugID))
);
}
let fixStartDate = getOption("fixStartDate");
if (fixStartDate) {
fixStartDate = Temporal.PlainDate.from(fixStartDate);
bugSummaries = bugSummaries.filter((bugSummary) => {
if (!bugSummary.date) {
return false;
}
return (
Temporal.PlainDate.compare(
getPlainDate(bugSummary.date),
fixStartDate
) >= 0
);
});
}
let fixEndDate = getOption("fixEndDate");
if (fixEndDate) {
fixEndDate = Temporal.PlainDate.from(fixEndDate);
bugSummaries = bugSummaries.filter((bugSummary) => {
if (!bugSummary.date) {
return false;
}
return (
Temporal.PlainDate.compare(getPlainDate(bugSummary.date), fixEndDate) <=
0
);
});
}
let createStartDate = getOption("createStartDate");
if (createStartDate) {
createStartDate = Temporal.PlainDate.from(createStartDate);
bugSummaries = bugSummaries.filter(
(bugSummary) =>
Temporal.PlainDate.compare(
getPlainDate(bugSummary.creation_date),
createStartDate
) >= 0
);
}
let createEndDate = getOption("createEndDate");
if (createEndDate) {
createEndDate = Temporal.PlainDate.from(createEndDate);
bugSummaries = bugSummaries.filter(
(bugSummary) =>
Temporal.PlainDate.compare(
getPlainDate(bugSummary.creation_date),
createEndDate
) <= 0
);
}
if (testingTags) {
const includeUnknownTestingTags = testingTags.includes("unknown");
const includeNotAvailableTestingTags = testingTags.includes("N/A");
bugSummaries = bugSummaries.filter(
(bugSummary) =>
(includeNotAvailableTestingTags && bugSummary.commits.length == 0) ||
bugSummary.commits.some(
(commit) =>
(includeUnknownTestingTags && !commit.testing) ||
testingTags.includes(commit.testing)
)
);
}
if (products) {
bugSummaries = bugSummaries.filter((bugSummary) =>
products.some((product) =>
bugSummary["component"].startsWith(`${product}::`)
)
);
}
if (components) {
bugSummaries = bugSummaries.filter((bugSummary) =>
components.includes(bugSummary["component"])
);
}
if (teams) {
bugSummaries = bugSummaries.filter((bugSummary) =>
teams.includes(bugSummary["team"])
);
}
if (whiteBoard) {
bugSummaries = bugSummaries.filter((bugSummary) =>
bugSummary["whiteboard"].includes(whiteBoard)
);
}
if (releaseVersions) {
const includeUnfixed = getOption("includeUnfixed");
bugSummaries = bugSummaries.filter(
(bugSummary) =>
(includeUnfixed && bugSummary.versions.length == 0) ||
releaseVersions.some((version) =>
bugSummary.versions.includes(Number(version))
)
);
}
if (types) {
if (!types.includes("unknown")) {
bugSummaries = bugSummaries.filter((bugSummary) =>
bugSummary.types.some((type) => types.includes(type))
);
}
}
if (severities) {
bugSummaries = bugSummaries.filter((bugSummary) =>
severities.includes(bugSummary.severity)
);
}
if (riskiness) {
const includeNotAvailableRiskiness = riskiness.includes("N/A");
bugSummaries = bugSummaries.filter(
(bugSummary) =>
(includeNotAvailableRiskiness && bugSummary.risk_band === null) ||
riskiness.includes(bugSummary.risk_band)
);
}
if (getOption("regressionsOnly")) {
bugSummaries = bugSummaries.filter((bugSummary) => bugSummary.regression);
}
let bugDetails = document.getElementById("bug-details");
if (bugDetails) {
sortBugSummaries(bugSummaries, sortBy[0], sortBy[1]);
}
return bugSummaries;
}