From 191490d3cf8a2997d70cb7c111adf6908f318873 Mon Sep 17 00:00:00 2001 From: Raoul Dzoukou Date: Mon, 20 Jul 2026 16:07:01 +0100 Subject: [PATCH 1/2] Refactor setupActionItems to be the single source of truth for button state Move additionalButtons setup from setup() into setupActionItems() so buttons are rebuilt cleanly on every model sync without accumulation. --- .../src/views/export-feed/record/detail.js | 43 +++++++++++-------- 1 file changed, 24 insertions(+), 19 deletions(-) diff --git a/client/modules/export/src/views/export-feed/record/detail.js b/client/modules/export/src/views/export-feed/record/detail.js index 3ea7c4d3..e6e89cca 100644 --- a/client/modules/export/src/views/export-feed/record/detail.js +++ b/client/modules/export/src/views/export-feed/record/detail.js @@ -18,25 +18,6 @@ Espo.define('export:views/export-feed/record/detail', ['views/record/detail', 'e setup() { Dep.prototype.setup.call(this); - this.additionalButtons = [ - { - "action": "exportNow", - "label": this.translate('Export', 'labels', 'ExportFeed') - }, - { - "action": "dynamicExportNow", - "label": this.translate('DynamicExport', 'labels', 'ExportFeed') - } - ]; - - // Check if import module is installed - if (this.getMetadata().get('scopes.ImportFeed.type')) { - this.additionalButtons.push({ - "action": "duplicateAsImport", - "label": this.translate('DuplicateAsImport', 'labels', 'ExportFeed') - }) - } - this.listenTo(this.model, 'after:save after:inlineEditSave', () => { this.handleExportButtonDisability(); }); @@ -63,6 +44,30 @@ Espo.define('export:views/export-feed/record/detail', ['views/record/detail', 'e }); }, + setupActionItems() { + Dep.prototype.setupActionItems.call(this); + + this.additionalButtons.push( + { + "action": "exportNow", + "label": this.translate('Export', 'labels', 'ExportFeed') + }, + { + "action": "dynamicExportNow", + "label": this.translate('DynamicExport', 'labels', 'ExportFeed') + } + ); + + if (this.getMetadata().get('scopes.ImportFeed.type')) { + this.additionalButtons.push({ + "action": "duplicateAsImport", + "label": this.translate('DuplicateAsImport', 'labels', 'ExportFeed') + }); + } + + this.handleExportButtonDisability(); + }, + afterRender() { Dep.prototype.afterRender.call(this); From d8903f354cd606e220e97e8177bab0dd5f7afc4a Mon Sep 17 00:00:00 2001 From: Raoul Dzoukou Date: Tue, 21 Jul 2026 08:24:23 +0100 Subject: [PATCH 2/2] Update core dependency to ~2.3.11 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index b35c7ac1..b2f9f48d 100644 --- a/composer.json +++ b/composer.json @@ -2,7 +2,7 @@ "name": "atrocore/export", "description": "", "require": { - "atrocore/core": "~2.3.10", + "atrocore/core": "~2.3.11", "ext-zip": "*", "ext-dom": "*", "ext-libxml": "*",