From 79d5f2db3d2c2923bad9f9424f7f49fdb0be5d3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20G=C3=BCell=20Segarra?= Date: Mon, 23 Jun 2025 12:29:42 +0200 Subject: [PATCH 1/2] fix: toolbar retrieval for one2many (#1173) https://github.com/gisce/webclient/issues/2305#event-18269744207 --- src/widgets/base/one2many/One2many.tsx | 29 ++++++++++++++++++++++---- 1 file changed, 25 insertions(+), 4 deletions(-) diff --git a/src/widgets/base/one2many/One2many.tsx b/src/widgets/base/one2many/One2many.tsx index a63f9e7d2..3a60e80b4 100644 --- a/src/widgets/base/one2many/One2many.tsx +++ b/src/widgets/base/one2many/One2many.tsx @@ -62,6 +62,24 @@ export const One2many = (props: Props) => { return view; } + if (getToolbarEnabled && (type === "form" || type === "tree")) { + // Get view and toolbar in parallel + const [viewData, toolbar] = await Promise.all([ + ConnectionProvider.getHandler().getView({ + model: relation, + type, + context: { ...getContext?.(), ...context }, + }), + ConnectionProvider.getHandler().getToolbar({ + model: relation, + type, + context: { ...getContext?.(), ...context }, + }), + ]); + return { ...viewData, toolbar }; + } + + // If toolbar not enabled or not form/tree view, just get view return await ConnectionProvider.getHandler().getView({ model: relation, type, @@ -75,14 +93,17 @@ export const One2many = (props: Props) => { try { if (mode && mode.length > 0) { - for (const m of mode as ViewType[]) { + const viewPromises = (mode as ViewType[]).map(async (m: ViewType) => { const v = await getViewData(m); views.set(m, v); - } + }); + await Promise.all(viewPromises); setViews(views); } else { - const formView = await getViewData("form"); - const treeView = await getViewData("tree"); + const [formView, treeView] = await Promise.all([ + getViewData("form"), + getViewData("tree"), + ]); views.set("form", formView); views.set("tree", treeView); setViews(views); From 6b13bbd316f2cac478382508cea2666edf6931a8 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Mon, 23 Jun 2025 10:31:15 +0000 Subject: [PATCH 2/2] chore(release): 2.90.2 [skip ci] ## [2.90.2](https://github.com/gisce/react-ooui/compare/v2.90.1...v2.90.2) (2025-06-23) ### Bug Fixes * toolbar retrieval for one2many ([#1173](https://github.com/gisce/react-ooui/issues/1173)) ([79d5f2d](https://github.com/gisce/react-ooui/commit/79d5f2db3d2c2923bad9f9424f7f49fdb0be5d3e)), closes [/github.com/gisce/webclient/issues/2305#event-18269744207](https://github.com//github.com/gisce/webclient/issues/2305/issues/event-18269744207) --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index f68b38029..9502b61b3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@gisce/react-ooui", - "version": "2.90.1", + "version": "2.90.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@gisce/react-ooui", - "version": "2.90.1", + "version": "2.90.2", "dependencies": { "@ant-design/colors": "^7.2.0", "@ant-design/plots": "^1.0.9", diff --git a/package.json b/package.json index a3c94e99a..c9d4f8f95 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@gisce/react-ooui", - "version": "2.90.1", + "version": "2.90.2", "engines": { "node": "20.5.0" },