diff --git a/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.js b/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.js index e2cbf43a832..65faf7b9eaa 100644 --- a/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.js +++ b/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.js @@ -27,6 +27,15 @@ export class RecordsSelector extends Component { })); } + onKeydown(ev) { + if (this.props.resIds.length === 0) { + return; + } + if (ev.key.toUpperCase() === "BACKSPACE") { + this.removeRecord(this.props.resIds[this.props.resIds.length - 1]); + } + } + searchDomain() { return Domain.not([["id", "in", this.props.resIds]]).toList(); } diff --git a/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.xml b/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.xml index a43748f3d34..fbaf357baae 100644 --- a/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.xml +++ b/addons/spreadsheet/static/src/global_filters/components/records_selector/records_selector.xml @@ -3,7 +3,9 @@
-
+
Dashboard > Dashboard action"); @@ -190,3 +191,28 @@ QUnit.test( assert.equal(year.placeholder, "Select year..."); } ); + +QUnit.test("Can delete record tag in the filter by hitting Backspace", async function (assert) { + const spreadsheetData = { + globalFilters: [ + { + id: "1", + type: "relation", + label: "Relation Filter", + modelName: "product", + defaultValue: [37], + automaticDefaultValue: true, + }, + ], + }; + const serverData = getServerData(spreadsheetData); + const fixture = getFixture(); + await createSpreadsheetDashboard({ serverData }); + const filter = fixture.querySelector(".o_control_panel_actions div.o_field_tags"); + const autoCompleteInput = filter.querySelector(".o-autocomplete--input.o_input"); + assert.equal(filter.querySelectorAll(".o_tag").length, 1); + + autoCompleteInput.focus(); + await keyDown({ key: "Backspace" }); + assert.equal(filter.querySelectorAll(".o_tag").length, 0); +});