fix: duplicate field in filters (#24189)

* fix: duplicate field in filters

* test: clear filters using new clear filter button
This commit is contained in:
Ankush Menat 2024-01-09 16:08:27 +05:30 committed by GitHub
parent 004359ad6e
commit 3884fa3c63
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 10 additions and 24 deletions

View file

@ -8,6 +8,7 @@ const test_queries = [
`?date=%5B">"%2C"2022-06-01"%5D`,
`?name=%5B"like"%2C"%2542%25"%5D`,
`?status=%5B"not%20in"%2C%5B"Open"%2C"Closed"%5D%5D`,
`?status=%5B%22%21%3D%22%2C%22Closed%22%5D&status=%5B%22%21%3D%22%2C%22Cancelled%22%5D`,
];
describe("SPA Routing", { scrollBehavior: false }, () => {

View file

@ -449,27 +449,8 @@ Cypress.Commands.add("click_menu_button", (name) => {
});
Cypress.Commands.add("clear_filters", () => {
let has_filter = false;
cy.intercept({
method: "POST",
url: "api/method/frappe.model.utils.user_settings.save",
}).as("filter-saved");
cy.get(".filter-section .filter-button").click({ force: true });
cy.wait(300);
cy.get(".filter-popover").should("exist");
cy.get(".filter-popover").then((popover) => {
if (popover.find("input.input-with-feedback")[0].value != "") {
has_filter = true;
}
});
cy.get(".filter-popover").find(".clear-filters").click();
cy.get(".filter-section .filter-button").click();
cy.window()
.its("cur_list")
.then((cur_list) => {
cur_list && cur_list.filter_area && cur_list.filter_area.clear();
has_filter && cy.wait("@filter-saved");
});
cy.get(".filter-x-button").click({ force: true });
cy.wait(500);
});
Cypress.Commands.add("click_modal_primary_button", (btn_name) => {

View file

@ -2016,9 +2016,13 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
parse_filters_from_route_options() {
const filters = [];
for (let field in frappe.route_options) {
let params = new URLSearchParams(window.location.search);
if (!params.toString() && frappe.route_options) {
params = new Map(Object.entries(frappe.route_options));
}
params.forEach((value, field) => {
let doctype = null;
let value = frappe.route_options[field];
let value_array;
if ($.isArray(value) && value[0].startsWith("[") && value[0].endsWith("]")) {
@ -2060,7 +2064,7 @@ frappe.views.ListView = class ListView extends frappe.views.BaseList {
filters.push([doctype, field, "=", value]);
}
}
}
});
return filters;
}