Merge pull request #13973 from guerler/add_any_001

Allow any as value for boolean default parameters in filter text
This commit is contained in:
Dannon
2023-01-17 13:03:47 -05:00
committed by GitHub
3 changed files with 18 additions and 6 deletions
@@ -19,7 +19,7 @@ export default {
data() {
return {
options: [
{ text: "Any", value: null },
{ text: "Any", value: "any" },
{ text: "Yes", value: true },
{ text: "No", value: false },
],
@@ -46,7 +46,7 @@ export default {
methods: {
getValue(name) {
const value = this.settings[`${name}:`];
return value !== undefined ? value : null;
return value !== undefined ? value : "any";
},
onChange(name, value) {
value = value !== null ? value : undefined;
+9
View File
@@ -28,6 +28,15 @@ describe("filtering", () => {
const queryDict = HistoryFilters.getQueryDict("name of item");
expect(queryDict["name-contains"]).toBe("name of item");
});
test("parse any for default parameters", () => {
const filters = HistoryFilters.getFilters("deleted:any");
expect(filters.length).toBe(0);
const queryDict = HistoryFilters.getQueryDict("deleted:any");
expect(Object.keys(queryDict).length).toBe(0);
const filtersAny = HistoryFilters.getFilters("name:any");
expect(filtersAny[0][0]).toBe("name");
expect(filtersAny[0][1]).toBe("any");
});
test("parse check filter", () => {
expect(HistoryFilters.checkFilter(filterTexts[0], "name", "name of item")).toBe(true);
expect(HistoryFilters.checkFilter(filterTexts[0], "tag", "first")).toBe(true);
+7 -4
View File
@@ -266,12 +266,15 @@ export default class Filtering<T> {
}
// check if any default filter keys have been used
let hasDefaults = false;
for (const defaultKey in this.defaultFilters) {
if (result[defaultKey]) {
Object.keys(this.defaultFilters).forEach((defaultKey) => {
const value = result[defaultKey];
if (value !== undefined) {
if (value == "any") {
delete result[defaultKey];
}
hasDefaults = true;
break;
}
}
});
// use default filters if none of the default filters has been explicitly specified
if (!hasDefaults && this.useDefaultFilters) {
result = { ...result, ...this.defaultFilters };