From 56bc35645f3adc6091fe9694f443281886bdb630 Mon Sep 17 00:00:00 2001 From: "Adrien Minne (adrm)" Date: Thu, 21 Mar 2024 14:55:18 +0100 Subject: [PATCH] [FIX] bottom_bar: disable sheet drag & drop in readonly MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When the sheet is readonly, the bottom bar should not allow the user to drag and drop the sheet. Before this commit, dragging a sheet was possible, but the sheet was not moved when dropping. Now we prevent dragging the sheet when it is readonly. closes odoo/o-spreadsheet#3870 Task: 3820888 Signed-off-by: Lucas Lefèvre (lul) --- src/components/bottom_bar/bottom_bar.ts | 2 +- tests/components/bottom_bar.test.ts | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/components/bottom_bar/bottom_bar.ts b/src/components/bottom_bar/bottom_bar.ts index 0190d54ea..f632e7d3a 100644 --- a/src/components/bottom_bar/bottom_bar.ts +++ b/src/components/bottom_bar/bottom_bar.ts @@ -240,7 +240,7 @@ export class BottomBar extends Component { } onSheetMouseDown(sheetId: UID, event: MouseEvent) { - if (event.button !== 0) return; + if (event.button !== 0 || this.env.model.getters.isReadonly()) return; this.closeMenu(); const mouseX = event.clientX; diff --git a/tests/components/bottom_bar.test.ts b/tests/components/bottom_bar.test.ts index 5d00d3213..09f8d3013 100644 --- a/tests/components/bottom_bar.test.ts +++ b/tests/components/bottom_bar.test.ts @@ -825,5 +825,12 @@ describe("BottomBar component", () => { await dragSheet("Sheet1", { mouseMoveX: 10, mouseUp: false }); expect(fixture.querySelector(".o-menu")).toBeFalsy(); }); + + test("Cannot drag & drop sheets in readonly mode", async () => { + model.updateMode("readonly"); + await dragSheet("Sheet1", { mouseMoveX: 10, mouseUp: false }); + expect(getElComputedStyle('.o-sheet[data-id="Sheet1"]', "position")).toBe(""); + expect(getElComputedStyle('.o-sheet[data-id="Sheet1"]', "left")).toBe(""); + }); }); });